aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMario <mario@mariovavti.com>2023-07-11 18:57:18 +0000
committerMario <mario@mariovavti.com>2023-07-11 18:57:18 +0000
commit63fb8d03929189bfc8cbf53d23cb79984fe2c3cd (patch)
treeb9f74bd8c7721dca7ece251fdbb9a7c4fe9b949a
parent57796a2f962d045445cbf69237bb3d6786e4d0d4 (diff)
parent384de0925e502cfa8fe6ca287530ef5529fdff10 (diff)
downloadvolse-hubzilla-63fb8d03929189bfc8cbf53d23cb79984fe2c3cd.tar.gz
volse-hubzilla-63fb8d03929189bfc8cbf53d23cb79984fe2c3cd.tar.bz2
volse-hubzilla-63fb8d03929189bfc8cbf53d23cb79984fe2c3cd.zip
Merge branch '8.6RC'8.6
-rw-r--r--.debianinstall/README.md158
-rw-r--r--.debianinstall/config.txt.template111
-rw-r--r--.debianinstall/debian-setup.sh527
-rw-r--r--CHANGELOG39
-rw-r--r--Zotlabs/Daemon/Queue.php2
-rw-r--r--Zotlabs/Lib/Activity.php154
-rw-r--r--Zotlabs/Lib/ActivityStreams.php33
-rw-r--r--Zotlabs/Lib/Enotify.php15
-rw-r--r--Zotlabs/Lib/IConfig.php14
-rw-r--r--Zotlabs/Lib/Libsync.php2
-rw-r--r--Zotlabs/Lib/Libzot.php8
-rw-r--r--Zotlabs/Lib/ThreadItem.php5
-rw-r--r--Zotlabs/Module/Attach.php2
-rw-r--r--Zotlabs/Module/Channel.php8
-rw-r--r--Zotlabs/Module/Dirsearch.php2
-rw-r--r--Zotlabs/Module/Hq.php9
-rw-r--r--Zotlabs/Module/Item.php51
-rw-r--r--Zotlabs/Module/Lockview.php41
-rw-r--r--Zotlabs/Module/Magic.php6
-rw-r--r--Zotlabs/Module/Moderate.php28
-rw-r--r--Zotlabs/Module/Network.php2
-rw-r--r--Zotlabs/Module/Oep.php52
-rw-r--r--Zotlabs/Module/Owa.php9
-rw-r--r--Zotlabs/Module/Photo.php19
-rw-r--r--Zotlabs/Module/Rpost.php12
-rw-r--r--Zotlabs/Module/Settings/Privacy.php10
-rw-r--r--Zotlabs/Module/Wall_attach.php22
-rw-r--r--Zotlabs/Module/Wall_upload.php1
-rw-r--r--Zotlabs/Web/HTTPSig.php11
-rw-r--r--boot.php2
-rw-r--r--composer.lock436
-rw-r--r--doc/hooklist.bb2
-rw-r--r--include/attach.php81
-rw-r--r--include/channel.php2
-rw-r--r--include/connections.php29
-rw-r--r--include/conversation.php7
-rw-r--r--include/items.php179
-rw-r--r--include/network.php2
-rw-r--r--include/permissions.php16
-rw-r--r--include/security.php41
-rw-r--r--include/socgraph.php5
-rw-r--r--include/text.php22
-rw-r--r--library/fullcalendar/dist/index.global.js1697
-rw-r--r--library/fullcalendar/dist/index.global.min.js6
-rw-r--r--library/fullcalendar/examples/background-events.html28
-rw-r--r--library/fullcalendar/examples/daygrid-views.html32
-rw-r--r--library/fullcalendar/examples/external-dragging-2cals.html12
-rw-r--r--library/fullcalendar/examples/full-height.html32
-rw-r--r--library/fullcalendar/examples/list-sticky-header.html2
-rw-r--r--library/fullcalendar/examples/list-views.html32
-rw-r--r--library/fullcalendar/examples/month-view.html32
-rw-r--r--library/fullcalendar/examples/multimonth-view.html110
-rw-r--r--library/fullcalendar/examples/multiweek-view.html107
-rw-r--r--library/fullcalendar/examples/natural-height.html32
-rw-r--r--library/fullcalendar/examples/selectable.html32
-rw-r--r--library/fullcalendar/examples/timegrid-views.html32
-rw-r--r--library/fullcalendar/packages/bootstrap4/index.global.js6
-rw-r--r--library/fullcalendar/packages/bootstrap4/index.global.min.js6
-rw-r--r--library/fullcalendar/packages/bootstrap5/index.global.js4
-rw-r--r--library/fullcalendar/packages/bootstrap5/index.global.min.js4
-rw-r--r--library/fullcalendar/packages/core/index.global.js689
-rw-r--r--library/fullcalendar/packages/core/index.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales-all.global.js169
-rw-r--r--library/fullcalendar/packages/core/locales-all.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/af.global.js4
-rw-r--r--library/fullcalendar/packages/core/locales/af.global.min.js4
-rw-r--r--library/fullcalendar/packages/core/locales/ar-dz.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/ar-dz.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/ar-kw.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/ar-kw.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/ar-ly.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/ar-ly.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/ar-ma.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/ar-ma.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/ar-sa.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/ar-sa.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/ar-tn.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/ar-tn.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/ar.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/ar.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/az.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/az.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/bg.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/bg.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/bn.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/bn.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/bs.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/bs.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/ca.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/ca.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/cs.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/cs.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/cy.global.js4
-rw-r--r--library/fullcalendar/packages/core/locales/cy.global.min.js4
-rw-r--r--library/fullcalendar/packages/core/locales/da.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/da.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/de-at.global.js4
-rw-r--r--library/fullcalendar/packages/core/locales/de-at.global.min.js4
-rw-r--r--library/fullcalendar/packages/core/locales/de.global.js4
-rw-r--r--library/fullcalendar/packages/core/locales/de.global.min.js4
-rw-r--r--library/fullcalendar/packages/core/locales/el.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/el.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/en-au.global.js4
-rw-r--r--library/fullcalendar/packages/core/locales/en-au.global.min.js4
-rw-r--r--library/fullcalendar/packages/core/locales/en-gb.global.js4
-rw-r--r--library/fullcalendar/packages/core/locales/en-gb.global.min.js4
-rw-r--r--library/fullcalendar/packages/core/locales/en-nz.global.js4
-rw-r--r--library/fullcalendar/packages/core/locales/en-nz.global.min.js4
-rw-r--r--library/fullcalendar/packages/core/locales/eo.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/eo.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/es-us.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/es-us.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/es.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/es.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/et.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/et.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/eu.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/eu.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/fa.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/fa.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/fi.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/fi.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/fr-ca.global.js6
-rw-r--r--library/fullcalendar/packages/core/locales/fr-ca.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/fr-ch.global.js6
-rw-r--r--library/fullcalendar/packages/core/locales/fr-ch.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/fr.global.js7
-rw-r--r--library/fullcalendar/packages/core/locales/fr.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/gl.global.js24
-rw-r--r--library/fullcalendar/packages/core/locales/gl.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/he.global.js7
-rw-r--r--library/fullcalendar/packages/core/locales/he.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/hi.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/hi.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/hr.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/hr.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/hu.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/hu.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/hy-am.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/hy-am.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/id.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/id.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/is.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/is.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/it.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/it.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/ja.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/ja.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/ka.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/ka.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/kk.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/kk.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/km.global.js4
-rw-r--r--library/fullcalendar/packages/core/locales/km.global.min.js4
-rw-r--r--library/fullcalendar/packages/core/locales/ko.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/ko.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/ku.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/ku.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/lb.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/lb.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/lt.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/lt.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/lv.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/lv.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/mk.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/mk.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/ms.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/ms.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/nb.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/nb.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/ne.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/ne.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/nl.global.js4
-rw-r--r--library/fullcalendar/packages/core/locales/nl.global.min.js4
-rw-r--r--library/fullcalendar/packages/core/locales/nn.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/nn.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/pl.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/pl.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/pt-br.global.js26
-rw-r--r--library/fullcalendar/packages/core/locales/pt-br.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/pt.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/pt.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/ro.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/ro.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/ru.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/ru.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/si-lk.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/si-lk.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/sk.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/sk.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/sl.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/sl.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/sm.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/sm.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/sq.global.js7
-rw-r--r--library/fullcalendar/packages/core/locales/sq.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/sr-cyrl.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/sr-cyrl.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/sr.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/sr.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/sv.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/sv.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/ta-in.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/ta-in.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/th.global.js4
-rw-r--r--library/fullcalendar/packages/core/locales/th.global.min.js4
-rw-r--r--library/fullcalendar/packages/core/locales/tr.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/tr.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/ug.global.js8
-rw-r--r--library/fullcalendar/packages/core/locales/ug.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/uk.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/uk.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/uz-cy.global.js34
-rw-r--r--library/fullcalendar/packages/core/locales/uz-cy.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/uz.global.js12
-rw-r--r--library/fullcalendar/packages/core/locales/uz.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/vi.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/vi.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/zh-cn.global.js5
-rw-r--r--library/fullcalendar/packages/core/locales/zh-cn.global.min.js6
-rw-r--r--library/fullcalendar/packages/core/locales/zh-tw.global.js13
-rw-r--r--library/fullcalendar/packages/core/locales/zh-tw.global.min.js6
-rw-r--r--library/fullcalendar/packages/daygrid/index.global.js258
-rw-r--r--library/fullcalendar/packages/daygrid/index.global.min.js6
-rw-r--r--library/fullcalendar/packages/google-calendar/index.global.js4
-rw-r--r--library/fullcalendar/packages/google-calendar/index.global.min.js4
-rw-r--r--library/fullcalendar/packages/icalendar/index.global.js4
-rw-r--r--library/fullcalendar/packages/icalendar/index.global.min.js4
-rw-r--r--library/fullcalendar/packages/interaction/index.global.js10
-rw-r--r--library/fullcalendar/packages/interaction/index.global.min.js6
-rw-r--r--library/fullcalendar/packages/list/index.global.js10
-rw-r--r--library/fullcalendar/packages/list/index.global.min.js6
-rw-r--r--library/fullcalendar/packages/luxon1/index.global.js4
-rw-r--r--library/fullcalendar/packages/luxon1/index.global.min.js4
-rw-r--r--library/fullcalendar/packages/luxon2/index.global.js4
-rw-r--r--library/fullcalendar/packages/luxon2/index.global.min.js4
-rw-r--r--library/fullcalendar/packages/luxon3/index.global.js131
-rw-r--r--library/fullcalendar/packages/luxon3/index.global.min.js6
-rw-r--r--library/fullcalendar/packages/moment-timezone/index.global.js4
-rw-r--r--library/fullcalendar/packages/moment-timezone/index.global.min.js4
-rw-r--r--library/fullcalendar/packages/moment/index.global.js4
-rw-r--r--library/fullcalendar/packages/moment/index.global.min.js4
-rw-r--r--library/fullcalendar/packages/multimonth/index.global.js249
-rw-r--r--library/fullcalendar/packages/multimonth/index.global.min.js6
-rw-r--r--library/fullcalendar/packages/rrule/index.global.js34
-rw-r--r--library/fullcalendar/packages/rrule/index.global.min.js6
-rw-r--r--library/fullcalendar/packages/timegrid/index.global.js28
-rw-r--r--library/fullcalendar/packages/timegrid/index.global.min.js6
-rw-r--r--library/fullcalendar/packages/web-component/index.global.js19
-rw-r--r--library/fullcalendar/packages/web-component/index.global.min.js8
-rw-r--r--tests/unit/UnitTestCase.php6
-rw-r--r--tests/unit/includes/MarkdownTest.php4
-rw-r--r--util/hmessages.po961
-rw-r--r--vendor/brick/math/CHANGELOG.md40
-rw-r--r--vendor/brick/math/SECURITY.md17
-rw-r--r--vendor/brick/math/composer.json7
-rw-r--r--vendor/brick/math/src/BigDecimal.php145
-rw-r--r--vendor/brick/math/src/BigInteger.php183
-rw-r--r--vendor/brick/math/src/BigNumber.php132
-rw-r--r--vendor/brick/math/src/BigRational.php106
-rw-r--r--vendor/brick/math/src/Exception/DivisionByZeroException.php6
-rw-r--r--vendor/brick/math/src/Exception/IntegerOverflowException.php4
-rw-r--r--vendor/brick/math/src/Exception/MathException.php4
-rw-r--r--vendor/brick/math/src/Exception/NumberFormatException.php2
-rw-r--r--vendor/brick/math/src/Exception/RoundingNecessaryException.php2
-rw-r--r--vendor/brick/math/src/Internal/Calculator.php110
-rw-r--r--vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php47
-rw-r--r--vendor/brick/math/src/Internal/Calculator/GmpCalculator.php48
-rw-r--r--vendor/brick/math/src/Internal/Calculator/NativeCalculator.php57
-rw-r--r--vendor/bshaffer/oauth2-server-php/src/OAuth2/Response.php3
-rw-r--r--vendor/bshaffer/oauth2-server-php/src/OAuth2/ResponseInterface.php5
-rw-r--r--vendor/commerceguys/intl/.travis.yml4
-rw-r--r--vendor/commerceguys/intl/README.md2
-rw-r--r--vendor/commerceguys/intl/composer.json7
-rw-r--r--vendor/commerceguys/intl/phpunit.xml22
-rw-r--r--vendor/commerceguys/intl/resources/currency/af.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/ar.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/as.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/ast.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/az.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/be.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/bg.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/bn-IN.json501
-rw-r--r--vendor/commerceguys/intl/resources/currency/bn.json33
-rw-r--r--vendor/commerceguys/intl/resources/currency/brx.json602
-rw-r--r--vendor/commerceguys/intl/resources/currency/bs-Cyrl.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/bs.json10
-rw-r--r--vendor/commerceguys/intl/resources/currency/ca.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/ce.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/cs.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/cv.json501
-rw-r--r--vendor/commerceguys/intl/resources/currency/cy.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/da.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/de-CH.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/de.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/dz.json11
-rw-r--r--vendor/commerceguys/intl/resources/currency/el.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-001.json13
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-AU.json15
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-CA.json27
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-GG.json13
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-IM.json13
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-JE.json13
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-MV.json (renamed from vendor/commerceguys/intl/resources/currency/en-PH.json)30
-rw-r--r--vendor/commerceguys/intl/resources/currency/en.json15
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-419.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-CL.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-GT.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-MX.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-US.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-VE.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/es.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/et.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/eu.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/fa-AF.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/fa.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/fi.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/fil.json89
-rw-r--r--vendor/commerceguys/intl/resources/currency/fr-CA.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/fr.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/ga.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/gd.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/gl.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/gsw.json15
-rw-r--r--vendor/commerceguys/intl/resources/currency/gu.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/he.json15
-rw-r--r--vendor/commerceguys/intl/resources/currency/hi-Latn.json500
-rw-r--r--vendor/commerceguys/intl/resources/currency/hi.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/hr.json13
-rw-r--r--vendor/commerceguys/intl/resources/currency/hu.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/hy.json15
-rw-r--r--vendor/commerceguys/intl/resources/currency/id.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/is.json20
-rw-r--r--vendor/commerceguys/intl/resources/currency/it.json11
-rw-r--r--vendor/commerceguys/intl/resources/currency/ja.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/ka.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/kk.json35
-rw-r--r--vendor/commerceguys/intl/resources/currency/km.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/ko.json57
-rw-r--r--vendor/commerceguys/intl/resources/currency/kok.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/ks.json33
-rw-r--r--vendor/commerceguys/intl/resources/currency/ky.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/lb.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/lo.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/lt.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/lv.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/mg.json13
-rw-r--r--vendor/commerceguys/intl/resources/currency/mk.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/ml.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/mn.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/mr.json11
-rw-r--r--vendor/commerceguys/intl/resources/currency/ms.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/my.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/ne.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/nl.json11
-rw-r--r--vendor/commerceguys/intl/resources/currency/nn.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/no.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/pa.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/pl.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/ps.json11
-rw-r--r--vendor/commerceguys/intl/resources/currency/pt-PT.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/pt.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/rn.json13
-rw-r--r--vendor/commerceguys/intl/resources/currency/ro.json31
-rw-r--r--vendor/commerceguys/intl/resources/currency/ru.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/sd.json15
-rw-r--r--vendor/commerceguys/intl/resources/currency/si.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/sk.json13
-rw-r--r--vendor/commerceguys/intl/resources/currency/sl.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/so.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/sq.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/sr-Cyrl-BA.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/sr-Latn-BA.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/sr-Latn.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/sr.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/sv.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/sw-CD.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/sw-KE.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/sw.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/ta.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/te.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/th.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/tk.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/tr.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/uk.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/ur-IN.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/ur.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/uz-Cyrl.json15
-rw-r--r--vendor/commerceguys/intl/resources/currency/uz.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/vi.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/yue-Hans.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/yue.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/zh-Hans-HK.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/zh-Hant-HK.json11
-rw-r--r--vendor/commerceguys/intl/resources/currency/zh-Hant.json11
-rw-r--r--vendor/commerceguys/intl/resources/currency/zh.json9
-rw-r--r--vendor/commerceguys/intl/resources/language/af.json12
-rw-r--r--vendor/commerceguys/intl/resources/language/ar-EG.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/ar-LY.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/ar-SA.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/ar.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/as.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/ast.json12
-rw-r--r--vendor/commerceguys/intl/resources/language/az-Cyrl.json12
-rw-r--r--vendor/commerceguys/intl/resources/language/az.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/be.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/bg.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/bn-IN.json72
-rw-r--r--vendor/commerceguys/intl/resources/language/bn.json74
-rw-r--r--vendor/commerceguys/intl/resources/language/brx.json408
-rw-r--r--vendor/commerceguys/intl/resources/language/bs-Cyrl.json18
-rw-r--r--vendor/commerceguys/intl/resources/language/bs.json14
-rw-r--r--vendor/commerceguys/intl/resources/language/ca.json14
-rw-r--r--vendor/commerceguys/intl/resources/language/ce.json12
-rw-r--r--vendor/commerceguys/intl/resources/language/cs.json12
-rw-r--r--vendor/commerceguys/intl/resources/language/cy.json12
-rw-r--r--vendor/commerceguys/intl/resources/language/da.json22
-rw-r--r--vendor/commerceguys/intl/resources/language/de-AT.json12
-rw-r--r--vendor/commerceguys/intl/resources/language/de-CH.json231
-rw-r--r--vendor/commerceguys/intl/resources/language/de.json12
-rw-r--r--vendor/commerceguys/intl/resources/language/dz.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/el.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/en-001.json14
-rw-r--r--vendor/commerceguys/intl/resources/language/en-AU.json14
-rw-r--r--vendor/commerceguys/intl/resources/language/en-CA.json20
-rw-r--r--vendor/commerceguys/intl/resources/language/en-GB.json243
-rw-r--r--vendor/commerceguys/intl/resources/language/en-IN.json14
-rw-r--r--vendor/commerceguys/intl/resources/language/en-MV.json243
-rw-r--r--vendor/commerceguys/intl/resources/language/en.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/es-419.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/es-AR.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/es-BO.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/es-CL.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/es-CO.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/es-CR.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/es-DO.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/es-EC.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/es-GT.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/es-HN.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/es-MX.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/es-NI.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/es-PA.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/es-PE.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/es-PR.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/es-PY.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/es-SV.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/es-US.json18
-rw-r--r--vendor/commerceguys/intl/resources/language/es-VE.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/es.json20
-rw-r--r--vendor/commerceguys/intl/resources/language/et.json12
-rw-r--r--vendor/commerceguys/intl/resources/language/eu.json102
-rw-r--r--vendor/commerceguys/intl/resources/language/fa-AF.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/fa.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/fi.json14
-rw-r--r--vendor/commerceguys/intl/resources/language/fil.json20
-rw-r--r--vendor/commerceguys/intl/resources/language/fr-BE.json12
-rw-r--r--vendor/commerceguys/intl/resources/language/fr-CA.json12
-rw-r--r--vendor/commerceguys/intl/resources/language/fr-CH.json12
-rw-r--r--vendor/commerceguys/intl/resources/language/fr.json12
-rw-r--r--vendor/commerceguys/intl/resources/language/ga.json26
-rw-r--r--vendor/commerceguys/intl/resources/language/gd.json14
-rw-r--r--vendor/commerceguys/intl/resources/language/gl.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/gsw.json12
-rw-r--r--vendor/commerceguys/intl/resources/language/gu.json18
-rw-r--r--vendor/commerceguys/intl/resources/language/he.json20
-rw-r--r--vendor/commerceguys/intl/resources/language/hi-Latn.json243
-rw-r--r--vendor/commerceguys/intl/resources/language/hi.json22
-rw-r--r--vendor/commerceguys/intl/resources/language/hr.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/hu.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/hy.json20
-rw-r--r--vendor/commerceguys/intl/resources/language/id.json14
-rw-r--r--vendor/commerceguys/intl/resources/language/is.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/it.json14
-rw-r--r--vendor/commerceguys/intl/resources/language/ja.json12
-rw-r--r--vendor/commerceguys/intl/resources/language/ka.json18
-rw-r--r--vendor/commerceguys/intl/resources/language/kk.json36
-rw-r--r--vendor/commerceguys/intl/resources/language/km.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/ko.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/kok.json136
-rw-r--r--vendor/commerceguys/intl/resources/language/ks.json34
-rw-r--r--vendor/commerceguys/intl/resources/language/ku.json14
-rw-r--r--vendor/commerceguys/intl/resources/language/ky.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/lb.json12
-rw-r--r--vendor/commerceguys/intl/resources/language/lo.json22
-rw-r--r--vendor/commerceguys/intl/resources/language/lt.json12
-rw-r--r--vendor/commerceguys/intl/resources/language/lv.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/mai.json243
-rw-r--r--vendor/commerceguys/intl/resources/language/mg.json18
-rw-r--r--vendor/commerceguys/intl/resources/language/mk.json14
-rw-r--r--vendor/commerceguys/intl/resources/language/ml.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/mn.json18
-rw-r--r--vendor/commerceguys/intl/resources/language/mr.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/ms.json14
-rw-r--r--vendor/commerceguys/intl/resources/language/mt.json12
-rw-r--r--vendor/commerceguys/intl/resources/language/my.json24
-rw-r--r--vendor/commerceguys/intl/resources/language/ne.json14
-rw-r--r--vendor/commerceguys/intl/resources/language/nl.json12
-rw-r--r--vendor/commerceguys/intl/resources/language/nn.json12
-rw-r--r--vendor/commerceguys/intl/resources/language/no.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/pa.json20
-rw-r--r--vendor/commerceguys/intl/resources/language/pl.json12
-rw-r--r--vendor/commerceguys/intl/resources/language/ps-PK.json18
-rw-r--r--vendor/commerceguys/intl/resources/language/ps.json18
-rw-r--r--vendor/commerceguys/intl/resources/language/pt-PT.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/pt.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/rn.json18
-rw-r--r--vendor/commerceguys/intl/resources/language/ro-MD.json14
-rw-r--r--vendor/commerceguys/intl/resources/language/ro.json14
-rw-r--r--vendor/commerceguys/intl/resources/language/ru.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/rw.json18
-rw-r--r--vendor/commerceguys/intl/resources/language/sd.json20
-rw-r--r--vendor/commerceguys/intl/resources/language/si.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/sk.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/sl.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/so.json18
-rw-r--r--vendor/commerceguys/intl/resources/language/sq.json14
-rw-r--r--vendor/commerceguys/intl/resources/language/sr-Cyrl-BA.json30
-rw-r--r--vendor/commerceguys/intl/resources/language/sr-Cyrl-ME.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/sr-Cyrl-XK.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/sr-Latn-BA.json32
-rw-r--r--vendor/commerceguys/intl/resources/language/sr-Latn-ME.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/sr-Latn-XK.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/sr-Latn.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/sr.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/sv.json12
-rw-r--r--vendor/commerceguys/intl/resources/language/sw-CD.json18
-rw-r--r--vendor/commerceguys/intl/resources/language/sw-KE.json134
-rw-r--r--vendor/commerceguys/intl/resources/language/sw.json18
-rw-r--r--vendor/commerceguys/intl/resources/language/ta.json18
-rw-r--r--vendor/commerceguys/intl/resources/language/te.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/tg.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/th.json20
-rw-r--r--vendor/commerceguys/intl/resources/language/tk.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/to.json18
-rw-r--r--vendor/commerceguys/intl/resources/language/tr.json12
-rw-r--r--vendor/commerceguys/intl/resources/language/uk.json28
-rw-r--r--vendor/commerceguys/intl/resources/language/ur-IN.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/ur.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/uz-Cyrl.json14
-rw-r--r--vendor/commerceguys/intl/resources/language/uz.json18
-rw-r--r--vendor/commerceguys/intl/resources/language/vi.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/yue-Hans.json14
-rw-r--r--vendor/commerceguys/intl/resources/language/yue.json14
-rw-r--r--vendor/commerceguys/intl/resources/language/zh-Hant-HK.json16
-rw-r--r--vendor/commerceguys/intl/resources/language/zh-Hant.json14
-rw-r--r--vendor/commerceguys/intl/resources/language/zh.json16
-rwxr-xr-xvendor/commerceguys/intl/scripts/fetch_data.sh2
-rw-r--r--vendor/commerceguys/intl/src/Currency/CurrencyRepository.php28
-rw-r--r--vendor/commerceguys/intl/src/Language/LanguageRepository.php28
-rw-r--r--vendor/commerceguys/intl/src/Locale.php4
-rw-r--r--vendor/commerceguys/intl/src/NumberFormat/NumberFormatRepository.php117
-rw-r--r--vendor/composer/autoload_classmap.php2
-rw-r--r--vendor/composer/autoload_static.php2
-rw-r--r--vendor/composer/installed.json152
-rw-r--r--vendor/composer/installed.php60
-rw-r--r--vendor/pear/text_languagedetect/Text/LanguageDetect.php6
-rw-r--r--vendor/pear/text_languagedetect/Text/LanguageDetect/Parser.php2
-rw-r--r--vendor/pear/text_languagedetect/package.xml246
-rw-r--r--vendor/ramsey/uuid/LICENSE2
-rw-r--r--vendor/ramsey/uuid/README.md2
-rw-r--r--vendor/ramsey/uuid/composer.json10
-rw-r--r--vendor/ramsey/uuid/src/Codec/GuidStringCodec.php21
-rw-r--r--vendor/ramsey/uuid/src/Codec/StringCodec.php27
-rw-r--r--vendor/ramsey/uuid/src/FeatureSet.php14
-rw-r--r--vendor/ramsey/uuid/src/Generator/DefaultTimeGenerator.php4
-rw-r--r--vendor/ramsey/uuid/src/Generator/UnixTimeGenerator.php149
-rw-r--r--vendor/ramsey/uuid/src/Nonstandard/UuidV6.php4
-rw-r--r--vendor/ramsey/uuid/src/Provider/Node/SystemNodeProvider.php9
-rw-r--r--vendor/ramsey/uuid/src/Rfc4122/MaxTrait.php2
-rw-r--r--vendor/ramsey/uuid/src/Rfc4122/UuidBuilder.php2
-rw-r--r--vendor/ramsey/uuid/src/Rfc4122/UuidV6.php2
-rw-r--r--vendor/ramsey/uuid/src/Rfc4122/UuidV7.php6
-rw-r--r--vendor/ramsey/uuid/src/Rfc4122/UuidV8.php65
-rw-r--r--vendor/ramsey/uuid/src/Rfc4122/Validator.php2
-rw-r--r--vendor/ramsey/uuid/src/Rfc4122/VersionTrait.php2
-rw-r--r--vendor/ramsey/uuid/src/Type/Hexadecimal.php39
-rw-r--r--vendor/ramsey/uuid/src/Type/Integer.php86
-rw-r--r--vendor/ramsey/uuid/src/Type/Time.php2
-rw-r--r--vendor/ramsey/uuid/src/Uuid.php99
-rw-r--r--vendor/ramsey/uuid/src/UuidFactory.php50
-rw-r--r--vendor/ramsey/uuid/src/UuidInterface.php4
-rw-r--r--vendor/ramsey/uuid/src/functions.php20
-rw-r--r--vendor/sabre/vobject/composer.json2
-rw-r--r--vendor/sabre/vobject/lib/Component.php2
-rw-r--r--vendor/sabre/vobject/lib/Component/VCard.php2
-rw-r--r--vendor/sabre/vobject/lib/Node.php2
-rw-r--r--vendor/sabre/vobject/lib/Parameter.php2
-rw-r--r--vendor/sabre/vobject/lib/Parser/XML/Element/KeyValue.php4
-rw-r--r--vendor/sabre/vobject/lib/Property.php2
-rw-r--r--vendor/sabre/vobject/lib/Version.php2
-rw-r--r--vendor/smarty/smarty/CHANGELOG.md15
-rw-r--r--vendor/smarty/smarty/SECURITY.md9
-rw-r--r--vendor/smarty/smarty/docs/appendixes/tips.md233
-rw-r--r--vendor/smarty/smarty/docs/appendixes/troubleshooting.md122
-rw-r--r--vendor/smarty/smarty/docs/designers/chapter-debugging-console.md3
-rw-r--r--vendor/smarty/smarty/docs/designers/config-files.md53
-rw-r--r--vendor/smarty/smarty/docs/designers/language-basic-syntax/index.md (renamed from vendor/smarty/smarty/docs/designers/language-basic-syntax.md)22
-rw-r--r--vendor/smarty/smarty/docs/designers/language-basic-syntax/language-escaping.md93
-rw-r--r--vendor/smarty/smarty/docs/designers/language-basic-syntax/language-math.md23
-rw-r--r--vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-attributes.md39
-rw-r--r--vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-comments.md28
-rw-r--r--vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-functions.md46
-rw-r--r--vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-quotes.md81
-rw-r--r--vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-variables.md144
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions.md38
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/index.md35
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-append.md52
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-assign.md179
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-block.md122
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-call.md45
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-capture.md89
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-config-load.md109
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-debug.md9
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-extends.md36
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-for.md116
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-foreach.md474
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-function.md95
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-if.md219
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-include.md207
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-insert.md48
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-ldelim.md76
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-literal.md38
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-nocache.md21
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-section.md778
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-setfilter.md37
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-shortform-assign.md84
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-strip.md33
-rw-r--r--vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-while.md68
-rw-r--r--vendor/smarty/smarty/docs/designers/language-combining-modifiers.md41
-rw-r--r--vendor/smarty/smarty/docs/designers/language-custom-functions.md21
-rw-r--r--vendor/smarty/smarty/docs/designers/language-custom-functions/index.md19
-rw-r--r--vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-counter.md50
-rw-r--r--vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-cycle.md42
-rw-r--r--vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-debug.md15
-rw-r--r--vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-eval.md83
-rw-r--r--vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-fetch.md56
-rw-r--r--vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-checkboxes.md159
-rw-r--r--vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-image.md54
-rw-r--r--vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-options.md189
-rw-r--r--vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-radios.md142
-rw-r--r--vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-select-date.md135
-rw-r--r--vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-select-time.md114
-rw-r--r--vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-table.md122
-rw-r--r--vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-mailto.md77
-rw-r--r--vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-math.md107
-rw-r--r--vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-textformat.md282
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers.md123
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/index.md122
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-capitalize.md40
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-cat.md33
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-count-characters.md40
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-count-paragraphs.md31
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-count-sentences.md32
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-count-words.md32
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-date-format.md206
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-default.md50
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-escape.md98
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-from-charset.md19
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-indent.md73
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-lower.md41
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-nl2br.md42
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-regex-replace.md54
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-replace.md53
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-spacify.md50
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-string-format.md50
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-strip-tags.md57
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-strip.md50
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-to-charset.md17
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-truncate.md71
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-unescape.md52
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-upper.md40
-rw-r--r--vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-wordwrap.md86
-rw-r--r--vendor/smarty/smarty/docs/designers/language-variables.md37
-rw-r--r--vendor/smarty/smarty/docs/designers/language-variables/index.md36
-rw-r--r--vendor/smarty/smarty/docs/designers/language-variables/language-assigned-variables.md188
-rw-r--r--vendor/smarty/smarty/docs/designers/language-variables/language-config-variables.md110
-rw-r--r--vendor/smarty/smarty/docs/designers/language-variables/language-variable-scopes.md79
-rw-r--r--vendor/smarty/smarty/docs/designers/language-variables/language-variables-smarty.md148
-rw-r--r--vendor/smarty/smarty/docs/getting-started.md36
-rw-r--r--vendor/smarty/smarty/docs/index.md10
-rw-r--r--vendor/smarty/smarty/docs/philosophy.md3
-rw-r--r--vendor/smarty/smarty/docs/programmers/advanced-features/advanced-features-objects.md2
-rw-r--r--vendor/smarty/smarty/docs/programmers/api-functions/api-add-config-dir.md2
-rw-r--r--vendor/smarty/smarty/docs/programmers/api-functions/api-fetch.md2
-rw-r--r--vendor/smarty/smarty/docs/programmers/api-functions/api-mute-expected-errors.md2
-rw-r--r--vendor/smarty/smarty/docs/programmers/api-variables/variable-auto-literal.md2
-rw-r--r--vendor/smarty/smarty/docs/programmers/api-variables/variable-compile-check.md3
-rw-r--r--vendor/smarty/smarty/docs/programmers/api-variables/variable-error-reporting.md2
-rw-r--r--vendor/smarty/smarty/docs/programmers/api-variables/variable-template-dir.md2
-rw-r--r--vendor/smarty/smarty/docs/programmers/api-variables/variable-use-include-path.md6
-rw-r--r--vendor/smarty/smarty/docs/programmers/api-variables/variable-use-sub-dirs.md2
-rw-r--r--vendor/smarty/smarty/docs/programmers/plugins/plugins-block-functions.md2
-rw-r--r--vendor/smarty/smarty/docs/programmers/plugins/plugins-modifiers.md2
-rw-r--r--vendor/smarty/smarty/docs/programmers/plugins/plugins-naming-conventions.md2
-rw-r--r--vendor/smarty/smarty/docs/programmers/resources/resources-file.md2
-rw-r--r--vendor/smarty/smarty/docs/programmers/resources/resources-string.md4
-rw-r--r--vendor/smarty/smarty/libs/Smarty.class.php7
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifier.escape.php4
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifier.truncate.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifiercompiler.count_characters.php4
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifiercompiler.count_words.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifiercompiler.escape.php4
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifiercompiler.lower.php4
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifiercompiler.upper.php4
-rw-r--r--vendor/smarty/smarty/libs/plugins/outputfilter.trimwhitespace.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/shared.escape_special_chars.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/variablefilter.htmlspecialchars.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_errorhandler.php21
-rw-r--r--vendor/smarty/smarty/mkdocs.yml123
-rwxr-xr-xvendor/smarty/smarty/run-tests-for-all-php-versions.sh51
-rwxr-xr-xvendor/smarty/smarty/run-tests.sh17
-rw-r--r--vendor/spomky-labs/otphp/composer.json2
-rw-r--r--vendor/spomky-labs/otphp/src/Factory.php12
-rw-r--r--vendor/spomky-labs/otphp/src/FactoryInterface.php2
-rw-r--r--vendor/spomky-labs/otphp/src/HOTP.php15
-rw-r--r--vendor/spomky-labs/otphp/src/HOTPInterface.php7
-rw-r--r--vendor/spomky-labs/otphp/src/OTP.php27
-rw-r--r--vendor/spomky-labs/otphp/src/OTPInterface.php43
-rw-r--r--vendor/spomky-labs/otphp/src/ParameterTrait.php32
-rw-r--r--vendor/spomky-labs/otphp/src/TOTP.php19
-rw-r--r--vendor/spomky-labs/otphp/src/TOTPInterface.php18
-rw-r--r--vendor/spomky-labs/otphp/src/Url.php19
-rw-r--r--vendor/symfony/polyfill-php81/Resources/stubs/ReturnTypeWillChange.php9
-rw-r--r--vendor/symfony/polyfill-php81/composer.json2
-rw-r--r--view/css/doubleleft.css31
-rw-r--r--view/css/doubleright.css31
-rw-r--r--view/css/mod_directory.css2
-rw-r--r--view/es-es/hmessages.po2
-rw-r--r--view/es-es/hstrings.php2
-rw-r--r--view/js/main.js12
-rw-r--r--view/php/doubleleft.php36
-rw-r--r--view/php/doubleright.php36
-rw-r--r--view/php/full.php2
-rw-r--r--view/php/minimal.php2
-rw-r--r--view/theme/redbasic/css/style.css10
-rw-r--r--view/theme/redbasic/schema/Focus-Boxy.css1
-rw-r--r--view/tpl/cal_calendar.tpl2
-rw-r--r--view/tpl/cdav_calendar.tpl26
-rw-r--r--view/tpl/cloud_directory.tpl2
-rw-r--r--view/tpl/conv_item.tpl7
-rw-r--r--view/tpl/mail_conv.tpl40
-rw-r--r--view/tpl/mail_display.tpl24
-rw-r--r--view/tpl/mail_head.tpl8
-rw-r--r--view/tpl/mail_list.tpl7
-rw-r--r--view/tpl/message_side.tpl11
-rw-r--r--view/tpl/msg-header.tpl82
-rw-r--r--view/tpl/navbar_default.tpl2
-rw-r--r--view/tpl/profile_vcard.tpl16
-rw-r--r--view/tpl/search_item.tpl13
-rw-r--r--view/tpl/settings_privacy.tpl2
750 files changed, 16819 insertions, 10078 deletions
diff --git a/.debianinstall/README.md b/.debianinstall/README.md
new file mode 100644
index 000000000..46e0e0858
--- /dev/null
+++ b/.debianinstall/README.md
@@ -0,0 +1,158 @@
+
+# How to use
+
+## Disclaimers
+
+- **This script does work with a fresh install of Debian 12 only**.
+- Do not use if you have already installed and configured a webserver or sql server that was not installed by this script.
+
+### Keep it Simple and Stupid
+
+The script keeps everything as simple as possible (KISS):
+
+- Apache as webserver (there is no choice to use another webserver like nginx)
+- default PHP version of Debian
+- one single Hubzilla intance only
+- re-running the script does no harm
+
+### When to use other Scripts
+
+Use the scripts under [homeinstall](https://framagit.org/hubzilla/core/-/tree/master/.homeinstall)
+if you look for more choices. The main differences are:
+
+- Apache or nginx as webserver
+- install multiple instances (domains) that run side by side on the server
+- adds apache vhosts (instead of using the standard doc root /var/www/html)
+- install PHP from https://packages.sury.org/php/ (instead of using the Debian repository)
+- graphical installer whiptail
+- The script stops (fails) if it finds results of a previous installation. (The [debian-setup.sh](https://framagit.org/ojrandom/core/-/tree/dev/.debianinstall) will just jump over it.)
+- If something fails the script tries to clean up everything that was installed up to the point of failure. (That might cause trouble if certbot registered a certificate already.)
+- The script under [homeinstall](https://framagit.org/hubzilla/core/-/tree/master/.homeinstall) seems to be an older version of the scripts used for Streams
+ + [autoinstall](https://codeberg.org/streams/streams/src/branch/dev/contrib/autoinstall)
+ + [easyinstall](https://codeberg.org/streams/streams/src/branch/dev/contrib/easyinstall)
+
+## Preconditions
+
+Hardware
+
++ internet connection and router at home
++ computer connected to your router (a Raspberry 3 will do for very small Hubs)
+
+Software
+
++ fresh installation of Debian 12 (bookworm)
++ router with open ports 80 and 443 for your web server
+
+You can of course run the script on a VPS or any distant server as long as the above sotfware requirements are satisfied.
+
+## How to run the script
+
++ Register your own domain (for example at selfHOST) or a free subdomain (for example at freeDNS)
++ Log on to your fresh Debian
+ - apt-get install git
+ - mkdir -p /var/www
+ - cd /var/www
+ - git clone https://framagit.org/hubzilla/core.git html
+ - cd html/.debianinstall
+ - cp config.txt.template config.txt
+ - nano config.txt
+ - read the comments carefully
+ - enter your values: db pass, domain
+ - (optionally) Enter your values for dyn DNS
+ - ./debian-setup.sh as root
+ - ... wait, wait, wait until the script is finished
++ Open your domain with a browser and step throught the initial configuration of your hubzilla instance.
+ - default database name = hubzilla
+ - default dababase user = hubzilla
+
+## Optional - Switch verification of email on/off
+
+Do this just before you register the first user without email verification.
+
+In a terminal
+
+ su -
+ cd /var/www/html
+
+Check the current setting
+
+ util/config system verify_email
+
+Switch the verification off
+
+ util/config system verify_email 0
+
+## What the script will do for you...
+
++ install everything required by your hubzilla instance, basically a web server (Apache), PHP, a database (MySQL), certbot,...
++ create a database
++ run certbot to have everything for a secure connection (httpS)
++ create a script for daily maintenance
+ - renew certfificate (letsencrypt)
+ - update of your hubzilla instance for core and addons (git)
+ - update of Debian
+ - restart
++ create cron jobs for
+ - DynDNS (selfHOST.de or freedns.afraid.org) every 5 minutes
+ - Master.php for your hubzilla instance every 10 minutes
+ - daily maintenance script every day at 05:30
+
+The script is known to work without adjustments with
+
++ Hardware
+ - standard PC with Debian 12 (bookworm)
+ - Raspberry 4 with Raspbian, Debian 12 (TODO: needs confirmation after swich to Debian12)
+ - for tesing purposes: under localhost inside a virtual machine, [KVM](https://wiki.debian.org/KVM)
++ DynDNS
+ - selfHOST.de
+ - freedns.afraid.org
+
+# Step-by-Step - some Details
+
+## Preparations
+
+## Configure your Router
+
+Your webserver has to be visible in the internet.
+
+Open the ports 80 and 443 on your router for your Debian. Make sure your web server is marked as "exposed host".
+
+## Preparations Dynamic IP Address
+
+Follow the instructions in .debianinstall/config.txt.
+
+In short...
+
+Your Hubzilla server must be reachable by a domain that you can type in your browser
+
+ cooldomain.org
+
+You can use subdomains as well
+
+ my.cooldomain.org
+
+There are two ways to get a domain...
+
+### Method 1: Buy a Domain
+
+...for example buy at selfHOST.de
+
+The cost is 1,50 € per month (2019).
+
+### Method 2: Register a free subdomain
+
+...for example register at freedns.afraid.org
+
+## Note on Rasperry
+
+It is recommended to run the Raspi without graphical frontend (X-Server). Use...
+
+ sudo raspi-config
+
+to boot the Rapsi to the client console.
+
+DO NOT FORGET TO CHANGE THE DEFAULT PASSWORD FOR USER PI!
+
+## Reminder for Different Web Wervers
+
+For those of you who feel adventurous enough to use a different web server (i.e. Lighttpd...), don't forget that this script will install Apache or Nginx and that you can only have one web server listening to ports 80 & 443. Also, don't forget to tweak your daily shell script in /var/www/ accordingly.
diff --git a/.debianinstall/config.txt.template b/.debianinstall/config.txt.template
new file mode 100644
index 000000000..1737b52ad
--- /dev/null
+++ b/.debianinstall/config.txt.template
@@ -0,0 +1,111 @@
+
+###############################################
+### MANDATORY - database password #############
+#
+# Please give your database password
+# It is better to not use blanks inside the password.
+# Example: db_pass=pass_word_with_no_blanks_in_it
+db_pass=
+
+###############################################
+### MANDATORY - let's encrypt #################
+#
+# Zot requires encrypted communication via secure HTTP (HTTPS).
+# This script automates installation of an SSL certificate from
+# Let's Encrypt (https://letsencrypt.org)
+#
+# Please give the domain name of your hub/instance
+#
+# Example: my.cooldomain.org
+# Example: cooldomain.org
+#
+# You might use "localhost" for a LOCAL TEST installation.
+# This is usefull if you want to debug the server inside a VM.
+#
+# Example: localhost
+#
+# Email is optional if you use "localhost".
+#
+#
+le_domain=
+le_email=
+
+
+###############################################
+### OPTIONAL - selfHOST - dynamic IP address ##
+#
+# 1. Register a domain at selfhost.de
+# - choose offer "DOMAIN dynamisch" 1,50€/mon at 04/2019
+# 2. Get your configuration for dynamic IP update
+# - Log in at selfhost.de
+# - go to "DynDNS Accounte"
+# - klick "Details" of your (freshly) registered domain
+# - You will find the configuration there
+# - Benutzername (user name) > use this for "selfhost_user="
+# - Passwort (pass word) > use this for "selfhost_pass="
+#
+#
+selfhost_user=
+selfhost_pass=
+
+###############################################
+### OPTIONAL - FreeDNS - dynamic IP address ###
+#
+# Please give the alpha-numeric-key of freedns
+#
+# Get a free subdomain from freedns and use it for your dynamic ip address
+# Documentation under http://www.techjawab.com/2013/06/setup-dynamic-dns-dyndns-for-free-on.html
+#
+# - Register for a Free domain at http://freedns.afraid.org/signup/
+# - WATCH THIS: Make sure you choose a domain with as less subdomains as
+# possible. Why? Let's encrpyt issues a limited count of certificates each
+# day. Possible other users of this domain will try to issue a certificate
+# at the same day.
+# - Logon to FreeDNS (where you just registered)
+# - Goto http://freedns.afraid.org/dynamic/
+# - Right click on "Direct Link" and copy the URL and paste it somewhere.
+# - You should notice a large and unique alpha-numeric key in the URL
+#
+# http://freedns.afraid.org/dynamic/update.php?alpha-numeric-key
+#
+# Provided your url from freedns is
+#
+# http://freedns.afraid.org/dynamic/update.php?U1Z6aGt2R0NzMFNPNWRjbWxxZGpsd093OjE1Mzg5NDE5
+#
+# Then you have to provide
+#
+# freedns_key=U1Z6aGt2R0NzMFNPNWRjbWxxZGpsd093OjE1Mzg5NDE5
+#
+#
+freedns_key=
+
+
+###############################################
+### OPTIONAL - do not mess with things below ##
+# (...if you are not certain)
+#
+# Usually you are done here
+# Everything below is OPTIONAL
+#
+###############################################
+#
+# Database for your hub/instance
+# If left empty, both your database and user will be named after your zot instance (hubzilla, zap or misty)
+# Use custom name, at least fo the database, if you plan to run more than one hub/instance on the same server
+#
+zotserver_db_name=
+zotserver_db_user=
+zotserver_db_pass=$db_pass
+#
+#
+# Password for package mysql-server
+# Example: mysqlpass=aberhallo
+# Example: mysqlpass="aber hallo has blanks in it"
+#
+mysqlpass=$db_pass
+
+# Password for package phpmyadmin
+# Example: phpmyadminpass=aberhallo
+# Example: phpmyadminpass="aber hallo has blanks in it"
+phpmyadminpass=$db_pass
+
diff --git a/.debianinstall/debian-setup.sh b/.debianinstall/debian-setup.sh
new file mode 100644
index 000000000..9e9b3fc1a
--- /dev/null
+++ b/.debianinstall/debian-setup.sh
@@ -0,0 +1,527 @@
+#!/bin/bash
+#
+# How to use
+# ----------
+#
+# This file automates the installation of hubzilla: https://framagit.org/hubzilla/core
+# under Debian Linux "bookworm"
+#
+# 1) Copy the file "config.txt.template" to "config.txt"
+# Follow the instuctions there
+#
+# 2) Switch to user "root" by typing "su -"
+#
+# 3) Run with "./debian-setup.sh"
+# If this fails check if you can execute the script.
+# - To make it executable type "chmod +x debian-setup.sh"
+# - or run "bash debian-setup.sh"
+#
+#
+# What does this script do basically?
+# -----------------------------------
+#
+# This file automates the installation of a Hubzilla instance under Debian Linux
+# - install
+# * apache webserver,
+# * php,
+# * mariadb,
+# * adminer,
+# * addons
+# - configure cron
+# * "Master.php" for regular background processes of your hubzilla instance
+# * "apt-get update" and "apt-get dist-upgrade" and "apt-get autoremove" to keep linux up-to-date
+# * run command to keep the IP up-to-date > DynDNS provided by selfHOST.de or freedns.afraid.org
+# - run letsencrypt to create, register and use a certifacte for https
+#
+#
+# Credits
+# -------
+#
+# The script is derived from the easyinstall script of the Streams repository, which is based on
+# - Tom Wiedenhöfts (OJ Random) script homeinstall (for Hubzilla, ZAP,...) that was based on
+# - Thomas Willinghams script "debian-setup.sh" which he used to install the red#matrix.
+
+function check_sanity {
+ # Do some sanity checking.
+ print_info "Sanity check..."
+ if [ $(/usr/bin/id -u) != "0" ]
+ then
+ die 'Must be run by root user'
+ fi
+
+ if [ -f /etc/lsb-release ]
+ then
+ die "Distribution is not supported"
+ fi
+ if [ ! -f /etc/debian_version ]
+ then
+ die "Debian is supported only"
+ fi
+ if ! grep -q 'Linux 12' /etc/issue
+ then
+ die "Linux 12 (bookworm) is supported only"x
+ fi
+}
+
+function check_config {
+ print_info "config check..."
+ # Check for required parameters
+ if [ -z "$db_pass" ]
+ then
+ die "db_pass not set in $configfile"
+ fi
+ if [ -z "$le_domain" ]
+ then
+ die "le_domain not set in $configfile"
+ fi
+}
+
+function die {
+ echo "ERROR: $1" > /dev/null 1>&2
+ exit 1
+}
+
+
+function update_upgrade {
+ print_info "updated and upgrade..."
+ # Run through the apt-get update/upgrade first. This should be done before
+ # we try to install any package
+ apt-get -q -y update && apt-get -q -y dist-upgrade && apt-get -q -y autoremove
+ print_info "updated and upgraded linux"
+}
+
+function nocheck_install {
+ # export DEBIAN_FRONTEND=noninteractive ... answers from the package configuration database
+ # - q ... without progress information
+ # - y ... answer interactive questions with "yes"
+ # DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends -q -y install $2
+ # DEBIAN_FRONTEND=noninteractive apt-get --install-suggests -q -y install $1
+ DEBIAN_FRONTEND=noninteractive apt-get -q -y install $1
+ print_info "installed $1"
+}
+
+
+function print_info {
+ echo -n -e '\e[1;34m'
+ echo -n $1
+ echo -e '\e[0m'
+}
+
+function print_warn {
+ echo -n -e '\e[1;31m'
+ echo -n $1
+ echo -e '\e[0m'
+}
+
+function stop_zotserver {
+ print_info "stopping apache..."
+ systemctl stop apache2
+ print_info "stopping mysql db..."
+ systemctl stop mariadb
+}
+
+function install_apache {
+ print_info "installing apache..."
+ nocheck_install "apache2 apache2-utils"
+ a2enmod rewrite
+ systemctl restart apache2
+}
+
+function install_imagemagick {
+ print_info "installing imagemagick..."
+ nocheck_install "imagemagick"
+}
+
+function install_curl {
+ print_info "installing curl..."
+ nocheck_install "curl"
+}
+
+function install_wget {
+ print_info "installing wget..."
+ nocheck_install "wget"
+}
+
+function install_sendmail {
+ print_info "installing sendmail..."
+ nocheck_install "sendmail sendmail-bin"
+}
+
+function install_php {
+ # openssl and mbstring are included in libapache2-mod-php
+ print_info "installing php..."
+ nocheck_install "libapache2-mod-php php php-pear php-curl php-gd php-mbstring php-xml php-zip"
+ phpversion=$(php -v|grep --only-matching --perl-regexp "(PHP )\d+\.\\d+\.\\d+"|cut -c 5-7)
+ sed -i "s/^upload_max_filesize =.*/upload_max_filesize = 100M/g" /etc/php/$phpversion/apache2/php.ini
+ sed -i "s/^post_max_size =.*/post_max_size = 100M/g" /etc/php/$phpversion/apache2/php.ini
+}
+
+function install_composer {
+ print_info "We check if Composer is already downloaded"
+ if [ ! -f /usr/local/bin/composer ]
+ then
+ EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')"
+ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
+ ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"
+ if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]
+ then
+ >&2 echo 'ERROR: Invalid installer checksum'
+ rm composer-setup.php
+ die 'ERROR: Invalid installer checksum'
+ fi
+ php composer-setup.php --quiet
+ RESULT=$?
+ rm composer-setup.php
+ # exit $RESULT
+ # We install Composer globally
+ mv composer.phar /usr/local/bin/composer
+ print_info "Composer was successfully downloaded."
+ else
+ print_info "Composer is already downloaded on this system."
+ fi
+ cd $install_path
+ export COMPOSER_ALLOW_SUPERUSER=1;
+ /usr/local/bin/composer install --no-dev
+ /usr/local/bin/composer show
+ export COMPOSER_ALLOW_SUPERUSER=0;
+}
+
+
+function install_mysql {
+ print_info "installing mysql..."
+ if [ -z "$mysqlpass" ]
+ then
+ die "mysqlpass not set in $configfile"
+ fi
+ if type mysql ; then
+ echo "Yes, mysql is installed"
+ else
+ echo "mariadb-server"
+ nocheck_install "mariadb-server"
+ systemctl status mariadb
+ systemctl start mariadb
+ mysql --user=root <<_EOF_
+UPDATE mysql.user SET Password=PASSWORD('${mysqlpass}') WHERE User='root';
+DELETE FROM mysql.user WHERE User='';
+DROP DATABASE IF EXISTS test;
+DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';
+FLUSH PRIVILEGES;
+_EOF_
+ fi
+}
+
+function install_adminer {
+ print_info "installing adminer..."
+ nocheck_install "adminer"
+ if [ ! -f /etc/adminer/adminer.conf ]
+ then
+ echo "Alias /adminer /usr/share/adminer/adminer" > /etc/adminer/adminer.conf
+ ln -s /etc/adminer/adminer.conf /etc/apache2/conf-available/adminer.conf
+ else
+ print_info "file /etc/adminer/adminer.conf exists already"
+ fi
+
+ a2enmod rewrite
+
+ if [ ! -f /etc/apache2/apache2.conf ]
+ then
+ die "could not find file /etc/apache2/apache2.conf"
+ fi
+ sed -i \
+ "s/AllowOverride None/AllowOverride all/" \
+ /etc/apache2/apache2.conf
+
+ a2enconf adminer
+ systemctl restart mariadb
+ systemctl reload apache2
+}
+
+function create_zotserver_db {
+ print_info "creating zotserver database..."
+ if [ -z "$db_name" ]
+ then
+ die "db_name not set in $configfile"
+ fi
+ if [ -z "$db_user" ]
+ then
+ die "db_user not set in $configfile"
+ fi
+ if [ -z "$db_pass" ]
+ then
+ die "db_pass not set in $configfile"
+ fi
+ systemctl restart mariadb
+ # Make sure we don't write over an already existing database if we install more than one Zot hub/instance
+ if [ -z $(mysql -h localhost -u root -p$mysqlpass -e "SHOW DATABASES;" | grep $db_name) ]
+ then
+ Q1="CREATE DATABASE IF NOT EXISTS $db_name;"
+ Q2="GRANT USAGE ON *.* TO $db_user@localhost IDENTIFIED BY '$db_pass';"
+ Q3="GRANT ALL PRIVILEGES ON $name.* to $db_user@localhost identified by '$db_pass';"
+ Q4="FLUSH PRIVILEGES;"
+ SQL="${Q1}${Q2}${Q3}${Q4}"
+ mysql -uroot -p$mysqlpass -e "$SQL"
+ else
+ echo "database $db_name does exist already"
+ fi
+}
+
+function run_freedns {
+ print_info "run freedns (dynamic IP)..."
+ if [ -z "$freedns_key" ]
+ then
+ print_info "freedns was not started because 'freedns_key' is empty in $configfile"
+ else
+ if [ -n "$selfhost_user" ]
+ then
+ die "You can not use freeDNS AND selfHOST for dynamic IP updates ('freedns_key' AND 'selfhost_user' set in $configfile)"
+ fi
+ wget --no-check-certificate -O - http://freedns.afraid.org/dynamic/update.php?$freedns_key
+ fi
+}
+
+function install_run_selfhost {
+ print_info "install and start selfhost (dynamic IP)..."
+ if [ -z "$selfhost_user" ]
+ then
+ print_info "selfHOST was not started because 'selfhost_user' is empty in $configfile"
+ else
+ if [ -n "$freedns_key" ]
+ then
+ die "You can not use freeDNS AND selfHOST for dynamic IP updates ('freedns_key' AND 'selfhost_user' set in $configfile)"
+ fi
+ if [ -z "$selfhost_pass" ]
+ then
+ die "selfHOST was not started because 'selfhost_pass' is empty in $configfile"
+ fi
+ if [ ! -d $selfhostdir ]
+ then
+ mkdir $selfhostdir
+ fi
+ # the old way
+ # https://carol.selfhost.de/update?username=123456&password=supersafe
+ #
+ # the prefered way
+ wget --output-document=$selfhostdir/$selfhostscript http://jonaspasche.de/selfhost-updater
+ echo "router" > $selfhostdir/device
+ echo "$selfhost_user" > $selfhostdir/user
+ echo "$selfhost_pass" > $selfhostdir/pass
+ bash $selfhostdir/$selfhostscript update
+ fi
+}
+
+function ping_domain {
+ print_info "ping domain $domain..."
+ # Is the domain resolved? Try to ping 6 times à 10 seconds
+ COUNTER=0
+ for i in {1..6}
+ do
+ print_info "loop $i for ping -c 1 $domain ..."
+ if ping -c 4 -W 1 $le_domain
+ then
+ print_info "$le_domain resolved"
+ break
+ else
+ if [ $i -gt 5 ]
+ then
+ die "Failed to: ping -c 1 $domain not resolved"
+ fi
+ fi
+ sleep 10
+ done
+ sleep 5
+}
+
+function configure_cron_freedns {
+ print_info "configure cron for freedns..."
+ if [ -z "$freedns_key" ]
+ then
+ print_info "freedns is not configured because freedns_key is empty in $configfile"
+ else
+ # Use cron for dynamich ip update
+ # - at reboot
+ # - every 30 minutes
+ if [ -z "`grep 'freedns.afraid.org' /etc/crontab`" ]
+ then
+ echo "@reboot root http://freedns.afraid.org/dynamic/update.php?$freedns_key > /dev/null 2>&1" >> /etc/crontab
+ echo "*/30 * * * * root wget --no-check-certificate -O - http://freedns.afraid.org/dynamic/update.php?$freedns_key > /dev/null 2>&1" >> /etc/crontab
+ else
+ print_info "cron for freedns was configured already"
+ fi
+ fi
+}
+
+function configure_cron_selfhost {
+ print_info "configure cron for selfhost..."
+ if [ -z "$selfhost_user" ]
+ then
+ print_info "selfhost is not configured because selfhost_key is empty in $configfile"
+ else
+ # Use cron for dynamich ip update
+ # - at reboot
+ # - every 5 minutes
+ if [ -z "`grep 'selfhost-updater.sh' /etc/crontab`" ]
+ then
+ echo "@reboot root bash /etc/selfhost/selfhost-updater.sh update > /dev/null 2>&1" >> /etc/crontab
+ echo "*/5 * * * * root /bin/bash /etc/selfhost/selfhost-updater.sh update > /dev/null 2>&1" >> /etc/crontab
+ else
+ print_info "cron for selfhost was configured already"
+ fi
+ fi
+}
+
+function install_letsencrypt {
+ print_info "installing let's encrypt ..."
+ # check if user gave domain
+ if [ -z "$le_domain" ]
+ then
+ die "Failed to install let's encrypt: 'le_domain' is empty in $configfile"
+ fi
+ if [ -z "$le_email" ]
+ then
+ die "Failed to install let's encrypt: 'le_email' is empty in $configfile"
+ fi
+ nocheck_install "certbot python-certbot-apache"
+ print_info "run certbot ..."
+ certbot --apache -w $install_path -d $le_domain -m $le_email --agree-tos --non-interactive --redirect --hsts --uir
+ service apache2 restart
+}
+
+function check_https {
+ print_info "checking httpS > testing ..."
+ url_https=https://$le_domain
+ wget_output=$(wget -nv --spider --max-redirect 0 $url_https)
+ if [ $? -ne 0 ]
+ then
+ print_warn "check not ok"
+ else
+ print_info "check ok"
+ fi
+}
+
+function install_zotserver {
+ print_info "installing addons..."
+ cd $install_path
+ util/add_addon_repo https://framagit.org/hubzilla/addons hzaddons
+ mkdir -p "store/[data]/smarty3"
+ # chmod -R 777 store
+ touch .htconfig.php
+ # The next run of $cron_job (daily-update script) will correct the permissions of the next line
+ chmod ou+w .htconfig.php
+ cd /var/www/
+ chown -R www-data:www-data $install_path
+ chown root:www-data $install_path/
+ chown root:www-data $install_path/.htaccess
+ chmod 0644 $install_path/.htaccess
+ print_info "installed addons"
+}
+
+function configure_cron_daily {
+ print_info "configuring cron..."
+ # every 10 min for poller.php
+ if [ -z "`grep 'php Zotlabs/Daemon/Master.php' /etc/crontab`" ]
+ then
+ echo "*/10 * * * * www-data cd $install_path; php Zotlabs/Daemon/Master.php Cron >> /dev/null 2>&1" >> /etc/crontab
+ fi
+ # Run external script daily at 05:30
+ # - stop apache/nginx and mysql-server
+ # - renew the certificate of letsencrypt
+ # - update repository core and addon
+ # - update and upgrade linux
+ # - reboot is done by "shutdown -h now" because "reboot" hangs sometimes depending on the system
+ echo "#!/bin/sh" > /var/www/$cron_job
+ echo "#" >> /var/www/$cron_job
+ echo "echo \" \"" >> /var/www/$cron_job
+ echo "echo \"+++ \$(date) +++\"" >> /var/www/$cron_job
+ echo "echo \" \"" >> /var/www/$cron_job
+ echo "echo \"\$(date) - stopping apache and mysql...\"" >> /var/www/$cron_job
+ echo "service apache2 stop" >> /var/www/$cron_job
+ echo "/etc/init.d/mysql stop # to avoid inconsistencies" >> /var/www/$cron_job
+ echo "#" >> /var/www/$cron_job
+ echo "echo \"\$(date) - renew certificate...\"" >> /var/www/$cron_job
+ echo "certbot renew --noninteractive" >> /var/www/$cron_job
+ echo "#" >> /var/www/$cron_job
+ echo "echo \"\$(date) - db size...\"" >> /var/www/$cron_job
+ echo "du -h /var/lib/mysql/ | grep mysql/" >> /var/www/$cron_job
+ echo "#" >> /var/www/$cron_job
+ echo "# update of $le_domain Zot hub/instance" >> /var/www/$cron_job
+ echo "echo \"\$(date) - updating core and addons...\"" >> /var/www/$cron_job
+ echo "echo \"reaching git repository for $le_domain $zotserver hub/instance...\"" >> /var/www/$cron_job
+ echo "(cd $install_path ; util/udall)" >> /var/www/$cron_job
+ echo "chown -R www-data:www-data $install_path # make all accessible for the webserver" >> /var/www/$cron_job
+ echo "chown root:www-data $install_path/.htaccess" >> /var/www/$cron_job
+ echo "chmod 0644 $install_path/.htaccess # www-data can read but not write it" >> /var/www/$cron_job
+ echo "echo \"\$(date) - updating linux...\"" >> /var/www/$cron_job
+ echo "apt-get -q -y update && apt-get -q -y dist-upgrade && apt-get -q -y autoremove # update linux and upgrade" >> /var/www/$cron_job
+ echo "echo \"\$(date) - Update finished. Rebooting...\"" >> /var/www/$cron_job
+ echo "#" >> /var/www/$cron_job
+ echo "shutdown -r now" >> /var/www/$cron_job
+
+ chmod a+x /var/www/$cron_job
+
+ # If global cron job does not exist we add it to /etc/crontab
+ if grep -q $cron_job /etc/crontab
+ then
+ echo "cron job already in /etc/crontab"
+ else
+ echo "30 05 * * * root /bin/bash /var/www/$cron_job >> /var/www/daily-updates.log 2>&1" >> /etc/crontab
+ echo "0 0 1 * * root rm /var/www/daily-updates.log" >> /etc/crontab
+ fi
+
+ # This is active after either "reboot" or cron reload"
+ systemctl restart cron
+ print_info "configured cron for updates/upgrades"
+}
+
+########################################################################
+# START OF PROGRAM
+########################################################################
+export PATH=/bin:/usr/bin:/sbin:/usr/sbin
+check_sanity
+
+print_info "We're installing a $zotserver instance"
+install_path="$(dirname "$(pwd)")"
+
+# Read config file edited by user
+configfile=config.txt
+source $configfile
+
+selfhostdir=/etc/selfhost
+selfhostscript=selfhost-updater.sh
+cron_job="cron_job.sh"
+
+#set -x # activate debugging from here
+
+zotserver=hubzilla
+check_config
+stop_zotserver
+update_upgrade
+install_curl
+install_wget
+install_sendmail
+install_apache
+install_imagemagick
+install_php
+install_composer
+install_mysql
+install_adminer
+create_zotserver_db
+run_freedns
+install_run_selfhost
+ping_domain
+configure_cron_freedns
+configure_cron_selfhost
+
+if [ "$le_domain" != "localhost" ]
+then
+ install_letsencrypt
+ check_https
+else
+ print_info "is localhost - skipped installation of letsencrypt and configuration of apache for https"
+fi
+
+install_zotserver
+
+configure_cron_daily
+
+
+#set +x # stop debugging from here
diff --git a/CHANGELOG b/CHANGELOG
index 82688b49d..2c721afe4 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,42 @@
+Hubzilla 8.6 (2023-07-11)
+ - Update fullcalendar library
+ - Improve and unify selection of deliverable abook xchans
+ - Remove unused pseudo_abook()
+ - Implement optional moderation for unsolicited items
+ - Hardened comment permission handling for unsolicited items
+ - Remove unused templates
+ - Deprecate ActivityStreams::fetch() and provide the possibility to fetch local items directly
+ - Add simplified version of automated install script
+ - Shuffle queue deliveries for more randomness
+ - Update composer libraries
+ - Add new 2-column templates
+ - Implement optional OCAP for items to allow access to restricted media without OWA
+
+ Bugfixes
+ - Fix content in nobb and noparse text linkified - issue #1776
+ - Fix editing an event changes the set time - issue #1771
+ - Fix person object with mixed up hubloc info - issue #1770
+ - Fix $escape variable not passed on to stringify_array_elms()
+ - Fix relaying and syncing in Activity::drop()
+ - Fix allow code not sticking after channel sync - issue #1769
+ - Fix channel oembed regressions
+
+ Addons
+ - Diaspora: fix signature check for likes
+ - Diaspora: fix relaying retractions
+ - Diaspora: port to core unsolicited comments option
+ - Gallery: add an exception for streams reshares
+ - Pubcrawl: dismiss comments that are expected to arrive via owner relay
+ - Pubcrawl: improved inbox handling
+ - Pubcrawl: catch gup.pe updates to followers collection
+ - Pubcrawl: fix follow allow hook
+ - Diaspora: fix follow allow hook
+ - Content_import: fix crash in post handler
+ - Pubcrawl: store follow url when fetching webfinger
+ - Diaspora: store follow url when fetching webfinger
+ - Pubcrawl: move addressing to separate function
+
+
Hubzilla 8.4.2 (2023-06-02)
- Update bootstrap to stable version 5.3.0
- Fix hubloc confusion in mod rmagic
diff --git a/Zotlabs/Daemon/Queue.php b/Zotlabs/Daemon/Queue.php
index 91aba831a..abb780475 100644
--- a/Zotlabs/Daemon/Queue.php
+++ b/Zotlabs/Daemon/Queue.php
@@ -55,6 +55,8 @@ class Queue {
foreach ($qItems as $qItem) {
$deliveries[] = $qItem['outq_hash'];
}
+
+ shuffle($deliveries);
do_delivery($deliveries, true);
}
}
diff --git a/Zotlabs/Lib/Activity.php b/Zotlabs/Lib/Activity.php
index ced361fe5..992ade200 100644
--- a/Zotlabs/Lib/Activity.php
+++ b/Zotlabs/Lib/Activity.php
@@ -50,7 +50,27 @@ class Activity {
}
+ public static function fetch_local($url, $portable_id) {
+ $sql_extra = item_permissions_sql(0, $portable_id);
+ $item_normal = item_normal();
+
+ // Find the original object
+ $j = q(
+ "select *, id as item_id from item where mid = '%s' and item_wall = 1 $item_normal $sql_extra",
+ dbesc($url)
+ );
+ if ($j) {
+ xchan_query($j, true);
+ $items = fetch_post_tags($j);
+ }
+ if ($items) {
+ return self::encode_item(array_shift($items), true);
+ }
+ return null;
+ }
+
static function fetch($url, $channel = null) {
+
$redirects = 0;
if (!check_siteallowed($url)) {
logger('blacklisted: ' . $url);
@@ -459,6 +479,30 @@ class Activity {
$ret['id'] = ((strpos($i['mid'], 'http') === 0) ? $i['mid'] : z_root() . '/item/' . urlencode($i['mid']));
$ret['diaspora:guid'] = $i['uuid'];
+ $images = [];
+ $has_images = preg_match_all('/\[[zi]mg(.*?)](.*?)\[/ism', $i['body'], $images, PREG_SET_ORDER);
+
+ // provide ocap access token for private media.
+ // set this for descendants even if the current item is not private
+ // because it may have been relayed from a private item.
+
+ $token = get_iconfig($i, 'ocap', 'relay');
+ if ($token && $has_images) {
+ $matches_processed = [];
+ for ($n = 0; $n < count($images); $n++) {
+ $match = $images[$n];
+ if (str_starts_with($match[1], '=http') && str_contains($match[1], z_root() . '/photo/') && !in_array($match[1], $matches_processed)) {
+ $i['body'] = str_replace($match[1], $match[1] . '?token=' . $token, $i['body']);
+ $images[$n][2] = substr($match[1], 1) . '?token=' . $token;
+ $matches_processed[] = $match[1];
+ } elseif (str_contains($match[2], z_root() . '/photo/') && !in_array($match[2], $matches_processed)) {
+ $i['body'] = str_replace($match[2], $match[2] . '?token=' . $token, $i['body']);
+ $images[$n][2] = $match[2] . '?token=' . $token;
+ $matches_processed[] = $match[2];
+ }
+ }
+ }
+
if ($i['title'])
$ret['name'] = $i['title'];
@@ -627,10 +671,10 @@ class Activity {
}
if (isset($att['type']) && strpos($att['type'], 'image')) {
- $ret[] = ['type' => 'Image', 'url' => $att['href']];
+ $ret[] = ['type' => 'Image', 'mediaType' => $att['type'], 'name' => $att['title'], 'url' => $att['href']];
}
else {
- $ret[] = ['type' => 'Link', 'mediaType' => $att['type'], 'href' => $att['href']];
+ $ret[] = ['type' => 'Link', 'mediaType' => $att['type'], 'name' => $att['title'], 'href' => $att['href']];
}
}
}
@@ -841,7 +885,7 @@ class Activity {
if (isset($i['app']) && $i['app']) {
$ret['generator'] = ['type' => 'Application', 'name' => $i['app']];
}
- if (isset($i['location']) || isset($i['coord'])) {
+ if (!empty($i['location']) || !empty($i['coord'])) {
$ret['location'] = ['type' => 'Place'];
if ($i['location']) {
$ret['location']['name'] = $i['location'];
@@ -929,7 +973,6 @@ class Activity {
];
call_hooks('encode_activity', $hookinfo);
-
return $hookinfo['encoded'];
}
@@ -974,10 +1017,14 @@ class Activity {
$tmp = expand_acl($i['allow_cid']);
$list = stringify_array($tmp, true);
if ($list) {
- $details = q("select hubloc_id_url from hubloc where hubloc_hash in (" . $list . ") and hubloc_id_url != '' and hubloc_deleted = 0");
+ $details = q("select hubloc_id_url, hubloc_hash, hubloc_network from hubloc where hubloc_hash in (" . $list . ") and hubloc_id_url != '' and hubloc_deleted = 0");
if ($details) {
foreach ($details as $d) {
- $ret[] = $d['hubloc_id_url'];
+ if ($d['hubloc_network'] === 'activitypub') {
+ $ret[] = $d['hubloc_hash'];
+ } else {
+ $ret[] = $d['hubloc_id_url'];
+ }
}
}
}
@@ -1007,16 +1054,19 @@ class Activity {
static function encode_person($p, $extended = true) {
- if (!$p['xchan_url'])
- return [];
+ $c = ((array_key_exists('channel_id', $p)) ? $p : channelx_by_hash($p['xchan_hash']));
- if (!$extended) {
- return $p['xchan_url'];
- }
+ $id = (($c) ? channel_url($c) : ((filter_var($p['xchan_hash'], FILTER_VALIDATE_URL)) ? $p['xchan_hash'] : $p['xchan_url']));
- $ret = [];
+ $ret = (($extended) ? [] : '');
- $c = ((array_key_exists('channel_id', $p)) ? $p : channelx_by_hash($p['xchan_hash']));
+ if (!$id) {
+ return $ret;
+ }
+
+ if (!$extended) {
+ return $id;
+ }
$ret['type'] = 'Person';
@@ -1028,15 +1078,9 @@ class Activity {
$ret['manuallyApprovesFollowers'] = ((get_pconfig($c['channel_id'], 'system', 'autoperms')) ? false : true);
}
- if ($c) {
- $ret['id'] = channel_url($c);
- }
- else {
- $ret['id'] = ((strpos($p['xchan_hash'], 'http') === 0) ? $p['xchan_hash'] : $p['xchan_url']);
- }
+ $ret['id'] = $id;
- if ($p['xchan_addr'] && strpos($p['xchan_addr'], '@'))
- $ret['preferredUsername'] = substr($p['xchan_addr'], 0, strpos($p['xchan_addr'], '@'));
+ $ret['preferredUsername'] = (($c) ? $c['channel_address'] : substr($p['xchan_addr'], 0, strpos($p['xchan_addr'], '@')));
$ret['name'] = $p['xchan_name'];
$ret['updated'] = datetime_convert('UTC', 'UTC', $p['xchan_name_date'], ATOM_TIME);
@@ -1074,11 +1118,11 @@ class Activity {
];
*/
- $ret['url'] = $p['xchan_url'];
+ $ret['url'] = $id;
$ret['publicKey'] = [
- 'id' => $p['xchan_url'],
- 'owner' => $p['xchan_url'],
+ 'id' => $id,
+ 'owner' => $id,
'signatureAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256',
'publicKeyPem' => $p['xchan_pubkey']
];
@@ -1101,6 +1145,7 @@ class Activity {
call_hooks('encode_person', $arr);
$ret = $arr['encoded'];
+
return $ret;
}
@@ -1541,10 +1586,17 @@ class Activity {
}
if (in_array($observer, [$r[0]['author_xchan'], $r[0]['owner_xchan']])) {
- drop_item($r[0]['id'], false);
+ drop_item($r[0]['id'], false, (($r[0]['item_wall']) ? DROPITEM_PHASE1 : DROPITEM_NORMAL));
} elseif (in_array($act->actor['id'], [$r[0]['author_xchan'], $r[0]['owner_xchan']])) {
- drop_item($r[0]['id'], false);
+ drop_item($r[0]['id'], false, (($r[0]['item_wall']) ? DROPITEM_PHASE1 : DROPITEM_NORMAL));
+ }
+
+ sync_an_item($channel['channel_id'], $r[0]['id']);
+
+ if ($r[0]['item_wall']) {
+ Master::Summon(['Notifier', 'drop', $r[0]['id']]);
}
+
}
@@ -2113,6 +2165,10 @@ class Activity {
return false;
}
+ if (intval($post['item_blocked']) === ITEM_MODERATED) {
+ return false;
+ }
+
dbq("START TRANSACTION");
$item = q("SELECT * FROM item WHERE id = %d FOR UPDATE",
@@ -2888,6 +2944,12 @@ class Activity {
// TODO: if we do not have a parent stop here and move the fetch to background?
+ if ($parent && $parent[0]['obj_type'] === 'Question') {
+ if ($item['obj_type'] === ACTIVITY_OBJ_COMMENT && $item['title'] && (!$item['body'])) {
+ $item['obj_type'] = 'Answer';
+ }
+ }
+
if ($parent && $parent[0]['item_wall']) {
// set the owner to the owner of the parent
$item['owner_xchan'] = $parent[0]['owner_xchan'];
@@ -2920,13 +2982,20 @@ class Activity {
}*/
if (!$allowed) {
- logger('rejected comment from ' . $item['author_xchan'] . ' for ' . $channel['channel_address']);
- logger('rejected: ' . print_r($item, true), LOGGER_DATA);
+ if (get_pconfig($channel['channel_id'], 'system', 'moderate_unsolicited_comments') && $item['obj_type'] !== 'Answer') {
+ $item['item_blocked'] = ITEM_MODERATED;
+ $allowed = true;
+ }
+ else {
+ logger('rejected comment from ' . $item['author_xchan'] . ' for ' . $channel['channel_address']);
+ logger('rejected: ' . print_r($item, true), LOGGER_DATA);
- // TODO: not implemented
- // let the sender know we received their comment but we don't permit spam here.
- // self::send_rejection_activity($channel,$item['author_xchan'],$item);
- return;
+ // TODO: not implemented
+ // let the sender know we received their comment but we don't permit spam here.
+ // self::send_rejection_activity($channel,$item['author_xchan'],$item);
+
+ return;
+ }
}
// TODO: not implemented
@@ -2935,7 +3004,6 @@ class Activity {
}*/
}
else {
-
$allowed = true;
// reject public stream comments that weren't sent by the conversation owner
@@ -2943,12 +3011,6 @@ class Activity {
$allowed = false;
}
}
-
- if ($parent && $parent[0]['obj_type'] === 'Question') {
- if ($item['obj_type'] === ACTIVITY_OBJ_COMMENT && $item['title'] && (!$item['body'])) {
- $item['obj_type'] = 'Answer';
- }
- }
}
else {
@@ -3128,6 +3190,16 @@ class Activity {
}
}
+ // private conversation, but this comment went rogue and was published publicly
+ // hide it from everybody except the channel owner
+
+ if (intval($parent[0]['item_private'])) {
+ if (!intval($item['item_private'])) {
+ $item['item_private'] = intval($parent_item['item_private']);
+ $item['allow_cid'] = '<' . $channel['channel_hash'] . '>';
+ $item['allow_gid'] = $item['deny_cid'] = $item['deny_gid'] = '';
+ }
+ }
}
// An ugly and imperfect way to recognise a mastodon direct message
@@ -3143,7 +3215,6 @@ class Activity {
// TODO: not implemented
// self::rewrite_mentions($item);
-
$r = q("select id, created, edited from item where mid = '%s' and uid = %d limit 1",
dbesc($item['mid']),
intval($item['uid'])
@@ -3896,12 +3967,11 @@ class Activity {
}
if (array_path_exists('source/mediaType', $act) && array_path_exists('source/content', $act)) {
- if (in_array($act['source']['mediaType'], ['text/bbcode', 'text/x-multicode'])) {
+ if (in_array($act['source']['mediaType'], ['text/bbcode'])) {
$content['bbcode'] = purify_html($act['source']['content']);
}
}
-
return $content;
}
diff --git a/Zotlabs/Lib/ActivityStreams.php b/Zotlabs/Lib/ActivityStreams.php
index f07f99ac3..8b8c95ad8 100644
--- a/Zotlabs/Lib/ActivityStreams.php
+++ b/Zotlabs/Lib/ActivityStreams.php
@@ -14,6 +14,7 @@ class ActivityStreams {
public $meta = null;
public $valid = false;
public $deleted = false;
+ public $portable_id = null;
public $id = '';
public $parent_id = '';
public $type = '';
@@ -35,12 +36,13 @@ class ActivityStreams {
*
* @param string $string
*/
- function __construct($string) {
+ function __construct($string, $portable_id = null) {
if(!$string)
return;
$this->raw = $string;
+ $this->portable_id = $portable_id;
if (is_array($string)) {
$this->data = $string;
@@ -123,13 +125,14 @@ class ActivityStreams {
$this->parent_id = $this->get_property_obj('inReplyTo');
- if ((!$this->parent_id) && is_array($this->obj) && isset($this->obj['inReplyTo'])) {
+ if (!$this->parent_id && is_array($this->obj) && isset($this->obj['inReplyTo'])) {
$this->parent_id = $this->obj['inReplyTo'];
}
- if ((!$this->parent_id) && is_array($this->obj) && isset($this->obj['id'])) {
+ if (!$this->parent_id && is_array($this->obj) && isset($this->obj['id'])) {
$this->parent_id = $this->obj['id'];
}
+
}
}
@@ -302,12 +305,26 @@ class ActivityStreams {
* @return NULL|mixed
*/
- function fetch_property($url) {
- return self::fetch($url);
- }
+ function fetch_property($url, $channel = null) {
+ $x = null;
+
+ if (str_starts_with($url, z_root() . '/item/')) {
+ $x = Activity::fetch_local($url, $this->portable_id ?? '');
+ logger('local: ' . print_r($x,true));
+ }
+
+ if (!$x) {
+ $x = Activity::fetch($url, $channel);
+ if ($x === null && strpos($url, '/channel/')) {
+ // look for other nomadic channels which might be alive
+ $zf = Zotfinger::exec($url, $channel);
- static function fetch($url, $channel = null) {
- return Activity::fetch($url, $channel);
+ $url = $zf['signature']['signer'];
+ $x = Activity::fetch($url, $channel);
+ }
+ }
+
+ return $x;
}
static function is_an_actor($s) {
diff --git a/Zotlabs/Lib/Enotify.php b/Zotlabs/Lib/Enotify.php
index 585761cc4..c3f96e103 100644
--- a/Zotlabs/Lib/Enotify.php
+++ b/Zotlabs/Lib/Enotify.php
@@ -145,7 +145,7 @@ class Enotify {
$itemlink = $params['link'];
- $action = t('commented on');
+ $action = (($moderated) ? t('requested to comment on') : t('commented on'));
if(array_key_exists('item',$params)) {
@@ -158,10 +158,10 @@ class Enotify {
}
if(activity_match($params['verb'], ACTIVITY_LIKE))
- $action = t('liked');
+ $action = (($moderated) ? t('requested to like') : t('liked'));
if(activity_match($params['verb'], ACTIVITY_DISLIKE))
- $action = t('disliked');
+ $action = (($moderated) ? t('requested to dislike') : t('disliked'));
}
@@ -307,7 +307,14 @@ class Enotify {
$parent_item = $p[0];
- $verb = ((activity_match($params['item']['verb'], ACTIVITY_DISLIKE)) ? t('disliked') : t('liked'));
+ //$verb = ((activity_match($params['item']['verb'], ACTIVITY_DISLIKE)) ? t('disliked') : t('liked'));
+ $moderated = (($params['item']['item_blocked'] == ITEM_MODERATED) ? true : false);
+
+ if(activity_match($params['item']['verb'], ACTIVITY_LIKE))
+ $verb = (($moderated) ? t('requested to like') : t('liked'));
+
+ if(activity_match($params['item']['verb'], ACTIVITY_DISLIKE))
+ $verb = (($moderated) ? t('requested to dislike') : t('disliked'));
// "your post"
if($p[0]['owner']['xchan_name'] === $p[0]['author']['xchan_name'] && intval($p[0]['item_wall']))
diff --git a/Zotlabs/Lib/IConfig.php b/Zotlabs/Lib/IConfig.php
index 33d94bd49..74c1107f0 100644
--- a/Zotlabs/Lib/IConfig.php
+++ b/Zotlabs/Lib/IConfig.php
@@ -13,7 +13,7 @@ class IConfig {
static public function Get(&$item, $family, $key, $default = false) {
$is_item = false;
-
+
if(is_array($item)) {
$is_item = true;
if((! array_key_exists('iconfig',$item)) || (! is_array($item['iconfig'])))
@@ -22,7 +22,7 @@ class IConfig {
if(array_key_exists('item_id',$item))
$iid = $item['item_id'];
else
- $iid = $item['id'];
+ $iid = $item['id'] ?? 0;
}
elseif(intval($item))
$iid = $item;
@@ -36,7 +36,7 @@ class IConfig {
return $c['v'];
}
}
-
+
$r = q("select * from iconfig where iid = %d and cat = '%s' and k = '%s' limit 1",
intval($iid),
dbesc($family),
@@ -63,11 +63,11 @@ class IConfig {
* $value - value of meta variable
* $sharing - boolean (default false); if true the meta information is propagated with the item
* to other sites/channels, mostly useful when $item is an array and has not yet been stored/delivered.
- * If the meta information is added after delivery and you wish it to be shared, it may be necessary to
- * alter the item edited timestamp and invoke the delivery process on the updated item. The edited
+ * If the meta information is added after delivery and you wish it to be shared, it may be necessary to
+ * alter the item edited timestamp and invoke the delivery process on the updated item. The edited
* timestamp needs to be altered in order to trigger an item_store_update() at the receiving end.
*/
-
+
static public function Set(&$item, $family, $key, $value, $sharing = false) {
@@ -162,4 +162,4 @@ class IConfig {
}
-} \ No newline at end of file
+}
diff --git a/Zotlabs/Lib/Libsync.php b/Zotlabs/Lib/Libsync.php
index 0d383c697..5f183192d 100644
--- a/Zotlabs/Lib/Libsync.php
+++ b/Zotlabs/Lib/Libsync.php
@@ -328,7 +328,7 @@ class Libsync {
$remote_channel = $arr['channel'];
$remote_channel['channel_id'] = $channel['channel_id'];
- if (array_key_exists('channel_pageflags', $arr['channel']) && intval($arr['channel']['channel_pageflags'])) {
+ if (array_key_exists('channel_pageflags', $arr['channel'])) {
// Several pageflags are site-specific and cannot be sync'd.
// Only allow those bits which are shareable from the remote and then
diff --git a/Zotlabs/Lib/Libzot.php b/Zotlabs/Lib/Libzot.php
index 093670338..032fae3fc 100644
--- a/Zotlabs/Lib/Libzot.php
+++ b/Zotlabs/Lib/Libzot.php
@@ -1219,17 +1219,13 @@ class Libzot {
return;
}
- $r = q("select hubloc_hash, hubloc_network, hubloc_url from hubloc where hubloc_id_url = '%s' and hubloc_deleted = 0 order by hubloc_id desc",
- dbesc($AS->actor['id'])
- );
+ $r = Activity::get_actor_hublocs($AS->actor['id']);
if (! $r) {
// Author is unknown to this site. Perform channel discovery and try again.
$z = discover_by_webbie($AS->actor['id']);
if ($z) {
- $r = q("select hubloc_hash, hubloc_network, hubloc_url from hubloc where hubloc_id_url = '%s' and hubloc_deleted = 0 order by hubloc_id desc",
- dbesc($AS->actor['id'])
- );
+ $r = Activity::get_actor_hublocs($AS->actor['id']);
}
}
diff --git a/Zotlabs/Lib/ThreadItem.php b/Zotlabs/Lib/ThreadItem.php
index cf877ed92..14c9500ff 100644
--- a/Zotlabs/Lib/ThreadItem.php
+++ b/Zotlabs/Lib/ThreadItem.php
@@ -503,7 +503,10 @@ class ThreadItem {
'thread_level' => $thread_level,
'settings' => $settings,
'thr_parent' => (($item['parent_mid'] != $item['thr_parent']) ? gen_link_id($item['thr_parent']) : ''),
- 'contact_id' => (($contact) ? $contact['abook_id'] : '')
+ 'contact_id' => (($contact) ? $contact['abook_id'] : ''),
+ 'moderate' => ($item['item_blocked'] == ITEM_MODERATED),
+ 'moderate_approve' => t('Approve'),
+ 'moderate_delete' => t('Delete')
);
diff --git a/Zotlabs/Module/Attach.php b/Zotlabs/Module/Attach.php
index 5f5779b51..710f965ef 100644
--- a/Zotlabs/Module/Attach.php
+++ b/Zotlabs/Module/Attach.php
@@ -95,7 +95,7 @@ class Attach extends Controller {
killme();
}
- $r = attach_by_hash(argv(1), get_observer_hash(), ((argc() > 2) ? intval(argv(2)) : 0));
+ $r = attach_by_hash(argv(1), get_observer_hash(), ((argc() > 2) ? intval(argv(2)) : 0), $token);
if (!$r['success']) {
notice($r['message'] . EOL);
diff --git a/Zotlabs/Module/Channel.php b/Zotlabs/Module/Channel.php
index 748d990cb..036663681 100644
--- a/Zotlabs/Module/Channel.php
+++ b/Zotlabs/Module/Channel.php
@@ -284,13 +284,9 @@ class Channel extends Controller {
* Get permissions SQL - if $remote_contact is true, our remote user has been pre-verified and we already have fetched his/her groups
*/
- $item_normal = " and item.item_hidden = 0 and item.item_type = 0 and item.item_deleted = 0
- and item.item_unpublished = 0 and item.item_pending_remove = 0
- and item.item_blocked = 0 ";
- if (!$is_owner)
- $item_normal .= "and item.item_delayed = 0 ";
+ $item_normal = item_normal();
$item_normal_update = item_normal_update();
- $sql_extra = item_permissions_sql(App::$profile['profile_uid']);
+ $sql_extra = item_permissions_sql(App::$profile['profile_uid']);
if (feature_enabled(App::$profile['profile_uid'], 'channel_list_mode') && (!$mid))
$page_mode = 'list';
diff --git a/Zotlabs/Module/Dirsearch.php b/Zotlabs/Module/Dirsearch.php
index 7efac6345..a5c3f41c0 100644
--- a/Zotlabs/Module/Dirsearch.php
+++ b/Zotlabs/Module/Dirsearch.php
@@ -273,7 +273,7 @@ class Dirsearch extends Controller {
xprof.xprof_hometown as hometown,
xprof.xprof_keywords as keywords
from xchan left join xprof on xchan_hash = xprof_hash left join hubloc on (hubloc_id_url = xchan_url and hubloc_hash = xchan_hash)
- where hubloc_primary = 1 and hubloc_updated > %s - INTERVAL %s and ( $logic $sql_extra ) $hub_query $keywords_query and xchan_network = 'zot6' and xchan_system = 0 and xchan_hidden = 0 and xchan_orphan = 0 and xchan_deleted = 0
+ where hubloc_primary = 1 and hubloc_updated > %s - INTERVAL %s and ( $logic $sql_extra ) $hub_query $keywords_query and xchan_network = 'zot6' and xchan_system = 0 and xchan_hidden = 0 and xchan_orphan = 0 and xchan_deleted = 0 and hubloc_deleted = 0
$safesql $order $qlimit",
db_utcnow(),
db_quoteinterval('30 DAY')
diff --git a/Zotlabs/Module/Hq.php b/Zotlabs/Module/Hq.php
index 77d56e9a2..05b48f119 100644
--- a/Zotlabs/Module/Hq.php
+++ b/Zotlabs/Module/Hq.php
@@ -17,8 +17,6 @@ class Hq extends \Zotlabs\Web\Controller {
function init() {
if(! local_channel())
return;
-
- App::$profile_uid = local_channel();
}
function get($update = 0, $load = false) {
@@ -27,6 +25,8 @@ class Hq extends \Zotlabs\Web\Controller {
return;
}
+ App::$profile_uid = local_channel();
+
$item_hash = '';
if(argc() > 1 && argv(1) !== 'load') {
@@ -67,11 +67,6 @@ class Hq extends \Zotlabs\Web\Controller {
}
}
- //if the item is to be moderated redirect to /moderate
- if($target_item['item_blocked'] == ITEM_MODERATED) {
- goaway(z_root() . '/moderate/' . $target_item['id']);
- }
-
$simple_update = '';
if($update && $_SESSION['loadtime'])
$simple_update = " AND (( item_unseen = 1 AND item.changed > '" . datetime_convert('UTC','UTC',$_SESSION['loadtime']) . "' ) OR item.changed > '" . datetime_convert('UTC','UTC',$_SESSION['loadtime']) . "' ) ";
diff --git a/Zotlabs/Module/Item.php b/Zotlabs/Module/Item.php
index a5f66d72e..b564396c9 100644
--- a/Zotlabs/Module/Item.php
+++ b/Zotlabs/Module/Item.php
@@ -218,6 +218,22 @@ class Item extends Controller {
);
}
+ $bear = Activity::token_from_request();
+ if ($bear) {
+ logger('bear: ' . $bear, LOGGER_DEBUG);
+ if (!$i) {
+ $t = q("select * from iconfig where cat = 'ocap' and k = 'relay' and v = '%s'",
+ dbesc($bear)
+ );
+ if ($t) {
+ $i = q("select id as item_id from item where uuid = '%s' and id = %d $item_normal limit 1",
+ dbesc($item_id),
+ intval($t[0]['iid'])
+ );
+ }
+ }
+ }
+
if (!$i) {
http_status_exit(403, 'Forbidden');
}
@@ -286,7 +302,9 @@ class Item extends Controller {
if ((!local_channel()) && (!remote_channel()) && (!x($_REQUEST, 'anonname')))
return;
- $uid = local_channel();
+ $uid = local_channel();
+ $token = '';
+
$channel = null;
$observer = null;
$datarray = [];
@@ -809,7 +827,6 @@ class Item extends Controller {
require_once('include/text.php');
-
// BBCODE alert: the following functions assume bbcode input
// and will require alternatives for alternative content-types (text/html, text/markdown, text/plain, etc.)
// we may need virtual or template classes to implement the possible alternatives
@@ -845,6 +862,21 @@ class Item extends Controller {
$private = 2;
}
+ if ($private && get_pconfig($profile_uid, 'system', 'ocap_enabled')) {
+ // for edited posts, re-use any existing OCAP token (if found).
+ // Otherwise generate a new one.
+
+ if ($iconfig) {
+ foreach ($iconfig as $cfg) {
+ if ($cfg['cat'] === 'ocap' && $cfg['k'] === 'relay') {
+ $token = $cfg['v'];
+ }
+ }
+ }
+ if (!$token) {
+ $token = new_token();
+ }
+ }
/**
*
@@ -866,9 +898,9 @@ class Item extends Controller {
*/
if (!$preview) {
- fix_attached_photo_permissions($profile_uid, $owner_xchan['xchan_hash'], ((strpos($body, '[/crypt]')) ? $_POST['media_str'] : $body), $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny);
- fix_attached_photo_permissions($profile_uid, $owner_xchan['xchan_hash'], ((strpos($summary, '[/crypt]')) ? $_POST['media_str'] : $summary), $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny);
- fix_attached_file_permissions($channel, $observer['xchan_hash'], ((strpos($body, '[/crypt]')) ? $_POST['media_str'] : $body), $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny);
+ fix_attached_permissions($profile_uid, ((strpos($body, '[/crypt]')) ? $_POST['media_str'] : $body), $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny, $token);
+ //fix_attached_photo_permissions($profile_uid, $owner_xchan['xchan_hash'], ((strpos($body, '[/crypt]')) ? $_POST['media_str'] : $body), $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny, $token);
+ //fix_attached_file_permissions($channel, $observer['xchan_hash'], ((strpos($body, '[/crypt]')) ? $_POST['media_str'] : $body), $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny, $token);
}
$attachments = '';
@@ -951,14 +983,12 @@ class Item extends Controller {
}
}
-
$item_unseen = ((local_channel() != $profile_uid) ? 1 : 0);
$item_wall = ((isset($_REQUEST['type']) && ($_REQUEST['type'] === 'wall' || $_REQUEST['type'] === 'wall-comment')) ? 1 : 0);
$item_origin = (($origin) ? 1 : 0);
$item_consensus = (($consensus) ? 1 : 0);
$item_nocomment = (($nocomment) ? 1 : 0);
-
// determine if this is a wall post
if ($parent) {
@@ -1107,8 +1137,13 @@ class Item extends Controller {
if (!empty_acl($datarray))
$datarray['public_policy'] = '';
- if ($iconfig)
+ if ($iconfig) {
$datarray['iconfig'] = $iconfig;
+ }
+
+ if ($token) {
+ IConfig::set($datarray, 'ocap', 'relay', $token);
+ }
// preview mode - prepare the body for display and send it via json
diff --git a/Zotlabs/Module/Lockview.php b/Zotlabs/Module/Lockview.php
index bac3a7eb9..0c8e23f8c 100644
--- a/Zotlabs/Module/Lockview.php
+++ b/Zotlabs/Module/Lockview.php
@@ -15,6 +15,7 @@ class Lockview extends Controller {
$atoken_xchans = [];
$access_list = [];
$guest_access_list = [];
+ $ocap_access_list = [];
if (local_channel()) {
$at = q("select * from atoken where atoken_uid = %d",
@@ -166,6 +167,24 @@ class Lockview extends Controller {
}
}
}
+ $ocap_tokens = [];
+ foreach ($allowed_users as $allowed_user) {
+ $allowed_user = trim($allowed_user, '\'');
+ if (str_starts_with($allowed_user, 'token:')) {
+ $ocap_tokens[] = str_replace('token:', '', $allowed_user);
+ }
+ }
+
+ if ($ocap_tokens) {
+ stringify_array_elms($ocap_tokens, true);
+ $ocap_mids = dbq("select id, mid from item where id in (select iid from iconfig where cat = 'ocap' and k = 'relay' and v in (" . implode(', ', $ocap_tokens) . "))");
+
+ foreach ($ocap_mids as $ocap) {
+ $ocap_access_list[] = '<a href="' . $ocap['mid'] . '" class="dropdown-item-text" target="_blank">' . t('Item') . ' ' . $ocap['id'] . '</a>';
+ }
+
+ }
+
}
$profile_groups = [];
@@ -205,9 +224,6 @@ class Lockview extends Controller {
}
if ($atokens && $allowed_xchans && $url) {
-
- $guest_access_list = [];
-
$allowed_xchans = array_unique($allowed_xchans);
foreach ($atokens as $atoken) {
if (in_array($atoken['xchan_hash'], $allowed_xchans)) {
@@ -216,22 +232,25 @@ class Lockview extends Controller {
}
}
- $access_list_header = '';
+ $access_list_header = '<div class="dropdown-header text-uppercase h6">' . t('Access') . '</div>';
+ $guest_access_list_header = '<div class="dropdown-header text-uppercase h6">' . t('Guest access') . '</div>';
+ $ocap_access_list_header = '<div class="dropdown-header text-uppercase h6">' . t('OCAP access') . '</div>';
+ $divider = '<div class="dropdown-divider"></div>';
+ $str = '';
+
if ($access_list) {
- $access_list_header = '<div class="dropdown-header text-uppercase h6">' . t('Access') . '</div>';
+ $str .= $access_list_header . implode($access_list);
}
- $guest_access_list_header = '';
if ($guest_access_list) {
- $guest_access_list_header = '<div class="dropdown-header text-uppercase h6">' . t('Guest access') . '</div>';
+ $str .= $divider . $guest_access_list_header . implode($guest_access_list);
}
- $divider = '';
- if ($access_list && $guest_access_list) {
- $divider = '<div class="dropdown-divider"></div>';
+ if ($ocap_access_list) {
+ $str .= $divider . $ocap_access_list_header . implode($ocap_access_list);
}
- echo $access_list_header . implode($access_list) . $divider . $guest_access_list_header . implode($guest_access_list);
+ echo $str;
killme();
}
diff --git a/Zotlabs/Module/Magic.php b/Zotlabs/Module/Magic.php
index 6d997c662..8259f7d39 100644
--- a/Zotlabs/Module/Magic.php
+++ b/Zotlabs/Module/Magic.php
@@ -105,13 +105,13 @@ class Magic extends Controller {
$headers['Accept'] = 'application/x-zot+json' ;
$headers['Content-Type'] = 'application/x-zot+json' ;
$headers['X-Open-Web-Auth'] = random_string();
- $headers['Digest'] = HTTPSig::generate_digest_header($data);
$headers['Host'] = $parsed['host'];
- $headers['(request-target)'] = 'post ' . '/owa';
+ $headers['(request-target)'] = 'get ' . '/owa';
$headers = HTTPSig::create_sig($headers,$channel['channel_prvkey'], channel_url($channel),true,'sha512');
$redirects = 0;
- $x = z_post_url($owapath,$data,$redirects,[ 'headers' => $headers ]);
+ $x = z_fetch_url($owapath, false, $redirects, ['headers' => $headers]);
+
logger('owa fetch returned: ' . print_r($x,true),LOGGER_DATA);
if ($x['success']) {
$j = json_decode($x['body'],true);
diff --git a/Zotlabs/Module/Moderate.php b/Zotlabs/Module/Moderate.php
index b66b052a6..ed2a1e4f9 100644
--- a/Zotlabs/Module/Moderate.php
+++ b/Zotlabs/Module/Moderate.php
@@ -17,7 +17,7 @@ class Moderate extends \Zotlabs\Web\Controller {
}
\App::set_pager_itemspage(30);
- $pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval(\App::$pager['itemspage']), intval(\App::$pager['start']));
+ $pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval(\App::$pager['itemspage']), intval(\App::$pager['start']));
//show all items
if(argc() == 1) {
@@ -40,8 +40,13 @@ class Moderate extends \Zotlabs\Web\Controller {
if(argc() > 2) {
$post_id = intval(argv(1));
- if(! $post_id)
+ if(! $post_id) {
+ if (is_ajax()) {
+ killme();
+ }
+
goaway(z_root() . '/moderate');
+ }
$action = argv(2);
@@ -61,18 +66,20 @@ class Moderate extends \Zotlabs\Web\Controller {
);
$item['item_blocked'] = 0;
-
item_update_parent_commented($item);
-
- notice( t('Comment approved') . EOL);
+ notice( t('Item approved') . EOL);
}
elseif($action === 'drop') {
+ // TODO: not implemented
+ // let the sender know we received their comment but we don't permit spam here.
+ // Activity::send_rejection_activity(App::get_channel(), $item['author_xchan'], $item);
+
drop_item($post_id,false);
- notice( t('Comment deleted') . EOL);
- }
+ notice( t('Item deleted') . EOL);
+ }
// refetch the item after changes have been made
-
+
$r = q("select * from item where id = %d",
intval($post_id)
);
@@ -84,6 +91,11 @@ class Moderate extends \Zotlabs\Web\Controller {
if($action === 'approve') {
\Zotlabs\Daemon\Master::Summon(array('Notifier', 'comment-new', $post_id));
}
+
+ if (is_ajax()) {
+ killme();
+ }
+
goaway(z_root() . '/moderate');
}
}
diff --git a/Zotlabs/Module/Network.php b/Zotlabs/Module/Network.php
index 00fed55c2..dcc209d1d 100644
--- a/Zotlabs/Module/Network.php
+++ b/Zotlabs/Module/Network.php
@@ -43,6 +43,8 @@ class Network extends \Zotlabs\Web\Controller {
return login(false);
}
+ App::$profile_uid = local_channel();
+
$o = '';
$arr = array('query' => App::$query_string);
diff --git a/Zotlabs/Module/Oep.php b/Zotlabs/Module/Oep.php
index bf17e6436..37a46a23e 100644
--- a/Zotlabs/Module/Oep.php
+++ b/Zotlabs/Module/Oep.php
@@ -28,7 +28,6 @@ class Oep extends \Zotlabs\Web\Controller {
$format = $_REQUEST['format'] ?? '';
if($format && $format !== 'json')
http_status_exit(501, 'Not implemented');
-
if(fnmatch('*/photos/*/album/*',$url))
$arr = $this->oep_album_reply($_REQUEST);
elseif(fnmatch('*/photos/*/image/*',$url))
@@ -95,12 +94,12 @@ class Oep extends \Zotlabs\Web\Controller {
$c = channelx_by_n($p[0]['uid']);
-
if(! ($c && $res))
return;
- if(! perm_is_allowed($c[0]['channel_id'],get_observer_hash(),'view_stream'))
+ if(! perm_is_allowed($c['channel_id'], get_observer_hash(), 'view_stream')) {
return;
+ }
$sql_extra = item_permissions_sql($c['channel_id']);
@@ -336,32 +335,51 @@ class Oep extends \Zotlabs\Web\Controller {
$maxwidth = ((isset($args['maxwidth'])) ? $args['maxwidth'] : 0);
$maxheight = ((isset($args['maxheight'])) ? $args['maxheight'] : 0);
- if(preg_match('#//(.*?)/(.*?)/(.*?)/(.*?)mid\=(.*?)(&|$)#',$url,$matches)) {
- $chn = $matches[3];
- $res = $matches[5];
+ $parsed = parse_url($url);
+ if (empty($parsed['path'])) {
+ return;
}
- if(! ($chn && $res))
+ $nick = basename($parsed['path']);
+ if (!$nick) {
return;
+ }
- $c = q("select * from channel where channel_address = '%s' limit 1",
- dbesc($chn)
- );
+ if (empty($parsed['query'])) {
+ return;
+ }
- if(! $c)
+ parse_str($parsed['query'], $query);
+
+ if (empty($query['mid'])) {
return;
+ }
- if(! perm_is_allowed($c[0]['channel_id'],get_observer_hash(),'view_stream'))
+ $mid = unpack_link_id($query['mid']);
+ if (!$mid) {
return;
+ }
- $sql_extra = item_permissions_sql($c[0]['channel_id']);
+ $c = channelx_by_nick($nick);
+ if(! $c) {
+ return;
+ }
- $p = q("select * from item where mid = '%s' and uid = %d $sql_extra limit 1",
- dbesc($res),
- intval($c[0]['channel_id'])
+ if(! perm_is_allowed($c['channel_id'], get_observer_hash(), 'view_stream')) {
+ return;
+ }
+
+ $sql_extra = item_permissions_sql($c['channel_id']);
+ $item_normal = item_normal();
+
+ $p = q("select * from item where mid = '%s' and uid = %d $sql_extra $item_normal limit 1",
+ dbesc($mid),
+ intval($c['channel_id'])
);
- if(! $p)
+
+ if(! $p) {
return;
+ }
xchan_query($p,true);
$p = fetch_post_tags($p,true);
diff --git a/Zotlabs/Module/Owa.php b/Zotlabs/Module/Owa.php
index 28f25e813..4de4d32d6 100644
--- a/Zotlabs/Module/Owa.php
+++ b/Zotlabs/Module/Owa.php
@@ -32,7 +32,7 @@ class Owa extends Controller {
$keyId = $sigblock['keyId'];
if ($keyId) {
$r = q("SELECT * FROM hubloc LEFT JOIN xchan ON hubloc_hash = xchan_hash
- WHERE ( hubloc_addr = '%s' OR hubloc_id_url = '%s' ) AND hubloc_deleted = 0 AND xchan_pubkey != '' ORDER BY hubloc_id DESC",
+ WHERE (hubloc_addr = '%s' OR hubloc_id_url = '%s') AND hubloc_deleted = 0 AND xchan_pubkey != '' ORDER BY hubloc_id DESC",
dbesc(str_replace('acct:', '', $keyId)),
dbesc($keyId)
);
@@ -40,11 +40,13 @@ class Owa extends Controller {
$found = discover_by_webbie($keyId);
if ($found) {
$r = q("SELECT * FROM hubloc LEFT JOIN xchan ON hubloc_hash = xchan_hash
- WHERE hubloc_id_url = '%s' AND hubloc_deleted = 0 AND xchan_pubkey != '' ORDER BY hubloc_id DESC ",
+ WHERE (hubloc_addr = '%s' OR hubloc_id_url = '%s') AND hubloc_deleted = 0 AND xchan_pubkey != '' ORDER BY hubloc_id DESC ",
+ dbesc(str_replace('acct:', '', $keyId)),
dbesc($keyId)
);
}
}
+
if ($r) {
foreach ($r as $hubloc) {
// fix friendica accept header for nginx
@@ -77,7 +79,8 @@ class Owa extends Controller {
if ($found) {
$r = q("SELECT * FROM hubloc LEFT JOIN xchan ON hubloc_hash = xchan_hash
- WHERE hubloc_id_url = '%s' AND hubloc_deleted = 0 ORDER BY hubloc_id DESC LIMIT 1",
+ WHERE (hubloc_addr = '%s' OR hubloc_id_url = '%s') AND hubloc_deleted = 0 ORDER BY hubloc_id DESC LIMIT 1",
+ dbesc(str_replace('acct:', '', $keyId)),
dbesc($keyId)
);
diff --git a/Zotlabs/Module/Photo.php b/Zotlabs/Module/Photo.php
index fa87d96e5..cb83d78d3 100644
--- a/Zotlabs/Module/Photo.php
+++ b/Zotlabs/Module/Photo.php
@@ -46,7 +46,7 @@ class Photo extends \Zotlabs\Web\Controller {
dbesc(argv(1))
);
if ($r) {
- $allowed = attach_can_view($r[0]['uid'],$observer_xchan,argv(1)/*,$bear*/);
+ $allowed = attach_can_view($r[0]['uid'], $observer_xchan, argv(1), $bear);
}
if (! $allowed) {
http_status_exit(404,'Permission denied.');
@@ -154,6 +154,11 @@ class Photo extends \Zotlabs\Web\Controller {
}
else {
+ $bear = Activity::token_from_request();
+ if ($bear) {
+ logger('bear: ' . $bear, LOGGER_DEBUG);
+ }
+
/**
* Other photos
*/
@@ -223,7 +228,7 @@ class Photo extends \Zotlabs\Web\Controller {
}
if($allowed === (-1))
- $allowed = attach_can_view($r[0]['uid'],$observer_xchan,$photo);
+ $allowed = attach_can_view($r[0]['uid'], $observer_xchan, $photo, $bear);
$channel = channelx_by_n($r[0]['uid']);
@@ -262,13 +267,13 @@ class Photo extends \Zotlabs\Web\Controller {
http_status_exit(404,'not found');
}
- if(! $data)
- killme();
+ if(! $data)
+ killme();
- $etag = '"' . md5($data . $modified) . '"';
+ $etag = '"' . md5($data . $modified) . '"';
- if($modified == 0)
- $modified = time();
+ if($modified == 0)
+ $modified = time();
header_remove('Pragma');
if((isset($_SERVER['HTTP_IF_NONE_MATCH']) && $_SERVER['HTTP_IF_NONE_MATCH'] === $etag) || (!isset($_SERVER['HTTP_IF_NONE_MATCH']) && isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && $_SERVER['HTTP_IF_MODIFIED_SINCE'] === gmdate("D, d M Y H:i:s", $modified) . " GMT")) {
diff --git a/Zotlabs/Module/Rpost.php b/Zotlabs/Module/Rpost.php
index 7b84339b1..f0194fdfd 100644
--- a/Zotlabs/Module/Rpost.php
+++ b/Zotlabs/Module/Rpost.php
@@ -169,16 +169,8 @@ class Rpost extends \Zotlabs\Web\Controller {
$channel = \App::get_channel();
- if(isset($_REQUEST['acl']) && $_REQUEST['acl']) {
- $acl = new \Zotlabs\Access\AccessList([]);
- $acl->set($_REQUEST['acl']);
- $channel_acl = $acl->get();
- }
- else {
- $acl = new \Zotlabs\Access\AccessList($channel);
- $channel_acl = $acl->get();
- }
-
+ $acl = new \Zotlabs\Access\AccessList($channel);
+ $channel_acl = $acl->get();
if(isset($_REQUEST['url']) && $_REQUEST['url']) {
$x = z_fetch_url(z_root() . '/linkinfo?f=&url=' . urlencode($_REQUEST['url']));
diff --git a/Zotlabs/Module/Settings/Privacy.php b/Zotlabs/Module/Settings/Privacy.php
index 65d5b538e..316b1306e 100644
--- a/Zotlabs/Module/Settings/Privacy.php
+++ b/Zotlabs/Module/Settings/Privacy.php
@@ -25,6 +25,12 @@ class Privacy {
$permit_all_mentions = (((x($_POST, 'permit_all_mentions')) && (intval($_POST['permit_all_mentions']) == 1)) ? 1 : 0);
set_pconfig(local_channel(), 'system', 'permit_all_mentions', $permit_all_mentions);
+ $moderate_unsolicited_comments = (((x($_POST, 'moderate_unsolicited_comments')) && (intval($_POST['moderate_unsolicited_comments']) == 1)) ? 1 : 0);
+ set_pconfig(local_channel(), 'system', 'moderate_unsolicited_comments', $moderate_unsolicited_comments);
+
+ $ocap_enabled = (((x($_POST, 'ocap_enabled')) && (intval($_POST['ocap_enabled']) == 1)) ? 1 : 0);
+ set_pconfig(local_channel(), 'system', 'ocap_enabled', $ocap_enabled);
+
$role = get_pconfig(local_channel(), 'system', 'permissions_role');
if ($role === 'custom') {
@@ -103,6 +109,8 @@ class Privacy {
$index_opt_out = get_pconfig(local_channel(), 'system', 'index_opt_out');
$group_actor = get_pconfig(local_channel(), 'system', 'group_actor');
$permit_all_mentions = get_pconfig(local_channel(), 'system', 'permit_all_mentions');
+ $moderate_unsolicited_comments = get_pconfig(local_channel(), 'system', 'moderate_unsolicited_comments');
+ $ocap_enabled = get_pconfig(local_channel(), 'system', 'ocap_enabled');
$permissions_role = get_pconfig(local_channel(), 'system', 'permissions_role', 'custom');
$permission_limits = ($permissions_role === 'custom');
@@ -125,6 +133,8 @@ class Privacy {
'$index_opt_out' => ['index_opt_out', t('Opt-out of search engine indexing'), $index_opt_out, '', [t('No'), t('Yes')]],
'$group_actor' => ['group_actor', t('Group actor'), $group_actor, t('Allow this channel to act as a forum'), [t('No'), t('Yes')]],
'$permit_all_mentions' => ['permit_all_mentions', t('Accept all messages which mention you'), $permit_all_mentions, t('This setting bypasses normal permissions'), [t('No'), t('Yes')]],
+ '$moderate_unsolicited_comments' => ['moderate_unsolicited_comments', t('Accept unsolicited comments for moderation'), $moderate_unsolicited_comments, t('Otherwise they will be silently dropped'), [t('No'), t('Yes')]],
+ '$ocap_enabled' => ['ocap_enabled', t('Enable OCAP access'), $ocap_enabled, t('Grant limited posts the right to access linked private media'), [t('No'), t('Yes')]],
]);
return $o;
diff --git a/Zotlabs/Module/Wall_attach.php b/Zotlabs/Module/Wall_attach.php
index 2c0eeec77..80892f0f3 100644
--- a/Zotlabs/Module/Wall_attach.php
+++ b/Zotlabs/Module/Wall_attach.php
@@ -18,10 +18,10 @@ class Wall_attach extends \Zotlabs\Web\Controller {
function post() {
-
+
$using_api = false;
- $result = [];
+ $result = [];
if($_REQUEST['api_source'] && array_key_exists('media',$_FILES)) {
$using_api = true;
@@ -69,7 +69,7 @@ class Wall_attach extends \Zotlabs\Web\Controller {
];
}
}
- else {
+ else {
if(! array_key_exists('userfile',$_FILES)) {
$_FILES['userfile'] = [
'name' => $_FILES['files']['name'],
@@ -82,18 +82,18 @@ class Wall_attach extends \Zotlabs\Web\Controller {
}
$observer = \App::get_observer();
-
-
+
+
$def_album = get_pconfig($channel['channel_id'],'system','photo_path');
$def_attach = get_pconfig($channel['channel_id'],'system','attach_path');
-
- $r = attach_store($channel,(($observer) ? $observer['xchan_hash'] : ''),'', array('source' => 'editor', 'visible' => 0, 'album' => $def_album, 'directory' => $def_attach, 'allow_cid' => '<' . $channel['channel_hash'] . '>'));
+
+ $r = attach_store($channel,(($observer) ? $observer['xchan_hash'] : ''),'', array('source' => 'editor', 'visible' => 0, 'album' => $def_album, 'directory' => $def_attach, 'flags' => 1, 'allow_cid' => '<' . $channel['channel_hash'] . '>'));
if(! $r['success']) {
notice( $r['message'] . EOL);
killme();
}
-
+
if(intval($r['data']['is_photo'])) {
$s = "\n\n" . $r['body'] . "\n\n";
}
@@ -130,7 +130,7 @@ class Wall_attach extends \Zotlabs\Web\Controller {
logger('unable to read svg data file: ' . 'store/' . $channel['channel_address'] . '/' . $r['data']['os_path']);
}
}
-
+
$s .= "\n\n" . '[attachment]' . $r['data']['hash'] . ',' . $r['data']['revision'] . '[/attachment]' . "\n";
}
@@ -144,8 +144,8 @@ class Wall_attach extends \Zotlabs\Web\Controller {
$result['message'] = $s;
json_return_and_die($result);
-
+
}
-
+
}
diff --git a/Zotlabs/Module/Wall_upload.php b/Zotlabs/Module/Wall_upload.php
index 3e979588c..4a6eee8f9 100644
--- a/Zotlabs/Module/Wall_upload.php
+++ b/Zotlabs/Module/Wall_upload.php
@@ -12,7 +12,6 @@ class Wall_upload extends \Zotlabs\Web\Controller {
function post() {
-
$using_api = ((x($_FILES,'media')) ? true : false);
if($using_api) {
diff --git a/Zotlabs/Web/HTTPSig.php b/Zotlabs/Web/HTTPSig.php
index 0ab315eee..531b18649 100644
--- a/Zotlabs/Web/HTTPSig.php
+++ b/Zotlabs/Web/HTTPSig.php
@@ -4,7 +4,7 @@ namespace Zotlabs\Web;
use DateTime;
use DateTimeZone;
-use Zotlabs\Lib\ActivityStreams;
+use Zotlabs\Lib\Activity;
use Zotlabs\Lib\Crypto;
use Zotlabs\Lib\Keyutils;
use Zotlabs\Lib\Webfinger;
@@ -303,7 +303,8 @@ class HTTPSig {
// $force is used to ignore the local cache and only use the remote data; for instance the cached key might be stale
if (!$force) {
- $x = q("select * from xchan join hubloc on xchan_hash = hubloc_hash where (hubloc_id_url = '%s' or hubloc_hash = '%s') and hubloc_network in ('zot6', 'activitypub') order by hubloc_id desc",
+ $x = q("select * from xchan join hubloc on xchan_hash = hubloc_hash where (hubloc_addr = '%s' or hubloc_id_url = '%s' or hubloc_hash = '%s') and hubloc_network in ('zot6', 'activitypub') order by hubloc_id desc",
+ dbesc(str_replace('acct:', '', $url)),
dbesc($url),
dbesc($url)
);
@@ -323,7 +324,7 @@ class HTTPSig {
}
// The record wasn't in cache. Fetch it now.
- $r = ActivityStreams::fetch($id);
+ $r = Activity::fetch($id);
$signatureAlgorithm = EMPTY_STR;
if ($r) {
@@ -378,7 +379,9 @@ class HTTPSig {
$best = [];
if (!$force) {
- $x = q("select * from xchan join hubloc on xchan_hash = hubloc_hash where hubloc_id_url = '%s' and hubloc_network in ('zot6', 'activitypub') order by hubloc_id desc",
+ $x = q("select * from xchan join hubloc on xchan_hash = hubloc_hash where (hubloc_addr = '%s' or hubloc_id_url = '%s' or hubloc_hash = '%s') and hubloc_network in ('zot6', 'activitypub') order by hubloc_id desc",
+ dbesc(str_replace('acct:', '', $id)),
+ dbesc($id),
dbesc($id)
);
diff --git a/boot.php b/boot.php
index b9587053b..67313589c 100644
--- a/boot.php
+++ b/boot.php
@@ -60,7 +60,7 @@ require_once('include/bbcode.php');
require_once('include/items.php');
define('PLATFORM_NAME', 'hubzilla');
-define('STD_VERSION', '8.4.2');
+define('STD_VERSION', '8.6');
define('ZOT_REVISION', '6.0');
define('DB_UPDATE_VERSION', 1258);
diff --git a/composer.lock b/composer.lock
index e4fff7c1b..66f27ac96 100644
--- a/composer.lock
+++ b/composer.lock
@@ -73,26 +73,25 @@
},
{
"name": "brick/math",
- "version": "0.9.3",
+ "version": "0.11.0",
"source": {
"type": "git",
"url": "https://github.com/brick/math.git",
- "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae"
+ "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/brick/math/zipball/ca57d18f028f84f777b2168cd1911b0dee2343ae",
- "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae",
+ "url": "https://api.github.com/repos/brick/math/zipball/0ad82ce168c82ba30d1c01ec86116ab52f589478",
+ "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478",
"shasum": ""
},
"require": {
- "ext-json": "*",
- "php": "^7.1 || ^8.0"
+ "php": "^8.0"
},
"require-dev": {
"php-coveralls/php-coveralls": "^2.2",
- "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0",
- "vimeo/psalm": "4.9.2"
+ "phpunit/phpunit": "^9.0",
+ "vimeo/psalm": "5.0.0"
},
"type": "library",
"autoload": {
@@ -117,32 +116,28 @@
],
"support": {
"issues": "https://github.com/brick/math/issues",
- "source": "https://github.com/brick/math/tree/0.9.3"
+ "source": "https://github.com/brick/math/tree/0.11.0"
},
"funding": [
{
"url": "https://github.com/BenMorel",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/brick/math",
- "type": "tidelift"
}
],
- "time": "2021-08-15T20:50:18+00:00"
+ "time": "2023-01-15T23:15:59+00:00"
},
{
"name": "bshaffer/oauth2-server-php",
- "version": "v1.12.1",
+ "version": "v1.13.0",
"source": {
"type": "git",
"url": "https://github.com/bshaffer/oauth2-server-php.git",
- "reference": "2bfaf9d7bbebe2ba1c1deb48e756ba0b3af4e985"
+ "reference": "cd11527b29ceb340f24015b6df868c22908bcf12"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/bshaffer/oauth2-server-php/zipball/2bfaf9d7bbebe2ba1c1deb48e756ba0b3af4e985",
- "reference": "2bfaf9d7bbebe2ba1c1deb48e756ba0b3af4e985",
+ "url": "https://api.github.com/repos/bshaffer/oauth2-server-php/zipball/cd11527b29ceb340f24015b6df868c22908bcf12",
+ "reference": "cd11527b29ceb340f24015b6df868c22908bcf12",
"shasum": ""
},
"require": {
@@ -190,9 +185,9 @@
],
"support": {
"issues": "https://github.com/bshaffer/oauth2-server-php/issues",
- "source": "https://github.com/bshaffer/oauth2-server-php/tree/v1.12.1"
+ "source": "https://github.com/bshaffer/oauth2-server-php/tree/v1.13.0"
},
- "time": "2022-05-31T16:12:58+00:00"
+ "time": "2022-10-12T17:33:08+00:00"
},
{
"name": "chillerlan/php-qrcode",
@@ -338,24 +333,24 @@
},
{
"name": "commerceguys/intl",
- "version": "v1.1.1",
+ "version": "v1.1.2",
"source": {
"type": "git",
"url": "https://github.com/commerceguys/intl.git",
- "reference": "cab3b55dbf8c1753fe54457404082c777a8c154f"
+ "reference": "f6200ca01f8c095f2a2602782b353770f738db87"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/commerceguys/intl/zipball/cab3b55dbf8c1753fe54457404082c777a8c154f",
- "reference": "cab3b55dbf8c1753fe54457404082c777a8c154f",
+ "url": "https://api.github.com/repos/commerceguys/intl/zipball/f6200ca01f8c095f2a2602782b353770f738db87",
+ "reference": "f6200ca01f8c095f2a2602782b353770f738db87",
"shasum": ""
},
"require": {
- "php": ">=7.1.3"
+ "php": ">=7.3"
},
"require-dev": {
"mikey179/vfsstream": "1.*",
- "phpunit/phpunit": "^7.5"
+ "phpunit/phpunit": "^9.5"
},
"type": "library",
"extra": {
@@ -375,14 +370,17 @@
"authors": [
{
"name": "Bojan Zivanovic"
+ },
+ {
+ "name": "Jonathan Sacksick"
}
],
"description": "Internationalization library powered by CLDR data.",
"support": {
"issues": "https://github.com/commerceguys/intl/issues",
- "source": "https://github.com/commerceguys/intl/tree/v1.1.1"
+ "source": "https://github.com/commerceguys/intl/tree/v1.1.2"
},
- "time": "2021-10-30T18:07:14+00:00"
+ "time": "2023-02-20T09:57:58+00:00"
},
{
"name": "desandro/imagesloaded",
@@ -813,16 +811,16 @@
},
{
"name": "pear/text_languagedetect",
- "version": "v1.0.1",
+ "version": "v1.0.2",
"source": {
"type": "git",
"url": "https://github.com/pear/Text_LanguageDetect.git",
- "reference": "9e253f26cef9a9066f53f200cc3e0684018cb5b5"
+ "reference": "655b269959782416426cf0aa7bd47e19fed63210"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/pear/Text_LanguageDetect/zipball/9e253f26cef9a9066f53f200cc3e0684018cb5b5",
- "reference": "9e253f26cef9a9066f53f200cc3e0684018cb5b5",
+ "url": "https://api.github.com/repos/pear/Text_LanguageDetect/zipball/655b269959782416426cf0aa7bd47e19fed63210",
+ "reference": "655b269959782416426cf0aa7bd47e19fed63210",
"shasum": ""
},
"require-dev": {
@@ -857,7 +855,7 @@
"issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=Text_LanguageDetect",
"source": "https://github.com/pear/Text_LanguageDetect"
},
- "time": "2020-05-17T12:19:40+00:00"
+ "time": "2023-02-27T20:54:21+00:00"
},
{
"name": "phpseclib/phpseclib",
@@ -1099,24 +1097,23 @@
},
{
"name": "ramsey/uuid",
- "version": "4.5.1",
+ "version": "4.7.4",
"source": {
"type": "git",
"url": "https://github.com/ramsey/uuid.git",
- "reference": "a161a26d917604dc6d3aa25100fddf2556e9f35d"
+ "reference": "60a4c63ab724854332900504274f6150ff26d286"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/uuid/zipball/a161a26d917604dc6d3aa25100fddf2556e9f35d",
- "reference": "a161a26d917604dc6d3aa25100fddf2556e9f35d",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/60a4c63ab724854332900504274f6150ff26d286",
+ "reference": "60a4c63ab724854332900504274f6150ff26d286",
"shasum": ""
},
"require": {
- "brick/math": "^0.8.8 || ^0.9 || ^0.10",
- "ext-ctype": "*",
+ "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11",
"ext-json": "*",
"php": "^8.0",
- "ramsey/collection": "^1.0"
+ "ramsey/collection": "^1.2 || ^2.0"
},
"replace": {
"rhumsaa/uuid": "self.version"
@@ -1145,7 +1142,6 @@
},
"suggest": {
"ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
- "ext-ctype": "Enables faster processing of character classification using ctype functions.",
"ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.",
"ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.",
"paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
@@ -1177,7 +1173,7 @@
],
"support": {
"issues": "https://github.com/ramsey/uuid/issues",
- "source": "https://github.com/ramsey/uuid/tree/4.5.1"
+ "source": "https://github.com/ramsey/uuid/tree/4.7.4"
},
"funding": [
{
@@ -1189,7 +1185,7 @@
"type": "tidelift"
}
],
- "time": "2022-09-16T03:22:46+00:00"
+ "time": "2023-04-15T23:01:58+00:00"
},
{
"name": "sabre/dav",
@@ -1465,22 +1461,22 @@
},
{
"name": "sabre/vobject",
- "version": "4.5.1",
+ "version": "4.5.3",
"source": {
"type": "git",
"url": "https://github.com/sabre-io/vobject.git",
- "reference": "1f836740c88bac483f3b572a332eb8fd1cd04981"
+ "reference": "fe6d9183154ed6f2f913f2b568d3d51d8ae9b308"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sabre-io/vobject/zipball/1f836740c88bac483f3b572a332eb8fd1cd04981",
- "reference": "1f836740c88bac483f3b572a332eb8fd1cd04981",
+ "url": "https://api.github.com/repos/sabre-io/vobject/zipball/fe6d9183154ed6f2f913f2b568d3d51d8ae9b308",
+ "reference": "fe6d9183154ed6f2f913f2b568d3d51d8ae9b308",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
"php": "^7.1 || ^8.0",
- "sabre/xml": "^2.1"
+ "sabre/xml": "^2.1 || ^3.0 || ^4.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "~2.17.1",
@@ -1565,7 +1561,7 @@
"issues": "https://github.com/sabre-io/vobject/issues",
"source": "https://github.com/fruux/sabre-vobject"
},
- "time": "2022-10-09T10:06:31+00:00"
+ "time": "2023-01-22T12:21:50+00:00"
},
{
"name": "sabre/xml",
@@ -1724,16 +1720,16 @@
},
{
"name": "smarty/smarty",
- "version": "v4.3.0",
+ "version": "v4.3.1",
"source": {
"type": "git",
"url": "https://github.com/smarty-php/smarty.git",
- "reference": "c02e9e135ea719b91f457a0072748ded0e852e7d"
+ "reference": "e28cb0915b4e3749bf57d4ebae2984e25395cfe5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/smarty-php/smarty/zipball/c02e9e135ea719b91f457a0072748ded0e852e7d",
- "reference": "c02e9e135ea719b91f457a0072748ded0e852e7d",
+ "url": "https://api.github.com/repos/smarty-php/smarty/zipball/e28cb0915b4e3749bf57d4ebae2984e25395cfe5",
+ "reference": "e28cb0915b4e3749bf57d4ebae2984e25395cfe5",
"shasum": ""
},
"require": {
@@ -1784,22 +1780,22 @@
"support": {
"forum": "https://github.com/smarty-php/smarty/discussions",
"issues": "https://github.com/smarty-php/smarty/issues",
- "source": "https://github.com/smarty-php/smarty/tree/v4.3.0"
+ "source": "https://github.com/smarty-php/smarty/tree/v4.3.1"
},
- "time": "2022-11-22T21:47:32+00:00"
+ "time": "2023-03-28T19:47:03+00:00"
},
{
"name": "spomky-labs/otphp",
- "version": "11.1.0",
+ "version": "11.2.0",
"source": {
"type": "git",
"url": "https://github.com/Spomky-Labs/otphp.git",
- "reference": "4849ac1aa560bfc56c0d1534b0d72532da4665ab"
+ "reference": "9a1569038bb1c8e98040b14b8bcbba54f25e7795"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Spomky-Labs/otphp/zipball/4849ac1aa560bfc56c0d1534b0d72532da4665ab",
- "reference": "4849ac1aa560bfc56c0d1534b0d72532da4665ab",
+ "url": "https://api.github.com/repos/Spomky-Labs/otphp/zipball/9a1569038bb1c8e98040b14b8bcbba54f25e7795",
+ "reference": "9a1569038bb1c8e98040b14b8bcbba54f25e7795",
"shasum": ""
},
"require": {
@@ -1817,7 +1813,7 @@
"phpstan/phpstan-strict-rules": "^1.0",
"phpunit/phpunit": "^9.5.26",
"qossmic/deptrac-shim": "^1.0",
- "rector/rector": "^0.14",
+ "rector/rector": "^0.15",
"symfony/phpunit-bridge": "^6.1",
"symplify/easy-coding-standard": "^11.0"
},
@@ -1854,7 +1850,7 @@
],
"support": {
"issues": "https://github.com/Spomky-Labs/otphp/issues",
- "source": "https://github.com/Spomky-Labs/otphp/tree/11.1.0"
+ "source": "https://github.com/Spomky-Labs/otphp/tree/11.2.0"
},
"funding": [
{
@@ -1866,20 +1862,20 @@
"type": "patreon"
}
],
- "time": "2022-11-11T12:57:17+00:00"
+ "time": "2023-03-16T19:16:25+00:00"
},
{
"name": "symfony/polyfill-php81",
- "version": "v1.26.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php81.git",
- "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1"
+ "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/13f6d1271c663dc5ae9fb843a8f16521db7687a1",
- "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1",
+ "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a",
+ "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a",
"shasum": ""
},
"require": {
@@ -1888,7 +1884,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -1929,7 +1925,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php81/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0"
},
"funding": [
{
@@ -1945,7 +1941,7 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "twbs/bootstrap",
@@ -3351,166 +3347,6 @@
"time": "2020-02-08T15:44:47+00:00"
},
{
- "name": "phpdocumentor/reflection-common",
- "version": "2.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
- "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
- "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-2.x": "2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jaap van Otterdijk",
- "email": "opensource@ijaap.nl"
- }
- ],
- "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
- "homepage": "http://www.phpdoc.org",
- "keywords": [
- "FQSEN",
- "phpDocumentor",
- "phpdoc",
- "reflection",
- "static analysis"
- ],
- "support": {
- "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
- "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
- },
- "time": "2020-06-27T09:03:43+00:00"
- },
- {
- "name": "phpdocumentor/reflection-docblock",
- "version": "5.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "622548b623e81ca6d78b721c5e029f4ce664f170"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170",
- "reference": "622548b623e81ca6d78b721c5e029f4ce664f170",
- "shasum": ""
- },
- "require": {
- "ext-filter": "*",
- "php": "^7.2 || ^8.0",
- "phpdocumentor/reflection-common": "^2.2",
- "phpdocumentor/type-resolver": "^1.3",
- "webmozart/assert": "^1.9.1"
- },
- "require-dev": {
- "mockery/mockery": "~1.3.2",
- "psalm/phar": "^4.8"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "5.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
- },
- {
- "name": "Jaap van Otterdijk",
- "email": "account@ijaap.nl"
- }
- ],
- "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
- "support": {
- "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
- "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0"
- },
- "time": "2021-10-19T17:43:47+00:00"
- },
- {
- "name": "phpdocumentor/type-resolver",
- "version": "1.6.1",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "77a32518733312af16a44300404e945338981de3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3",
- "reference": "77a32518733312af16a44300404e945338981de3",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0",
- "phpdocumentor/reflection-common": "^2.0"
- },
- "require-dev": {
- "ext-tokenizer": "*",
- "psalm/phar": "^4.8"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-1.x": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
- }
- ],
- "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
- "support": {
- "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
- "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1"
- },
- "time": "2022-03-15T21:29:03+00:00"
- },
- {
"name": "phpmd/phpmd",
"version": "2.12.0",
"source": {
@@ -3594,73 +3430,6 @@
"time": "2022-03-24T13:33:01+00:00"
},
{
- "name": "phpspec/prophecy",
- "version": "v1.15.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpspec/prophecy.git",
- "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13",
- "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13",
- "shasum": ""
- },
- "require": {
- "doctrine/instantiator": "^1.2",
- "php": "^7.2 || ~8.0, <8.2",
- "phpdocumentor/reflection-docblock": "^5.2",
- "sebastian/comparator": "^3.0 || ^4.0",
- "sebastian/recursion-context": "^3.0 || ^4.0"
- },
- "require-dev": {
- "phpspec/phpspec": "^6.0 || ^7.0",
- "phpunit/phpunit": "^8.0 || ^9.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Prophecy\\": "src/Prophecy"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Konstantin Kudryashov",
- "email": "ever.zet@gmail.com",
- "homepage": "http://everzet.com"
- },
- {
- "name": "Marcello Duarte",
- "email": "marcello.duarte@gmail.com"
- }
- ],
- "description": "Highly opinionated mocking framework for PHP 5.3+",
- "homepage": "https://github.com/phpspec/prophecy",
- "keywords": [
- "Double",
- "Dummy",
- "fake",
- "mock",
- "spy",
- "stub"
- ],
- "support": {
- "issues": "https://github.com/phpspec/prophecy/issues",
- "source": "https://github.com/phpspec/prophecy/tree/v1.15.0"
- },
- "time": "2021-12-08T12:19:24+00:00"
- },
- {
"name": "phpunit/php-code-coverage",
"version": "9.2.15",
"source": {
@@ -3980,16 +3749,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "9.5.20",
+ "version": "9.5.23",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba"
+ "reference": "888556852e7e9bbeeedb9656afe46118765ade34"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/12bc8879fb65aef2138b26fc633cb1e3620cffba",
- "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/888556852e7e9bbeeedb9656afe46118765ade34",
+ "reference": "888556852e7e9bbeeedb9656afe46118765ade34",
"shasum": ""
},
"require": {
@@ -4004,7 +3773,6 @@
"phar-io/manifest": "^2.0.3",
"phar-io/version": "^3.0.2",
"php": ">=7.3",
- "phpspec/prophecy": "^1.12.1",
"phpunit/php-code-coverage": "^9.2.13",
"phpunit/php-file-iterator": "^3.0.5",
"phpunit/php-invoker": "^3.1.1",
@@ -4022,10 +3790,6 @@
"sebastian/type": "^3.0",
"sebastian/version": "^3.0.2"
},
- "require-dev": {
- "ext-pdo": "*",
- "phpspec/prophecy-phpunit": "^2.0.1"
- },
"suggest": {
"ext-soap": "*",
"ext-xdebug": "*"
@@ -4067,7 +3831,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.20"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.23"
},
"funding": [
{
@@ -4079,7 +3843,7 @@
"type": "github"
}
],
- "time": "2022-04-01T12:37:26+00:00"
+ "time": "2022-08-22T14:01:36+00:00"
},
{
"name": "psr/container",
@@ -7322,64 +7086,6 @@
}
],
"time": "2021-07-28T10:34:58+00:00"
- },
- {
- "name": "webmozart/assert",
- "version": "1.10.0",
- "source": {
- "type": "git",
- "url": "https://github.com/webmozarts/assert.git",
- "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25",
- "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0",
- "symfony/polyfill-ctype": "^1.8"
- },
- "conflict": {
- "phpstan/phpstan": "<0.12.20",
- "vimeo/psalm": "<4.6.1 || 4.6.2"
- },
- "require-dev": {
- "phpunit/phpunit": "^8.5.13"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.10-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Webmozart\\Assert\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@gmail.com"
- }
- ],
- "description": "Assertions to validate method input/output with nice error messages.",
- "keywords": [
- "assert",
- "check",
- "validate"
- ],
- "support": {
- "issues": "https://github.com/webmozarts/assert/issues",
- "source": "https://github.com/webmozarts/assert/tree/1.10.0"
- },
- "time": "2021-03-09T10:59:23+00:00"
}
],
"aliases": [],
diff --git a/doc/hooklist.bb b/doc/hooklist.bb
index 4774b9978..7231cd185 100644
--- a/doc/hooklist.bb
+++ b/doc/hooklist.bb
@@ -443,7 +443,7 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
Called when a magic-auth was successful
[zrl=[baseurl]/help/hook/main_slider]main_slider[/zrl]
- Called whne generating the affinity tool
+ Called when generating the affinity tool
[zrl=[baseurl]/help/hook/marital_selector]marital_selector[/zrl]
Called when generating the list of choices for the 'marital status' profile dropdown (advanced profile)
diff --git a/include/attach.php b/include/attach.php
index 224af12c6..ead5a8e06 100644
--- a/include/attach.php
+++ b/include/attach.php
@@ -254,7 +254,7 @@ function attach_list_files($channel_id, $observer, $hash = '', $filename = '', $
* @param int $rev (optional) Revision default 0
* @return array
*/
-function attach_by_hash($hash, $observer_hash, $rev = 0) {
+function attach_by_hash($hash, $observer_hash, $rev = 0, $token = EMPTY_STR) {
$ret = array('success' => false);
@@ -274,7 +274,7 @@ function attach_by_hash($hash, $observer_hash, $rev = 0) {
return $ret;
}
- if(! attach_can_view($r[0]['uid'], $observer_hash, $hash)) {
+ if(! attach_can_view($r[0]['uid'], $observer_hash, $hash, $token)) {
$ret['message'] = t('Permission denied.');
return $ret;
}
@@ -311,7 +311,7 @@ function attach_by_hash($hash, $observer_hash, $rev = 0) {
* @param string $observer_hash
* @return array
*/
-function attach_by_id($id, $observer_hash) {
+function attach_by_id($id, $observer_hash, $token = EMPTY_STR) {
$ret = array('success' => false);
@@ -325,7 +325,7 @@ function attach_by_id($id, $observer_hash) {
return $ret;
}
- if(! attach_can_view($r[0]['uid'], $observer_hash, $r[0]['hash'])) {
+ if(! attach_can_view($r[0]['uid'], $observer_hash, $r[0]['hash'], $token)) {
$ret['message'] = t('Permission denied.');
return $ret;
}
@@ -338,49 +338,56 @@ function attach_by_id($id, $observer_hash) {
return $ret;
}
-function attach_can_view($uid,$ob_hash,$resource) {
+function attach_can_view($uid, $ob_hash, $resource, $token = EMPTY_STR) {
- $sql_extra = permissions_sql($uid,$ob_hash);
- $hash = $resource;
-
- if(! perm_is_allowed($uid,$ob_hash,'view_storage')) {
- return false;
+ if (!$token) {
+ if(! perm_is_allowed($uid, $ob_hash, 'view_storage')) {
+ return false;
+ }
}
+ $sql_extra = permissions_sql($uid, $ob_hash, '', $token);
+
$r = q("select folder from attach where hash = '%s' and uid = %d $sql_extra",
- dbesc($hash),
+ dbesc($resource),
intval($uid)
);
- if(! $r) {
+
+ if(!$r) {
return false;
}
- return attach_can_view_folder($uid,$ob_hash,$r[0]['folder']);
+ // don't perform recursive folder check when using OCAP. Only when using ACL access.
+ // For OCAP if the token is valid they can see the thing.
-}
+ if ($token) {
+ return true;
+ }
+
+ return attach_can_view_folder($uid, $ob_hash, $r[0]['folder'], $token);
+}
-function attach_can_view_folder($uid,$ob_hash,$folder_hash) {
- $sql_extra = permissions_sql($uid,$ob_hash);
- $hash = $folder_hash;
+function attach_can_view_folder($uid, $ob_hash, $folder_hash, $token = EMPTY_STR) {
- if(! $folder_hash) {
- return perm_is_allowed($uid,$ob_hash,'view_storage');
+ if(!$folder_hash && !$token) {
+ return perm_is_allowed($uid, $ob_hash, 'view_storage');
}
+ $sql_extra = permissions_sql($uid, $ob_hash, '', $token);
do {
$r = q("select folder from attach where hash = '%s' and uid = %d $sql_extra",
- dbesc($hash),
+ dbesc($folder_hash),
intval($uid)
);
if(! $r)
return false;
- $hash = $r[0]['folder'];
- } while($hash);
+ $folder_hash = $r[0]['folder'];
+ } while($folder_hash);
return true;
}
@@ -400,7 +407,7 @@ function attach_can_view_folder($uid,$ob_hash,$folder_hash) {
* * \e string \b message (optional) only when success is false
* * \e array \b data array of attach DB entry without data component
*/
-function attach_by_hash_nodata($hash, $observer_hash, $rev = 0) {
+function attach_by_hash_nodata($hash, $observer_hash, $rev = 0, $token = EMPTY_STR) {
$ret = array('success' => false);
@@ -425,7 +432,7 @@ function attach_by_hash_nodata($hash, $observer_hash, $rev = 0) {
return $ret;
}
- $sql_extra = permissions_sql($r[0]['uid'], $observer_hash);
+ $sql_extra = permissions_sql($r[0]['uid'], $observer_hash, '', $token);
// Now we'll see if we can access the attachment
@@ -440,7 +447,7 @@ function attach_by_hash_nodata($hash, $observer_hash, $rev = 0) {
}
if($r[0]['folder']) {
- $x = attach_can_view_folder($r[0]['uid'], $observer_hash, $r[0]['folder']);
+ $x = attach_can_view_folder($r[0]['uid'], $observer_hash, $r[0]['folder'], $token);
if(! $x) {
$ret['message'] = t('Permission denied.');
return $ret;
@@ -508,7 +515,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
$upload_path = $arr['directory'] ?? '';
$visible = $arr['visible'] ?? 0;
$notify = $arr['notify'] ?? 0;
-
+ $flags = (($arr && array_key_exists('flags', $arr)) ? intval($arr['flags']) : 0);
$observer = array();
$dosync = ((array_key_exists('nosync',$arr) && $arr['nosync']) ? 0 : 1);
@@ -933,8 +940,8 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
);
}
else {
- $r = q("INSERT INTO attach ( aid, uid, hash, creator, filename, filetype, folder, filesize, revision, os_storage, is_photo, content, created, edited, os_path, display_path, allow_cid, allow_gid,deny_cid, deny_gid )
- VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', %d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ",
+ $r = q("INSERT INTO attach ( aid, uid, hash, creator, filename, filetype, folder, filesize, revision, os_storage, is_photo, flags, content, created, edited, os_path, display_path, allow_cid, allow_gid,deny_cid, deny_gid )
+ VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', %d, %d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ",
intval($channel['channel_account_id']),
intval($channel_id),
dbesc($hash),
@@ -946,6 +953,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
intval(0),
intval(1),
intval($is_photo),
+ intval($flags),
dbescbin($os_basepath . $os_relpath),
dbesc($created),
dbesc($created),
@@ -1413,6 +1421,23 @@ function attach_change_permissions($channel_id, $resource, $allow_cid, $allow_gi
if(! $r)
return;
+ $private = $allow_cid || $allow_gid || $deny_cid || $deny_gid;
+
+ // preserve any existing tokens that may have been set for this file
+ // @fixme - we need a way to unconditionally clear these if desired.
+
+ if ($private) {
+ $token_matches = null;
+ if (preg_match_all('/\<token:(.*?)\>/', $r[0]['allow_cid'], $token_matches, PREG_SET_ORDER)) {
+ foreach ($token_matches as $m) {
+ $tok = '<token:' . $m[1] . '>';
+ if (!str_contains($allow_cid, $tok)) {
+ $allow_cid .= $tok;
+ }
+ }
+ }
+ }
+
if(intval($r[0]['is_dir'])) {
if($recurse) {
$r = q("select hash, flags, is_dir from attach where folder = '%s' and uid = %d",
diff --git a/include/channel.php b/include/channel.php
index 01302a1b9..2e8aefaaa 100644
--- a/include/channel.php
+++ b/include/channel.php
@@ -3092,5 +3092,5 @@ function channel_url($channel) {
function get_channel_hashes() {
$r = dbq("SELECT channel_hash FROM channel WHERE channel_removed = 0");
- return flatten_array_recursive($r);
+ return ids_to_array($r, 'channel_hash');
}
diff --git a/include/connections.php b/include/connections.php
index e8415bb25..9a6ee7d8d 100644
--- a/include/connections.php
+++ b/include/connections.php
@@ -67,6 +67,35 @@ function rconnect_url($channel_id,$xchan) {
}
+function deliverable_abook_xchans($channel_id, $filter = [], $flatten = true) {
+ $filter_sql = '';
+
+ if ($filter) {
+ $filter_sql = " AND abook_xchan IN (" . protect_sprintf(stringify_array($filter, true)) . ") ";
+ }
+
+ $r = q("SELECT abook_xchan, xchan_network FROM abook LEFT JOIN xchan ON abook_xchan = xchan_hash WHERE
+ abook_channel = %d $filter_sql
+ AND abook_self = 0
+ AND abook_pending = 0
+ AND abook_archived = 0
+ AND abook_not_here = 0
+ AND xchan_network NOT IN ('anon', 'token', 'rss')",
+ intval($channel_id)
+ );
+
+ if (!$r) {
+ return [];
+ }
+
+ if ($flatten) {
+ return ids_to_array($r, 'abook_xchan');
+ }
+
+ return $r;
+}
+
+
function abook_connections($channel_id, $sql_conditions = '') {
$r = q("select * from abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d
and abook_self = 0 $sql_conditions",
diff --git a/include/conversation.php b/include/conversation.php
index 2f0b6f6fd..c02b0c4c8 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -1215,11 +1215,16 @@ function builtin_activity_puller($item, &$conv_responses) {
if((activity_match($item['verb'], $verb)) && ($item['id'] != $item['parent'])) {
$name = (($item['author']['xchan_name']) ? $item['author']['xchan_name'] : t('Unknown'));
+
+ $moderate = ((intval($item['item_blocked']) === ITEM_MODERATED) ? '<a href="moderate/' . $item['id'] . '/approve" onclick="moderate_approve(' . $item['id'] . '); return false;" class="text-success pe-2" title="' . t('Approve this item') . '"><i class="fa fa-check" ></i></a><a href="moderate/' . $item['id'] . '/drop" onclick="moderate_drop(' . $item['id'] . '); return false;" class="text-danger pe-2" title="' . t('Delete this item') . '"><i class="fa fa-trash-o" ></i></a>' : '');
+
$url = (($item['author_xchan'] && $item['author']['xchan_photo_s'])
- ? '<a class="dropdown-item" href="' . chanlink_hash($item['author_xchan']) . '">' . '<img class="menu-img-1" src="' . zid($item['author']['xchan_photo_s']) . '" alt="' . urlencode($name) . '" /> ' . $name . '</a>'
+ ? '<div class="dropdown-item">' . $moderate . '<a href="' . chanlink_hash($item['author_xchan']) . '" class="text-reset">' . '<img class="menu-img-1" src="' . zid($item['author']['xchan_photo_s']) . '" alt="' . urlencode($name) . '" /> ' . $name . '</a></div>'
: '<a class="dropdown-item" href="#" class="disabled">' . $name . '</a>'
);
+
+
if(! $item['thr_parent'])
$item['thr_parent'] = $item['parent_mid'];
diff --git a/include/items.php b/include/items.php
index f6a93cc2c..d88a676a1 100644
--- a/include/items.php
+++ b/include/items.php
@@ -53,35 +53,28 @@ function collect_recipients($item, &$private_envelope,$include_groups = true) {
$allow_groups = [];
}
- $recipients = array_unique(array_merge($allow_people,$allow_groups));
+ $raw_recipients = array_unique(array_merge($allow_people, $allow_groups));
+ $recipients = deliverable_abook_xchans($item['uid'], $raw_recipients);
// if you specifically deny somebody but haven't allowed anybody, we'll allow everybody in your
// address book minus the denied connections. The post is still private and can't be seen publicly
// as that would allow the denied person to see the post by logging out.
- if((! $item['allow_cid']) && (! $item['allow_gid'])) {
- $r = q("select * from abook where abook_channel = %d and abook_self = 0 and abook_pending = 0 and abook_archived = 0 ",
- intval($item['uid'])
- );
-
- if($r) {
- foreach($r as $rr) {
- $recipients[] = $rr['abook_xchan'];
- }
- }
+ if(!$item['allow_cid'] && !$item['allow_gid']) {
+ $recipients = deliverable_abook_xchans($item['uid']);
}
$deny_people = expand_acl($item['deny_cid']);
$deny_groups = AccessList::expand(expand_acl($item['deny_gid']));
- $deny = array_unique(array_merge($deny_people,$deny_groups));
+ $deny = array_unique(array_merge($deny_people, $deny_groups));
// Don't deny anybody if nobody was allowed (e.g. they were all filtered out)
// That would lead to array_diff doing the wrong thing.
// This will result in a private post that won't be delivered to anybody.
if($recipients && $deny)
- $recipients = array_diff($recipients,$deny);
+ $recipients = array_diff($recipients, $deny);
$private_envelope = true;
}
@@ -112,9 +105,7 @@ function collect_recipients($item, &$private_envelope,$include_groups = true) {
if ($hookinfo['recipients']) {
$r = $hookinfo['recipients'];
} else {
- $r = q("select abook_xchan, xchan_network from abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d and abook_self = 0 and abook_pending = 0 and abook_archived = 0 and abook_not_here = 0 and xchan_network not in ('anon', 'token', 'rss')",
- intval($item['uid'])
- );
+ $r = deliverable_abook_xchans($item['uid'], [], false);
}
if($r) {
@@ -242,9 +233,21 @@ function comments_are_now_closed($item) {
}
function item_normal() {
- return " and item.item_hidden = 0 and item.item_type = 0 and item.item_deleted = 0
- and item.item_unpublished = 0 and item.item_delayed = 0 and item.item_pending_remove = 0
- and item.item_blocked = 0 ";
+ $profile_uid = App::$profile['profile_uid'] ?? App::$profile_uid ?? null;
+ $uid = local_channel();
+ $is_owner = ($uid && intval($profile_uid) === $uid);
+
+ $sql = " and item.item_hidden = 0 and item.item_type = 0 and item.item_deleted = 0
+ and item.item_unpublished = 0 and item.item_pending_remove = 0";
+
+ if ($is_owner) {
+ $sql .= " and item.item_blocked IN (0, " . intval(ITEM_MODERATED) . ") and item.item_delayed IN (0, 1) ";
+ }
+ else {
+ $sql .= " and item.item_blocked = 0 and item.item_delayed = 0 ";
+ }
+
+ return $sql;
}
function item_normal_search() {
@@ -2448,13 +2451,17 @@ function send_status_notifications($post_id,$item) {
intval($item['uid'])
);
- $thr_parent_id = $r[0]['id'];
+ if ($r) {
+ $thr_parent_id = $r[0]['id'];
+ }
+
}
$r = q("select channel_hash from channel where channel_id = %d limit 1",
intval($item['uid'])
);
- if(! $r)
+
+ if(!$r)
return;
// my own post - no notification needed
@@ -5009,6 +5016,136 @@ function fix_attached_file_permissions($channel,$observer_hash,$body,
}
}
+function list_attached_local_files($body) {
+
+ $files = [];
+ $match = [];
+
+ // match img and zmg image links
+ if (preg_match_all("/\[[zi]mg(.*?)](.*?)\[\/[zi]mg]/", $body, $match)) {
+ $images = array_merge($match[1], $match[2]);
+ if ($images) {
+ foreach ($images as $image) {
+ if (!stristr($image, z_root() . '/photo/')) {
+ continue;
+ }
+ $image_uri = substr($image,strrpos($image,'/') + 1);
+ if (str_contains($image_uri, '-')) {
+ $image_uri = substr($image_uri,0, strrpos($image_uri,'-'));
+ }
+ if (str_contains($image_uri, '.')) {
+ $image_uri = substr($image_uri,0, strpos($image_uri,'.'));
+ }
+ if ($image_uri && !in_array($image_uri, $files)) {
+ $files[] = $image_uri;
+ }
+ }
+ }
+ }
+ if (preg_match_all("/\[attachment](.*?)\[\/attachment]/",$body,$match)) {
+ $attaches = $match[1];
+ if ($attaches) {
+ foreach ($attaches as $attach) {
+ $hash = substr($attach,0,strpos($attach,','));
+ if ($hash && !in_array($hash, $files)) {
+ $files[] = $hash;
+ }
+ }
+ }
+ }
+
+ return $files;
+}
+
+function fix_attached_permissions($uid, $body, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny, $token = EMPTY_STR) {
+
+ $files = list_attached_local_files($body);
+
+ if (! $files) {
+ return;
+ }
+
+ foreach ($files as $file) {
+ $attach_q = q("select id, hash, flags, is_photo, allow_cid, allow_gid, deny_cid, deny_gid from attach where hash = '%s' and uid = %d",
+ dbesc($file),
+ intval($uid)
+ );
+
+ if (! $attach_q) {
+ continue;
+ }
+
+ $attach = array_shift($attach_q);
+
+ $new_public = !(($str_contact_allow || $str_group_allow || $str_contact_deny || $str_group_deny));
+ $existing_public = !(($attach['allow_cid'] || $attach['allow_gid'] || $attach['deny_cid'] || $attach['deny_gid']));
+
+ if ($existing_public) {
+ // permissions have already been fixed and they are public. There's nothing for us to do.
+ continue;
+ }
+
+ // if flags & 1, the attachment was uploaded directly into a post and needs to have permissions corrected
+ // or - if it is a private file and a new token was generated, we'll need to add the token to the ACL.
+
+ if (((intval($attach['flags']) & 1) !== 1) && (! $token)) {
+ continue;
+ }
+
+ $item_private = 0;
+
+ if ($new_public === false) {
+ $item_private = (($str_group_allow || ($str_contact_allow && substr_count($str_contact_allow,'<') > 2)) ? 1 : 2);
+
+ // preserve any existing tokens that may have been set for this file
+ $token_matches = null;
+ if (preg_match_all('/<token:(.*?)>/',$attach['allow_cid'],$token_matches, PREG_SET_ORDER)) {
+ foreach ($token_matches as $m) {
+ $tok = '<token:' . $m[1] . '>';
+ if (!str_contains($str_contact_allow, $tok)) {
+ $str_contact_allow .= $tok;
+ }
+ }
+ }
+ if ($token && !str_contains($str_contact_allow, $token)) {
+ $str_contact_allow .= '<token:' . $token . '>';
+ }
+ }
+
+ q("update attach SET allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s', flags = 0
+ WHERE id = %d AND uid = %d",
+ dbesc($str_contact_allow),
+ dbesc($str_group_allow),
+ dbesc($str_contact_deny),
+ dbesc($str_group_deny),
+ intval($attach['id']),
+ intval($uid)
+ );
+
+ if ($attach['is_photo']) {
+ $r = q("UPDATE photo SET allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s'
+ WHERE resource_id = '%s' AND uid = %d ",
+ dbesc($str_contact_allow),
+ dbesc($str_group_allow),
+ dbesc($str_contact_deny),
+ dbesc($str_group_deny),
+ dbesc($file),
+ intval($uid)
+ );
+
+ $r = q("UPDATE item SET allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s', item_private = %d
+ WHERE resource_id = '%s' AND 'resource_type' = 'photo' AND uid = %d",
+ dbesc($str_contact_allow),
+ dbesc($str_group_allow),
+ dbesc($str_contact_deny),
+ dbesc($str_group_deny),
+ intval($item_private),
+ dbesc($file),
+ intval($uid)
+ );
+ }
+ }
+}
function item_create_edit_activity($post) {
diff --git a/include/network.php b/include/network.php
index f0642d8f7..b34fdffcc 100644
--- a/include/network.php
+++ b/include/network.php
@@ -1729,12 +1729,14 @@ function deliverable_singleton($channel_id,$xchan) {
intval($channel_id),
dbesc($xchan_hash)
);
+
if($r) {
if(! $r[0]['abook_instance'])
return true;
if(strpos($r[0]['abook_instance'],z_root()) !== false)
return true;
}
+
return false;
}
diff --git a/include/permissions.php b/include/permissions.php
index c3a9286c0..28f242712 100644
--- a/include/permissions.php
+++ b/include/permissions.php
@@ -175,7 +175,7 @@ function get_all_perms($uid, $observer_xchan, $check_siteblock = true, $default_
// They are in your address book, but haven't been approved
- if($channel_perm & PERMS_PENDING && (! intval($x[0]['abook_pseudo']))) {
+ if($channel_perm & PERMS_PENDING) {
$ret[$perm_name] = 1;
continue;
}
@@ -188,12 +188,6 @@ function get_all_perms($uid, $observer_xchan, $check_siteblock = true, $default_
// They're a contact, so they have permission
if($channel_perm & PERMS_CONTACTS) {
- // it was a fake abook entry, not really a connection
- if(array_key_exists('abook_pseudo',$x[0]) && intval($x[0]['abook_pseudo'])) {
- $ret[$perm_name] = 0;
- continue;
- }
-
$ret[$perm_name] = 1;
continue;
}
@@ -340,7 +334,7 @@ function perm_is_allowed($uid, $observer_xchan, $permission, $check_siteblock =
return false;
}
- // From here on we require that the observer be a connection or pseudo connection
+ // From here on we require that the observer be a connection
if(! $x) {
return false;
@@ -348,7 +342,7 @@ function perm_is_allowed($uid, $observer_xchan, $permission, $check_siteblock =
// They are in your address book, but haven't been approved
- if($channel_perm & PERMS_PENDING && (! intval($x[0]['abook_pseudo']))) {
+ if($channel_perm & PERMS_PENDING) {
return true;
}
@@ -359,10 +353,6 @@ function perm_is_allowed($uid, $observer_xchan, $permission, $check_siteblock =
// They're a contact, so they have permission
if($channel_perm & PERMS_CONTACTS) {
- // it was a fake abook entry, not really a connection
- if(array_key_exists('abook_pseudo',$x[0]) && intval($x[0]['abook_pseudo'])) {
- return false;
- }
return true;
}
diff --git a/include/security.php b/include/security.php
index de9f1f337..b3e45742e 100644
--- a/include/security.php
+++ b/include/security.php
@@ -237,21 +237,6 @@ function atoken_abook($uid, $xchan_hash) {
}
-function pseudo_abook($xchan) {
- if (!$xchan)
- return false;
-
- // set abook_pseudo to flag that we aren't really connected.
-
- $xchan['abook_pseudo'] = 1;
- $xchan['abook_blocked'] = 0;
- $xchan['abook_ignored'] = 0;
- $xchan['abook_pending'] = 0;
-
- return $xchan;
-}
-
-
/**
* @brief Change to another channel with current logged-in account.
*
@@ -326,11 +311,12 @@ function change_channel($change_channel) {
* @param int $owner_id
* @param bool $remote_observer (optional) use current observer if unset
* @param $table (optional)
+ * @param $token (optional)
*
* @return string additional SQL where statement
*/
-function permissions_sql($owner_id, $remote_observer = null, $table = '') {
+function permissions_sql($owner_id, $remote_observer = null, $table = '', $token = EMPTY_STR) {
$local_channel = local_channel();
@@ -412,6 +398,16 @@ function permissions_sql($owner_id, $remote_observer = null, $table = '') {
dbesc($gs)
);
}
+
+ /*
+ * OCAP token access
+ */
+
+ elseif ($token) {
+ $sql = " AND ( {$table}allow_cid like '" . protect_sprintf('%<token:' . $token . '>%') .
+ "' OR ( {$table}allow_cid = '' AND {$table}allow_gid = '' AND {$table}deny_cid = '' AND {$table}deny_gid = '' ) )";
+ }
+
}
return $sql;
@@ -490,12 +486,19 @@ function item_permissions_sql($owner_id, $remote_observer = null) {
$gs = '<<>>'; // should be impossible to match
}
+ // This function is often called without an $owner_id in places where this could not be
+ // determined in advance. The ACL fields will usually not contain the original author or owner
+ // so we will also check for author_xchan and owner_xchan to account for this ACL deficiency.
+
$regexop = db_getfunc('REGEXP');
$sql = sprintf(
- " AND (( NOT (deny_cid $regexop '%s' OR deny_gid $regexop '%s')
- AND ( allow_cid $regexop '%s' OR allow_gid $regexop '%s' OR ( allow_cid = '' AND allow_gid = '' AND item_private = 0 ))
- ) OR ( item_private = 1 $scope ))
+ " AND ( author_xchan = '%s' OR owner_xchan = '%s' OR
+ (( NOT (deny_cid $regexop '%s' OR deny_gid $regexop '%s')
+ AND ( allow_cid $regexop '%s' OR allow_gid $regexop '%s' OR ( allow_cid = '' AND allow_gid = '' AND item_private = 0 ))
+ )))
",
+ dbesc($observer),
+ dbesc($observer),
dbesc($cs),
dbesc($gs),
dbesc($cs),
diff --git a/include/socgraph.php b/include/socgraph.php
index 372928798..e5e8ddf74 100644
--- a/include/socgraph.php
+++ b/include/socgraph.php
@@ -148,7 +148,7 @@ function poco_load($xchan = '', $url = null) {
// We've never seen this person before. Import them.
- if(($x !== false) && (! count($x))) {
+ if(!$x) {
if($address) {
if($network === 'zot6') {
$j = Zotfinger::exec($profile_url);
@@ -170,7 +170,6 @@ function poco_load($xchan = '', $url = null) {
$total ++;
-
$r = q("select * from xlink where xlink_xchan = '%s' and xlink_link = '%s' and xlink_static = 0 limit 1",
dbesc($xchan),
dbesc($hash)
@@ -427,7 +426,7 @@ function poco() {
intval($startIndex)
);
} else {
- $r = q("SELECT abook.*, xchan.* from abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d
+ $r = q("SELECT abook.*, xchan.* from abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d and xchan_deleted = 0
$sql_extra LIMIT %d OFFSET %d",
intval($channel_id),
intval($itemsPerPage),
diff --git a/include/text.php b/include/text.php
index 2693e7b16..6ab8fc1ce 100644
--- a/include/text.php
+++ b/include/text.php
@@ -887,6 +887,8 @@ function get_tags($s) {
// ignore anything in a code or svg block
$s = preg_replace('/\[code(.*?)\](.*?)\[\/code\]/sm','',$s);
+ $s = preg_replace('/\[nobb\](.*?)\[\/nobb\]/sm','',$s);
+ $s = preg_replace('/\[noparse\](.*?)\[\/noparse\]/sm','',$s);
$s = preg_replace('/\[svg(.*?)\](.*?)\[\/svg\]/sm','',$s);
$s = preg_replace('/\[toc(.*?)\]/sm','',$s);
@@ -2529,26 +2531,26 @@ function check_webbie($arr) {
return '';
}
-function ids_to_array($arr,$idx = 'id') {
- $t = array();
+function ids_to_array($arr, $idx = 'id') {
+ $t = [];
if($arr) {
foreach($arr as $x) {
- if(array_key_exists($idx,$x) && strlen($x[$idx]) && (! in_array($x[$idx],$t))) {
+ if(array_key_exists($idx, $x) && strlen($x[$idx]) && (! in_array($x[$idx], $t))) {
$t[] = $x[$idx];
}
}
}
- return($t);
+ return $t;
}
-function ids_to_querystr($arr,$idx = 'id',$quote = false) {
- $t = array();
+function ids_to_querystr($arr, $idx = 'id', $quote = false) {
+ $t = [];
if($arr) {
foreach($arr as $x) {
- if(! in_array($x[$idx],$t)) {
+ if(!in_array($x[$idx], $t)) {
if($quote)
$t[] = "'" . dbesc($x[$idx]) . "'";
else
@@ -2556,7 +2558,7 @@ function ids_to_querystr($arr,$idx = 'id',$quote = false) {
}
}
}
- return(implode(',', $t));
+ return implode(',', $t);
}
/**
@@ -2699,8 +2701,8 @@ function stringify_array_elms(&$arr, $escape = false) {
*/
function stringify_array($arr, $escape = false) {
if($arr) {
- stringify_array_elms($arr);
- return(implode(',',$arr));
+ stringify_array_elms($arr, $escape);
+ return(implode(',', $arr));
}
return EMPTY_STR;
}
diff --git a/library/fullcalendar/dist/index.global.js b/library/fullcalendar/dist/index.global.js
index d2a252f78..0f67113d8 100644
--- a/library/fullcalendar/dist/index.global.js
+++ b/library/fullcalendar/dist/index.global.js
@@ -1,16 +1,97 @@
/*!
-FullCalendar Standard Bundle v6.0.3
+FullCalendar Standard Bundle v6.1.8
Docs & License: https://fullcalendar.io/docs/initialize-globals
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
var FullCalendar = (function (exports) {
'use strict';
- var n,l$1,u$1,i$1,t,o,r$1,f$1={},e$1=[],c$1=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function s(n,l){for(var u in l)n[u]=l[u];return n}function a$1(n){var l=n.parentNode;l&&l.removeChild(n);}function h(l,u,i){var t,o,r,f={};for(r in u)"key"==r?t=u[r]:"ref"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),"function"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return v$1(l,f,t,o,null)}function v$1(n,i,t,o,r){var f={type:n,props:i,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++u$1:r};return null==r&&null!=l$1.vnode&&l$1.vnode(f),f}function y(){return {current:null}}function p(n){return n.children}function d(n,l){this.props=n,this.context=l;}function _(n,l){if(null==l)return n.__?_(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return "function"==typeof n.type?_(n):null}function k$1(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return k$1(n)}}function b$1(n){(!n.__d&&(n.__d=!0)&&t.push(n)&&!g$2.__r++||o!==l$1.debounceRendering)&&((o=l$1.debounceRendering)||setTimeout)(g$2);}function g$2(){for(var n;g$2.__r=t.length;)n=t.sort(function(n,l){return n.__v.__b-l.__v.__b}),t=[],n.some(function(n){var l,u,i,t,o,r;n.__d&&(o=(t=(l=n).__v).__e,(r=l.__P)&&(u=[],(i=s({},t)).__v=t.__v+1,j$2(r,t,i,l.__n,void 0!==r.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?_(t):o,t.__h),z$1(u,t),t.__e!=o&&k$1(t)));});}function w$2(n,l,u,i,t,o,r,c,s,a){var h,y,d,k,b,g,w,x=i&&i.__k||e$1,C=x.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(k=u.__k[h]=null==(k=l[h])||"boolean"==typeof k?null:"string"==typeof k||"number"==typeof k||"bigint"==typeof k?v$1(null,k,null,null,k):Array.isArray(k)?v$1(p,{children:k},null,null,null):k.__b>0?v$1(k.type,k.props,k.key,k.ref?k.ref:null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(d=x[h])||d&&k.key==d.key&&k.type===d.type)x[h]=void 0;else for(y=0;y<C;y++){if((d=x[y])&&k.key==d.key&&k.type===d.type){x[y]=void 0;break}d=null;}j$2(n,k,d=d||f$1,t,o,r,c,s,a),b=k.__e,(y=k.ref)&&d.ref!=y&&(w||(w=[]),d.ref&&w.push(d.ref,null,k),w.push(y,k.__c||b,k)),null!=b?(null==g&&(g=b),"function"==typeof k.type&&k.__k===d.__k?k.__d=s=m$1(k,s,n):s=A(n,k,d,x,b,s),"function"==typeof u.type&&(u.__d=s)):s&&d.__e==s&&s.parentNode!=n&&(s=_(d));}for(u.__e=g,h=C;h--;)null!=x[h]&&N(x[h],x[h]);if(w)for(h=0;h<w.length;h++)M(w[h],w[++h],w[++h]);}function m$1(n,l,u){for(var i,t=n.__k,o=0;t&&o<t.length;o++)(i=t[o])&&(i.__=n,l="function"==typeof i.type?m$1(i,l,u):A(u,i,i,t,i.__e,l));return l}function x$1(n,l){return l=l||[],null==n||"boolean"==typeof n||(Array.isArray(n)?n.some(function(n){x$1(n,l);}):l.push(n)),l}function A(n,l,u,i,t,o){var r,f,e;if(void 0!==l.__d)r=l.__d,l.__d=void 0;else if(null==u||t!=o||null==t.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(t),r=null;else {for(f=o,e=0;(f=f.nextSibling)&&e<i.length;e+=1)if(f==t)break n;n.insertBefore(t,o),r=o;}return void 0!==r?r:t.nextSibling}function C$1(n,l,u,i,t){var o;for(o in u)"children"===o||"key"===o||o in l||H$1(n,o,null,u[o],i);for(o in l)t&&"function"!=typeof l[o]||"children"===o||"key"===o||"value"===o||"checked"===o||u[o]===l[o]||H$1(n,o,l[o],u[o],i);}function $$1(n,l,u){"-"===l[0]?n.setProperty(l,u):n[l]=null==u?"":"number"!=typeof u||c$1.test(l)?u:u+"px";}function H$1(n,l,u,i,t){var o;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else {if("string"==typeof i&&(n.style.cssText=i=""),i)for(l in i)u&&l in u||$$1(n.style,l,"");if(u)for(l in u)i&&u[l]===i[l]||$$1(n.style,l,u[l]);}else if("o"===l[0]&&"n"===l[1])o=l!==(l=l.replace(/Capture$/,"")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?i||n.addEventListener(l,o?T$1:I$1,o):n.removeEventListener(l,o?T$1:I$1,o);else if("dangerouslySetInnerHTML"!==l){if(t)l=l.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("href"!==l&&"list"!==l&&"form"!==l&&"tabIndex"!==l&&"download"!==l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null==u||!1===u&&-1==l.indexOf("-")?n.removeAttribute(l):n.setAttribute(l,u));}}function I$1(n){this.l[n.type+!1](l$1.event?l$1.event(n):n);}function T$1(n){this.l[n.type+!0](l$1.event?l$1.event(n):n);}function j$2(n,u,i,t,o,r,f,e,c){var a,h,v,y,_,k,b,g,m,x,A,C,$,H,I,T=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(a=l$1.__b)&&a(u);try{n:if("function"==typeof T){if(g=u.props,m=(a=T.contextType)&&t[a.__c],x=a?m?m.props.value:a.__:t,i.__c?b=(h=u.__c=i.__c).__=h.__E:("prototype"in T&&T.prototype.render?u.__c=h=new T(g,x):(u.__c=h=new d(g,x),h.constructor=T,h.render=O),m&&m.sub(h),h.props=g,h.state||(h.state={}),h.context=x,h.__n=t,v=h.__d=!0,h.__h=[],h._sb=[]),null==h.__s&&(h.__s=h.state),null!=T.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=s({},h.__s)),s(h.__s,T.getDerivedStateFromProps(g,h.__s))),y=h.props,_=h.state,v)null==T.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else {if(null==T.getDerivedStateFromProps&&g!==y&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(g,x),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(g,h.__s,x)||u.__v===i.__v){for(h.props=g,h.state=h.__s,u.__v!==i.__v&&(h.__d=!1),h.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u);}),A=0;A<h._sb.length;A++)h.__h.push(h._sb[A]);h._sb=[],h.__h.length&&f.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(g,h.__s,x),null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(y,_,k);});}if(h.context=x,h.props=g,h.__v=u,h.__P=n,C=l$1.__r,$=0,"prototype"in T&&T.prototype.render){for(h.state=h.__s,h.__d=!1,C&&C(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[];}else do{h.__d=!1,C&&C(u),a=h.render(h.props,h.state,h.context),h.state=h.__s;}while(h.__d&&++$<25);h.state=h.__s,null!=h.getChildContext&&(t=s(s({},t),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(k=h.getSnapshotBeforeUpdate(y,_)),I=null!=a&&a.type===p&&null==a.key?a.props.children:a,w$2(n,Array.isArray(I)?I:[I],u,i,t,o,r,f,e,c),h.base=u.__e,u.__h=null,h.__h.length&&f.push(h),b&&(h.__E=h.__=null),h.__e=!1;}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=L$1(i.__e,u,i,t,o,r,f,c);(a=l$1.diffed)&&a(u);}catch(n){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),l$1.__e(n,u,i);}}function z$1(n,u){l$1.__c&&l$1.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u);});}catch(n){l$1.__e(n,u.__v);}});}function L$1(l,u,i,t,o,r,e,c){var s,h,v,y=i.props,p=u.props,d=u.type,k=0;if("svg"===d&&(o=!0),null!=r)for(;k<r.length;k++)if((s=r[k])&&"setAttribute"in s==!!d&&(d?s.localName===d:3===s.nodeType)){l=s,r[k]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=o?document.createElementNS("http://www.w3.org/2000/svg",d):document.createElement(d,p.is&&p),r=null,c=!1;}if(null===d)y===p||c&&l.data===p||(l.data=p);else {if(r=r&&n.call(l.childNodes),h=(y=i.props||f$1).dangerouslySetInnerHTML,v=p.dangerouslySetInnerHTML,!c){if(null!=r)for(y={},k=0;k<l.attributes.length;k++)y[l.attributes[k].name]=l.attributes[k].value;(v||h)&&(v&&(h&&v.__html==h.__html||v.__html===l.innerHTML)||(l.innerHTML=v&&v.__html||""));}if(C$1(l,p,y,o,c),v)u.__k=[];else if(k=u.props.children,w$2(l,Array.isArray(k)?k:[k],u,i,t,o&&"foreignObject"!==d,r,e,r?r[0]:i.__k&&_(i,0),c),null!=r)for(k=r.length;k--;)null!=r[k]&&a$1(r[k]);c||("value"in p&&void 0!==(k=p.value)&&(k!==l.value||"progress"===d&&!k||"option"===d&&k!==y.value)&&H$1(l,"value",k,y.value,!1),"checked"in p&&void 0!==(k=p.checked)&&k!==l.checked&&H$1(l,"checked",k,y.checked,!1));}return l}function M(n,u,i){try{"function"==typeof n?n(u):n.current=u;}catch(n){l$1.__e(n,i);}}function N(n,u,i){var t,o;if(l$1.unmount&&l$1.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||M(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount();}catch(n){l$1.__e(n,u);}t.base=t.__P=null,n.__c=void 0;}if(t=n.__k)for(o=0;o<t.length;o++)t[o]&&N(t[o],u,i||"function"!=typeof n.type);i||null==n.__e||a$1(n.__e),n.__=n.__e=n.__d=void 0;}function O(n,l,u){return this.constructor(n,u)}function P$1(u,i,t){var o,r,e;l$1.__&&l$1.__(u,i),r=(o="function"==typeof t)?null:t&&t.__k||i.__k,e=[],j$2(i,u=(!o&&t||i).__k=h(p,null,[u]),r||f$1,f$1,void 0!==i.ownerSVGElement,!o&&t?[t]:r?null:i.firstChild?n.call(i.childNodes):null,e,!o&&t?t:r?r.__e:i.firstChild,o),z$1(e,u);}function B$1(n,l){var u={__c:l="__cC"+r$1++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(b$1);},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n);};}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=e$1.slice,l$1={__e:function(n,l,u,i){for(var t,o,r;l=l.__;)if((t=l.__c)&&!t.__)try{if((o=t.constructor)&&null!=o.getDerivedStateFromError&&(t.setState(o.getDerivedStateFromError(n)),r=t.__d),null!=t.componentDidCatch&&(t.componentDidCatch(n,i||{}),r=t.__d),r)return t.__E=t}catch(l){n=l;}throw n}},u$1=0,i$1=function(n){return null!=n&&void 0===n.constructor},d.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=s({},this.state),"function"==typeof n&&(n=n(s({},u),this.props)),n&&s(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),b$1(this));},d.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),b$1(this));},d.prototype.render=p,t=[],g$2.__r=0,r$1=0;
+ var n,l$1,u$1,i$1,t,r$1,o,f$1,e$1,c$1={},s=[],a$1=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function h(n,l){for(var u in l)n[u]=l[u];return n}function v$1(n){var l=n.parentNode;l&&l.removeChild(n);}function y(l,u,i){var t,r,o,f={};for(o in u)"key"==o?t=u[o]:"ref"==o?r=u[o]:f[o]=u[o];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),"function"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===f[o]&&(f[o]=l.defaultProps[o]);return p(l,f,t,r,null)}function p(n,i,t,r,o){var f={type:n,props:i,key:t,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++u$1:o};return null==o&&null!=l$1.vnode&&l$1.vnode(f),f}function d(){return {current:null}}function _(n){return n.children}function k$1(n,l,u,i,t){var r;for(r in u)"children"===r||"key"===r||r in l||g$2(n,r,null,u[r],i);for(r in l)t&&"function"!=typeof l[r]||"children"===r||"key"===r||"value"===r||"checked"===r||u[r]===l[r]||g$2(n,r,l[r],u[r],i);}function b$1(n,l,u){"-"===l[0]?n.setProperty(l,null==u?"":u):n[l]=null==u?"":"number"!=typeof u||a$1.test(l)?u:u+"px";}function g$2(n,l,u,i,t){var r;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else {if("string"==typeof i&&(n.style.cssText=i=""),i)for(l in i)u&&l in u||b$1(n.style,l,"");if(u)for(l in u)i&&u[l]===i[l]||b$1(n.style,l,u[l]);}else if("o"===l[0]&&"n"===l[1])r=l!==(l=l.replace(/Capture$/,"")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?i||n.addEventListener(l,r?w$2:m$1,r):n.removeEventListener(l,r?w$2:m$1,r);else if("dangerouslySetInnerHTML"!==l){if(t)l=l.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!==l&&"height"!==l&&"href"!==l&&"list"!==l&&"form"!==l&&"tabIndex"!==l&&"download"!==l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null==u||!1===u&&-1==l.indexOf("-")?n.removeAttribute(l):n.setAttribute(l,u));}}function m$1(n){t=!0;try{return this.l[n.type+!1](l$1.event?l$1.event(n):n)}finally{t=!1;}}function w$2(n){t=!0;try{return this.l[n.type+!0](l$1.event?l$1.event(n):n)}finally{t=!1;}}function x$1(n,l){this.props=n,this.context=l;}function A(n,l){if(null==l)return n.__?A(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return "function"==typeof n.type?A(n):null}function P$1(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return P$1(n)}}function C$1(n){t?setTimeout(n):f$1(n);}function T$1(n){(!n.__d&&(n.__d=!0)&&r$1.push(n)&&!$$1.__r++||o!==l$1.debounceRendering)&&((o=l$1.debounceRendering)||C$1)($$1);}function $$1(){var n,l,u,i,t,o,f,e;for(r$1.sort(function(n,l){return n.__v.__b-l.__v.__b});n=r$1.shift();)n.__d&&(l=r$1.length,i=void 0,t=void 0,f=(o=(u=n).__v).__e,(e=u.__P)&&(i=[],(t=h({},o)).__v=o.__v+1,M(e,o,t,u.__n,void 0!==e.ownerSVGElement,null!=o.__h?[f]:null,i,null==f?A(o):f,o.__h),N(i,o),o.__e!=f&&P$1(o)),r$1.length>l&&r$1.sort(function(n,l){return n.__v.__b-l.__v.__b}));$$1.__r=0;}function H$1(n,l,u,i,t,r,o,f,e,a){var h,v,y,d,k,b,g,m=i&&i.__k||s,w=m.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(d=u.__k[h]=null==(d=l[h])||"boolean"==typeof d?null:"string"==typeof d||"number"==typeof d||"bigint"==typeof d?p(null,d,null,null,d):Array.isArray(d)?p(_,{children:d},null,null,null):d.__b>0?p(d.type,d.props,d.key,d.ref?d.ref:null,d.__v):d)){if(d.__=u,d.__b=u.__b+1,null===(y=m[h])||y&&d.key==y.key&&d.type===y.type)m[h]=void 0;else for(v=0;v<w;v++){if((y=m[v])&&d.key==y.key&&d.type===y.type){m[v]=void 0;break}y=null;}M(n,d,y=y||c$1,t,r,o,f,e,a),k=d.__e,(v=d.ref)&&y.ref!=v&&(g||(g=[]),y.ref&&g.push(y.ref,null,d),g.push(v,d.__c||k,d)),null!=k?(null==b&&(b=k),"function"==typeof d.type&&d.__k===y.__k?d.__d=e=I$1(d,e,n):e=z$1(n,d,y,m,k,e),"function"==typeof u.type&&(u.__d=e)):e&&y.__e==e&&e.parentNode!=n&&(e=A(y));}for(u.__e=b,h=w;h--;)null!=m[h]&&("function"==typeof u.type&&null!=m[h].__e&&m[h].__e==u.__d&&(u.__d=L$1(i).nextSibling),q(m[h],m[h]));if(g)for(h=0;h<g.length;h++)S(g[h],g[++h],g[++h]);}function I$1(n,l,u){for(var i,t=n.__k,r=0;t&&r<t.length;r++)(i=t[r])&&(i.__=n,l="function"==typeof i.type?I$1(i,l,u):z$1(u,i,i,t,i.__e,l));return l}function j$2(n,l){return l=l||[],null==n||"boolean"==typeof n||(Array.isArray(n)?n.some(function(n){j$2(n,l);}):l.push(n)),l}function z$1(n,l,u,i,t,r){var o,f,e;if(void 0!==l.__d)o=l.__d,l.__d=void 0;else if(null==u||t!=r||null==t.parentNode)n:if(null==r||r.parentNode!==n)n.appendChild(t),o=null;else {for(f=r,e=0;(f=f.nextSibling)&&e<i.length;e+=1)if(f==t)break n;n.insertBefore(t,r),o=r;}return void 0!==o?o:t.nextSibling}function L$1(n){var l,u,i;if(null==n.type||"string"==typeof n.type)return n.__e;if(n.__k)for(l=n.__k.length-1;l>=0;l--)if((u=n.__k[l])&&(i=L$1(u)))return i;return null}function M(n,u,i,t,r,o,f,e,c){var s,a,v,y,p,d,k,b,g,m,w,A,P,C,T,$=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,o=[e]),(s=l$1.__b)&&s(u);try{n:if("function"==typeof $){if(b=u.props,g=(s=$.contextType)&&t[s.__c],m=s?g?g.props.value:s.__:t,i.__c?k=(a=u.__c=i.__c).__=a.__E:("prototype"in $&&$.prototype.render?u.__c=a=new $(b,m):(u.__c=a=new x$1(b,m),a.constructor=$,a.render=B$1),g&&g.sub(a),a.props=b,a.state||(a.state={}),a.context=m,a.__n=t,v=a.__d=!0,a.__h=[],a._sb=[]),null==a.__s&&(a.__s=a.state),null!=$.getDerivedStateFromProps&&(a.__s==a.state&&(a.__s=h({},a.__s)),h(a.__s,$.getDerivedStateFromProps(b,a.__s))),y=a.props,p=a.state,a.__v=u,v)null==$.getDerivedStateFromProps&&null!=a.componentWillMount&&a.componentWillMount(),null!=a.componentDidMount&&a.__h.push(a.componentDidMount);else {if(null==$.getDerivedStateFromProps&&b!==y&&null!=a.componentWillReceiveProps&&a.componentWillReceiveProps(b,m),!a.__e&&null!=a.shouldComponentUpdate&&!1===a.shouldComponentUpdate(b,a.__s,m)||u.__v===i.__v){for(u.__v!==i.__v&&(a.props=b,a.state=a.__s,a.__d=!1),u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u);}),w=0;w<a._sb.length;w++)a.__h.push(a._sb[w]);a._sb=[],a.__h.length&&f.push(a);break n}null!=a.componentWillUpdate&&a.componentWillUpdate(b,a.__s,m),null!=a.componentDidUpdate&&a.__h.push(function(){a.componentDidUpdate(y,p,d);});}if(a.context=m,a.props=b,a.__P=n,A=l$1.__r,P=0,"prototype"in $&&$.prototype.render){for(a.state=a.__s,a.__d=!1,A&&A(u),s=a.render(a.props,a.state,a.context),C=0;C<a._sb.length;C++)a.__h.push(a._sb[C]);a._sb=[];}else do{a.__d=!1,A&&A(u),s=a.render(a.props,a.state,a.context),a.state=a.__s;}while(a.__d&&++P<25);a.state=a.__s,null!=a.getChildContext&&(t=h(h({},t),a.getChildContext())),v||null==a.getSnapshotBeforeUpdate||(d=a.getSnapshotBeforeUpdate(y,p)),T=null!=s&&s.type===_&&null==s.key?s.props.children:s,H$1(n,Array.isArray(T)?T:[T],u,i,t,r,o,f,e,c),a.base=u.__e,u.__h=null,a.__h.length&&f.push(a),k&&(a.__E=a.__=null),a.__e=!1;}else null==o&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=O(i.__e,u,i,t,r,o,f,c);(s=l$1.diffed)&&s(u);}catch(n){u.__v=null,(c||null!=o)&&(u.__e=e,u.__h=!!c,o[o.indexOf(e)]=null),l$1.__e(n,u,i);}}function N(n,u){l$1.__c&&l$1.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u);});}catch(n){l$1.__e(n,u.__v);}});}function O(l,u,i,t,r,o,f,e){var s,a,h,y=i.props,p=u.props,d=u.type,_=0;if("svg"===d&&(r=!0),null!=o)for(;_<o.length;_++)if((s=o[_])&&"setAttribute"in s==!!d&&(d?s.localName===d:3===s.nodeType)){l=s,o[_]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=r?document.createElementNS("http://www.w3.org/2000/svg",d):document.createElement(d,p.is&&p),o=null,e=!1;}if(null===d)y===p||e&&l.data===p||(l.data=p);else {if(o=o&&n.call(l.childNodes),a=(y=i.props||c$1).dangerouslySetInnerHTML,h=p.dangerouslySetInnerHTML,!e){if(null!=o)for(y={},_=0;_<l.attributes.length;_++)y[l.attributes[_].name]=l.attributes[_].value;(h||a)&&(h&&(a&&h.__html==a.__html||h.__html===l.innerHTML)||(l.innerHTML=h&&h.__html||""));}if(k$1(l,p,y,r,e),h)u.__k=[];else if(_=u.props.children,H$1(l,Array.isArray(_)?_:[_],u,i,t,r&&"foreignObject"!==d,o,f,o?o[0]:i.__k&&A(i,0),e),null!=o)for(_=o.length;_--;)null!=o[_]&&v$1(o[_]);e||("value"in p&&void 0!==(_=p.value)&&(_!==l.value||"progress"===d&&!_||"option"===d&&_!==y.value)&&g$2(l,"value",_,y.value,!1),"checked"in p&&void 0!==(_=p.checked)&&_!==l.checked&&g$2(l,"checked",_,y.checked,!1));}return l}function S(n,u,i){try{"function"==typeof n?n(u):n.current=u;}catch(n){l$1.__e(n,i);}}function q(n,u,i){var t,r;if(l$1.unmount&&l$1.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||S(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount();}catch(n){l$1.__e(n,u);}t.base=t.__P=null,n.__c=void 0;}if(t=n.__k)for(r=0;r<t.length;r++)t[r]&&q(t[r],u,i||"function"!=typeof n.type);i||null==n.__e||v$1(n.__e),n.__=n.__e=n.__d=void 0;}function B$1(n,l,u){return this.constructor(n,u)}function D$1(u,i,t){var r,o,f;l$1.__&&l$1.__(u,i),o=(r="function"==typeof t)?null:t&&t.__k||i.__k,f=[],M(i,u=(!r&&t||i).__k=y(_,null,[u]),o||c$1,c$1,void 0!==i.ownerSVGElement,!r&&t?[t]:o?null:i.firstChild?n.call(i.childNodes):null,f,!r&&t?t:o?o.__e:i.firstChild,r),N(f,u);}function E(n,l){D$1(n,l,E);}function F$1(l,u,i){var t,r,o,f=h({},l.props);for(o in u)"key"==o?t=u[o]:"ref"==o?r=u[o]:f[o]=u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),p(l.type,f,t||l.key,r||l.ref,null)}function G$1(n,l){var u={__c:l="__cC"+e$1++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(function(n){n.__e=!0,T$1(n);});},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n);};}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=s.slice,l$1={__e:function(n,l,u,i){for(var t,r,o;l=l.__;)if((t=l.__c)&&!t.__)try{if((r=t.constructor)&&null!=r.getDerivedStateFromError&&(t.setState(r.getDerivedStateFromError(n)),o=t.__d),null!=t.componentDidCatch&&(t.componentDidCatch(n,i||{}),o=t.__d),o)return t.__E=t}catch(l){n=l;}throw n}},u$1=0,i$1=function(n){return null!=n&&void 0===n.constructor},t=!1,x$1.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=h({},this.state),"function"==typeof n&&(n=n(h({},u),this.props)),n&&h(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),T$1(this));},x$1.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),T$1(this));},x$1.prototype.render=_,r$1=[],f$1="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,$$1.__r=0,e$1=0;
var r,u,i,f=[],c=[],e=l$1.__b,a=l$1.__r,v=l$1.diffed,l=l$1.__c,m=l$1.unmount;function b(){for(var t;t=f.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(k),t.__H.__h.forEach(w$1),t.__H.__h=[];}catch(r){t.__H.__h=[],l$1.__e(r,t.__v);}}l$1.__b=function(n){r=null,e&&e(n);},l$1.__r=function(n){a&&a(n);var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.__V=c,n.__N=n.i=void 0;})):(i.__h.forEach(k),i.__h.forEach(w$1),i.__h=[])),u=r;},l$1.diffed=function(t){v&&v(t);var o=t.__c;o&&o.__H&&(o.__H.__h.length&&(1!==f.push(o)&&i===l$1.requestAnimationFrame||((i=l$1.requestAnimationFrame)||j$1)(b)),o.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.__V!==c&&(n.__=n.__V),n.i=void 0,n.__V=c;})),u=r=null;},l$1.__c=function(t,r){r.some(function(t){try{t.__h.forEach(k),t.__h=t.__h.filter(function(n){return !n.__||w$1(n)});}catch(u){r.some(function(n){n.__h&&(n.__h=[]);}),r=[],l$1.__e(u,t.__v);}}),l&&l(t,r);},l$1.unmount=function(t){m&&m(t);var r,u=t.__c;u&&u.__H&&(u.__H.__.forEach(function(n){try{k(n);}catch(n){r=n;}}),u.__H=void 0,r&&l$1.__e(r,u.__v));};var g$1="function"==typeof requestAnimationFrame;function j$1(n){var t,r=function(){clearTimeout(u),g$1&&cancelAnimationFrame(t),setTimeout(n);},u=setTimeout(r,100);g$1&&(t=requestAnimationFrame(r));}function k(n){var t=r,u=n.__c;"function"==typeof u&&(n.__c=void 0,u()),r=t;}function w$1(n){var t=r;n.__c=n.__(),r=t;}
- function g(n,t){for(var e in t)n[e]=t[e];return n}function C(n,t){for(var e in n)if("__source"!==e&&!(e in t))return !0;for(var r in t)if("__source"!==r&&n[r]!==t[r])return !0;return !1}function w(n){this.props=n;}(w.prototype=new d).isPureReactComponent=!0,w.prototype.shouldComponentUpdate=function(n,t){return C(this.props,n)||C(this.state,t)};var x=l$1.__b;l$1.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),x&&x(n);};var T=l$1.__e;l$1.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);T(n,t,e,r);};var I=l$1.unmount;function L(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){"function"==typeof n.__c&&n.__c();}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return L(n,t,e)})),n}function U(n,t,e){return n&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return U(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.insertBefore(n.__e,n.__d),n.__c.__e=!0,n.__c.__P=e)),n}function D(){this.__u=0,this.t=null,this.__b=null;}function F(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function V(){this.u=null,this.o=null;}l$1.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),I&&I(n);},(D.prototype=new d).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=F(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l());};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=U(n,n.__c.__P,n.__c.__O);}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate();}},c=!0===t.__h;r.__u++||c||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i);},D.prototype.componentWillUnmount=function(){this.t=[];},D.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),o=this.__v.__k[0].__c;this.__v.__k[0]=L(this.__b,r,o.__O=o.__P);}this.__b=null;}var i=e.__a&&h(p,null,n.fallback);return i&&(i.__h=null),[h(p,null,e.__a?null:n.children),i]};var W=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&("t"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2];}};function P(n){return this.getChildContext=function(){return n.context},n.children}function $(n){var e=this,r=n.i;e.componentWillUnmount=function(){P$1(null,e.l),e.l=null,e.i=null;},e.i&&e.i!==r&&e.componentWillUnmount(),n.__v?(e.l||(e.i=r,e.l={nodeType:1,parentNode:r,childNodes:[],appendChild:function(n){this.childNodes.push(n),e.i.appendChild(n);},insertBefore:function(n,t){this.childNodes.push(n),e.i.appendChild(n);},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.i.removeChild(n);}}),P$1(h(P,{context:e.context},n.__v),e.l)):e.l&&e.componentWillUnmount();}function j(n,e){var r=h($,{__v:n,i:e});return r.containerInfo=e,r}(V.prototype=new d).__a=function(n){var t=this,e=F(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),W(t,n,r)):u();};e?e(o):o();}},V.prototype.render=function(n){this.u=null,this.o=new Map;var t=x$1(n.children);n.revealOrder&&"b"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},V.prototype.componentDidUpdate=V.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){W(n,e,t);});};var z="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,B=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,H="undefined"!=typeof document,Z=function(n){return ("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};d.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t){Object.defineProperty(d.prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n});}});});var G=l$1.event;function J(){}function K(){return this.cancelBubble}function Q(){return this.defaultPrevented}l$1.event=function(n){return G&&(n=G(n)),n.persist=J,n.isPropagationStopped=K,n.isDefaultPrevented=Q,n.nativeEvent=n};var nn={configurable:!0,get:function(){return this.class}},tn=l$1.vnode;l$1.vnode=function(n){var t=n.type,e=n.props,u=e;if("string"==typeof t){var o=-1===t.indexOf("-");for(var i in u={},e){var l=e[i];H&&"children"===i&&"noscript"===t||"value"===i&&"defaultValue"in e&&null==l||("defaultValue"===i&&"value"in e&&null==e.value?i="value":"download"===i&&!0===l?l="":/ondoubleclick/i.test(i)?i="ondblclick":/^onchange(textarea|input)/i.test(i+t)&&!Z(e.type)?i="oninput":/^onfocus$/i.test(i)?i="onfocusin":/^onblur$/i.test(i)?i="onfocusout":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i)?i=i.toLowerCase():o&&B.test(i)?i=i.replace(/[A-Z0-9]/g,"-$&").toLowerCase():null===l&&(l=void 0),/^oninput$/i.test(i)&&(i=i.toLowerCase(),u[i]&&(i="oninputCapture")),u[i]=l);}"select"==t&&u.multiple&&Array.isArray(u.value)&&(u.value=x$1(e.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value);})),"select"==t&&null!=u.defaultValue&&(u.value=x$1(e.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value;})),n.props=u,e.class!=e.className&&(nn.enumerable="className"in e,null!=e.className&&(u.class=e.className),Object.defineProperty(u,"className",nn));}n.$$typeof=z,tn&&tn(n);};var en=l$1.__r;l$1.__r=function(n){en&&en(n),n.__c;};
+ function g(n,t){for(var e in t)n[e]=t[e];return n}function C(n,t){for(var e in n)if("__source"!==e&&!(e in t))return !0;for(var r in t)if("__source"!==r&&n[r]!==t[r])return !0;return !1}function w(n){this.props=n;}(w.prototype=new x$1).isPureReactComponent=!0,w.prototype.shouldComponentUpdate=function(n,t){return C(this.props,n)||C(this.state,t)};var x=l$1.__b;l$1.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),x&&x(n);};var T=l$1.__e;l$1.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);T(n,t,e,r);};var I=l$1.unmount;function L(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){"function"==typeof n.__c&&n.__c();}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return L(n,t,e)})),n}function U(n,t,e){return n&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return U(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.insertBefore(n.__e,n.__d),n.__c.__e=!0,n.__c.__P=e)),n}function D(){this.__u=0,this.t=null,this.__b=null;}function F(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function V(){this.u=null,this.o=null;}l$1.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),I&&I(n);},(D.prototype=new x$1).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=F(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l());};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=U(n,n.__c.__P,n.__c.__O);}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate();}},c=!0===t.__h;r.__u++||c||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i);},D.prototype.componentWillUnmount=function(){this.t=[];},D.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),o=this.__v.__k[0].__c;this.__v.__k[0]=L(this.__b,r,o.__O=o.__P);}this.__b=null;}var i=e.__a&&y(_,null,n.fallback);return i&&(i.__h=null),[y(_,null,e.__a?null:n.children),i]};var W=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&("t"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2];}};function P(n){return this.getChildContext=function(){return n.context},n.children}function $(n){var e=this,r=n.i;e.componentWillUnmount=function(){D$1(null,e.l),e.l=null,e.i=null;},e.i&&e.i!==r&&e.componentWillUnmount(),n.__v?(e.l||(e.i=r,e.l={nodeType:1,parentNode:r,childNodes:[],appendChild:function(n){this.childNodes.push(n),e.i.appendChild(n);},insertBefore:function(n,t){this.childNodes.push(n),e.i.appendChild(n);},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.i.removeChild(n);}}),D$1(y(P,{context:e.context},n.__v),e.l)):e.l&&e.componentWillUnmount();}function j(n,e){var r=y($,{__v:n,i:e});return r.containerInfo=e,r}(V.prototype=new x$1).__a=function(n){var t=this,e=F(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),W(t,n,r)):u();};e?e(o):o();}},V.prototype.render=function(n){this.u=null,this.o=new Map;var t=j$2(n.children);n.revealOrder&&"b"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},V.prototype.componentDidUpdate=V.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){W(n,e,t);});};var z="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,B=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,H="undefined"!=typeof document,Z=function(n){return ("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};x$1.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t){Object.defineProperty(x$1.prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n});}});});var G=l$1.event;function J(){}function K(){return this.cancelBubble}function Q(){return this.defaultPrevented}l$1.event=function(n){return G&&(n=G(n)),n.persist=J,n.isPropagationStopped=K,n.isDefaultPrevented=Q,n.nativeEvent=n};var nn={configurable:!0,get:function(){return this.class}},tn=l$1.vnode;l$1.vnode=function(n){var t=n.type,e=n.props,u=e;if("string"==typeof t){var o=-1===t.indexOf("-");for(var i in u={},e){var l=e[i];H&&"children"===i&&"noscript"===t||"value"===i&&"defaultValue"in e&&null==l||("defaultValue"===i&&"value"in e&&null==e.value?i="value":"download"===i&&!0===l?l="":/ondoubleclick/i.test(i)?i="ondblclick":/^onchange(textarea|input)/i.test(i+t)&&!Z(e.type)?i="oninput":/^onfocus$/i.test(i)?i="onfocusin":/^onblur$/i.test(i)?i="onfocusout":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i)?i=i.toLowerCase():o&&B.test(i)?i=i.replace(/[A-Z0-9]/g,"-$&").toLowerCase():null===l&&(l=void 0),/^oninput$/i.test(i)&&(i=i.toLowerCase(),u[i]&&(i="oninputCapture")),u[i]=l);}"select"==t&&u.multiple&&Array.isArray(u.value)&&(u.value=j$2(e.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value);})),"select"==t&&null!=u.defaultValue&&(u.value=j$2(e.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value;})),n.props=u,e.class!=e.className&&(nn.enumerable="className"in e,null!=e.className&&(u.class=e.className),Object.defineProperty(u,"className",nn));}n.$$typeof=z,tn&&tn(n);};var en=l$1.__r;l$1.__r=function(n){en&&en(n),n.__c;};
+
+ const styleTexts = [];
+ const styleEls = new Map();
+ function injectStyles(styleText) {
+ styleTexts.push(styleText);
+ styleEls.forEach((styleEl) => {
+ appendStylesTo(styleEl, styleText);
+ });
+ }
+ function ensureElHasStyles(el) {
+ if (el.isConnected) {
+ registerStylesRoot(el.getRootNode());
+ }
+ }
+ function registerStylesRoot(rootNode) {
+ let styleEl = styleEls.get(rootNode);
+ if (!styleEl || !styleEl.isConnected) {
+ styleEl = rootNode.querySelector('style[data-fullcalendar]');
+ if (!styleEl) {
+ styleEl = document.createElement('style');
+ styleEl.setAttribute('data-fullcalendar', '');
+ const nonce = getNonceValue();
+ if (nonce) {
+ styleEl.nonce = nonce;
+ }
+ const parentEl = rootNode === document ? document.head : rootNode;
+ const insertBefore = rootNode === document
+ ? parentEl.querySelector('script,link[rel=stylesheet],link[as=style],style')
+ : parentEl.firstChild;
+ parentEl.insertBefore(styleEl, insertBefore);
+ }
+ styleEls.set(rootNode, styleEl);
+ hydrateStylesRoot(styleEl);
+ }
+ }
+ function hydrateStylesRoot(styleEl) {
+ for (const styleText of styleTexts) {
+ appendStylesTo(styleEl, styleText);
+ }
+ }
+ function appendStylesTo(styleEl, styleText) {
+ const { sheet } = styleEl;
+ const ruleCnt = sheet.cssRules.length;
+ styleText.split('}').forEach((styleStr, i) => {
+ styleStr = styleStr.trim();
+ if (styleStr) {
+ sheet.insertRule(styleStr + '}', ruleCnt + i);
+ }
+ });
+ }
+ // nonce
+ // -------------------------------------------------------------------------------------------------
+ let queriedNonceValue;
+ function getNonceValue() {
+ if (queriedNonceValue === undefined) {
+ queriedNonceValue = queryNonceValue();
+ }
+ return queriedNonceValue;
+ }
+ /*
+ TODO: discourage meta tag and instead put nonce attribute on placeholder <style> tag
+ */
+ function queryNonceValue() {
+ const metaWithNonce = document.querySelector('meta[name="csp-nonce"]');
+ if (metaWithNonce && metaWithNonce.hasAttribute('content')) {
+ return metaWithNonce.getAttribute('content');
+ }
+ const elWithNonce = document.querySelector('script[nonce]');
+ if (elWithNonce) {
+ return elWithNonce.nonce || '';
+ }
+ return '';
+ }
+ // main
+ // -------------------------------------------------------------------------------------------------
+ if (typeof document !== 'undefined') {
+ registerStylesRoot(document);
+ }
+
+ var css_248z$4 = ":root{--fc-small-font-size:.85em;--fc-page-bg-color:#fff;--fc-neutral-bg-color:hsla(0,0%,82%,.3);--fc-neutral-text-color:grey;--fc-border-color:#ddd;--fc-button-text-color:#fff;--fc-button-bg-color:#2c3e50;--fc-button-border-color:#2c3e50;--fc-button-hover-bg-color:#1e2b37;--fc-button-hover-border-color:#1a252f;--fc-button-active-bg-color:#1a252f;--fc-button-active-border-color:#151e27;--fc-event-bg-color:#3788d8;--fc-event-border-color:#3788d8;--fc-event-text-color:#fff;--fc-event-selected-overlay-color:rgba(0,0,0,.25);--fc-more-link-bg-color:#d0d0d0;--fc-more-link-text-color:inherit;--fc-event-resizer-thickness:8px;--fc-event-resizer-dot-total-width:8px;--fc-event-resizer-dot-border-width:1px;--fc-non-business-color:hsla(0,0%,84%,.3);--fc-bg-event-color:#8fdf82;--fc-bg-event-opacity:0.3;--fc-highlight-color:rgba(188,232,241,.3);--fc-today-bg-color:rgba(255,220,40,.15);--fc-now-indicator-color:red}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc :after,.fc :before{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{padding:0;vertical-align:top}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid var(--fc-border-color)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;font-style:normal;font-weight:400;src:url(\"data:application/x-font-ttf;charset=utf-8;base64,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{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)}";
+ injectStyles(css_248z$4);
function removeElement(el) {
if (el.parentNode) {
@@ -98,11 +179,6 @@ var FullCalendar = (function (exports) {
var _a, _b;
return (_b = (_a = ev.composedPath) === null || _a === void 0 ? void 0 : _a.call(ev)[0]) !== null && _b !== void 0 ? _b : ev.target;
}
- // Shadow DOM consuderations
- // ----------------------------------------------------------------------------------------------------------------
- function getElRoot(el) {
- return el.getRootNode ? el.getRootNode() : document;
- }
// Unique ID for DOM attribute
let guid$1 = 0;
function getUniqueDomId() {
@@ -203,11 +279,11 @@ var FullCalendar = (function (exports) {
/* Selection
----------------------------------------------------------------------------------------------------------------------*/
function preventSelection(el) {
- el.classList.add('fc-unselectable');
+ el.style.userSelect = 'none';
el.addEventListener('selectstart', preventDefault);
}
function allowSelection(el) {
- el.classList.remove('fc-unselectable');
+ el.style.userSelect = '';
el.removeEventListener('selectstart', preventDefault);
}
/* Context Menu
@@ -483,22 +559,24 @@ var FullCalendar = (function (exports) {
let dest = {};
if (complexPropsMap) {
for (let name in complexPropsMap) {
- let complexObjs = [];
- // collect the trailing object values, stopping when a non-object is discovered
- for (let i = propObjs.length - 1; i >= 0; i -= 1) {
- let val = propObjs[i][name];
- if (typeof val === 'object' && val) { // non-null object
- complexObjs.unshift(val);
+ if (complexPropsMap[name] === isMaybeObjectsEqual) { // implies that it's object-mergeable
+ let complexObjs = [];
+ // collect the trailing object values, stopping when a non-object is discovered
+ for (let i = propObjs.length - 1; i >= 0; i -= 1) {
+ let val = propObjs[i][name];
+ if (typeof val === 'object' && val) { // non-null object
+ complexObjs.unshift(val);
+ }
+ else if (val !== undefined) {
+ dest[name] = val; // if there were no objects, this value will be used
+ break;
+ }
}
- else if (val !== undefined) {
- dest[name] = val; // if there were no objects, this value will be used
- break;
+ // if the trailing values were objects, use the merged value
+ if (complexObjs.length) {
+ dest[name] = mergeProps(complexObjs);
}
}
- // if the trailing values were objects, use the merged value
- if (complexObjs.length) {
- dest[name] = mergeProps(complexObjs);
- }
}
}
// copy values into the destination, going from last to first
@@ -636,6 +714,38 @@ var FullCalendar = (function (exports) {
return res;
}
+ // TODO: new util arrayify?
+ function removeExact(array, exactVal) {
+ let removeCnt = 0;
+ let i = 0;
+ while (i < array.length) {
+ if (array[i] === exactVal) {
+ array.splice(i, 1);
+ removeCnt += 1;
+ }
+ else {
+ i += 1;
+ }
+ }
+ return removeCnt;
+ }
+ function isArraysEqual(a0, a1, equalityFunc) {
+ if (a0 === a1) {
+ return true;
+ }
+ let len = a0.length;
+ let i;
+ if (len !== a1.length) { // not array? or not same length?
+ return false;
+ }
+ for (i = 0; i < len; i += 1) {
+ if (!(equalityFunc ? equalityFunc(a0[i], a1[i]) : a0[i] === a1[i])) {
+ return false;
+ }
+ }
+ return true;
+ }
+
const DAY_IDS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
// Adding
function addWeeks(m, n) {
@@ -826,6 +936,9 @@ var FullCalendar = (function (exports) {
function formatDayString(marker) {
return marker.toISOString().replace(/T.*$/, '');
}
+ function formatIsoMonthStr(marker) {
+ return marker.toISOString().match(/^\d{4}-\d{2}/)[0];
+ }
// TODO: use Date::toISOString and use everything after the T?
function formatIsoTimeString(marker) {
return padStart(marker.getUTCHours(), 2) + ':' +
@@ -843,38 +956,6 @@ var FullCalendar = (function (exports) {
return `GMT${sign}${hours}${mins ? `:${padStart(mins, 2)}` : ''}`;
}
- // TODO: new util arrayify?
- function removeExact(array, exactVal) {
- let removeCnt = 0;
- let i = 0;
- while (i < array.length) {
- if (array[i] === exactVal) {
- array.splice(i, 1);
- removeCnt += 1;
- }
- else {
- i += 1;
- }
- }
- return removeCnt;
- }
- function isArraysEqual(a0, a1, equalityFunc) {
- if (a0 === a1) {
- return true;
- }
- let len = a0.length;
- let i;
- if (len !== a1.length) { // not array? or not same length?
- return false;
- }
- for (i = 0; i < len; i += 1) {
- if (!(equalityFunc ? equalityFunc(a0[i], a1[i]) : a0[i] === a1[i])) {
- return false;
- }
- }
- return true;
- }
-
function memoize(workerFunc, resEquality, teardownFunc) {
let currentArgs;
let currentRes;
@@ -1468,7 +1549,6 @@ var FullCalendar = (function (exports) {
dateAlignment: String,
dateIncrement: createDuration,
hiddenDays: identity,
- monthMode: Boolean,
fixedWeekCount: Boolean,
validRange: identity,
visibleRange: identity,
@@ -1486,6 +1566,7 @@ var FullCalendar = (function (exports) {
moreLinkContent: identity,
moreLinkDidMount: identity,
moreLinkWillUnmount: identity,
+ monthStartFormat: createFormatter,
// for connectors
// (can't be part of plugin system b/c must be provided at runtime)
handleCustomRendering: identity,
@@ -1545,6 +1626,7 @@ var FullCalendar = (function (exports) {
eventMinHeight: 15,
eventMinWidth: 30,
eventShortHeight: 30,
+ monthStartFormat: { month: 'long', day: 'numeric' },
};
// calendar listeners
// ------------------
@@ -1588,6 +1670,10 @@ var FullCalendar = (function (exports) {
buttonHints: isMaybeObjectsEqual,
buttonIcons: isMaybeObjectsEqual,
dateIncrement: isMaybeObjectsEqual,
+ plugins: isMaybeArraysEqual,
+ events: isMaybeArraysEqual,
+ eventSources: isMaybeArraysEqual,
+ ['resources']: isMaybeArraysEqual,
};
function isMaybeObjectsEqual(a, b) {
if (typeof a === 'object' && typeof b === 'object' && a && b) { // both non-null objects
@@ -1595,6 +1681,12 @@ var FullCalendar = (function (exports) {
}
return a === b;
}
+ function isMaybeArraysEqual(a, b) {
+ if (Array.isArray(a) && Array.isArray(b)) {
+ return isArraysEqual(a, b);
+ }
+ return a === b;
+ }
// view-specific options
// ---------------------
const VIEW_OPTION_REFINERS = {
@@ -1710,11 +1802,11 @@ var FullCalendar = (function (exports) {
return markers;
}
- function parseEvents(rawEvents, eventSource, context, allowOpenRange) {
+ function parseEvents(rawEvents, eventSource, context, allowOpenRange, defIdMap, instanceIdMap) {
let eventStore = createEmptyEventStore();
let eventRefiners = buildEventRefiners(context);
for (let rawEvent of rawEvents) {
- let tuple = parseEvent(rawEvent, eventSource, context, allowOpenRange, eventRefiners);
+ let tuple = parseEvent(rawEvent, eventSource, context, allowOpenRange, eventRefiners, defIdMap, instanceIdMap);
if (tuple) {
eventTupleToStore(tuple, eventStore);
}
@@ -1886,12 +1978,12 @@ var FullCalendar = (function (exports) {
allDay: Boolean,
};
const EVENT_REFINERS = Object.assign(Object.assign(Object.assign({}, EVENT_NON_DATE_REFINERS), EVENT_DATE_REFINERS), { extendedProps: identity });
- function parseEvent(raw, eventSource, context, allowOpenRange, refiners = buildEventRefiners(context)) {
+ function parseEvent(raw, eventSource, context, allowOpenRange, refiners = buildEventRefiners(context), defIdMap, instanceIdMap) {
let { refined, extra } = refineEventDef(raw, context, refiners);
let defaultAllDay = computeIsDefaultAllDay(eventSource, context);
let recurringRes = parseRecurring(refined, defaultAllDay, context.dateEnv, context.pluginHooks.recurringTypes);
if (recurringRes) {
- let def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', recurringRes.allDay, Boolean(recurringRes.duration), context);
+ let def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', recurringRes.allDay, Boolean(recurringRes.duration), context, defIdMap);
def.recurringDef = {
typeId: recurringRes.typeId,
typeData: recurringRes.typeData,
@@ -1901,8 +1993,11 @@ var FullCalendar = (function (exports) {
}
let singleRes = parseSingle(refined, defaultAllDay, context, allowOpenRange);
if (singleRes) {
- let def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', singleRes.allDay, singleRes.hasEnd, context);
+ let def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', singleRes.allDay, singleRes.hasEnd, context, defIdMap);
let instance = createEventInstance(def.defId, singleRes.range, singleRes.forcedStartTzo, singleRes.forcedEndTzo);
+ if (instanceIdMap && def.publicId && instanceIdMap[def.publicId]) {
+ instance.instanceId = instanceIdMap[def.publicId];
+ }
return { def, instance };
}
return null;
@@ -1917,14 +2012,14 @@ var FullCalendar = (function (exports) {
Will NOT populate extendedProps with the leftover properties.
Will NOT populate date-related props.
*/
- function parseEventDef(refined, extra, sourceId, allDay, hasEnd, context) {
+ function parseEventDef(refined, extra, sourceId, allDay, hasEnd, context, defIdMap) {
let def = {
title: refined.title || '',
groupId: refined.groupId || '',
publicId: refined.id || '',
url: refined.url || '',
recurringDef: null,
- defId: guid(),
+ defId: ((defIdMap && refined.id) ? defIdMap[refined.id] : '') || guid(),
sourceId,
allDay,
hasEnd,
@@ -2943,19 +3038,19 @@ var FullCalendar = (function (exports) {
callbackQ.push(callback);
}
l$1.debounceRendering = execCallbackSync;
- P$1(h(FakeComponent, {}), document.createElement('div'));
+ D$1(y(FakeComponent, {}), document.createElement('div'));
while (callbackQ.length) {
callbackQ.shift()();
}
l$1.debounceRendering = oldDebounceRendering;
}
- class FakeComponent extends d {
- render() { return h('div', {}); }
+ class FakeComponent extends x$1 {
+ render() { return y('div', {}); }
componentDidMount() { this.setState({}); }
}
// TODO: use preact/compat instead?
function createContext(defaultValue) {
- let ContextType = B$1(defaultValue);
+ let ContextType = G$1(defaultValue);
let origProvider = ContextType.Provider;
ContextType.Provider = function () {
let isNew = !this.getChildContext;
@@ -3050,7 +3145,7 @@ var FullCalendar = (function (exports) {
}
/* eslint max-classes-per-file: off */
- class PureComponent extends d {
+ class PureComponent extends x$1 {
shouldComponentUpdate(nextProps, nextState) {
if (this.debug) {
// eslint-disable-next-line no-console
@@ -3206,7 +3301,12 @@ var FullCalendar = (function (exports) {
// it's invalid if the originally requested date is not contained,
// or if the range is completely outside of the valid range.
isValid = rangesIntersect(currentInfo.range, validRange);
+ // HACK: constrain to render-range so `currentDate` is more useful to view rendering
+ if (!rangeContainsMarker(renderRange, currentDate)) {
+ currentDate = renderRange.start;
+ }
return {
+ currentDate,
// constraint for where prev/next operations can go and where events can be dragged/resized to.
// an object with optional start and end properties.
validRange,
@@ -3892,7 +3992,9 @@ var FullCalendar = (function (exports) {
let def = this._def;
let { ui } = def;
let { startStr, endStr } = this;
- let res = {};
+ let res = {
+ allDay: def.allDay,
+ };
if (def.title) {
res.title = def.title;
}
@@ -4454,6 +4556,9 @@ var FullCalendar = (function (exports) {
getMonth(marker) {
return this.calendarSystem.getMarkerMonth(marker);
}
+ getDay(marker) {
+ return this.calendarSystem.getMarkerDay(marker);
+ }
// Adding / Subtracting
add(marker, dur) {
let a = this.calendarSystem.markerToArray(marker);
@@ -5067,8 +5172,8 @@ var FullCalendar = (function (exports) {
constructor() {
super(...arguments);
this.id = guid();
- this.currentDomNodes = [];
this.queuedDomNodes = [];
+ this.currentDomNodes = [];
this.handleEl = (el) => {
if (this.props.elRef) {
setRef(this.props.elRef, el);
@@ -5078,35 +5183,46 @@ var FullCalendar = (function (exports) {
render() {
const { props, context } = this;
const { options } = context;
- const { generator, renderProps } = props;
+ const { customGenerator, defaultGenerator, renderProps } = props;
const attrs = buildElAttrs(props);
+ let useDefault = false;
let innerContent;
let queuedDomNodes = [];
- if (hasCustomRenderingHandler(props.generatorName, options)) {
- if (options.customRenderingReplacesEl) {
- delete attrs.elRef; // because handleEl will be used
+ let currentGeneratorMeta;
+ if (customGenerator != null) {
+ const customGeneratorRes = typeof customGenerator === 'function' ?
+ customGenerator(renderProps, y) :
+ customGenerator;
+ if (customGeneratorRes === true) {
+ useDefault = true;
}
- }
- else {
- const customContent = typeof generator === 'function' ?
- generator(renderProps, h) :
- generator;
- if (typeof customContent === 'string' ||
- i$1(customContent) ||
- Array.isArray(customContent)) {
- innerContent = customContent;
- }
- else if (typeof customContent === 'object') {
- if ('html' in customContent) {
- attrs.dangerouslySetInnerHTML = { __html: customContent.html };
+ else {
+ const isObject = customGeneratorRes && typeof customGeneratorRes === 'object'; // non-null
+ if (isObject && ('html' in customGeneratorRes)) {
+ attrs.dangerouslySetInnerHTML = { __html: customGeneratorRes.html };
}
- else if ('domNodes' in customContent) {
- queuedDomNodes = Array.prototype.slice.call(customContent.domNodes);
+ else if (isObject && ('domNodes' in customGeneratorRes)) {
+ queuedDomNodes = Array.prototype.slice.call(customGeneratorRes.domNodes);
+ }
+ else if (!isObject && typeof customGeneratorRes !== 'function') {
+ // primitive value (like string or number)
+ innerContent = customGeneratorRes;
+ }
+ else {
+ // an exotic object for handleCustomRendering
+ currentGeneratorMeta = customGeneratorRes;
}
}
}
+ else {
+ useDefault = !hasCustomRenderingHandler(props.generatorName, options);
+ }
+ if (useDefault && defaultGenerator) {
+ innerContent = defaultGenerator(renderProps);
+ }
this.queuedDomNodes = queuedDomNodes;
- return h(props.elTag, attrs, innerContent);
+ this.currentGeneratorMeta = currentGeneratorMeta;
+ return y(props.elTag, attrs, innerContent);
}
componentDidMount() {
this.applyQueueudDomNodes();
@@ -5120,12 +5236,14 @@ var FullCalendar = (function (exports) {
this.triggerCustomRendering(false); // TODO: different API for removal?
}
triggerCustomRendering(isActive) {
+ var _a;
const { props, context } = this;
const { handleCustomRendering, customRenderingMetaMap } = context.options;
if (handleCustomRendering) {
- const customRenderingMeta = customRenderingMetaMap === null || customRenderingMetaMap === void 0 ? void 0 : customRenderingMetaMap[props.generatorName];
- if (customRenderingMeta) {
- handleCustomRendering(Object.assign({ id: this.id, isActive, containerEl: this.base, reportNewContainerEl: this.handleEl, generatorMeta: customRenderingMeta }, props));
+ const generatorMeta = (_a = this.currentGeneratorMeta) !== null && _a !== void 0 ? _a : customRenderingMetaMap === null || customRenderingMetaMap === void 0 ? void 0 : customRenderingMetaMap[props.generatorName];
+ if (generatorMeta) {
+ handleCustomRendering(Object.assign(Object.assign({ id: this.id, isActive, containerEl: this.base, reportNewContainerEl: this.handleEl, // for customRenderingReplacesEl
+ generatorMeta }, props), { elClasses: (props.elClasses || []).filter(isTruthy) }));
}
}
}
@@ -5148,6 +5266,9 @@ var FullCalendar = (function (exports) {
renderProps: isPropsEqual,
});
// Util
+ /*
+ Does UI-framework provide custom way of rendering?
+ */
function hasCustomRenderingHandler(generatorName, options) {
var _a;
return Boolean(options.handleCustomRendering &&
@@ -5168,13 +5289,22 @@ var FullCalendar = (function (exports) {
}
return attrs;
}
+ function isTruthy(val) {
+ return Boolean(val);
+ }
const RenderId = createContext(0);
- class ContentContainer extends d {
+ class ContentContainer extends x$1 {
constructor() {
super(...arguments);
this.InnerContent = InnerContentInjector.bind(undefined, this);
+ this.handleRootEl = (el) => {
+ this.rootEl = el;
+ if (this.props.elRef) {
+ setRef(this.props.elRef, el);
+ }
+ };
}
render() {
const { props } = this;
@@ -5183,29 +5313,29 @@ var FullCalendar = (function (exports) {
const elAttrs = buildElAttrs(props, generatedClassNames);
const children = props.children(this.InnerContent, props.renderProps, elAttrs);
if (props.elTag) {
- return h(props.elTag, elAttrs, children);
+ return y(props.elTag, elAttrs, children);
}
else {
return children;
}
}
else {
- return h((ContentInjector), Object.assign(Object.assign({}, props), { elTag: props.elTag || 'div', elClasses: (props.elClasses || []).concat(generatedClassNames), renderId: this.context }));
+ return y((ContentInjector), Object.assign(Object.assign({}, props), { elRef: this.handleRootEl, elTag: props.elTag || 'div', elClasses: (props.elClasses || []).concat(generatedClassNames), renderId: this.context }));
}
}
componentDidMount() {
var _a, _b;
- (_b = (_a = this.props).didMount) === null || _b === void 0 ? void 0 : _b.call(_a, Object.assign(Object.assign({}, this.props.renderProps), { el: this.base }));
+ (_b = (_a = this.props).didMount) === null || _b === void 0 ? void 0 : _b.call(_a, Object.assign(Object.assign({}, this.props.renderProps), { el: this.rootEl || this.base }));
}
componentWillUnmount() {
var _a, _b;
- (_b = (_a = this.props).willUnmount) === null || _b === void 0 ? void 0 : _b.call(_a, Object.assign(Object.assign({}, this.props.renderProps), { el: this.base }));
+ (_b = (_a = this.props).willUnmount) === null || _b === void 0 ? void 0 : _b.call(_a, Object.assign(Object.assign({}, this.props.renderProps), { el: this.rootEl || this.base }));
}
}
ContentContainer.contextType = RenderId;
function InnerContentInjector(containerComponent, props) {
const parentProps = containerComponent.props;
- return h((ContentInjector), Object.assign({ renderProps: parentProps.renderProps, generatorName: parentProps.generatorName, generator: parentProps.generator, renderId: containerComponent.context }, props));
+ return y((ContentInjector), Object.assign({ renderProps: parentProps.renderProps, generatorName: parentProps.generatorName, customGenerator: parentProps.customGenerator, defaultGenerator: parentProps.defaultGenerator, renderId: containerComponent.context }, props));
}
// Utils
function generateClassNames(classNameGenerator, renderProps) {
@@ -5229,7 +5359,7 @@ var FullCalendar = (function (exports) {
? buildNavLinkAttrs(this.context, date)
: {};
let renderProps = Object.assign(Object.assign(Object.assign({ date: dateEnv.toDate(date), view: viewApi }, props.extraRenderProps), { text }), dayMeta);
- return (h(ContentContainer, { elTag: "th", elClasses: classNames, elAttrs: Object.assign({ role: 'columnheader', colSpan: props.colSpan, 'data-date': !dayMeta.isDisabled ? formatDayString(date) : undefined }, props.extraDataAttrs), renderProps: renderProps, generatorName: "dayHeaderContent", generator: options.dayHeaderContent || renderInner$1, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContainer) => (h("div", { className: "fc-scrollgrid-sync-inner" }, !dayMeta.isDisabled && (h(InnerContainer, { elTag: "a", elAttrs: navLinkAttrs, elClasses: [
+ return (y(ContentContainer, { elTag: "th", elClasses: classNames, elAttrs: Object.assign({ role: 'columnheader', colSpan: props.colSpan, 'data-date': !dayMeta.isDisabled ? formatDayString(date) : undefined }, props.extraDataAttrs), renderProps: renderProps, generatorName: "dayHeaderContent", customGenerator: options.dayHeaderContent, defaultGenerator: renderInner$1, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContainer) => (y("div", { className: "fc-scrollgrid-sync-inner" }, !dayMeta.isDisabled && (y(InnerContainer, { elTag: "a", elAttrs: navLinkAttrs, elClasses: [
'fc-col-header-cell-cushion',
props.isSticky && 'fc-sticky',
] }))))));
@@ -5253,12 +5383,12 @@ var FullCalendar = (function (exports) {
let text = dateEnv.format(date, props.dayHeaderFormat);
let renderProps = Object.assign(Object.assign(Object.assign(Object.assign({ // TODO: make this public?
date }, dateMeta), { view: viewApi }), props.extraRenderProps), { text });
- return (h(ContentContainer, { elTag: "th", elClasses: [
+ return (y(ContentContainer, { elTag: "th", elClasses: [
CLASS_NAME,
...getDayClassNames(dateMeta, theme),
...(props.extraClassNames || []),
- ], elAttrs: Object.assign({ role: 'columnheader', colSpan: props.colSpan }, props.extraDataAttrs), renderProps: renderProps, generatorName: "dayHeaderContent", generator: options.dayHeaderContent || renderInner$1, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContent) => (h("div", { className: "fc-scrollgrid-sync-inner" },
- h(InnerContent, { elTag: "a", elClasses: [
+ ], elAttrs: Object.assign({ role: 'columnheader', colSpan: props.colSpan }, props.extraDataAttrs), renderProps: renderProps, generatorName: "dayHeaderContent", customGenerator: options.dayHeaderContent, defaultGenerator: renderInner$1, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContent) => (y("div", { className: "fc-scrollgrid-sync-inner" },
+ y(InnerContent, { elTag: "a", elClasses: [
'fc-col-header-cell-cushion',
props.isSticky && 'fc-sticky',
], elAttrs: {
@@ -5267,7 +5397,7 @@ var FullCalendar = (function (exports) {
}
}
- class NowTimer extends d {
+ class NowTimer extends x$1 {
constructor(props, context) {
super(props, context);
this.initialNowDate = getNow(context.options.now, context.dateEnv);
@@ -5335,9 +5465,9 @@ var FullCalendar = (function (exports) {
let { context } = this;
let { dates, dateProfile, datesRepDistinctDays, renderIntro } = this.props;
let dayHeaderFormat = this.createDayHeaderFormatter(context.options.dayHeaderFormat, datesRepDistinctDays, dates.length);
- return (h(NowTimer, { unit: "day" }, (nowDate, todayRange) => (h("tr", { role: "row" },
+ return (y(NowTimer, { unit: "day" }, (nowDate, todayRange) => (y("tr", { role: "row" },
renderIntro && renderIntro('day'),
- dates.map((date) => (datesRepDistinctDays ? (h(TableDateCell, { key: date.toISOString(), date: date, dateProfile: dateProfile, todayRange: todayRange, colCnt: dates.length, dayHeaderFormat: dayHeaderFormat })) : (h(TableDowCell, { key: date.getUTCDay(), dow: date.getUTCDay(), dayHeaderFormat: dayHeaderFormat }))))))));
+ dates.map((date) => (datesRepDistinctDays ? (y(TableDateCell, { key: date.toISOString(), date: date, dateProfile: dateProfile, todayRange: todayRange, colCnt: dates.length, dayHeaderFormat: dayHeaderFormat })) : (y(TableDowCell, { key: date.getUTCDay(), dow: date.getUTCDay(), dayHeaderFormat: dayHeaderFormat }))))))));
}
}
function createDayHeaderFormatter(explicitFormat, datesRepDistinctDays, dateCnt) {
@@ -5490,7 +5620,7 @@ var FullCalendar = (function (exports) {
let { eventUiBases } = props;
let eventSegs = this.sliceEventStore(props.eventStore, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs);
return {
- dateSelectionSegs: this.sliceDateSelection(props.dateSelection, eventUiBases, context, ...extraArgs),
+ dateSelectionSegs: this.sliceDateSelection(props.dateSelection, dateProfile, nextDayThreshold, eventUiBases, context, ...extraArgs),
businessHourSegs: this.sliceBusinessHours(props.businessHours, dateProfile, nextDayThreshold, context, ...extraArgs),
fgEventSegs: eventSegs.fg,
bgEventSegs: eventSegs.bg,
@@ -5500,9 +5630,9 @@ var FullCalendar = (function (exports) {
}; // TODO: give interactionSegs?
}
sliceNowDate(// does not memoize
- date, context, ...extraArgs) {
+ date, dateProfile, nextDayThreshold, context, ...extraArgs) {
return this._sliceDateSpan({ range: { start: date, end: addMs(date, 1) }, allDay: false }, // add 1 ms, protect against null range
- {}, context, ...extraArgs);
+ dateProfile, nextDayThreshold, {}, context, ...extraArgs);
}
_sliceBusinessHours(businessHours, dateProfile, nextDayThreshold, context, ...extraArgs) {
if (!businessHours) {
@@ -5531,16 +5661,22 @@ var FullCalendar = (function (exports) {
isEvent: interaction.isEvent,
};
}
- _sliceDateSpan(dateSpan, eventUiBases, context, ...extraArgs) {
+ _sliceDateSpan(dateSpan, dateProfile, nextDayThreshold, eventUiBases, context, ...extraArgs) {
if (!dateSpan) {
return [];
}
- let eventRange = fabricateEventRange(dateSpan, eventUiBases, context);
- let segs = this.sliceRange(dateSpan.range, ...extraArgs);
- for (let seg of segs) {
- seg.eventRange = eventRange;
+ let activeRange = computeActiveRange(dateProfile, Boolean(nextDayThreshold));
+ let activeDateSpanRange = intersectRanges(dateSpan.range, activeRange);
+ if (activeDateSpanRange) {
+ dateSpan = Object.assign(Object.assign({}, dateSpan), { range: activeDateSpanRange });
+ let eventRange = fabricateEventRange(dateSpan, eventUiBases, context);
+ let segs = this.sliceRange(dateSpan.range, ...extraArgs);
+ for (let seg of segs) {
+ seg.eventRange = eventRange;
+ }
+ return segs;
}
- return segs;
+ return [];
}
/*
"complete" seg means it has component and eventRange
@@ -5593,6 +5729,8 @@ var FullCalendar = (function (exports) {
switch (action.type) {
case 'RECEIVE_EVENTS': // raw
return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, context);
+ case 'RESET_RAW_EVENTS':
+ return resetRawEvents(eventStore, eventSources[action.sourceId], action.rawEvents, dateProfile.activeRange, context);
case 'ADD_EVENTS': // already parsed, but not expanded
return addEvent(eventStore, action.eventStore, // new ones
dateProfile ? dateProfile.activeRange : null, context);
@@ -5633,6 +5771,11 @@ var FullCalendar = (function (exports) {
}
return eventStore;
}
+ function resetRawEvents(existingEventStore, eventSource, rawEvents, activeRange, context) {
+ const { defIdMap, instanceIdMap } = buildPublicIdMaps(existingEventStore);
+ let newEventStore = parseEvents(transformRawEvents(rawEvents, eventSource, context), eventSource, context, false, defIdMap, instanceIdMap);
+ return expandRecurring(newEventStore, activeRange, context);
+ }
function transformRawEvents(rawEvents, eventSource, context) {
let calEachTransform = context.options.eventDataTransform;
let sourceEachTransform = eventSource ? eventSource.eventDataTransform : null;
@@ -5673,7 +5816,7 @@ var FullCalendar = (function (exports) {
let { defs } = eventStore;
let instances = mapHash(eventStore.instances, (instance) => {
let def = defs[instance.defId];
- if (def.allDay || def.recurringDef) {
+ if (def.allDay) {
return instance; // isn't dependent on timezone
}
return Object.assign(Object.assign({}, instance), { range: {
@@ -5693,6 +5836,27 @@ var FullCalendar = (function (exports) {
instances: filterHash(eventStore.instances, (instance) => !removals[instance.instanceId]),
};
}
+ function buildPublicIdMaps(eventStore) {
+ const { defs, instances } = eventStore;
+ const defIdMap = {};
+ const instanceIdMap = {};
+ for (let defId in defs) {
+ const def = defs[defId];
+ const { publicId } = def;
+ if (publicId) {
+ defIdMap[publicId] = defId;
+ }
+ }
+ for (let instanceId in instances) {
+ const instance = instances[instanceId];
+ const def = defs[instance.defId];
+ const { publicId } = def;
+ if (publicId) {
+ instanceIdMap[publicId] = instanceId;
+ }
+ }
+ return { defIdMap, instanceIdMap };
+ }
// high-level segmenting-aware tester functions
// ------------------------------------------------------------------------------------------------------------------------
@@ -6008,7 +6172,7 @@ var FullCalendar = (function (exports) {
className.push('fc-scroller-liquid');
}
}
- return (h("div", { ref: this.handleEl, className: className.join(' '), style: {
+ return (y("div", { ref: this.handleEl, className: className.join(' '), style: {
overflowX: props.overflowX,
overflowY: props.overflowY,
left: (isAbsolute && -(props.overcomeLeft || 0)) || '',
@@ -6149,7 +6313,7 @@ var FullCalendar = (function (exports) {
let { expandRows } = arg;
let content = typeof chunkConfig.content === 'function' ?
chunkConfig.content(arg) :
- h('table', {
+ y('table', {
role: 'presentation',
className: [
chunkConfig.tableClassName,
@@ -6160,7 +6324,7 @@ var FullCalendar = (function (exports) {
width: arg.clientWidth,
height: expandRows ? arg.clientHeight : '', // css `height` on a <table> serves as a min-height
},
- }, arg.tableColGroupNode, h(isHeader ? 'thead' : 'tbody', {
+ }, arg.tableColGroupNode, y(isHeader ? 'thead' : 'tbody', {
role: 'presentation',
}, typeof chunkConfig.rowContent === 'function'
? chunkConfig.rowContent(arg)
@@ -6180,13 +6344,13 @@ var FullCalendar = (function (exports) {
for (let colProps of cols) {
let span = colProps.span || 1;
for (let i = 0; i < span; i += 1) {
- colNodes.push(h("col", { style: {
+ colNodes.push(y("col", { style: {
width: colProps.width === 'shrink' ? sanitizeShrinkWidth(shrinkWidth) : (colProps.width || ''),
minWidth: colProps.minWidth || '',
} }));
}
}
- return h('colgroup', {}, ...colNodes);
+ return y('colgroup', {}, ...colNodes);
}
function sanitizeShrinkWidth(shrinkWidth) {
/* why 4? if we do 0, it will kill any border, which are needed for computeSmallestCellWidth
@@ -6226,7 +6390,7 @@ var FullCalendar = (function (exports) {
return classNames;
}
function renderScrollShim(arg) {
- return (h("div", { className: "fc-scrollgrid-sticky-shim", style: {
+ return (y("div", { className: "fc-scrollgrid-sticky-shim", style: {
width: arg.clientWidth,
minWidth: arg.tableMinWidth,
} }));
@@ -6299,17 +6463,17 @@ var FullCalendar = (function (exports) {
// if so, use a simpler dom structure, jam everything into a lone tbody.
let isBuggy = !getCanVGrowWithinCell();
const roleAttrs = { role: 'rowgroup' };
- return h('table', {
+ return y('table', {
role: 'grid',
className: classNames.join(' '),
style: { height: props.height },
- }, Boolean(!isBuggy && headSectionNodes.length) && h('thead', roleAttrs, ...headSectionNodes), Boolean(!isBuggy && bodySectionNodes.length) && h('tbody', roleAttrs, ...bodySectionNodes), Boolean(!isBuggy && footSectionNodes.length) && h('tfoot', roleAttrs, ...footSectionNodes), isBuggy && h('tbody', roleAttrs, ...headSectionNodes, ...bodySectionNodes, ...footSectionNodes));
+ }, Boolean(!isBuggy && headSectionNodes.length) && y('thead', roleAttrs, ...headSectionNodes), Boolean(!isBuggy && bodySectionNodes.length) && y('tbody', roleAttrs, ...bodySectionNodes), Boolean(!isBuggy && footSectionNodes.length) && y('tfoot', roleAttrs, ...footSectionNodes), isBuggy && y('tbody', roleAttrs, ...headSectionNodes, ...bodySectionNodes, ...footSectionNodes));
}
renderSection(sectionConfig, microColGroupNode, isHeader) {
if ('outerContent' in sectionConfig) {
- return (h(p, { key: sectionConfig.key }, sectionConfig.outerContent));
+ return (y(_, { key: sectionConfig.key }, sectionConfig.outerContent));
}
- return (h("tr", { key: sectionConfig.key, role: "presentation", className: getSectionClassNames(sectionConfig, this.props.liquid).join(' ') }, this.renderChunkTd(sectionConfig, microColGroupNode, sectionConfig.chunk, isHeader)));
+ return (y("tr", { key: sectionConfig.key, role: "presentation", className: getSectionClassNames(sectionConfig, this.props.liquid).join(' ') }, this.renderChunkTd(sectionConfig, microColGroupNode, sectionConfig.chunk, isHeader)));
}
renderChunkTd(sectionConfig, microColGroupNode, chunkConfig, isHeader) {
if ('outerContent' in chunkConfig) {
@@ -6336,11 +6500,11 @@ var FullCalendar = (function (exports) {
rowSyncHeights: [],
reportRowHeightChange: () => { },
}, isHeader);
- return h(isHeader ? 'th' : 'td', {
+ return y(isHeader ? 'th' : 'td', {
ref: chunkConfig.elRef,
role: 'presentation',
- }, h("div", { className: `fc-scroller-harness${isLiquid ? ' fc-scroller-harness-liquid' : ''}` },
- h(Scroller, { ref: this.scrollerRefs.createRef(sectionKey), elRef: this.scrollerElRefs.createRef(sectionKey), overflowY: overflowY, overflowX: !props.liquid ? 'visible' : 'hidden' /* natural height? */, maxHeight: sectionConfig.maxHeight, liquid: isLiquid, liquidIsAbsolute // because its within a harness
+ }, y("div", { className: `fc-scroller-harness${isLiquid ? ' fc-scroller-harness-liquid' : ''}` },
+ y(Scroller, { ref: this.scrollerRefs.createRef(sectionKey), elRef: this.scrollerElRefs.createRef(sectionKey), overflowY: overflowY, overflowX: !props.liquid ? 'visible' : 'hidden' /* natural height? */, maxHeight: sectionConfig.maxHeight, liquid: isLiquid, liquidIsAbsolute // because its within a harness
: true }, content)));
}
_handleScrollerEl(scrollerEl, key) {
@@ -6441,11 +6605,11 @@ var FullCalendar = (function (exports) {
isDragging: Boolean(props.isDragging),
isResizing: Boolean(props.isResizing),
};
- return (h(ContentContainer, Object.assign({}, props /* contains children */, { elRef: this.handleEl, elClasses: [
+ return (y(ContentContainer, Object.assign({}, props /* contains children */, { elRef: this.handleEl, elClasses: [
...getEventClassNames(renderProps),
...seg.eventRange.ui.classNames,
...(props.elClasses || []),
- ], renderProps: renderProps, generatorName: "eventContent", generator: options.eventContent || props.defaultGenerator, classNameGenerator: options.eventClassNames, didMount: options.eventDidMount, willUnmount: options.eventWillUnmount })));
+ ], renderProps: renderProps, generatorName: "eventContent", customGenerator: options.eventContent, defaultGenerator: props.defaultGenerator, classNameGenerator: options.eventClassNames, didMount: options.eventDidMount, willUnmount: options.eventWillUnmount })));
}
componentDidUpdate(prevProps) {
if (this.el && this.props.seg !== prevProps.seg) {
@@ -6463,30 +6627,30 @@ var FullCalendar = (function (exports) {
let { ui } = seg.eventRange;
let timeFormat = options.eventTimeFormat || props.defaultTimeFormat;
let timeText = buildSegTimeText(seg, timeFormat, context, props.defaultDisplayEventTime, props.defaultDisplayEventEnd);
- return (h(EventContainer, Object.assign({}, props /* includes elRef */, { elTag: "a", elStyle: {
+ return (y(EventContainer, Object.assign({}, props /* includes elRef */, { elTag: "a", elStyle: {
borderColor: ui.borderColor,
backgroundColor: ui.backgroundColor,
- }, elAttrs: getSegAnchorAttrs(seg, context), defaultGenerator: renderInnerContent$1$1, timeText: timeText }), (InnerContent, eventContentArg) => (h(p, null,
- h(InnerContent, { elTag: "div", elClasses: ['fc-event-main'], elStyle: { color: eventContentArg.textColor } }),
- Boolean(eventContentArg.isStartResizable) && (h("div", { className: "fc-event-resizer fc-event-resizer-start" })),
- Boolean(eventContentArg.isEndResizable) && (h("div", { className: "fc-event-resizer fc-event-resizer-end" }))))));
+ }, elAttrs: getSegAnchorAttrs(seg, context), defaultGenerator: renderInnerContent$1$1, timeText: timeText }), (InnerContent, eventContentArg) => (y(_, null,
+ y(InnerContent, { elTag: "div", elClasses: ['fc-event-main'], elStyle: { color: eventContentArg.textColor } }),
+ Boolean(eventContentArg.isStartResizable) && (y("div", { className: "fc-event-resizer fc-event-resizer-start" })),
+ Boolean(eventContentArg.isEndResizable) && (y("div", { className: "fc-event-resizer fc-event-resizer-end" }))))));
}
}
function renderInnerContent$1$1(innerProps) {
- return (h("div", { className: "fc-event-main-frame" },
- innerProps.timeText && (h("div", { className: "fc-event-time" }, innerProps.timeText)),
- h("div", { className: "fc-event-title-container" },
- h("div", { className: "fc-event-title fc-sticky" }, innerProps.event.title || h(p, null, "\u00A0")))));
+ return (y("div", { className: "fc-event-main-frame" },
+ innerProps.timeText && (y("div", { className: "fc-event-time" }, innerProps.timeText)),
+ y("div", { className: "fc-event-title-container" },
+ y("div", { className: "fc-event-title fc-sticky" }, innerProps.event.title || y(_, null, "\u00A0")))));
}
- const NowIndicatorContainer = (props) => (h(ViewContextType.Consumer, null, (context) => {
+ const NowIndicatorContainer = (props) => (y(ViewContextType.Consumer, null, (context) => {
let { options } = context;
let renderProps = {
isAxis: props.isAxis,
date: context.dateEnv.toDate(props.date),
view: context.viewApi,
};
- return (h(ContentContainer, Object.assign({}, props /* includes children */, { elTag: props.elTag || 'div', renderProps: renderProps, generatorName: "nowIndicatorContent", generator: options.nowIndicatorContent, classNameGenerator: options.nowIndicatorClassNames, didMount: options.nowIndicatorDidMount, willUnmount: options.nowIndicatorWillUnmount })));
+ return (y(ContentContainer, Object.assign({}, props /* includes children */, { elTag: props.elTag || 'div', renderProps: renderProps, generatorName: "nowIndicatorContent", customGenerator: options.nowIndicatorContent, classNameGenerator: options.nowIndicatorClassNames, didMount: options.nowIndicatorDidMount, willUnmount: options.nowIndicatorWillUnmount })));
}));
const DAY_NUM_FORMAT = createFormatter({ day: 'numeric' });
@@ -6502,15 +6666,17 @@ var FullCalendar = (function (exports) {
date: props.date,
dateProfile: props.dateProfile,
todayRange: props.todayRange,
+ isMonthStart: props.isMonthStart || false,
showDayNumber: props.showDayNumber,
extraRenderProps: props.extraRenderProps,
viewApi: context.viewApi,
dateEnv: context.dateEnv,
+ monthStartFormat: options.monthStartFormat,
});
- return (h(ContentContainer, Object.assign({}, props /* includes children */, { elClasses: [
+ return (y(ContentContainer, Object.assign({}, props /* includes children */, { elClasses: [
...getDayClassNames(renderProps, context.theme),
...(props.elClasses || []),
- ], elAttrs: Object.assign(Object.assign({}, props.elAttrs), (renderProps.isDisabled ? {} : { 'data-date': formatDayString(props.date) })), renderProps: renderProps, generatorName: "dayCellContent", generator: options.dayCellContent || props.defaultGenerator, classNameGenerator:
+ ], elAttrs: Object.assign(Object.assign({}, props.elAttrs), (renderProps.isDisabled ? {} : { 'data-date': formatDayString(props.date) })), renderProps: renderProps, generatorName: "dayCellContent", customGenerator: options.dayCellContent, defaultGenerator: props.defaultGenerator, classNameGenerator:
// don't use custom classNames if disabled
renderProps.isDisabled ? undefined : options.dayCellClassNames, didMount: options.dayCellDidMount, willUnmount: options.dayCellWillUnmount })));
}
@@ -6519,35 +6685,37 @@ var FullCalendar = (function (exports) {
return Boolean(options.dayCellContent || hasCustomRenderingHandler('dayCellContent', options));
}
function refineRenderProps(raw) {
- let { date, dateEnv } = raw;
- let dayMeta = getDateMeta(date, raw.todayRange, null, raw.dateProfile);
- return Object.assign(Object.assign(Object.assign({ date: dateEnv.toDate(date), view: raw.viewApi }, dayMeta), { dayNumberText: raw.showDayNumber ? dateEnv.format(date, DAY_NUM_FORMAT) : '' }), raw.extraRenderProps);
+ let { date, dateEnv, dateProfile, isMonthStart } = raw;
+ let dayMeta = getDateMeta(date, raw.todayRange, null, dateProfile);
+ let dayNumberText = raw.showDayNumber ? (dateEnv.format(date, isMonthStart ? raw.monthStartFormat : DAY_NUM_FORMAT)) : '';
+ return Object.assign(Object.assign(Object.assign({ date: dateEnv.toDate(date), view: raw.viewApi }, dayMeta), { isMonthStart,
+ dayNumberText }), raw.extraRenderProps);
}
class BgEvent extends BaseComponent {
render() {
let { props } = this;
let { seg } = props;
- return (h(EventContainer, { elTag: "div", elClasses: ['fc-bg-event'], elStyle: { backgroundColor: seg.eventRange.ui.backgroundColor }, defaultGenerator: renderInnerContent$3, seg: seg, timeText: "", isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday, disableDragging: true, disableResizing: true }));
+ return (y(EventContainer, { elTag: "div", elClasses: ['fc-bg-event'], elStyle: { backgroundColor: seg.eventRange.ui.backgroundColor }, defaultGenerator: renderInnerContent$3, seg: seg, timeText: "", isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday, disableDragging: true, disableResizing: true }));
}
}
function renderInnerContent$3(props) {
let { title } = props.event;
- return title && (h("div", { className: "fc-event-title" }, props.event.title));
+ return title && (y("div", { className: "fc-event-title" }, props.event.title));
}
function renderFill(fillType) {
- return (h("div", { className: `fc-${fillType}` }));
+ return (y("div", { className: `fc-${fillType}` }));
}
- const WeekNumberContainer = (props) => (h(ViewContextType.Consumer, null, (context) => {
+ const WeekNumberContainer = (props) => (y(ViewContextType.Consumer, null, (context) => {
let { dateEnv, options } = context;
let { date } = props;
let format = options.weekNumberFormat || props.defaultFormat;
let num = dateEnv.computeWeekNumber(date); // TODO: somehow use for formatting as well?
let text = dateEnv.format(date, format);
let renderProps = { num, text, date };
- return (h(ContentContainer // why isn't WeekNumberContentArg being auto-detected?
- , Object.assign({}, props /* includes children */, { renderProps: renderProps, generatorName: "weekNumberContent", generator: options.weekNumberContent || renderInner, classNameGenerator: options.weekNumberClassNames, didMount: options.weekNumberDidMount, willUnmount: options.weekNumberWillUnmount })));
+ return (y(ContentContainer // why isn't WeekNumberContentArg being auto-detected?
+ , Object.assign({}, props /* includes children */, { renderProps: renderProps, generatorName: "weekNumberContent", customGenerator: options.weekNumberContent, defaultGenerator: renderInner, classNameGenerator: options.weekNumberClassNames, didMount: options.weekNumberDidMount, willUnmount: options.weekNumberWillUnmount })));
}));
function renderInner(innerProps) {
return innerProps.text;
@@ -6593,11 +6761,11 @@ var FullCalendar = (function (exports) {
'fc-popover',
theme.getClass('popover'),
].concat(props.extraClassNames || []);
- return j(h("div", Object.assign({}, props.extraAttrs, { id: props.id, className: classNames.join(' '), "aria-labelledby": state.titleId, ref: this.handleRootEl }),
- h("div", { className: 'fc-popover-header ' + theme.getClass('popoverHeader') },
- h("span", { className: "fc-popover-title", id: state.titleId }, props.title),
- h("span", { className: 'fc-popover-close ' + theme.getIconClass('close'), title: options.closeHint, onClick: this.handleCloseClick })),
- h("div", { className: 'fc-popover-body ' + theme.getClass('popoverContent') }, props.children)), props.parentEl);
+ return j(y("div", Object.assign({}, props.extraAttrs, { id: props.id, className: classNames.join(' '), "aria-labelledby": state.titleId, ref: this.handleRootEl }),
+ y("div", { className: 'fc-popover-header ' + theme.getClass('popoverHeader') },
+ y("span", { className: "fc-popover-title", id: state.titleId }, props.title),
+ y("span", { className: 'fc-popover-close ' + theme.getIconClass('close'), title: options.closeHint, onClick: this.handleCloseClick })),
+ y("div", { className: 'fc-popover-body ' + theme.getClass('popoverContent') }, props.children)), props.parentEl);
}
componentDidMount() {
document.addEventListener('mousedown', this.handleDocumentMouseDown);
@@ -6654,8 +6822,8 @@ var FullCalendar = (function (exports) {
let { props } = this;
let { startDate, todayRange, dateProfile } = props;
let title = dateEnv.format(startDate, options.dayPopoverFormat);
- return (h(DayCellContainer, { elRef: this.handleRootEl, date: startDate, dateProfile: dateProfile, todayRange: todayRange }, (InnerContent, renderProps, elAttrs) => (h(Popover, { elRef: elAttrs.ref, id: props.id, title: title, extraClassNames: ['fc-more-popover'].concat(elAttrs.className || []), extraAttrs: elAttrs /* TODO: make these time-based when not whole-day? */, parentEl: props.parentEl, alignmentEl: props.alignmentEl, alignGridTop: props.alignGridTop, onClose: props.onClose },
- hasCustomDayCellContent(options) && (h(InnerContent, { elTag: "div", elClasses: ['fc-more-popover-misc'] })),
+ return (y(DayCellContainer, { elRef: this.handleRootEl, date: startDate, dateProfile: dateProfile, todayRange: todayRange }, (InnerContent, renderProps, elAttrs) => (y(Popover, { elRef: elAttrs.ref, id: props.id, title: title, extraClassNames: ['fc-more-popover'].concat(elAttrs.className || []), extraAttrs: elAttrs /* TODO: make these time-based when not whole-day? */, parentEl: props.parentEl, alignmentEl: props.alignmentEl, alignGridTop: props.alignGridTop, onClose: props.onClose },
+ hasCustomDayCellContent(options) && (y(InnerContent, { elTag: "div", elClasses: ['fc-more-popover-misc'] })),
props.children))));
}
queryHit(positionLeft, positionTop, elWidth, elHeight) {
@@ -6664,7 +6832,7 @@ var FullCalendar = (function (exports) {
positionTop >= 0 && positionTop < elHeight) {
return {
dateProfile: props.dateProfile,
- dateSpan: Object.assign({ allDay: true, range: {
+ dateSpan: Object.assign({ allDay: !props.forceTimed, range: {
start: props.startDate,
end: props.endDate,
} }, props.extraDateSpan),
@@ -6732,7 +6900,7 @@ var FullCalendar = (function (exports) {
}
render() {
let { props, state } = this;
- return (h(ViewContextType.Consumer, null, (context) => {
+ return (y(ViewContextType.Consumer, null, (context) => {
let { viewApi, options, calendarApi } = context;
let { moreLinkText } = options;
let { moreCnt } = props;
@@ -6747,14 +6915,14 @@ var FullCalendar = (function (exports) {
text,
view: viewApi,
};
- return (h(p, null,
- Boolean(props.moreCnt) && (h(ContentContainer, { elTag: props.elTag || 'a', elRef: this.handleLinkEl, elClasses: [
+ return (y(_, null,
+ Boolean(props.moreCnt) && (y(ContentContainer, { elTag: props.elTag || 'a', elRef: this.handleLinkEl, elClasses: [
...(props.elClasses || []),
'fc-more-link',
- ], elStyle: props.elStyle, elAttrs: Object.assign(Object.assign(Object.assign({}, props.elAttrs), createAriaClickAttrs(this.handleClick)), { title: hint, 'aria-expanded': state.isPopoverOpen, 'aria-controls': state.isPopoverOpen ? state.popoverId : '' }), renderProps: renderProps, generatorName: "moreLinkContent", generator: options.moreLinkContent || props.defaultGenerator || renderMoreLinkInner$1, classNameGenerator: options.moreLinkClassNames, didMount: options.moreLinkDidMount, willUnmount: options.moreLinkWillUnmount }, props.children)),
- state.isPopoverOpen && (h(MorePopover, { id: state.popoverId, startDate: range.start, endDate: range.end, dateProfile: props.dateProfile, todayRange: props.todayRange, extraDateSpan: props.extraDateSpan, parentEl: this.parentEl, alignmentEl: props.alignmentElRef ?
+ ], elStyle: props.elStyle, elAttrs: Object.assign(Object.assign(Object.assign({}, props.elAttrs), createAriaClickAttrs(this.handleClick)), { title: hint, 'aria-expanded': state.isPopoverOpen, 'aria-controls': state.isPopoverOpen ? state.popoverId : '' }), renderProps: renderProps, generatorName: "moreLinkContent", customGenerator: options.moreLinkContent, defaultGenerator: props.defaultGenerator || renderMoreLinkInner$1, classNameGenerator: options.moreLinkClassNames, didMount: options.moreLinkDidMount, willUnmount: options.moreLinkWillUnmount }, props.children)),
+ state.isPopoverOpen && (y(MorePopover, { id: state.popoverId, startDate: range.start, endDate: range.end, dateProfile: props.dateProfile, todayRange: props.todayRange, extraDateSpan: props.extraDateSpan, parentEl: this.parentEl, alignmentEl: props.alignmentElRef ?
props.alignmentElRef.current :
- this.linkEl, alignGridTop: props.alignGridTop, onClose: this.handlePopoverClose }, props.popoverContent()))));
+ this.linkEl, alignGridTop: props.alignGridTop, forceTimed: props.forceTimed, onClose: this.handlePopoverClose }, props.popoverContent()))));
}));
}
componentDidMount() {
@@ -6798,15 +6966,15 @@ var FullCalendar = (function (exports) {
return seg0.eventRange.range.end > seg1.eventRange.range.end ? seg0 : seg1;
}
- class ViewContainer$1 extends BaseComponent {
+ class ViewContainer extends BaseComponent {
render() {
let { props, context } = this;
let { options } = context;
let renderProps = { view: context.viewApi };
- return (h(ContentContainer, Object.assign({}, props, { elTag: props.elTag || 'div', elClasses: [
+ return (y(ContentContainer, Object.assign({}, props, { elTag: props.elTag || 'div', elClasses: [
...buildViewClassNames(props.viewSpec),
...(props.elClasses || []),
- ], renderProps: renderProps, classNameGenerator: options.viewClassNames, generatorName: undefined, generator: undefined, didMount: options.viewDidMount, willUnmount: options.viewWillUnmount }), () => props.children));
+ ], renderProps: renderProps, classNameGenerator: options.viewClassNames, generatorName: undefined, didMount: options.viewDidMount, willUnmount: options.viewWillUnmount }), () => props.children));
}
}
function buildViewClassNames(viewSpec) {
@@ -6816,22 +6984,6 @@ var FullCalendar = (function (exports) {
];
}
- function injectStyles(css) {
- if (!css || typeof document === 'undefined') {
- return;
- }
- const head = document.head || document.getElementsByTagName('head')[0];
- const style = document.createElement('style');
- style.type = 'text/css';
- head.appendChild(style);
- if (style.styleSheet) {
- style.styleSheet.cssText = css;
- }
- else {
- style.appendChild(document.createTextNode(css));
- }
- }
-
const EVENT_SOURCE_REFINERS = {
id: String,
defaultAllDay: Boolean,
@@ -7313,7 +7465,7 @@ var FullCalendar = (function (exports) {
}
}
- var internal_esm = {
+ var internal = {
__proto__: null,
BASE_OPTION_DEFAULTS: BASE_OPTION_DEFAULTS,
BaseComponent: BaseComponent,
@@ -7353,7 +7505,7 @@ var FullCalendar = (function (exports) {
TableDateCell: TableDateCell,
TableDowCell: TableDowCell,
Theme: Theme,
- ViewContainer: ViewContainer$1,
+ ViewContainer: ViewContainer,
ViewContextType: ViewContextType,
WeekNumberContainer: WeekNumberContainer,
WindowScrollController: WindowScrollController,
@@ -7413,6 +7565,7 @@ var FullCalendar = (function (exports) {
findElements: findElements,
flexibleCompare: flexibleCompare,
formatDayString: formatDayString,
+ formatIsoMonthStr: formatIsoMonthStr,
formatIsoTimeString: formatIsoTimeString,
getAllowYScrolling: getAllowYScrolling,
getCanVGrowWithinCell: getCanVGrowWithinCell,
@@ -7420,7 +7573,6 @@ var FullCalendar = (function (exports) {
getDateMeta: getDateMeta,
getDayClassNames: getDayClassNames,
getDefaultEventEnd: getDefaultEventEnd,
- getElRoot: getElRoot,
getElSeg: getElSeg,
getEntrySpanEnd: getEntrySpanEnd,
getEventTargetViaRoot: getEventTargetViaRoot,
@@ -7503,8 +7655,23 @@ var FullCalendar = (function (exports) {
wholeDivideDurations: wholeDivideDurations
};
- var css_248z$3 = ":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)}";
- injectStyles(css_248z$3);
+ var preact = {
+ __proto__: null,
+ createPortal: j,
+ createContext: createContext,
+ flushSync: flushSync,
+ Component: x$1,
+ Fragment: _,
+ cloneElement: F$1,
+ createElement: y,
+ createRef: d,
+ h: y,
+ hydrate: E,
+ get isValidElement () { return i$1; },
+ get options () { return l$1; },
+ render: D$1,
+ toChildArray: j$2
+ };
const globalLocales = [];
@@ -7845,8 +8012,13 @@ var FullCalendar = (function (exports) {
input;
let { component } = rawOptions;
if (rawOptions.content) {
- component = createViewHookComponent(rawOptions);
// TODO: remove content/classNames/didMount/etc from options?
+ component = createViewHookComponent(rawOptions);
+ }
+ else if (component && !(component.prototype instanceof BaseComponent)) {
+ // WHY?: people were using `component` property for `content`
+ // TODO: converge on one setting name
+ component = createViewHookComponent(Object.assign(Object.assign({}, rawOptions), { content: component }));
}
return {
superType: rawOptions.type,
@@ -7855,7 +8027,7 @@ var FullCalendar = (function (exports) {
};
}
function createViewHookComponent(options) {
- return (viewProps) => (h(ViewContextType.Consumer, null, (context) => (h(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 }))));
+ return (viewProps) => (y(ViewContextType.Consumer, null, (context) => (y(ContentContainer, { elTag: "div", elClasses: buildViewClassNames(context.viewSpec), renderProps: Object.assign(Object.assign({}, viewProps), { nextDayThreshold: context.options.nextDayThreshold }), generatorName: undefined, customGenerator: options.content, classNameGenerator: options.classNames, didMount: options.didMount, willUnmount: options.willUnmount }))));
}
function buildViewSpecs(defaultInputs, optionOverrides, dynamicOptionOverrides, localeDefaults) {
@@ -8531,6 +8703,17 @@ var FullCalendar = (function (exports) {
*/
function handleEventSources(inputs, context) {
let unfoundSources = hashValuesToArray(context.getCurrentData().eventSources);
+ if (unfoundSources.length === 1 &&
+ inputs.length === 1 &&
+ Array.isArray(unfoundSources[0]._raw) &&
+ Array.isArray(inputs[0])) {
+ context.dispatch({
+ type: 'RESET_RAW_EVENTS',
+ sourceId: unfoundSources[0].sourceId,
+ rawEvents: inputs[0],
+ });
+ return;
+ }
let newInputs = [];
for (let input of inputs) {
let inputFound = false;
@@ -8668,7 +8851,6 @@ var FullCalendar = (function (exports) {
// also, whatever is happening in constructor, have it happen in action queue too
class CalendarDataManager {
constructor(props) {
- this.computeOptionsData = memoize(this._computeOptionsData);
this.computeCurrentViewData = memoize(this._computeCurrentViewData);
this.organizeRawLocales = memoize(organizeRawLocales);
this.buildLocale = memoize(buildLocale);
@@ -8691,6 +8873,8 @@ var FullCalendar = (function (exports) {
this.currentViewOptionsInput = {};
this.currentViewOptionsRefined = {};
this.currentCalendarOptionsRefiners = {};
+ this.optionsForRefining = [];
+ this.optionsForHandling = [];
this.getCurrentData = () => this.data;
this.dispatch = (action) => {
this.actionRunner.request(action); // protects against recursive calls to _handleAction
@@ -8753,13 +8937,20 @@ var FullCalendar = (function (exports) {
this.updateData();
this.actionRunner.resume();
}
- resetOptions(optionOverrides, append) {
+ resetOptions(optionOverrides, changedOptionNames) {
let { props } = this;
- props.optionOverrides = append
- ? Object.assign(Object.assign({}, props.optionOverrides), optionOverrides) : optionOverrides;
- this.actionRunner.request({
- type: 'NOTHING',
- });
+ if (changedOptionNames === undefined) {
+ props.optionOverrides = optionOverrides;
+ }
+ else {
+ props.optionOverrides = Object.assign(Object.assign({}, (props.optionOverrides || {})), optionOverrides);
+ this.optionsForRefining.push(...changedOptionNames);
+ }
+ if (changedOptionNames === undefined || changedOptionNames.length) {
+ this.actionRunner.request({
+ type: 'NOTHING',
+ });
+ }
}
_handleAction(action) {
let { props, state, emitter } = this;
@@ -8849,26 +9040,34 @@ var FullCalendar = (function (exports) {
// hack
state.eventSources = data.eventSources = reduceEventSourcesNewTimeZone(data.eventSources, state.dateProfile, data);
state.eventStore = data.eventStore = rezoneEventStoreDates(data.eventStore, oldData.dateEnv, data.dateEnv);
+ state.renderableEventStore = data.renderableEventStore = rezoneEventStoreDates(data.renderableEventStore, oldData.dateEnv, data.dateEnv);
}
for (let optionName in changeHandlers) {
- if (oldCalendarOptions[optionName] !== newCalendarOptions[optionName]) {
+ if (this.optionsForHandling.indexOf(optionName) !== -1 ||
+ oldCalendarOptions[optionName] !== newCalendarOptions[optionName]) {
changeHandlers[optionName](newCalendarOptions[optionName], data);
}
}
}
+ this.optionsForHandling = [];
if (props.onData) {
props.onData(data);
}
}
- _computeOptionsData(optionOverrides, dynamicOptionOverrides, calendarApi) {
+ computeOptionsData(optionOverrides, dynamicOptionOverrides, calendarApi) {
// TODO: blacklist options that are handled by optionChangeHandlers
+ if (!this.optionsForRefining.length &&
+ optionOverrides === this.stableOptionOverrides &&
+ dynamicOptionOverrides === this.stableDynamicOptionOverrides) {
+ return this.stableCalendarOptionsData;
+ }
let { refinedOptions, pluginHooks, localeDefaults, availableLocaleData, extra, } = this.processRawCalendarOptions(optionOverrides, dynamicOptionOverrides);
warnUnknownOptions(extra);
let dateEnv = this.buildDateEnv(refinedOptions.timeZone, refinedOptions.locale, refinedOptions.weekNumberCalculation, refinedOptions.firstDay, refinedOptions.weekText, pluginHooks, availableLocaleData, refinedOptions.defaultRangeSeparator);
- let viewSpecs = this.buildViewSpecs(pluginHooks.views, optionOverrides, dynamicOptionOverrides, localeDefaults);
+ let viewSpecs = this.buildViewSpecs(pluginHooks.views, this.stableOptionOverrides, this.stableDynamicOptionOverrides, localeDefaults);
let theme = this.buildTheme(refinedOptions, pluginHooks);
- let toolbarConfig = this.parseToolbars(refinedOptions, optionOverrides, theme, viewSpecs, calendarApi);
- return {
+ let toolbarConfig = this.parseToolbars(refinedOptions, this.stableOptionOverrides, theme, viewSpecs, calendarApi);
+ return this.stableCalendarOptionsData = {
calendarOptions: refinedOptions,
pluginHooks,
dateEnv,
@@ -8903,26 +9102,27 @@ var FullCalendar = (function (exports) {
let currentRefined = this.currentCalendarOptionsRefined;
let anyChanges = false;
for (let optionName in raw) {
- if (optionName !== 'plugins') { // because plugins is special-cased
- if (raw[optionName] === currentRaw[optionName] ||
- (COMPLEX_OPTION_COMPARATORS[optionName] &&
- (optionName in currentRaw) &&
- COMPLEX_OPTION_COMPARATORS[optionName](currentRaw[optionName], raw[optionName]))) {
- refined[optionName] = currentRefined[optionName];
- }
- else if (refiners[optionName]) {
- refined[optionName] = refiners[optionName](raw[optionName]);
- anyChanges = true;
- }
- else {
- extra[optionName] = currentRaw[optionName];
- }
+ if (this.optionsForRefining.indexOf(optionName) === -1 && (raw[optionName] === currentRaw[optionName] || (COMPLEX_OPTION_COMPARATORS[optionName] &&
+ (optionName in currentRaw) &&
+ COMPLEX_OPTION_COMPARATORS[optionName](currentRaw[optionName], raw[optionName])))) {
+ refined[optionName] = currentRefined[optionName];
+ }
+ else if (refiners[optionName]) {
+ refined[optionName] = refiners[optionName](raw[optionName]);
+ anyChanges = true;
+ }
+ else {
+ extra[optionName] = currentRaw[optionName];
}
}
if (anyChanges) {
this.currentCalendarOptionsInput = raw;
this.currentCalendarOptionsRefined = refined;
+ this.stableOptionOverrides = optionOverrides;
+ this.stableDynamicOptionOverrides = dynamicOptionOverrides;
}
+ this.optionsForHandling.push(...this.optionsForRefining);
+ this.optionsForRefining = [];
return {
rawOptions: this.currentCalendarOptionsInput,
refinedOptions: this.currentCalendarOptionsRefined,
@@ -8957,7 +9157,6 @@ var FullCalendar = (function (exports) {
nowInput: refinedOptions.now,
validRangeInput: refinedOptions.validRange,
visibleRangeInput: refinedOptions.visibleRange,
- monthMode: refinedOptions.monthMode,
fixedWeekCount: refinedOptions.fixedWeekCount,
});
let viewApi = this.buildViewApi(viewType, this.getCurrentData, optionsData.dateEnv);
@@ -9095,7 +9294,7 @@ var FullCalendar = (function (exports) {
class ToolbarSection extends BaseComponent {
render() {
let children = this.props.widgetGroups.map((widgetGroup) => this.renderWidgetGroup(widgetGroup));
- return h('div', { className: 'fc-toolbar-chunk' }, ...children);
+ return y('div', { className: 'fc-toolbar-chunk' }, ...children);
}
renderWidgetGroup(widgetGroup) {
let { props } = this;
@@ -9106,7 +9305,7 @@ var FullCalendar = (function (exports) {
let { buttonName, buttonClick, buttonText, buttonIcon, buttonHint } = widget;
if (buttonName === 'title') {
isOnlyButtons = false;
- children.push(h("h2", { className: "fc-toolbar-title", id: props.titleId }, props.title));
+ children.push(y("h2", { className: "fc-toolbar-title", id: props.titleId }, props.title));
}
else {
let isPressed = buttonName === props.activeButton;
@@ -9117,12 +9316,12 @@ var FullCalendar = (function (exports) {
if (isPressed) {
buttonClasses.push(theme.getClass('buttonActive'));
}
- children.push(h("button", { type: "button", title: typeof buttonHint === 'function' ? buttonHint(props.navUnit) : buttonHint, disabled: isDisabled, "aria-pressed": isPressed, className: buttonClasses.join(' '), onClick: buttonClick }, buttonText || (buttonIcon ? h("span", { className: buttonIcon }) : '')));
+ children.push(y("button", { type: "button", title: typeof buttonHint === 'function' ? buttonHint(props.navUnit) : buttonHint, disabled: isDisabled, "aria-pressed": isPressed, className: buttonClasses.join(' '), onClick: buttonClick }, buttonText || (buttonIcon ? y("span", { className: buttonIcon }) : '')));
}
}
if (children.length > 1) {
let groupClassName = (isOnlyButtons && theme.getClass('buttonGroup')) || '';
- return h('div', { className: groupClassName }, ...children);
+ return y('div', { className: groupClassName }, ...children);
}
return children[0];
}
@@ -9155,19 +9354,18 @@ var FullCalendar = (function (exports) {
'fc-toolbar',
forceLtr ? 'fc-toolbar-ltr' : '',
];
- return (h("div", { className: classNames.join(' ') },
+ return (y("div", { className: classNames.join(' ') },
this.renderSection('start', startContent || []),
this.renderSection('center', centerContent || []),
this.renderSection('end', endContent || [])));
}
renderSection(key, widgetGroups) {
let { props } = this;
- return (h(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 }));
+ return (y(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 }));
}
}
- // TODO: do function component?
- class ViewContainer extends BaseComponent {
+ class ViewHarness extends BaseComponent {
constructor() {
super(...arguments);
this.state = {
@@ -9208,7 +9406,7 @@ var FullCalendar = (function (exports) {
else {
height = props.height || '';
}
- return (h("div", { "aria-labelledby": props.labeledById, ref: this.handleEl, className: classNames.join(' '), style: { height, paddingBottom } }, props.children));
+ return (y("div", { "aria-labelledby": props.labeledById, ref: this.handleEl, className: classNames.join(' '), style: { height, paddingBottom } }, props.children));
}
componentDidMount() {
this.context.addResizeHandler(this.handleResize);
@@ -9309,8 +9507,8 @@ var FullCalendar = (function (exports) {
this.buildViewContext = memoize(buildViewContext);
this.buildViewPropTransformers = memoize(buildViewPropTransformers);
this.buildToolbarProps = memoize(buildToolbarProps);
- this.headerRef = y();
- this.footerRef = y();
+ this.headerRef = d();
+ this.footerRef = d();
this.interactionsStore = {};
// eslint-disable-next-line
this.state = {
@@ -9381,12 +9579,12 @@ var FullCalendar = (function (exports) {
let viewLabelId = (toolbarConfig.header && toolbarConfig.header.hasTitle)
? this.state.viewLabelId
: '';
- return (h(ViewContextType.Provider, { value: viewContext },
- toolbarConfig.header && (h(Toolbar, Object.assign({ ref: this.headerRef, extraClassName: "fc-header-toolbar", model: toolbarConfig.header, titleId: viewLabelId }, toolbarProps))),
- h(ViewContainer, { liquid: viewVGrow, height: viewHeight, aspectRatio: viewAspectRatio, labeledById: viewLabelId },
+ return (y(ViewContextType.Provider, { value: viewContext },
+ toolbarConfig.header && (y(Toolbar, Object.assign({ ref: this.headerRef, extraClassName: "fc-header-toolbar", model: toolbarConfig.header, titleId: viewLabelId }, toolbarProps))),
+ y(ViewHarness, { liquid: viewVGrow, height: viewHeight, aspectRatio: viewAspectRatio, labeledById: viewLabelId },
this.renderView(props),
this.buildAppendContent()),
- toolbarConfig.footer && (h(Toolbar, Object.assign({ ref: this.footerRef, extraClassName: "fc-footer-toolbar", model: toolbarConfig.footer, titleId: "" }, toolbarProps)))));
+ toolbarConfig.footer && (y(Toolbar, Object.assign({ ref: this.footerRef, extraClassName: "fc-footer-toolbar", model: toolbarConfig.footer, titleId: "" }, toolbarProps)))));
}
componentDidMount() {
let { props } = this;
@@ -9418,7 +9616,7 @@ var FullCalendar = (function (exports) {
buildAppendContent() {
let { props } = this;
let children = props.pluginHooks.viewContainerAppends.map((buildAppendContent) => buildAppendContent(props));
- return h(p, {}, ...children);
+ return y(_, {}, ...children);
}
renderView(props) {
let { pluginHooks } = props;
@@ -9440,7 +9638,7 @@ var FullCalendar = (function (exports) {
Object.assign(viewProps, transformer.transform(viewProps, props));
}
let ViewComponent = viewSpec.component;
- return (h(ViewComponent, Object.assign({}, viewProps)));
+ return (y(ViewComponent, Object.assign({}, viewProps)));
}
}
function buildToolbarProps(viewSpec, dateProfile, dateProfileGenerator, currentDate, now, title) {
@@ -9487,21 +9685,22 @@ var FullCalendar = (function (exports) {
this.isRendered = true;
let { currentData } = this;
flushSync(() => {
- P$1(h(CalendarRoot, { options: currentData.calendarOptions, theme: currentData.theme, emitter: currentData.emitter }, (classNames, height, isHeightAuto, forPrint) => {
+ D$1(y(CalendarRoot, { options: currentData.calendarOptions, theme: currentData.theme, emitter: currentData.emitter }, (classNames, height, isHeightAuto, forPrint) => {
this.setClassNames(classNames);
this.setHeight(height);
- return (h(RenderId.Provider, { value: this.customContentRenderId },
- h(CalendarContent, Object.assign({ isHeightAuto: isHeightAuto, forPrint: forPrint }, currentData))));
+ return (y(RenderId.Provider, { value: this.customContentRenderId },
+ y(CalendarContent, Object.assign({ isHeightAuto: isHeightAuto, forPrint: forPrint }, currentData))));
}), this.el);
});
}
else if (this.isRendered) {
this.isRendered = false;
- P$1(null, this.el);
+ D$1(null, this.el);
this.setClassNames([]);
this.setHeight('');
}
};
+ ensureElHasStyles(el);
this.el = el;
this.renderRunner = new DelayedRunner(this.handleRenderRequest);
new CalendarDataManager({
@@ -9546,8 +9745,8 @@ var FullCalendar = (function (exports) {
resumeRendering() {
this.renderRunner.resume('pauseRendering', true);
}
- resetOptions(optionOverrides, append) {
- this.currentDataManager.resetOptions(optionOverrides, append);
+ resetOptions(optionOverrides, changedOptionNames) {
+ this.currentDataManager.resetOptions(optionOverrides, changedOptionNames);
}
setClassNames(classNames) {
if (!isArraysEqual(classNames, this.currentClassNames)) {
@@ -9607,7 +9806,7 @@ var FullCalendar = (function (exports) {
return sliceEventStore(props.eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? props.nextDayThreshold : null).fg;
}
- const version = '6.0.3';
+ const version = '6.1.8';
config.touchMouseIgnoreWait = 500;
let ignoreMouseDepth = 0;
@@ -9983,7 +10182,7 @@ var FullCalendar = (function (exports) {
mirrorEl = this.mirrorEl = this.sourceEl.cloneNode(true); // cloneChildren=true
// we don't want long taps or any mouse interaction causing selection/menus.
// would use preventSelection(), but that prevents selectstart, causing problems.
- mirrorEl.classList.add('fc-unselectable');
+ mirrorEl.style.userSelect = 'none';
mirrorEl.classList.add('fc-event-dragging');
applyStyle(mirrorEl, {
position: 'fixed',
@@ -10273,7 +10472,7 @@ var FullCalendar = (function (exports) {
els.push(query);
}
else {
- els.push(...Array.prototype.slice.call(getElRoot(scrollStartEl).querySelectorAll(query)));
+ els.push(...Array.prototype.slice.call(scrollStartEl.getRootNode().querySelectorAll(query)));
}
}
return els;
@@ -10933,7 +11132,7 @@ var FullCalendar = (function (exports) {
this.dragging.setMirrorNeedsRevert(!mutation);
// render the mirror if no already-rendered mirror
// TODO: wish we could somehow wait for dispatch to guarantee render
- this.dragging.setMirrorIsVisible(!hit || !getElRoot(this.subjectEl).querySelector('.fc-event-mirror'));
+ this.dragging.setMirrorIsVisible(!hit || !this.subjectEl.getRootNode().querySelector('.fc-event-mirror'));
// assign states based on new hit
this.receivingContext = receivingContext;
this.validMutation = mutation;
@@ -11368,7 +11567,7 @@ var FullCalendar = (function (exports) {
}
}
- const OPTION_REFINERS$2 = {
+ const OPTION_REFINERS$3 = {
fixedMirrorParent: identity,
};
const LISTENER_REFINERS = {
@@ -11695,95 +11894,17 @@ var FullCalendar = (function (exports) {
}
}
- var index$3 = createPlugin({
+ var index$4 = createPlugin({
name: '@fullcalendar/interaction',
componentInteractions: [DateClicking, DateSelecting, EventDragging, EventResizing],
calendarInteractions: [UnselectAuto],
elementDraggingImpl: FeaturefulElementDragging,
- optionRefiners: OPTION_REFINERS$2,
+ optionRefiners: OPTION_REFINERS$3,
listenerRefiners: LISTENER_REFINERS,
});
- /* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells.
- ----------------------------------------------------------------------------------------------------------------------*/
- // It is a manager for a Table subcomponent, which does most of the heavy lifting.
- // It is responsible for managing width/height.
- class TableView extends DateComponent {
- constructor() {
- super(...arguments);
- this.headerElRef = y();
- }
- renderSimpleLayout(headerRowContent, bodyContent) {
- let { props, context } = this;
- let sections = [];
- let stickyHeaderDates = getStickyHeaderDates(context.options);
- if (headerRowContent) {
- sections.push({
- type: 'header',
- key: 'header',
- isSticky: stickyHeaderDates,
- chunk: {
- elRef: this.headerElRef,
- tableClassName: 'fc-col-header',
- rowContent: headerRowContent,
- },
- });
- }
- sections.push({
- type: 'body',
- key: 'body',
- liquid: true,
- chunk: { content: bodyContent },
- });
- return (h(ViewContainer$1, { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec },
- h(SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, cols: [] /* TODO: make optional? */, sections: sections })));
- }
- renderHScrollLayout(headerRowContent, bodyContent, colCnt, dayMinWidth) {
- let ScrollGrid = this.context.pluginHooks.scrollGridImpl;
- if (!ScrollGrid) {
- throw new Error('No ScrollGrid implementation');
- }
- let { props, context } = this;
- let stickyHeaderDates = !props.forPrint && getStickyHeaderDates(context.options);
- let stickyFooterScrollbar = !props.forPrint && getStickyFooterScrollbar(context.options);
- let sections = [];
- if (headerRowContent) {
- sections.push({
- type: 'header',
- key: 'header',
- isSticky: stickyHeaderDates,
- chunks: [{
- key: 'main',
- elRef: this.headerElRef,
- tableClassName: 'fc-col-header',
- rowContent: headerRowContent,
- }],
- });
- }
- sections.push({
- type: 'body',
- key: 'body',
- liquid: true,
- chunks: [{
- key: 'main',
- content: bodyContent,
- }],
- });
- if (stickyFooterScrollbar) {
- sections.push({
- type: 'footer',
- key: 'footer',
- isSticky: true,
- chunks: [{
- key: 'main',
- content: renderScrollShim,
- }],
- });
- }
- return (h(ViewContainer$1, { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec },
- h(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, colGroups: [{ cols: [{ span: colCnt, minWidth: dayMinWidth }] }], sections: sections })));
- }
- }
+ var css_248z$3 = ":root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:0 2px}.fc .fc-daygrid-day-bottom:after,.fc .fc-daygrid-day-bottom:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-more-link{border-radius:3px;cursor:pointer;line-height:1;margin-top:1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap;z-index:4}.fc .fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-more-link{float:left}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-more-link{float:right}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}";
+ injectStyles(css_248z$3);
function splitSegsByRow(segs, rowCnt) {
let byRow = [];
@@ -11846,7 +11967,7 @@ var FullCalendar = (function (exports) {
class TableBlockEvent extends BaseComponent {
render() {
let { props } = this;
- return (h(StandardEvent, Object.assign({}, props, { elClasses: ['fc-daygrid-event', 'fc-daygrid-block-event', 'fc-h-event'], defaultTimeFormat: DEFAULT_TABLE_EVENT_TIME_FORMAT, defaultDisplayEventEnd: props.defaultDisplayEventEnd, disableResizing: !props.seg.eventRange.def.allDay })));
+ return (y(StandardEvent, Object.assign({}, props, { elClasses: ['fc-daygrid-event', 'fc-daygrid-block-event', 'fc-h-event'], defaultTimeFormat: DEFAULT_TABLE_EVENT_TIME_FORMAT, defaultDisplayEventEnd: props.defaultDisplayEventEnd, disableResizing: !props.seg.eventRange.def.allDay })));
}
}
@@ -11857,14 +11978,14 @@ var FullCalendar = (function (exports) {
let { seg } = props;
let timeFormat = options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;
let timeText = buildSegTimeText(seg, timeFormat, context, true, props.defaultDisplayEventEnd);
- return (h(EventContainer, Object.assign({}, props, { elTag: "a", elClasses: ['fc-daygrid-event', 'fc-daygrid-dot-event'], elAttrs: getSegAnchorAttrs(props.seg, context), defaultGenerator: renderInnerContent$2, timeText: timeText, isResizing: false, isDateSelecting: false })));
+ return (y(EventContainer, Object.assign({}, props, { elTag: "a", elClasses: ['fc-daygrid-event', 'fc-daygrid-dot-event'], elAttrs: getSegAnchorAttrs(props.seg, context), defaultGenerator: renderInnerContent$2, timeText: timeText, isResizing: false, isDateSelecting: false })));
}
}
function renderInnerContent$2(renderProps) {
- return (h(p, null,
- h("div", { className: "fc-daygrid-event-dot", style: { borderColor: renderProps.borderColor || renderProps.backgroundColor } }),
- renderProps.timeText && (h("div", { className: "fc-event-time" }, renderProps.timeText)),
- h("div", { className: "fc-event-title" }, renderProps.event.title || h(p, null, "\u00A0"))));
+ return (y(_, null,
+ y("div", { className: "fc-daygrid-event-dot", style: { borderColor: renderProps.borderColor || renderProps.backgroundColor } }),
+ renderProps.timeText && (y("div", { className: "fc-event-time" }, renderProps.timeText)),
+ y("div", { className: "fc-event-title" }, renderProps.event.title || y(_, null, "\u00A0"))));
}
class TableCellMoreLink extends BaseComponent {
@@ -11875,15 +11996,15 @@ var FullCalendar = (function (exports) {
render() {
let { props } = this;
let { allSegs, invisibleSegs } = this.compileSegs(props.singlePlacements);
- return (h(MoreLinkContainer, { elClasses: ['fc-daygrid-more-link'], dateProfile: props.dateProfile, todayRange: props.todayRange, allDayDate: props.allDayDate, moreCnt: props.moreCnt, allSegs: allSegs, hiddenSegs: invisibleSegs, alignmentElRef: props.alignmentElRef, alignGridTop: props.alignGridTop, extraDateSpan: props.extraDateSpan, popoverContent: () => {
+ return (y(MoreLinkContainer, { elClasses: ['fc-daygrid-more-link'], dateProfile: props.dateProfile, todayRange: props.todayRange, allDayDate: props.allDayDate, moreCnt: props.moreCnt, allSegs: allSegs, hiddenSegs: invisibleSegs, alignmentElRef: props.alignmentElRef, alignGridTop: props.alignGridTop, extraDateSpan: props.extraDateSpan, popoverContent: () => {
let isForcedInvisible = (props.eventDrag ? props.eventDrag.affectedInstances : null) ||
(props.eventResize ? props.eventResize.affectedInstances : null) ||
{};
- return (h(p, null, allSegs.map((seg) => {
+ return (y(_, null, allSegs.map((seg) => {
let instanceId = seg.eventRange.instance.instanceId;
- return (h("div", { className: "fc-daygrid-event-harness", key: instanceId, style: {
+ return (y("div", { className: "fc-daygrid-event-harness", key: instanceId, style: {
visibility: isForcedInvisible[instanceId] ? 'hidden' : '',
- } }, hasListItemDisplay(seg) ? (h(TableListItemEvent, Object.assign({ seg: seg, isDragging: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange)))) : (h(TableBlockEvent, Object.assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange))))));
+ } }, hasListItemDisplay(seg) ? (y(TableListItemEvent, Object.assign({ seg: seg, isDragging: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange)))) : (y(TableBlockEvent, Object.assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange))))));
})));
} }));
}
@@ -11904,7 +12025,7 @@ var FullCalendar = (function (exports) {
class TableCell extends DateComponent {
constructor() {
super(...arguments);
- this.rootElRef = y();
+ this.rootElRef = d();
this.state = {
dayNumberId: getUniqueDomId(),
};
@@ -11915,25 +12036,49 @@ var FullCalendar = (function (exports) {
}
render() {
let { context, props, state, rootElRef } = this;
- let { options } = context;
+ let { options, dateEnv } = context;
let { date, dateProfile } = props;
- return (h(DayCellContainer, { elTag: "td", elRef: this.handleRootEl, elClasses: [
+ // TODO: memoize this?
+ const isMonthStart = props.showDayNumber &&
+ shouldDisplayMonthStart(date, dateProfile.currentRange, dateEnv);
+ return (y(DayCellContainer, { elTag: "td", elRef: this.handleRootEl, elClasses: [
'fc-daygrid-day',
...(props.extraClassNames || []),
- ], elAttrs: Object.assign(Object.assign(Object.assign({}, props.extraDataAttrs), (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})), { role: 'gridcell' }), defaultGenerator: renderTopInner, date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, extraRenderProps: props.extraRenderProps }, (InnerContent, renderProps) => (h("div", { className: "fc-daygrid-day-frame fc-scrollgrid-sync-inner", ref: props.innerElRef },
- props.showWeekNumber && (h(WeekNumberContainer, { elTag: "a", elClasses: ['fc-daygrid-week-number'], elAttrs: buildNavLinkAttrs(context, date, 'week'), date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT$1 })),
- Boolean(!renderProps.isDisabled &&
- (props.showDayNumber || hasCustomDayCellContent(options) || props.forceDayTop)) && (h("div", { className: "fc-daygrid-day-top" },
- h(InnerContent, { elTag: "a", elClasses: ['fc-daygrid-day-number'], elAttrs: Object.assign(Object.assign({}, buildNavLinkAttrs(context, date)), { id: state.dayNumberId }) }))),
- h("div", { className: "fc-daygrid-day-events", ref: props.fgContentElRef },
+ ], elAttrs: Object.assign(Object.assign(Object.assign({}, props.extraDataAttrs), (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})), { role: 'gridcell' }), defaultGenerator: renderTopInner, date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, isMonthStart: isMonthStart, extraRenderProps: props.extraRenderProps }, (InnerContent, renderProps) => (y("div", { ref: props.innerElRef, className: "fc-daygrid-day-frame fc-scrollgrid-sync-inner", style: { minHeight: props.minHeight } },
+ props.showWeekNumber && (y(WeekNumberContainer, { elTag: "a", elClasses: ['fc-daygrid-week-number'], elAttrs: buildNavLinkAttrs(context, date, 'week'), date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT$1 })),
+ !renderProps.isDisabled &&
+ (props.showDayNumber || hasCustomDayCellContent(options) || props.forceDayTop) ? (y("div", { className: "fc-daygrid-day-top" },
+ y(InnerContent, { elTag: "a", elClasses: [
+ 'fc-daygrid-day-number',
+ isMonthStart && 'fc-daygrid-month-start',
+ ], elAttrs: Object.assign(Object.assign({}, buildNavLinkAttrs(context, date)), { id: state.dayNumberId }) }))) : props.showDayNumber ? (
+ // for creating correct amount of space (see issue #7162)
+ y("div", { className: "fc-daygrid-day-top", style: { visibility: 'hidden' } },
+ y("a", { className: "fc-daygrid-day-number" }, "\u00A0"))) : undefined,
+ y("div", { className: "fc-daygrid-day-events", ref: props.fgContentElRef },
props.fgContent,
- h("div", { className: "fc-daygrid-day-bottom", style: { marginTop: props.moreMarginTop } },
- h(TableCellMoreLink, { allDayDate: date, singlePlacements: props.singlePlacements, moreCnt: props.moreCnt, alignmentElRef: rootElRef, alignGridTop: !props.showDayNumber, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange }))),
- h("div", { className: "fc-daygrid-day-bg" }, props.bgContent)))));
+ y("div", { className: "fc-daygrid-day-bottom", style: { marginTop: props.moreMarginTop } },
+ y(TableCellMoreLink, { allDayDate: date, singlePlacements: props.singlePlacements, moreCnt: props.moreCnt, alignmentElRef: rootElRef, alignGridTop: !props.showDayNumber, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange }))),
+ y("div", { className: "fc-daygrid-day-bg" }, props.bgContent)))));
}
}
function renderTopInner(props) {
- return props.dayNumberText || h(p, null, "\u00A0");
+ return props.dayNumberText || y(_, null, "\u00A0");
+ }
+ function shouldDisplayMonthStart(date, currentRange, dateEnv) {
+ const { start: currentStart, end: currentEnd } = currentRange;
+ const currentEndIncl = addMs(currentEnd, -1);
+ const currentFirstYear = dateEnv.getYear(currentStart);
+ const currentFirstMonth = dateEnv.getMonth(currentStart);
+ const currentLastYear = dateEnv.getYear(currentEndIncl);
+ const currentLastMonth = dateEnv.getMonth(currentEndIncl);
+ // spans more than one month?
+ return !(currentFirstYear === currentLastYear && currentFirstMonth === currentLastMonth) &&
+ Boolean(
+ // first date in current view?
+ date.valueOf() === currentStart.valueOf() ||
+ // a month-start that's within the current range?
+ (dateEnv.getDay(date) === 1 && date.valueOf() < currentEnd.valueOf()));
}
function computeFgSegPlacement(segs, // assumed already sorted
@@ -12168,7 +12313,7 @@ var FullCalendar = (function (exports) {
this.frameElRefs = new RefMap(); // the fc-daygrid-day-frame
this.fgElRefs = new RefMap(); // the fc-daygrid-day-events
this.segHarnessRefs = new RefMap(); // indexed by "instanceId:firstCol"
- this.rootElRef = y();
+ this.rootElRef = d();
this.state = {
framePositions: null,
maxContentHeight: null,
@@ -12193,19 +12338,19 @@ var FullCalendar = (function (exports) {
(props.eventDrag && props.eventDrag.affectedInstances) ||
(props.eventResize && props.eventResize.affectedInstances) ||
{};
- return (h("tr", { ref: this.rootElRef, role: "row" },
+ return (y("tr", { ref: this.rootElRef, role: "row" },
props.renderIntro && props.renderIntro(),
props.cells.map((cell, col) => {
let normalFgNodes = this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);
let mirrorFgNodes = this.renderFgSegs(col, buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);
- return (h(TableCell, { key: cell.key, elRef: this.cellElRefs.createRef(cell.key), innerElRef: this.frameElRefs.createRef(cell.key) /* FF <td> problem, but okay to use for left/right. TODO: rename prop */, dateProfile: props.dateProfile, date: cell.date, showDayNumber: props.showDayNumbers, showWeekNumber: props.showWeekNumbers && col === 0, forceDayTop: props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */, todayRange: props.todayRange, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, extraRenderProps: cell.extraRenderProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, moreCnt: moreCnts[col], moreMarginTop: moreMarginTops[col], singlePlacements: singleColPlacements[col], fgContentElRef: this.fgElRefs.createRef(cell.key), fgContent: ( // Fragment scopes the keys
- h(p, null,
- h(p, null, normalFgNodes),
- h(p, null, mirrorFgNodes))), bgContent: ( // Fragment scopes the keys
- h(p, null,
+ return (y(TableCell, { key: cell.key, elRef: this.cellElRefs.createRef(cell.key), innerElRef: this.frameElRefs.createRef(cell.key) /* FF <td> problem, but okay to use for left/right. TODO: rename prop */, dateProfile: props.dateProfile, date: cell.date, showDayNumber: props.showDayNumbers, showWeekNumber: props.showWeekNumbers && col === 0, forceDayTop: props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */, todayRange: props.todayRange, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, extraRenderProps: cell.extraRenderProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, moreCnt: moreCnts[col], moreMarginTop: moreMarginTops[col], singlePlacements: singleColPlacements[col], fgContentElRef: this.fgElRefs.createRef(cell.key), fgContent: ( // Fragment scopes the keys
+ y(_, null,
+ y(_, null, normalFgNodes),
+ y(_, null, mirrorFgNodes))), bgContent: ( // Fragment scopes the keys
+ y(_, null,
this.renderFillSegs(highlightSegsByCol[col], 'highlight'),
this.renderFillSegs(businessHoursByCol[col], 'non-business'),
- this.renderFillSegs(bgEventSegsByCol[col], 'bg-event'))) }));
+ this.renderFillSegs(bgEventSegsByCol[col], 'bg-event'))), minHeight: props.cellMinHeight }));
})));
}
componentDidMount() {
@@ -12266,13 +12411,13 @@ var FullCalendar = (function (exports) {
known bug: events that are force to be list-item but span multiple days still take up space in later columns
todo: in print view, for multi-day events, don't display title within non-start/end segs
*/
- nodes.push(h("div", { className: 'fc-daygrid-event-harness' + (isAbsolute ? ' fc-daygrid-event-harness-abs' : ''), key: key, ref: isMirror ? null : this.segHarnessRefs.createRef(key), style: {
+ nodes.push(y("div", { className: 'fc-daygrid-event-harness' + (isAbsolute ? ' fc-daygrid-event-harness-abs' : ''), key: key, ref: isMirror ? null : this.segHarnessRefs.createRef(key), style: {
visibility: isVisible ? '' : 'hidden',
marginTop: isAbsolute ? '' : placement.marginTop,
top: isAbsolute ? placement.absoluteTop : '',
left,
right,
- } }, hasListItemDisplay(seg) ? (h(TableListItemEvent, Object.assign({ seg: seg, isDragging: isDragging, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange)))) : (h(TableBlockEvent, Object.assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange))))));
+ } }, hasListItemDisplay(seg) ? (y(TableListItemEvent, Object.assign({ seg: seg, isDragging: isDragging, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange)))) : (y(TableBlockEvent, Object.assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange))))));
}
}
return nodes;
@@ -12291,12 +12436,12 @@ var FullCalendar = (function (exports) {
left: 0,
right: framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol],
};
- nodes.push(h("div", { key: buildEventRangeKey(seg.eventRange), className: "fc-daygrid-bg-harness", style: leftRightCss }, fillType === 'bg-event' ?
- h(BgEvent, Object.assign({ seg: seg }, getSegMeta(seg, todayRange))) :
+ nodes.push(y("div", { key: buildEventRangeKey(seg.eventRange), className: "fc-daygrid-bg-harness", style: leftRightCss }, fillType === 'bg-event' ?
+ y(BgEvent, Object.assign({ seg: seg }, getSegMeta(seg, todayRange))) :
renderFill(fillType)));
}
}
- return h(p, {}, ...nodes);
+ return y(_, {}, ...nodes);
}
updateSizing(isExternalSizingChange) {
let { props, state, frameElRefs } = this;
@@ -12377,7 +12522,7 @@ var FullCalendar = (function (exports) {
return topsByInstanceId;
}
- class Table extends DateComponent {
+ class TableRows extends DateComponent {
constructor() {
super(...arguments);
this.splitBusinessHourSegs = memoize(splitSegsByRow);
@@ -12387,22 +12532,9 @@ var FullCalendar = (function (exports) {
this.splitEventDrag = memoize(splitInteractionByRow);
this.splitEventResize = memoize(splitInteractionByRow);
this.rowRefs = new RefMap();
- this.handleRootEl = (rootEl) => {
- this.rootEl = rootEl;
- if (rootEl) {
- this.context.registerInteractiveComponent(this, {
- el: rootEl,
- isHitComboAllowed: this.props.isHitComboAllowed,
- });
- }
- else {
- this.context.unregisterInteractiveComponent(this);
- }
- };
}
render() {
- let { props } = this;
- let { dateProfile, dayMaxEventRows, dayMaxEvents, expandRows } = props;
+ let { props, context } = this;
let rowCnt = props.cells.length;
let businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, rowCnt);
let bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, rowCnt);
@@ -12410,36 +12542,33 @@ var FullCalendar = (function (exports) {
let dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, rowCnt);
let eventDragByRow = this.splitEventDrag(props.eventDrag, rowCnt);
let eventResizeByRow = this.splitEventResize(props.eventResize, rowCnt);
- let limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true;
- // if rows can't expand to fill fixed height, can't do balanced-height event limit
- // TODO: best place to normalize these options?
- if (limitViaBalanced && !expandRows) {
- limitViaBalanced = false;
- dayMaxEventRows = null;
- dayMaxEvents = null;
+ // for DayGrid view with many rows, force a min-height on cells so doesn't appear squished
+ // choose 7 because a month view will have max 6 rows
+ let cellMinHeight = (rowCnt >= 7 && props.clientWidth) ?
+ props.clientWidth / context.options.aspectRatio / 6 :
+ null;
+ return (y(NowTimer, { unit: "day" }, (nowDate, todayRange) => (y(_, null, props.cells.map((cells, row) => (y(TableRow, { ref: this.rowRefs.createRef(row), key: cells.length
+ ? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */
+ : row // in case there are no cells (like when resource view is loading)
+ , showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: props.dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, cellMinHeight: cellMinHeight, forPrint: props.forPrint })))))));
+ }
+ componentDidMount() {
+ // HACK: need a daygrid wrapper parent to do positioning
+ // NOTE: a daygrid resource view w/o resources can have zero cells
+ const firstCellEl = this.rowRefs.currentMap[0].getCellEls()[0];
+ this.rootEl = firstCellEl ? firstCellEl.closest('.fc-daygrid-body') : null;
+ if (this.rootEl) {
+ this.context.registerInteractiveComponent(this, {
+ el: this.rootEl,
+ isHitComboAllowed: this.props.isHitComboAllowed,
+ });
+ }
+ }
+ componentWillUnmount() {
+ if (this.rootEl) {
+ this.context.unregisterInteractiveComponent(this);
+ this.rootEl = null;
}
- let classNames = [
- 'fc-daygrid-body',
- limitViaBalanced ? 'fc-daygrid-body-balanced' : 'fc-daygrid-body-unbalanced',
- expandRows ? '' : 'fc-daygrid-body-natural', // will height of one row depend on the others?
- ];
- return (h("div", { className: classNames.join(' '), ref: this.handleRootEl, style: {
- // these props are important to give this wrapper correct dimensions for interactions
- // TODO: if we set it here, can we avoid giving to inner tables?
- width: props.clientWidth,
- minWidth: props.tableMinWidth,
- } },
- h(NowTimer, { unit: "day" }, (nowDate, todayRange) => (h(p, null,
- h("table", { role: "presentation", className: "fc-scrollgrid-sync-table", style: {
- width: props.clientWidth,
- minWidth: props.tableMinWidth,
- height: expandRows ? props.clientHeight : '',
- } },
- props.colGroupNode,
- h("tbody", { role: "presentation" }, props.cells.map((cells, row) => (h(TableRow, { ref: this.rowRefs.createRef(row), key: cells.length
- ? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */
- : row // in case there are no cells (like when resource view is loading)
- , showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint }))))))))));
}
// Hit System
// ----------------------------------------------------------------------------------------------------
@@ -12484,6 +12613,87 @@ var FullCalendar = (function (exports) {
return seg.eventRange.def.allDay;
}
+ class Table extends DateComponent {
+ constructor() {
+ super(...arguments);
+ this.elRef = d();
+ this.needsScrollReset = false;
+ }
+ render() {
+ let { props } = this;
+ let { dayMaxEventRows, dayMaxEvents, expandRows } = props;
+ let limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true;
+ // if rows can't expand to fill fixed height, can't do balanced-height event limit
+ // TODO: best place to normalize these options?
+ if (limitViaBalanced && !expandRows) {
+ limitViaBalanced = false;
+ dayMaxEventRows = null;
+ dayMaxEvents = null;
+ }
+ let classNames = [
+ 'fc-daygrid-body',
+ limitViaBalanced ? 'fc-daygrid-body-balanced' : 'fc-daygrid-body-unbalanced',
+ expandRows ? '' : 'fc-daygrid-body-natural', // will height of one row depend on the others?
+ ];
+ return (y("div", { ref: this.elRef, className: classNames.join(' '), style: {
+ // these props are important to give this wrapper correct dimensions for interactions
+ // TODO: if we set it here, can we avoid giving to inner tables?
+ width: props.clientWidth,
+ minWidth: props.tableMinWidth,
+ } },
+ y("table", { role: "presentation", className: "fc-scrollgrid-sync-table", style: {
+ width: props.clientWidth,
+ minWidth: props.tableMinWidth,
+ height: expandRows ? props.clientHeight : '',
+ } },
+ props.colGroupNode,
+ y("tbody", { role: "presentation" },
+ y(TableRows, { dateProfile: props.dateProfile, cells: props.cells, renderRowIntro: props.renderRowIntro, showWeekNumbers: props.showWeekNumbers, clientWidth: props.clientWidth, clientHeight: props.clientHeight, businessHourSegs: props.businessHourSegs, bgEventSegs: props.bgEventSegs, fgEventSegs: props.fgEventSegs, dateSelectionSegs: props.dateSelectionSegs, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, forPrint: props.forPrint, isHitComboAllowed: props.isHitComboAllowed })))));
+ }
+ componentDidMount() {
+ this.requestScrollReset();
+ }
+ componentDidUpdate(prevProps) {
+ if (prevProps.dateProfile !== this.props.dateProfile) {
+ this.requestScrollReset();
+ }
+ else {
+ this.flushScrollReset();
+ }
+ }
+ requestScrollReset() {
+ this.needsScrollReset = true;
+ this.flushScrollReset();
+ }
+ flushScrollReset() {
+ if (this.needsScrollReset &&
+ this.props.clientWidth // sizes computed?
+ ) {
+ const subjectEl = getScrollSubjectEl(this.elRef.current, this.props.dateProfile);
+ if (subjectEl) {
+ const originEl = subjectEl.closest('.fc-daygrid-body');
+ const scrollEl = originEl.closest('.fc-scroller');
+ const scrollTop = subjectEl.getBoundingClientRect().top -
+ originEl.getBoundingClientRect().top;
+ scrollEl.scrollTop = scrollTop ? (scrollTop + 1) : 0; // overcome border
+ }
+ this.needsScrollReset = false;
+ }
+ }
+ }
+ function getScrollSubjectEl(containerEl, dateProfile) {
+ let el;
+ if (dateProfile.currentRangeUnit.match(/year|month/)) {
+ el = containerEl.querySelector(`[data-date="${formatIsoMonthStr(dateProfile.currentDate)}-01"]`);
+ // even if view is month-based, first-of-month might be hidden...
+ }
+ if (!el) {
+ el = containerEl.querySelector(`[data-date="${formatDayString(dateProfile.currentDate)}"]`);
+ // could still be hidden if an interior-view hidden day
+ }
+ return el;
+ }
+
class DayTableSlicer extends Slicer {
constructor() {
super(...arguments);
@@ -12498,11 +12708,130 @@ var FullCalendar = (function (exports) {
constructor() {
super(...arguments);
this.slicer = new DayTableSlicer();
- this.tableRef = y();
+ this.tableRef = d();
}
render() {
let { props, context } = this;
- return (h(Table, Object.assign({ ref: this.tableRef }, this.slicer.sliceProps(props, props.dateProfile, props.nextDayThreshold, context, props.dayTableModel), { dateProfile: props.dateProfile, cells: props.dayTableModel.cells, colGroupNode: props.colGroupNode, tableMinWidth: props.tableMinWidth, renderRowIntro: props.renderRowIntro, dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, showWeekNumbers: props.showWeekNumbers, expandRows: props.expandRows, headerAlignElRef: props.headerAlignElRef, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })));
+ return (y(Table, Object.assign({ ref: this.tableRef }, this.slicer.sliceProps(props, props.dateProfile, props.nextDayThreshold, context, props.dayTableModel), { dateProfile: props.dateProfile, cells: props.dayTableModel.cells, colGroupNode: props.colGroupNode, tableMinWidth: props.tableMinWidth, renderRowIntro: props.renderRowIntro, dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, showWeekNumbers: props.showWeekNumbers, expandRows: props.expandRows, headerAlignElRef: props.headerAlignElRef, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })));
+ }
+ }
+
+ class TableDateProfileGenerator extends DateProfileGenerator {
+ // Computes the date range that will be rendered
+ buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay) {
+ let renderRange = super.buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay);
+ let { props } = this;
+ return buildDayTableRenderRange({
+ currentRange: renderRange,
+ snapToWeek: /^(year|month)$/.test(currentRangeUnit),
+ fixedWeekCount: props.fixedWeekCount,
+ dateEnv: props.dateEnv,
+ });
+ }
+ }
+ function buildDayTableRenderRange(props) {
+ let { dateEnv, currentRange } = props;
+ let { start, end } = currentRange;
+ let endOfWeek;
+ // year and month views should be aligned with weeks. this is already done for week
+ if (props.snapToWeek) {
+ start = dateEnv.startOfWeek(start);
+ // make end-of-week if not already
+ endOfWeek = dateEnv.startOfWeek(end);
+ if (endOfWeek.valueOf() !== end.valueOf()) {
+ end = addWeeks(endOfWeek, 1);
+ }
+ }
+ // ensure 6 weeks
+ if (props.fixedWeekCount) {
+ // TODO: instead of these date-math gymnastics (for multimonth view),
+ // compute dateprofiles of all months, then use start of first and end of last.
+ let lastMonthRenderStart = dateEnv.startOfWeek(dateEnv.startOfMonth(addDays(currentRange.end, -1)));
+ let rowCnt = Math.ceil(// could be partial weeks due to hiddenDays
+ diffWeeks(lastMonthRenderStart, end));
+ end = addWeeks(end, 6 - rowCnt);
+ }
+ return { start, end };
+ }
+
+ /* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells.
+ ----------------------------------------------------------------------------------------------------------------------*/
+ // It is a manager for a Table subcomponent, which does most of the heavy lifting.
+ // It is responsible for managing width/height.
+ class TableView extends DateComponent {
+ constructor() {
+ super(...arguments);
+ this.headerElRef = d();
+ }
+ renderSimpleLayout(headerRowContent, bodyContent) {
+ let { props, context } = this;
+ let sections = [];
+ let stickyHeaderDates = getStickyHeaderDates(context.options);
+ if (headerRowContent) {
+ sections.push({
+ type: 'header',
+ key: 'header',
+ isSticky: stickyHeaderDates,
+ chunk: {
+ elRef: this.headerElRef,
+ tableClassName: 'fc-col-header',
+ rowContent: headerRowContent,
+ },
+ });
+ }
+ sections.push({
+ type: 'body',
+ key: 'body',
+ liquid: true,
+ chunk: { content: bodyContent },
+ });
+ return (y(ViewContainer, { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec },
+ y(SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, cols: [] /* TODO: make optional? */, sections: sections })));
+ }
+ renderHScrollLayout(headerRowContent, bodyContent, colCnt, dayMinWidth) {
+ let ScrollGrid = this.context.pluginHooks.scrollGridImpl;
+ if (!ScrollGrid) {
+ throw new Error('No ScrollGrid implementation');
+ }
+ let { props, context } = this;
+ let stickyHeaderDates = !props.forPrint && getStickyHeaderDates(context.options);
+ let stickyFooterScrollbar = !props.forPrint && getStickyFooterScrollbar(context.options);
+ let sections = [];
+ if (headerRowContent) {
+ sections.push({
+ type: 'header',
+ key: 'header',
+ isSticky: stickyHeaderDates,
+ chunks: [{
+ key: 'main',
+ elRef: this.headerElRef,
+ tableClassName: 'fc-col-header',
+ rowContent: headerRowContent,
+ }],
+ });
+ }
+ sections.push({
+ type: 'body',
+ key: 'body',
+ liquid: true,
+ chunks: [{
+ key: 'main',
+ content: bodyContent,
+ }],
+ });
+ if (stickyFooterScrollbar) {
+ sections.push({
+ type: 'footer',
+ key: 'footer',
+ isSticky: true,
+ chunks: [{
+ key: 'main',
+ content: renderScrollShim,
+ }],
+ });
+ }
+ return (y(ViewContainer, { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec },
+ y(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, forPrint: props.forPrint, collapsibleWidth: props.forPrint, colGroups: [{ cols: [{ span: colCnt, minWidth: dayMinWidth }] }], sections: sections })));
}
}
@@ -12510,15 +12839,16 @@ var FullCalendar = (function (exports) {
constructor() {
super(...arguments);
this.buildDayTableModel = memoize(buildDayTableModel);
- this.headerRef = y();
- this.tableRef = y();
+ this.headerRef = d();
+ this.tableRef = d();
+ // can't override any lifecycle methods from parent
}
render() {
let { options, dateProfileGenerator } = this.context;
let { props } = this;
let dayTableModel = this.buildDayTableModel(props.dateProfile, dateProfileGenerator);
- let headerContent = options.dayHeaders && (h(DayHeader, { ref: this.headerRef, dateProfile: props.dateProfile, dates: dayTableModel.headerDates, datesRepDistinctDays: dayTableModel.rowCnt === 1 }));
- let bodyContent = (contentArg) => (h(DayTable, { ref: this.tableRef, dateProfile: props.dateProfile, dayTableModel: dayTableModel, businessHours: props.businessHours, dateSelection: props.dateSelection, eventStore: props.eventStore, eventUiBases: props.eventUiBases, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, nextDayThreshold: options.nextDayThreshold, colGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, dayMaxEvents: options.dayMaxEvents, dayMaxEventRows: options.dayMaxEventRows, showWeekNumbers: options.weekNumbers, expandRows: !props.isHeightAuto, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }));
+ let headerContent = options.dayHeaders && (y(DayHeader, { ref: this.headerRef, dateProfile: props.dateProfile, dates: dayTableModel.headerDates, datesRepDistinctDays: dayTableModel.rowCnt === 1 }));
+ let bodyContent = (contentArg) => (y(DayTable, { ref: this.tableRef, dateProfile: props.dateProfile, dayTableModel: dayTableModel, businessHours: props.businessHours, dateSelection: props.dateSelection, eventStore: props.eventStore, eventUiBases: props.eventUiBases, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, nextDayThreshold: options.nextDayThreshold, colGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, dayMaxEvents: options.dayMaxEvents, dayMaxEventRows: options.dayMaxEventRows, showWeekNumbers: options.weekNumbers, expandRows: !props.isHeightAuto, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }));
return options.dayMinWidth
? this.renderHScrollLayout(headerContent, bodyContent, dayTableModel.colCnt, options.dayMinWidth)
: this.renderSimpleLayout(headerContent, bodyContent);
@@ -12529,38 +12859,7 @@ var FullCalendar = (function (exports) {
return new DayTableModel(daySeries, /year|month|week/.test(dateProfile.currentRangeUnit));
}
- class TableDateProfileGenerator extends DateProfileGenerator {
- // Computes the date range that will be rendered.
- buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay) {
- let { dateEnv } = this.props;
- let renderRange = super.buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay);
- let start = renderRange.start;
- let end = renderRange.end;
- let endOfWeek;
- // year and month views should be aligned with weeks. this is already done for week
- if (/^(year|month)$/.test(currentRangeUnit)) {
- start = dateEnv.startOfWeek(start);
- // make end-of-week if not already
- endOfWeek = dateEnv.startOfWeek(end);
- if (endOfWeek.valueOf() !== end.valueOf()) {
- end = addWeeks(endOfWeek, 1);
- }
- }
- // ensure 6 weeks
- if (this.props.monthMode &&
- this.props.fixedWeekCount) {
- let rowCnt = Math.ceil(// could be partial weeks due to hiddenDays
- diffWeeks(start, end));
- end = addWeeks(end, 6 - rowCnt);
- }
- return { start, end };
- }
- }
-
- var css_248z$2 = ":root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;padding:2px 3px 0}.fc .fc-daygrid-day-bottom:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-more-link{cursor:pointer;position:relative;z-index:4}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}";
- injectStyles(css_248z$2);
-
- var index$2 = createPlugin({
+ var index$3 = createPlugin({
name: '@fullcalendar/daygrid',
initialView: 'dayGridMonth',
views: {
@@ -12579,12 +12878,18 @@ var FullCalendar = (function (exports) {
dayGridMonth: {
type: 'dayGrid',
duration: { months: 1 },
- monthMode: true,
fixedWeekCount: true,
},
+ dayGridYear: {
+ type: 'dayGrid',
+ duration: { years: 1 },
+ },
},
});
+ var css_248z$2 = ".fc-v-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-v-event .fc-event-main{color:var(--fc-event-text-color);height:100%}.fc-v-event .fc-event-main-frame{display:flex;flex-direction:column;height:100%}.fc-v-event .fc-event-time{flex-grow:0;flex-shrink:0;max-height:100%;overflow:hidden}.fc-v-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-height:0}.fc-v-event .fc-event-title{bottom:0;max-height:100%;overflow:hidden;top:0}.fc-v-event:not(.fc-event-start){border-top-left-radius:0;border-top-right-radius:0;border-top-width:0}.fc-v-event:not(.fc-event-end){border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-width:0}.fc-v-event.fc-event-selected:before{left:-10px;right:-10px}.fc-v-event .fc-event-resizer-start{cursor:n-resize}.fc-v-event .fc-event-resizer-end{cursor:s-resize}.fc-v-event:not(.fc-event-selected) .fc-event-resizer{height:var(--fc-event-resizer-thickness);left:0;right:0}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start{top:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer{left:50%;margin-left:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-start{top:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc .fc-timegrid .fc-daygrid-body{z-index:2}.fc .fc-timegrid-divider{padding:0 0 2px}.fc .fc-timegrid-body{min-height:100%;position:relative;z-index:1}.fc .fc-timegrid-axis-chunk{position:relative}.fc .fc-timegrid-axis-chunk>table,.fc .fc-timegrid-slots{position:relative;z-index:1}.fc .fc-timegrid-slot{border-bottom:0;height:1.5em}.fc .fc-timegrid-slot:empty:before{content:\"\\00a0\"}.fc .fc-timegrid-slot-minor{border-top-style:dotted}.fc .fc-timegrid-slot-label-cushion{display:inline-block;white-space:nowrap}.fc .fc-timegrid-slot-label{vertical-align:middle}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{padding:0 4px}.fc .fc-timegrid-axis-frame-liquid{height:100%}.fc .fc-timegrid-axis-frame{align-items:center;display:flex;justify-content:flex-end;overflow:hidden}.fc .fc-timegrid-axis-cushion{flex-shrink:0;max-width:60px}.fc-direction-ltr .fc-timegrid-slot-label-frame{text-align:right}.fc-direction-rtl .fc-timegrid-slot-label-frame{text-align:left}.fc-liquid-hack .fc-timegrid-axis-frame-liquid{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-timegrid-col-frame{min-height:100%;position:relative}.fc-media-screen.fc-liquid-hack .fc-timegrid-col-frame{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols{bottom:0;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols>table{height:100%}.fc-media-screen .fc-timegrid-col-bg,.fc-media-screen .fc-timegrid-col-events,.fc-media-screen .fc-timegrid-now-indicator-container{left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col-bg{z-index:2}.fc .fc-timegrid-col-bg .fc-non-business{z-index:1}.fc .fc-timegrid-col-bg .fc-bg-event{z-index:2}.fc .fc-timegrid-col-bg .fc-highlight{z-index:3}.fc .fc-timegrid-bg-harness{left:0;position:absolute;right:0}.fc .fc-timegrid-col-events{z-index:3}.fc .fc-timegrid-now-indicator-container{bottom:0;overflow:hidden}.fc-direction-ltr .fc-timegrid-col-events{margin:0 2.5% 0 2px}.fc-direction-rtl .fc-timegrid-col-events{margin:0 2px 0 2.5%}.fc-timegrid-event-harness{position:absolute}.fc-timegrid-event-harness>.fc-timegrid-event{bottom:0;left:0;position:absolute;right:0;top:0}.fc-timegrid-event-harness-inset .fc-timegrid-event,.fc-timegrid-event.fc-event-mirror,.fc-timegrid-more-link{box-shadow:0 0 0 1px var(--fc-page-bg-color)}.fc-timegrid-event,.fc-timegrid-more-link{border-radius:3px;font-size:var(--fc-small-font-size)}.fc-timegrid-event{margin-bottom:1px}.fc-timegrid-event .fc-event-main{padding:1px 1px 0}.fc-timegrid-event .fc-event-time{font-size:var(--fc-small-font-size);margin-bottom:1px;white-space:nowrap}.fc-timegrid-event-short .fc-event-main-frame{flex-direction:row;overflow:hidden}.fc-timegrid-event-short .fc-event-time:after{content:\"\\00a0-\\00a0\"}.fc-timegrid-event-short .fc-event-title{font-size:var(--fc-small-font-size)}.fc-timegrid-more-link{background:var(--fc-more-link-bg-color);color:var(--fc-more-link-text-color);cursor:pointer;margin-bottom:1px;position:absolute;z-index:9999}.fc-timegrid-more-link-inner{padding:3px 2px;top:0}.fc-direction-ltr .fc-timegrid-more-link{right:0}.fc-direction-rtl .fc-timegrid-more-link{left:0}.fc .fc-timegrid-now-indicator-line{border-color:var(--fc-now-indicator-color);border-style:solid;border-width:1px 0 0;left:0;position:absolute;right:0;z-index:4}.fc .fc-timegrid-now-indicator-arrow{border-color:var(--fc-now-indicator-color);border-style:solid;margin-top:-5px;position:absolute;z-index:4}.fc-direction-ltr .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 0 5px 6px;left:0}.fc-direction-rtl .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 6px 5px 0;right:0}";
+ injectStyles(css_248z$2);
+
class AllDaySplitter extends Splitter {
getKeyInfo() {
return {
@@ -12621,9 +12926,9 @@ var FullCalendar = (function (exports) {
'fc-timegrid-slot-label',
props.isLabeled ? 'fc-scrollgrid-shrink' : 'fc-timegrid-slot-minor',
];
- return (h(ViewContextType.Consumer, null, (context) => {
+ return (y(ViewContextType.Consumer, null, (context) => {
if (!props.isLabeled) {
- return (h("td", { className: classNames.join(' '), "data-time": props.isoTimeStr }));
+ return (y("td", { className: classNames.join(' '), "data-time": props.isoTimeStr }));
}
let { dateEnv, options, viewApi } = context;
let labelFormat = // TODO: fully pre-parse
@@ -12637,10 +12942,10 @@ var FullCalendar = (function (exports) {
view: viewApi,
text: dateEnv.format(props.date, labelFormat),
};
- return (h(ContentContainer, { elTag: "td", elClasses: classNames, elAttrs: {
+ return (y(ContentContainer, { elTag: "td", elClasses: classNames, elAttrs: {
'data-time': props.isoTimeStr,
- }, renderProps: renderProps, generatorName: "slotLabelContent", generator: options.slotLabelContent || renderInnerContent$1, classNameGenerator: options.slotLabelClassNames, didMount: options.slotLabelDidMount, willUnmount: options.slotLabelWillUnmount }, (InnerContent) => (h("div", { className: "fc-timegrid-slot-label-frame fc-scrollgrid-shrink-frame" },
- h(InnerContent, { elTag: "div", elClasses: [
+ }, renderProps: renderProps, generatorName: "slotLabelContent", customGenerator: options.slotLabelContent, defaultGenerator: renderInnerContent$1, classNameGenerator: options.slotLabelClassNames, didMount: options.slotLabelDidMount, willUnmount: options.slotLabelWillUnmount }, (InnerContent) => (y("div", { className: "fc-timegrid-slot-label-frame fc-scrollgrid-shrink-frame" },
+ y(InnerContent, { elTag: "div", elClasses: [
'fc-timegrid-slot-label-cushion',
'fc-scrollgrid-shrink-cushion',
] })))));
@@ -12652,8 +12957,8 @@ var FullCalendar = (function (exports) {
class TimeBodyAxis extends BaseComponent {
render() {
- return this.props.slatMetas.map((slatMeta) => (h("tr", { key: slatMeta.key },
- h(TimeColsAxisCell, Object.assign({}, slatMeta)))));
+ return this.props.slatMetas.map((slatMeta) => (y("tr", { key: slatMeta.key },
+ y(TimeColsAxisCell, Object.assign({}, slatMeta)))));
}
}
@@ -12663,9 +12968,9 @@ var FullCalendar = (function (exports) {
constructor() {
super(...arguments);
this.allDaySplitter = new AllDaySplitter(); // for use by subclasses
- this.headerElRef = y();
- this.rootElRef = y();
- this.scrollerElRef = y();
+ this.headerElRef = d();
+ this.rootElRef = d();
+ this.scrollerElRef = d();
this.state = {
slatCoords: null,
};
@@ -12687,24 +12992,24 @@ var FullCalendar = (function (exports) {
? buildNavLinkAttrs(this.context, range.start, 'week')
: {};
if (options.weekNumbers && rowKey === 'day') {
- return (h(WeekNumberContainer, { elTag: "th", elClasses: [
+ return (y(WeekNumberContainer, { elTag: "th", elClasses: [
'fc-timegrid-axis',
'fc-scrollgrid-shrink',
], elAttrs: {
'aria-hidden': true,
- }, date: range.start, defaultFormat: DEFAULT_WEEK_NUM_FORMAT }, (InnerContent) => (h("div", { className: [
+ }, date: range.start, defaultFormat: DEFAULT_WEEK_NUM_FORMAT }, (InnerContent) => (y("div", { className: [
'fc-timegrid-axis-frame',
'fc-scrollgrid-shrink-frame',
'fc-timegrid-axis-frame-liquid',
].join(' '), style: { height: frameHeight } },
- h(InnerContent, { elTag: "a", elClasses: [
+ y(InnerContent, { elTag: "a", elClasses: [
'fc-timegrid-axis-cushion',
'fc-scrollgrid-shrink-cushion',
'fc-scrollgrid-sync-inner',
], elAttrs: navLinkAttrs })))));
}
- return (h("th", { "aria-hidden": true, className: "fc-timegrid-axis" },
- h("div", { className: "fc-timegrid-axis-frame", style: { height: frameHeight } })));
+ return (y("th", { "aria-hidden": true, className: "fc-timegrid-axis" },
+ y("div", { className: "fc-timegrid-axis-frame", style: { height: frameHeight } })));
};
/* Table Component Render Methods
------------------------------------------------------------------------------------------------------------------*/
@@ -12718,17 +13023,17 @@ var FullCalendar = (function (exports) {
};
return (
// TODO: make reusable hook. used in list view too
- h(ContentContainer, { elTag: "td", elClasses: [
+ y(ContentContainer, { elTag: "td", elClasses: [
'fc-timegrid-axis',
'fc-scrollgrid-shrink',
], elAttrs: {
'aria-hidden': true,
- }, renderProps: renderProps, generatorName: "allDayContent", generator: options.allDayContent || renderAllDayInner$1, classNameGenerator: options.allDayClassNames, didMount: options.allDayDidMount, willUnmount: options.allDayWillUnmount }, (InnerContent) => (h("div", { className: [
+ }, renderProps: renderProps, generatorName: "allDayContent", customGenerator: options.allDayContent, defaultGenerator: renderAllDayInner$1, classNameGenerator: options.allDayClassNames, didMount: options.allDayDidMount, willUnmount: options.allDayWillUnmount }, (InnerContent) => (y("div", { className: [
'fc-timegrid-axis-frame',
'fc-scrollgrid-shrink-frame',
rowHeight == null ? ' fc-timegrid-axis-frame-liquid' : '',
].join(' '), style: { height: rowHeight } },
- h(InnerContent, { elTag: "span", elClasses: [
+ y(InnerContent, { elTag: "span", elClasses: [
'fc-timegrid-axis-cushion',
'fc-scrollgrid-shrink-cushion',
'fc-scrollgrid-sync-inner',
@@ -12766,8 +13071,8 @@ var FullCalendar = (function (exports) {
type: 'body',
key: 'all-day-divider',
outerContent: ( // TODO: rename to cellContent so don't need to define <tr>?
- h("tr", { role: "presentation", className: "fc-scrollgrid-section" },
- h("td", { className: 'fc-timegrid-divider ' + context.theme.getClass('tableCellShaded') }))),
+ y("tr", { role: "presentation", className: "fc-scrollgrid-section" },
+ y("td", { className: 'fc-timegrid-divider ' + context.theme.getClass('tableCellShaded') }))),
});
}
sections.push({
@@ -12780,8 +13085,8 @@ var FullCalendar = (function (exports) {
content: timeContent,
},
});
- return (h(ViewContainer$1, { elRef: this.rootElRef, elClasses: ['fc-timegrid'], viewSpec: context.viewSpec },
- h(SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, cols: [{ width: 'shrink' }], sections: sections })));
+ return (y(ViewContainer, { elRef: this.rootElRef, elClasses: ['fc-timegrid'], viewSpec: context.viewSpec },
+ y(SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, cols: [{ width: 'shrink' }], sections: sections })));
}
renderHScrollLayout(headerRowContent, allDayContent, timeContent, colCnt, dayMinWidth, slatMetas, slatCoords) {
let ScrollGrid = this.context.pluginHooks.scrollGridImpl;
@@ -12801,7 +13106,7 @@ var FullCalendar = (function (exports) {
chunks: [
{
key: 'axis',
- rowContent: (arg) => (h("tr", { role: "presentation" }, this.renderHeadAxis('day', arg.rowSyncHeights[0]))),
+ rowContent: (arg) => (y("tr", { role: "presentation" }, this.renderHeadAxis('day', arg.rowSyncHeights[0]))),
},
{
key: 'cols',
@@ -12820,7 +13125,7 @@ var FullCalendar = (function (exports) {
chunks: [
{
key: 'axis',
- rowContent: (contentArg) => (h("tr", { role: "presentation" }, this.renderTableRowAxis(contentArg.rowSyncHeights[0]))),
+ rowContent: (contentArg) => (y("tr", { role: "presentation" }, this.renderTableRowAxis(contentArg.rowSyncHeights[0]))),
},
{
key: 'cols',
@@ -12832,8 +13137,8 @@ var FullCalendar = (function (exports) {
key: 'all-day-divider',
type: 'body',
outerContent: ( // TODO: rename to cellContent so don't need to define <tr>?
- h("tr", { role: "presentation", className: "fc-scrollgrid-section" },
- h("td", { colSpan: 2, className: 'fc-timegrid-divider ' + context.theme.getClass('tableCellShaded') }))),
+ y("tr", { role: "presentation", className: "fc-scrollgrid-section" },
+ y("td", { colSpan: 2, className: 'fc-timegrid-divider ' + context.theme.getClass('tableCellShaded') }))),
});
}
let isNowIndicator = context.options.nowIndicator;
@@ -12847,18 +13152,18 @@ var FullCalendar = (function (exports) {
key: 'axis',
content: (arg) => (
// TODO: make this now-indicator arrow more DRY with TimeColsContent
- h("div", { className: "fc-timegrid-axis-chunk" },
- h("table", { "aria-hidden": true, style: { height: arg.expandRows ? arg.clientHeight : '' } },
+ y("div", { className: "fc-timegrid-axis-chunk" },
+ y("table", { "aria-hidden": true, style: { height: arg.expandRows ? arg.clientHeight : '' } },
arg.tableColGroupNode,
- h("tbody", null,
- h(TimeBodyAxis, { slatMetas: slatMetas }))),
- h("div", { className: "fc-timegrid-now-indicator-container" },
- h(NowTimer, { unit: isNowIndicator ? 'minute' : 'day' /* hacky */ }, (nowDate) => {
+ y("tbody", null,
+ y(TimeBodyAxis, { slatMetas: slatMetas }))),
+ y("div", { className: "fc-timegrid-now-indicator-container" },
+ y(NowTimer, { unit: isNowIndicator ? 'minute' : 'day' /* hacky */ }, (nowDate) => {
let nowIndicatorTop = isNowIndicator &&
slatCoords &&
slatCoords.safeComputeTop(nowDate); // might return void
if (typeof nowIndicatorTop === 'number') {
- return (h(NowIndicatorContainer, { elClasses: ['fc-timegrid-now-indicator-arrow'], elStyle: { top: nowIndicatorTop }, isAxis: true, date: nowDate }));
+ return (y(NowIndicatorContainer, { elClasses: ['fc-timegrid-now-indicator-arrow'], elStyle: { top: nowIndicatorTop }, isAxis: true, date: nowDate }));
}
return null;
})))),
@@ -12887,8 +13192,8 @@ var FullCalendar = (function (exports) {
],
});
}
- return (h(ViewContainer$1, { elRef: this.rootElRef, elClasses: ['fc-timegrid'], viewSpec: context.viewSpec },
- h(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: false, colGroups: [
+ return (y(ViewContainer, { elRef: this.rootElRef, elClasses: ['fc-timegrid'], viewSpec: context.viewSpec },
+ y(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, forPrint: props.forPrint, collapsibleWidth: false, colGroups: [
{ width: 'shrink', cols: [{ width: 'shrink' }] },
{ cols: [{ span: colCnt, minWidth: dayMinWidth }] },
], sections: sections })));
@@ -12966,21 +13271,21 @@ var FullCalendar = (function (exports) {
let { props, context } = this;
let { options } = context;
let { slatElRefs } = props;
- return (h("tbody", null, props.slatMetas.map((slatMeta, i) => {
+ return (y("tbody", null, props.slatMetas.map((slatMeta, i) => {
let renderProps = {
time: slatMeta.time,
date: context.dateEnv.toDate(slatMeta.date),
view: context.viewApi,
};
- return (h("tr", { key: slatMeta.key, ref: slatElRefs.createRef(slatMeta.key) },
- props.axis && (h(TimeColsAxisCell, Object.assign({}, slatMeta))),
- h(ContentContainer, { elTag: "td", elClasses: [
+ return (y("tr", { key: slatMeta.key, ref: slatElRefs.createRef(slatMeta.key) },
+ props.axis && (y(TimeColsAxisCell, Object.assign({}, slatMeta))),
+ y(ContentContainer, { elTag: "td", elClasses: [
'fc-timegrid-slot',
'fc-timegrid-slot-lane',
!slatMeta.isLabeled && 'fc-timegrid-slot-minor',
], elAttrs: {
'data-time': slatMeta.isoTimeStr,
- }, renderProps: renderProps, generatorName: "slotLaneContent", generator: options.slotLaneContent, classNameGenerator: options.slotLaneClassNames, didMount: options.slotLaneDidMount, willUnmount: options.slotLaneWillUnmount })));
+ }, renderProps: renderProps, generatorName: "slotLaneContent", customGenerator: options.slotLaneContent, classNameGenerator: options.slotLaneClassNames, didMount: options.slotLaneDidMount, willUnmount: options.slotLaneWillUnmount })));
})));
}
}
@@ -12991,19 +13296,19 @@ var FullCalendar = (function (exports) {
class TimeColsSlats extends BaseComponent {
constructor() {
super(...arguments);
- this.rootElRef = y();
+ this.rootElRef = d();
this.slatElRefs = new RefMap();
}
render() {
let { props, context } = this;
- return (h("div", { ref: this.rootElRef, className: "fc-timegrid-slots" },
- h("table", { "aria-hidden": true, className: context.theme.getClass('table'), style: {
+ return (y("div", { ref: this.rootElRef, className: "fc-timegrid-slots" },
+ y("table", { "aria-hidden": true, className: context.theme.getClass('table'), style: {
minWidth: props.tableMinWidth,
width: props.clientWidth,
height: props.minHeight,
} },
props.tableColGroupNode /* relies on there only being a single <col> for the axis */,
- h(TimeColsSlatsBody, { slatElRefs: this.slatElRefs, axis: props.axis, slatMetas: props.slatMetas }))));
+ y(TimeColsSlatsBody, { slatElRefs: this.slatElRefs, axis: props.axis, slatMetas: props.slatMetas }))));
}
componentDidMount() {
this.updateSizing();
@@ -13070,10 +13375,10 @@ var FullCalendar = (function (exports) {
class TimeColMoreLink extends BaseComponent {
render() {
let { props } = this;
- return (h(MoreLinkContainer, { elClasses: ['fc-timegrid-more-link'], elStyle: {
+ return (y(MoreLinkContainer, { elClasses: ['fc-timegrid-more-link'], elStyle: {
top: props.top,
bottom: props.bottom,
- }, allDayDate: null, moreCnt: props.hiddenSegs.length, allSegs: props.hiddenSegs, hiddenSegs: props.hiddenSegs, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, todayRange: props.todayRange, popoverContent: () => renderPlainFgSegs(props.hiddenSegs, props), defaultGenerator: renderMoreLinkInner }, (InnerContent) => (h(InnerContent, { elTag: "div", elClasses: ['fc-timegrid-more-link-inner', 'fc-sticky'] }))));
+ }, allDayDate: null, moreCnt: props.hiddenSegs.length, allSegs: props.hiddenSegs, hiddenSegs: props.hiddenSegs, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, todayRange: props.todayRange, popoverContent: () => renderPlainFgSegs(props.hiddenSegs, props), defaultGenerator: renderMoreLinkInner, forceTimed: true }, (InnerContent) => (y(InnerContent, { elTag: "div", elClasses: ['fc-timegrid-more-link-inner', 'fc-sticky'] }))));
}
}
function renderMoreLinkInner(props) {
@@ -13272,7 +13577,7 @@ var FullCalendar = (function (exports) {
});
class TimeColEvent extends BaseComponent {
render() {
- return (h(StandardEvent, Object.assign({}, this.props, { elClasses: [
+ return (y(StandardEvent, Object.assign({}, this.props, { elClasses: [
'fc-timegrid-event',
'fc-v-event',
this.props.isShort && 'fc-timegrid-event-short',
@@ -13300,34 +13605,34 @@ var FullCalendar = (function (exports) {
(props.eventResize && props.eventResize.affectedInstances) ||
{};
let sortedFgSegs = this.sortEventSegs(props.fgEventSegs, options.eventOrder);
- return (h(DayCellContainer, { elTag: "td", elRef: props.elRef, elClasses: [
+ return (y(DayCellContainer, { elTag: "td", elRef: props.elRef, elClasses: [
'fc-timegrid-col',
...(props.extraClassNames || []),
- ], elAttrs: Object.assign({ role: 'gridcell' }, props.extraDataAttrs), date: props.date, dateProfile: props.dateProfile, todayRange: props.todayRange, extraRenderProps: props.extraRenderProps }, (InnerContent) => (h("div", { className: "fc-timegrid-col-frame" },
- h("div", { className: "fc-timegrid-col-bg" },
+ ], elAttrs: Object.assign({ role: 'gridcell' }, props.extraDataAttrs), date: props.date, dateProfile: props.dateProfile, todayRange: props.todayRange, extraRenderProps: props.extraRenderProps }, (InnerContent) => (y("div", { className: "fc-timegrid-col-frame" },
+ y("div", { className: "fc-timegrid-col-bg" },
this.renderFillSegs(props.businessHourSegs, 'non-business'),
this.renderFillSegs(props.bgEventSegs, 'bg-event'),
this.renderFillSegs(props.dateSelectionSegs, 'highlight')),
- h("div", { className: "fc-timegrid-col-events" }, this.renderFgSegs(sortedFgSegs, interactionAffectedInstances, false, false, false)),
- h("div", { className: "fc-timegrid-col-events" }, this.renderFgSegs(mirrorSegs, {}, Boolean(props.eventDrag), Boolean(props.eventResize), Boolean(isSelectMirror))),
- h("div", { className: "fc-timegrid-now-indicator-container" }, this.renderNowIndicator(props.nowIndicatorSegs)),
- hasCustomDayCellContent(options) && (h(InnerContent, { elTag: "div", elClasses: ['fc-timegrid-col-misc'] }))))));
+ y("div", { className: "fc-timegrid-col-events" }, this.renderFgSegs(sortedFgSegs, interactionAffectedInstances, false, false, false)),
+ y("div", { className: "fc-timegrid-col-events" }, this.renderFgSegs(mirrorSegs, {}, Boolean(props.eventDrag), Boolean(props.eventResize), Boolean(isSelectMirror), 'mirror')),
+ y("div", { className: "fc-timegrid-now-indicator-container" }, this.renderNowIndicator(props.nowIndicatorSegs)),
+ hasCustomDayCellContent(options) && (y(InnerContent, { elTag: "div", elClasses: ['fc-timegrid-col-misc'] }))))));
}
- renderFgSegs(sortedFgSegs, segIsInvisible, isDragging, isResizing, isDateSelecting) {
+ renderFgSegs(sortedFgSegs, segIsInvisible, isDragging, isResizing, isDateSelecting, forcedKey) {
let { props } = this;
if (props.forPrint) {
return renderPlainFgSegs(sortedFgSegs, props);
}
- return this.renderPositionedFgSegs(sortedFgSegs, segIsInvisible, isDragging, isResizing, isDateSelecting);
+ return this.renderPositionedFgSegs(sortedFgSegs, segIsInvisible, isDragging, isResizing, isDateSelecting, forcedKey);
}
renderPositionedFgSegs(segs, // if not mirror, needs to be sorted
- segIsInvisible, isDragging, isResizing, isDateSelecting) {
+ segIsInvisible, isDragging, isResizing, isDateSelecting, forcedKey) {
let { eventMaxStack, eventShortHeight, eventOrderStrict, eventMinHeight } = this.context.options;
let { date, slatCoords, eventSelection, todayRange, nowDate } = this.props;
let isMirror = isDragging || isResizing || isDateSelecting;
let segVCoords = computeSegVCoords(segs, date, slatCoords, eventMinHeight);
let { segPlacements, hiddenGroups } = computeFgSegPlacements(segs, segVCoords, eventOrderStrict, eventMaxStack);
- return (h(p, null,
+ return (y(_, null,
this.renderHiddenGroups(hiddenGroups, segs),
segPlacements.map((segPlacement) => {
let { seg, rect } = segPlacement;
@@ -13337,18 +13642,18 @@ var FullCalendar = (function (exports) {
let hStyle = (!isMirror && rect) ? this.computeSegHStyle(rect) : { left: 0, right: 0 };
let isInset = Boolean(rect) && rect.stackForward > 0;
let isShort = Boolean(rect) && (rect.span.end - rect.span.start) < eventShortHeight; // look at other places for this problem
- return (h("div", { className: 'fc-timegrid-event-harness' +
- (isInset ? ' fc-timegrid-event-harness-inset' : ''), key: instanceId, style: Object.assign(Object.assign({ visibility: isVisible ? '' : 'hidden' }, vStyle), hStyle) },
- h(TimeColEvent, Object.assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, isShort: isShort }, getSegMeta(seg, todayRange, nowDate)))));
+ return (y("div", { className: 'fc-timegrid-event-harness' +
+ (isInset ? ' fc-timegrid-event-harness-inset' : ''), key: forcedKey || instanceId, style: Object.assign(Object.assign({ visibility: isVisible ? '' : 'hidden' }, vStyle), hStyle) },
+ y(TimeColEvent, Object.assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, isShort: isShort }, getSegMeta(seg, todayRange, nowDate)))));
})));
}
// will already have eventMinHeight applied because segInputs already had it
renderHiddenGroups(hiddenGroups, segs) {
let { extraDateSpan, dateProfile, todayRange, nowDate, eventSelection, eventDrag, eventResize } = this.props;
- return (h(p, null, hiddenGroups.map((hiddenGroup) => {
+ return (y(_, null, hiddenGroups.map((hiddenGroup) => {
let positionCss = computeSegVStyle(hiddenGroup.span);
let hiddenSegs = compileSegsFromEntries(hiddenGroup.entries, segs);
- return (h(TimeColMoreLink, { key: buildIsoString(computeEarliestSegStart(hiddenSegs)), hiddenSegs: hiddenSegs, top: positionCss.top, bottom: positionCss.bottom, extraDateSpan: extraDateSpan, dateProfile: dateProfile, todayRange: todayRange, nowDate: nowDate, eventSelection: eventSelection, eventDrag: eventDrag, eventResize: eventResize }));
+ return (y(TimeColMoreLink, { key: buildIsoString(computeEarliestSegStart(hiddenSegs)), hiddenSegs: hiddenSegs, top: positionCss.top, bottom: positionCss.bottom, extraDateSpan: extraDateSpan, dateProfile: dateProfile, todayRange: todayRange, nowDate: nowDate, eventSelection: eventSelection, eventDrag: eventDrag, eventResize: eventResize }));
})));
}
renderFillSegs(segs, fillType) {
@@ -13356,18 +13661,18 @@ var FullCalendar = (function (exports) {
let segVCoords = computeSegVCoords(segs, props.date, props.slatCoords, context.options.eventMinHeight); // don't assume all populated
let children = segVCoords.map((vcoords, i) => {
let seg = segs[i];
- return (h("div", { key: buildEventRangeKey(seg.eventRange), className: "fc-timegrid-bg-harness", style: computeSegVStyle(vcoords) }, fillType === 'bg-event' ?
- h(BgEvent, Object.assign({ seg: seg }, getSegMeta(seg, props.todayRange, props.nowDate))) :
+ return (y("div", { key: buildEventRangeKey(seg.eventRange), className: "fc-timegrid-bg-harness", style: computeSegVStyle(vcoords) }, fillType === 'bg-event' ?
+ y(BgEvent, Object.assign({ seg: seg }, getSegMeta(seg, props.todayRange, props.nowDate))) :
renderFill(fillType)));
});
- return h(p, null, children);
+ return y(_, null, children);
}
renderNowIndicator(segs) {
let { slatCoords, date } = this.props;
if (!slatCoords) {
return null;
}
- return segs.map((seg, i) => (h(NowIndicatorContainer
+ return segs.map((seg, i) => (y(NowIndicatorContainer
// key doesn't matter. will only ever be one
, {
// key doesn't matter. will only ever be one
@@ -13410,10 +13715,10 @@ var FullCalendar = (function (exports) {
let hiddenInstances = (eventDrag ? eventDrag.affectedInstances : null) ||
(eventResize ? eventResize.affectedInstances : null) ||
{};
- return (h(p, null, sortedFgSegs.map((seg) => {
+ return (y(_, null, sortedFgSegs.map((seg) => {
let instanceId = seg.eventRange.instance.instanceId;
- return (h("div", { key: instanceId, style: { visibility: hiddenInstances[instanceId] ? 'hidden' : '' } },
- h(TimeColEvent, Object.assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === eventSelection, isShort: false }, getSegMeta(seg, todayRange, nowDate)))));
+ return (y("div", { key: instanceId, style: { visibility: hiddenInstances[instanceId] ? 'hidden' : '' } },
+ y(TimeColEvent, Object.assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === eventSelection, isShort: false }, getSegMeta(seg, todayRange, nowDate)))));
})));
}
function computeSegVStyle(segVCoords) {
@@ -13439,7 +13744,7 @@ var FullCalendar = (function (exports) {
this.splitDateSelectionSegs = memoize(splitSegsByCol);
this.splitEventDrag = memoize(splitInteractionByCol);
this.splitEventResize = memoize(splitInteractionByCol);
- this.rootElRef = y();
+ this.rootElRef = d();
this.cellElRefs = new RefMap();
}
render() {
@@ -13455,18 +13760,18 @@ var FullCalendar = (function (exports) {
let dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, colCnt);
let eventDragByRow = this.splitEventDrag(props.eventDrag, colCnt);
let eventResizeByRow = this.splitEventResize(props.eventResize, colCnt);
- return (h("div", { className: "fc-timegrid-cols", ref: this.rootElRef },
- h("table", { role: "presentation", style: {
+ return (y("div", { className: "fc-timegrid-cols", ref: this.rootElRef },
+ y("table", { role: "presentation", style: {
minWidth: props.tableMinWidth,
width: props.clientWidth,
} },
props.tableColGroupNode,
- h("tbody", { role: "presentation" },
- h("tr", { role: "row" },
- props.axis && (h("td", { "aria-hidden": true, className: "fc-timegrid-col fc-timegrid-axis" },
- h("div", { className: "fc-timegrid-col-frame" },
- h("div", { className: "fc-timegrid-now-indicator-container" }, typeof nowIndicatorTop === 'number' && (h(NowIndicatorContainer, { elClasses: ['fc-timegrid-now-indicator-arrow'], elStyle: { top: nowIndicatorTop }, isAxis: true, date: props.nowDate })))))),
- props.cells.map((cell, i) => (h(TimeCol, { key: cell.key, elRef: this.cellElRefs.createRef(cell.key), dateProfile: props.dateProfile, date: cell.date, nowDate: props.nowDate, todayRange: props.todayRange, extraRenderProps: cell.extraRenderProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, fgEventSegs: fgEventSegsByRow[i], bgEventSegs: bgEventSegsByRow[i], businessHourSegs: businessHourSegsByRow[i], nowIndicatorSegs: nowIndicatorSegsByRow[i], dateSelectionSegs: dateSelectionSegsByRow[i], eventDrag: eventDragByRow[i], eventResize: eventResizeByRow[i], slatCoords: props.slatCoords, eventSelection: props.eventSelection, forPrint: props.forPrint }))))))));
+ y("tbody", { role: "presentation" },
+ y("tr", { role: "row" },
+ props.axis && (y("td", { "aria-hidden": true, className: "fc-timegrid-col fc-timegrid-axis" },
+ y("div", { className: "fc-timegrid-col-frame" },
+ y("div", { className: "fc-timegrid-now-indicator-container" }, typeof nowIndicatorTop === 'number' && (y(NowIndicatorContainer, { elClasses: ['fc-timegrid-now-indicator-arrow'], elStyle: { top: nowIndicatorTop }, isAxis: true, date: props.nowDate })))))),
+ props.cells.map((cell, i) => (y(TimeCol, { key: cell.key, elRef: this.cellElRefs.createRef(cell.key), dateProfile: props.dateProfile, date: cell.date, nowDate: props.nowDate, todayRange: props.todayRange, extraRenderProps: cell.extraRenderProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, fgEventSegs: fgEventSegsByRow[i], bgEventSegs: bgEventSegsByRow[i], businessHourSegs: businessHourSegsByRow[i], nowIndicatorSegs: nowIndicatorSegsByRow[i], dateSelectionSegs: dateSelectionSegsByRow[i], eventDrag: eventDragByRow[i], eventResize: eventResizeByRow[i], slatCoords: props.slatCoords, eventSelection: props.eventSelection, forPrint: props.forPrint }))))))));
}
componentDidMount() {
this.updateCoords();
@@ -13536,14 +13841,14 @@ var FullCalendar = (function (exports) {
}
render() {
let { props, state } = this;
- return (h("div", { className: "fc-timegrid-body", ref: this.handleRootEl, style: {
+ return (y("div", { className: "fc-timegrid-body", ref: this.handleRootEl, style: {
// these props are important to give this wrapper correct dimensions for interactions
// TODO: if we set it here, can we avoid giving to inner tables?
width: props.clientWidth,
minWidth: props.tableMinWidth,
} },
- h(TimeColsSlats, { axis: props.axis, dateProfile: props.dateProfile, slatMetas: props.slatMetas, clientWidth: props.clientWidth, minHeight: props.expandRows ? props.clientHeight : '', tableMinWidth: props.tableMinWidth, tableColGroupNode: props.axis ? props.tableColGroupNode : null /* axis depends on the colgroup's shrinking */, onCoords: this.handleSlatCoords }),
- h(TimeColsContent, { cells: props.cells, axis: props.axis, dateProfile: props.dateProfile, businessHourSegs: props.businessHourSegs, bgEventSegs: props.bgEventSegs, fgEventSegs: props.fgEventSegs, dateSelectionSegs: props.dateSelectionSegs, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange, nowDate: props.nowDate, nowIndicatorSegs: props.nowIndicatorSegs, clientWidth: props.clientWidth, tableMinWidth: props.tableMinWidth, tableColGroupNode: props.tableColGroupNode, slatCoords: state.slatCoords, onColCoords: this.handleColCoords, forPrint: props.forPrint })));
+ y(TimeColsSlats, { axis: props.axis, dateProfile: props.dateProfile, slatMetas: props.slatMetas, clientWidth: props.clientWidth, minHeight: props.expandRows ? props.clientHeight : '', tableMinWidth: props.tableMinWidth, tableColGroupNode: props.axis ? props.tableColGroupNode : null /* axis depends on the colgroup's shrinking */, onCoords: this.handleSlatCoords }),
+ y(TimeColsContent, { cells: props.cells, axis: props.axis, dateProfile: props.dateProfile, businessHourSegs: props.businessHourSegs, bgEventSegs: props.bgEventSegs, fgEventSegs: props.fgEventSegs, dateSelectionSegs: props.dateSelectionSegs, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange, nowDate: props.nowDate, nowIndicatorSegs: props.nowIndicatorSegs, clientWidth: props.clientWidth, tableMinWidth: props.tableMinWidth, tableColGroupNode: props.tableColGroupNode, slatCoords: state.slatCoords, onColCoords: this.handleColCoords, forPrint: props.forPrint })));
}
componentDidMount() {
this.scrollResponder = this.context.createScrollResponder(this.handleScrollRequest);
@@ -13624,16 +13929,16 @@ var FullCalendar = (function (exports) {
super(...arguments);
this.buildDayRanges = memoize(buildDayRanges);
this.slicer = new DayTimeColsSlicer();
- this.timeColsRef = y();
+ this.timeColsRef = d();
}
render() {
let { props, context } = this;
let { dateProfile, dayTableModel } = props;
- let isNowIndicator = context.options.nowIndicator;
+ let { nowIndicator, nextDayThreshold } = context.options;
let dayRanges = this.buildDayRanges(dayTableModel, dateProfile, context.dateEnv);
// give it the first row of cells
// TODO: would move this further down hierarchy, but sliceNowDate needs it
- return (h(NowTimer, { unit: isNowIndicator ? 'minute' : 'day' }, (nowDate, todayRange) => (h(TimeCols, Object.assign({ ref: this.timeColsRef }, this.slicer.sliceProps(props, dateProfile, null, context, dayRanges), { forPrint: props.forPrint, axis: props.axis, dateProfile: dateProfile, slatMetas: props.slatMetas, slotDuration: props.slotDuration, cells: dayTableModel.cells[0], tableColGroupNode: props.tableColGroupNode, tableMinWidth: props.tableMinWidth, clientWidth: props.clientWidth, clientHeight: props.clientHeight, expandRows: props.expandRows, nowDate: nowDate, nowIndicatorSegs: isNowIndicator && this.slicer.sliceNowDate(nowDate, context, dayRanges), todayRange: todayRange, onScrollTopRequest: props.onScrollTopRequest, onSlatCoords: props.onSlatCoords })))));
+ return (y(NowTimer, { unit: nowIndicator ? 'minute' : 'day' }, (nowDate, todayRange) => (y(TimeCols, Object.assign({ ref: this.timeColsRef }, this.slicer.sliceProps(props, dateProfile, null, context, dayRanges), { forPrint: props.forPrint, axis: props.axis, dateProfile: dateProfile, slatMetas: props.slatMetas, slotDuration: props.slotDuration, cells: dayTableModel.cells[0], tableColGroupNode: props.tableColGroupNode, tableMinWidth: props.tableMinWidth, clientWidth: props.clientWidth, clientHeight: props.clientHeight, expandRows: props.expandRows, nowDate: nowDate, nowIndicatorSegs: nowIndicator && this.slicer.sliceNowDate(nowDate, dateProfile, nextDayThreshold, context, dayRanges), todayRange: todayRange, onScrollTopRequest: props.onScrollTopRequest, onSlatCoords: props.onSlatCoords })))));
}
}
function buildDayRanges(dayTableModel, dateProfile, dateEnv) {
@@ -13709,9 +14014,9 @@ var FullCalendar = (function (exports) {
let { dayMinWidth } = options;
let hasAttachedAxis = !dayMinWidth;
let hasDetachedAxis = dayMinWidth;
- let headerContent = options.dayHeaders && (h(DayHeader, { dates: dayTableModel.headerDates, dateProfile: dateProfile, datesRepDistinctDays: true, renderIntro: hasAttachedAxis ? this.renderHeadAxis : null }));
- let allDayContent = (options.allDaySlot !== false) && ((contentArg) => (h(DayTable, Object.assign({}, splitProps.allDay, { dateProfile: dateProfile, dayTableModel: dayTableModel, nextDayThreshold: options.nextDayThreshold, tableMinWidth: contentArg.tableMinWidth, colGroupNode: contentArg.tableColGroupNode, renderRowIntro: hasAttachedAxis ? this.renderTableRowAxis : null, showWeekNumbers: false, expandRows: false, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }, this.getAllDayMaxEventProps()))));
- let timeGridContent = (contentArg) => (h(DayTimeCols, Object.assign({}, splitProps.timed, { dayTableModel: dayTableModel, dateProfile: dateProfile, axis: hasAttachedAxis, slotDuration: options.slotDuration, slatMetas: slatMetas, forPrint: props.forPrint, tableColGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, onSlatCoords: this.handleSlatCoords, expandRows: contentArg.expandRows, onScrollTopRequest: this.handleScrollTopRequest })));
+ let headerContent = options.dayHeaders && (y(DayHeader, { dates: dayTableModel.headerDates, dateProfile: dateProfile, datesRepDistinctDays: true, renderIntro: hasAttachedAxis ? this.renderHeadAxis : null }));
+ let allDayContent = (options.allDaySlot !== false) && ((contentArg) => (y(DayTable, Object.assign({}, splitProps.allDay, { dateProfile: dateProfile, dayTableModel: dayTableModel, nextDayThreshold: options.nextDayThreshold, tableMinWidth: contentArg.tableMinWidth, colGroupNode: contentArg.tableColGroupNode, renderRowIntro: hasAttachedAxis ? this.renderTableRowAxis : null, showWeekNumbers: false, expandRows: false, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }, this.getAllDayMaxEventProps()))));
+ let timeGridContent = (contentArg) => (y(DayTimeCols, Object.assign({}, splitProps.timed, { dayTableModel: dayTableModel, dateProfile: dateProfile, axis: hasAttachedAxis, slotDuration: options.slotDuration, slatMetas: slatMetas, forPrint: props.forPrint, tableColGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, onSlatCoords: this.handleSlatCoords, expandRows: contentArg.expandRows, onScrollTopRequest: this.handleScrollTopRequest })));
return hasDetachedAxis
? this.renderHScrollLayout(headerContent, allDayContent, timeGridContent, dayTableModel.colCnt, dayMinWidth, slatMetas, this.state.slatCoords)
: this.renderSimpleLayout(headerContent, allDayContent, timeGridContent);
@@ -13722,17 +14027,14 @@ var FullCalendar = (function (exports) {
return new DayTableModel(daySeries, false);
}
- const OPTION_REFINERS$1 = {
+ const OPTION_REFINERS$2 = {
allDaySlot: Boolean,
};
- var css_248z$1 = ".fc-v-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-v-event .fc-event-main{color:var(--fc-event-text-color);height:100%}.fc-v-event .fc-event-main-frame{display:flex;flex-direction:column;height:100%}.fc-v-event .fc-event-time{flex-grow:0;flex-shrink:0;max-height:100%;overflow:hidden}.fc-v-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-height:0}.fc-v-event .fc-event-title{bottom:0;max-height:100%;overflow:hidden;top:0}.fc-v-event:not(.fc-event-start){border-top-left-radius:0;border-top-right-radius:0;border-top-width:0}.fc-v-event:not(.fc-event-end){border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-width:0}.fc-v-event.fc-event-selected:before{left:-10px;right:-10px}.fc-v-event .fc-event-resizer-start{cursor:n-resize}.fc-v-event .fc-event-resizer-end{cursor:s-resize}.fc-v-event:not(.fc-event-selected) .fc-event-resizer{height:var(--fc-event-resizer-thickness);left:0;right:0}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start{top:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer{left:50%;margin-left:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-start{top:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc .fc-timegrid .fc-daygrid-body{z-index:2}.fc .fc-timegrid-divider{padding:0 0 2px}.fc .fc-timegrid-body{min-height:100%;position:relative;z-index:1}.fc .fc-timegrid-axis-chunk{position:relative}.fc .fc-timegrid-axis-chunk>table,.fc .fc-timegrid-slots{position:relative;z-index:1}.fc .fc-timegrid-slot{border-bottom:0;height:1.5em}.fc .fc-timegrid-slot:empty:before{content:\"\\00a0\"}.fc .fc-timegrid-slot-minor{border-top-style:dotted}.fc .fc-timegrid-slot-label-cushion{display:inline-block;white-space:nowrap}.fc .fc-timegrid-slot-label{vertical-align:middle}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{padding:0 4px}.fc .fc-timegrid-axis-frame-liquid{height:100%}.fc .fc-timegrid-axis-frame{align-items:center;display:flex;justify-content:flex-end;overflow:hidden}.fc .fc-timegrid-axis-cushion{flex-shrink:0;max-width:60px}.fc-direction-ltr .fc-timegrid-slot-label-frame{text-align:right}.fc-direction-rtl .fc-timegrid-slot-label-frame{text-align:left}.fc-liquid-hack .fc-timegrid-axis-frame-liquid{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-timegrid-col-frame{min-height:100%;position:relative}.fc-media-screen.fc-liquid-hack .fc-timegrid-col-frame{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols{bottom:0;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols>table{height:100%}.fc-media-screen .fc-timegrid-col-bg,.fc-media-screen .fc-timegrid-col-events,.fc-media-screen .fc-timegrid-now-indicator-container{left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col-bg{z-index:2}.fc .fc-timegrid-col-bg .fc-non-business{z-index:1}.fc .fc-timegrid-col-bg .fc-bg-event{z-index:2}.fc .fc-timegrid-col-bg .fc-highlight{z-index:3}.fc .fc-timegrid-bg-harness{left:0;position:absolute;right:0}.fc .fc-timegrid-col-events{z-index:3}.fc .fc-timegrid-now-indicator-container{bottom:0;overflow:hidden}.fc-direction-ltr .fc-timegrid-col-events{margin:0 2.5% 0 2px}.fc-direction-rtl .fc-timegrid-col-events{margin:0 2px 0 2.5%}.fc-timegrid-event-harness{position:absolute}.fc-timegrid-event-harness>.fc-timegrid-event{bottom:0;left:0;position:absolute;right:0;top:0}.fc-timegrid-event-harness-inset .fc-timegrid-event,.fc-timegrid-event.fc-event-mirror,.fc-timegrid-more-link{box-shadow:0 0 0 1px var(--fc-page-bg-color)}.fc-timegrid-event,.fc-timegrid-more-link{border-radius:3px;font-size:var(--fc-small-font-size)}.fc-timegrid-event{margin-bottom:1px}.fc-timegrid-event .fc-event-main{padding:1px 1px 0}.fc-timegrid-event .fc-event-time{font-size:var(--fc-small-font-size);margin-bottom:1px;white-space:nowrap}.fc-timegrid-event-short .fc-event-main-frame{flex-direction:row;overflow:hidden}.fc-timegrid-event-short .fc-event-time:after{content:\"\\00a0-\\00a0\"}.fc-timegrid-event-short .fc-event-title{font-size:var(--fc-small-font-size)}.fc-timegrid-more-link{background:var(--fc-more-link-bg-color);color:var(--fc-more-link-text-color);cursor:pointer;margin-bottom:1px;position:absolute;z-index:9999}.fc-timegrid-more-link-inner{padding:3px 2px;top:0}.fc-direction-ltr .fc-timegrid-more-link{right:0}.fc-direction-rtl .fc-timegrid-more-link{left:0}.fc .fc-timegrid-now-indicator-line{border-color:var(--fc-now-indicator-color);border-style:solid;border-width:1px 0 0;left:0;position:absolute;right:0;z-index:4}.fc .fc-timegrid-now-indicator-arrow{border-color:var(--fc-now-indicator-color);border-style:solid;margin-top:-5px;position:absolute;z-index:4}.fc-direction-ltr .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 0 5px 6px;left:0}.fc-direction-rtl .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 6px 5px 0;right:0}";
- injectStyles(css_248z$1);
-
- var index$1 = createPlugin({
+ var index$2 = createPlugin({
name: '@fullcalendar/timegrid',
initialView: 'timeGridWeek',
- optionRefiners: OPTION_REFINERS$1,
+ optionRefiners: OPTION_REFINERS$2,
views: {
timeGrid: {
component: DayTimeColsView,
@@ -13752,6 +14054,9 @@ var FullCalendar = (function (exports) {
},
});
+ var css_248z$1 = ":root{--fc-list-event-dot-width:10px;--fc-list-event-hover-bg-color:#f5f5f5}.fc-theme-standard .fc-list{border:1px solid var(--fc-border-color)}.fc .fc-list-empty{align-items:center;background-color:var(--fc-neutral-bg-color);display:flex;height:100%;justify-content:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{border-style:hidden;width:100%}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{background:var(--fc-page-bg-color);position:sticky;top:0}.fc .fc-list-table thead{left:-10000px;position:absolute}.fc .fc-list-table tbody>tr:first-child th{border-top:0}.fc .fc-list-table th{padding:0}.fc .fc-list-day-cushion,.fc .fc-list-table td{padding:8px 14px}.fc .fc-list-day-cushion:after{clear:both;content:\"\";display:table}.fc-theme-standard .fc-list-day-cushion{background-color:var(--fc-neutral-bg-color)}.fc-direction-ltr .fc-list-day-text,.fc-direction-rtl .fc-list-day-side-text{float:left}.fc-direction-ltr .fc-list-day-side-text,.fc-direction-rtl .fc-list-day-text{float:right}.fc-direction-ltr .fc-list-table .fc-list-event-graphic{padding-right:0}.fc-direction-rtl .fc-list-table .fc-list-event-graphic{padding-left:0}.fc .fc-list-event.fc-event-forced-url{cursor:pointer}.fc .fc-list-event:hover td{background-color:var(--fc-list-event-hover-bg-color)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{border:calc(var(--fc-list-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-list-event-dot-width)/2);box-sizing:content-box;display:inline-block;height:0;width:0}.fc .fc-list-event-title a{color:inherit;text-decoration:none}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline}";
+ injectStyles(css_248z$1);
+
class ListViewHeaderRow extends BaseComponent {
constructor() {
super(...arguments);
@@ -13772,23 +14077,23 @@ var FullCalendar = (function (exports) {
text,
sideText, navLinkAttrs: buildNavLinkAttrs(this.context, dayDate), sideNavLinkAttrs: buildNavLinkAttrs(this.context, dayDate, 'day', false) }, dayMeta);
// TODO: make a reusable HOC for dayHeader (used in daygrid/timegrid too)
- return (h(ContentContainer, { elTag: "tr", elClasses: [
+ return (y(ContentContainer, { elTag: "tr", elClasses: [
'fc-list-day',
...getDayClassNames(dayMeta, theme),
], elAttrs: {
'data-date': formatDayString(dayDate),
- }, renderProps: renderProps, generatorName: "dayHeaderContent", generator: options.dayHeaderContent || renderInnerContent, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContent) => ( // TODO: force-hide top border based on :first-child
- h("th", { scope: "colgroup", colSpan: 3, id: cellId, "aria-labelledby": textId },
- h(InnerContent, { elTag: "div", elClasses: [
+ }, renderProps: renderProps, generatorName: "dayHeaderContent", customGenerator: options.dayHeaderContent, defaultGenerator: renderInnerContent, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContent) => ( // TODO: force-hide top border based on :first-child
+ y("th", { scope: "colgroup", colSpan: 3, id: cellId, "aria-labelledby": textId },
+ y(InnerContent, { elTag: "div", elClasses: [
'fc-list-day-cushion',
theme.getClass('tableCellShaded'),
] })))));
}
}
function renderInnerContent(props) {
- return (h(p, null,
- props.text && (h("a", Object.assign({ id: props.textId, className: "fc-list-day-text" }, props.navLinkAttrs), props.text)),
- props.sideText && ( /* not keyboard tabbable */h("a", Object.assign({ "aria-hidden": true, className: "fc-list-day-side-text" }, props.sideNavLinkAttrs), props.sideText))));
+ return (y(_, null,
+ props.text && (y("a", Object.assign({ id: props.textId, className: "fc-list-day-text" }, props.navLinkAttrs), props.text)),
+ props.sideText && ( /* not keyboard tabbable */y("a", Object.assign({ "aria-hidden": true, className: "fc-list-day-side-text" }, props.sideNavLinkAttrs), props.sideText))));
}
const DEFAULT_TIME_FORMAT = createFormatter({
@@ -13802,21 +14107,21 @@ var FullCalendar = (function (exports) {
let { options } = context;
let { seg, timeHeaderId, eventHeaderId, dateHeaderId } = props;
let timeFormat = options.eventTimeFormat || DEFAULT_TIME_FORMAT;
- return (h(EventContainer, Object.assign({}, props, { elTag: "tr", elClasses: [
+ return (y(EventContainer, Object.assign({}, props, { elTag: "tr", elClasses: [
'fc-list-event',
seg.eventRange.def.url && 'fc-event-forced-url',
- ], defaultGenerator: () => renderEventInnerContent(seg, context) /* weird */, seg: seg, timeText: "", disableDragging: true, disableResizing: true }), (InnerContent, eventContentArg) => (h(p, null,
+ ], defaultGenerator: () => renderEventInnerContent(seg, context) /* weird */, seg: seg, timeText: "", disableDragging: true, disableResizing: true }), (InnerContent, eventContentArg) => (y(_, null,
buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId),
- h("td", { "aria-hidden": true, className: "fc-list-event-graphic" },
- h("span", { className: "fc-list-event-dot", style: {
+ y("td", { "aria-hidden": true, className: "fc-list-event-graphic" },
+ y("span", { className: "fc-list-event-dot", style: {
borderColor: eventContentArg.borderColor || eventContentArg.backgroundColor,
} })),
- h(InnerContent, { elTag: "td", elClasses: ['fc-list-event-title'], elAttrs: { headers: `${eventHeaderId} ${dateHeaderId}` } })))));
+ y(InnerContent, { elTag: "td", elClasses: ['fc-list-event-title'], elAttrs: { headers: `${eventHeaderId} ${dateHeaderId}` } })))));
}
}
function renderEventInnerContent(seg, context) {
let interactiveAttrs = getSegAnchorAttrs(seg, context);
- return (h("a", Object.assign({}, interactiveAttrs), seg.eventRange.def.title));
+ return (y("a", Object.assign({}, interactiveAttrs), seg.eventRange.def.title));
}
function buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId) {
let { options } = context;
@@ -13847,11 +14152,11 @@ var FullCalendar = (function (exports) {
text: context.options.allDayText,
view: context.viewApi,
};
- return (h(ContentContainer, { elTag: "td", elClasses: ['fc-list-event-time'], elAttrs: {
+ return (y(ContentContainer, { elTag: "td", elClasses: ['fc-list-event-time'], elAttrs: {
headers: `${timeHeaderId} ${dateHeaderId}`,
- }, renderProps: renderProps, generatorName: "allDayContent", generator: options.allDayContent || renderAllDayInner, classNameGenerator: options.allDayClassNames, didMount: options.allDayDidMount, willUnmount: options.allDayWillUnmount }));
+ }, renderProps: renderProps, generatorName: "allDayContent", customGenerator: options.allDayContent, defaultGenerator: renderAllDayInner, classNameGenerator: options.allDayClassNames, didMount: options.allDayDidMount, willUnmount: options.allDayWillUnmount }));
}
- return (h("td", { className: "fc-list-event-time" }, timeText));
+ return (y("td", { className: "fc-list-event-time" }, timeText));
}
return null;
}
@@ -13887,14 +14192,14 @@ var FullCalendar = (function (exports) {
let { props, context } = this;
let { dayDates, dayRanges } = this.computeDateVars(props.dateProfile);
let eventSegs = this.eventStoreToSegs(props.eventStore, props.eventUiBases, dayRanges);
- return (h(ViewContainer$1, { elRef: this.setRootEl, elClasses: [
+ return (y(ViewContainer, { elRef: this.setRootEl, elClasses: [
'fc-list',
context.theme.getClass('table'),
context.options.stickyHeaderDates !== false ?
'fc-list-sticky' :
'',
], viewSpec: context.viewSpec },
- h(Scroller, { liquid: !props.isHeightAuto, overflowX: props.isHeightAuto ? 'visible' : 'hidden', overflowY: props.isHeightAuto ? 'visible' : 'auto' }, eventSegs.length > 0 ?
+ y(Scroller, { liquid: !props.isHeightAuto, overflowX: props.isHeightAuto ? 'visible' : 'hidden', overflowY: props.isHeightAuto ? 'visible' : 'auto' }, eventSegs.length > 0 ?
this.renderSegList(eventSegs, dayDates) :
this.renderEmptyMessage())));
}
@@ -13904,13 +14209,13 @@ var FullCalendar = (function (exports) {
text: options.noEventsText,
view: viewApi,
};
- return (h(ContentContainer, { elTag: "div", elClasses: ['fc-list-empty'], renderProps: renderProps, generatorName: "noEventsContent", generator: options.noEventsContent || renderNoEventsInner, classNameGenerator: options.noEventsClassNames, didMount: options.noEventsDidMount, willUnmount: options.noEventsWillUnmount }, (InnerContent) => (h(InnerContent, { elTag: "div", elClasses: ['fc-list-empty-cushion'] }))));
+ return (y(ContentContainer, { elTag: "div", elClasses: ['fc-list-empty'], renderProps: renderProps, generatorName: "noEventsContent", customGenerator: options.noEventsContent, defaultGenerator: renderNoEventsInner, classNameGenerator: options.noEventsClassNames, didMount: options.noEventsDidMount, willUnmount: options.noEventsWillUnmount }, (InnerContent) => (y(InnerContent, { elTag: "div", elClasses: ['fc-list-empty-cushion'] }))));
}
renderSegList(allSegs, dayDates) {
let { theme, options } = this.context;
let { timeHeaderId, eventHeaderId, dateHeaderIdRoot } = this.state;
let segsByDay = groupSegsByDay(allSegs); // sparse array
- return (h(NowTimer, { unit: "day" }, (nowDate, todayRange) => {
+ return (y(NowTimer, { unit: "day" }, (nowDate, todayRange) => {
let innerNodes = [];
for (let dayIndex = 0; dayIndex < segsByDay.length; dayIndex += 1) {
let daySegs = segsByDay[dayIndex];
@@ -13918,20 +14223,20 @@ var FullCalendar = (function (exports) {
let dayStr = formatDayString(dayDates[dayIndex]);
let dateHeaderId = dateHeaderIdRoot + '-' + dayStr;
// append a day header
- innerNodes.push(h(ListViewHeaderRow, { key: dayStr, cellId: dateHeaderId, dayDate: dayDates[dayIndex], todayRange: todayRange }));
+ innerNodes.push(y(ListViewHeaderRow, { key: dayStr, cellId: dateHeaderId, dayDate: dayDates[dayIndex], todayRange: todayRange }));
daySegs = sortEventSegs(daySegs, options.eventOrder);
for (let seg of daySegs) {
- innerNodes.push(h(ListViewEventRow, Object.assign({ key: dayStr + ':' + seg.eventRange.instance.instanceId /* are multiple segs for an instanceId */, seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false, timeHeaderId: timeHeaderId, eventHeaderId: eventHeaderId, dateHeaderId: dateHeaderId }, getSegMeta(seg, todayRange, nowDate))));
+ innerNodes.push(y(ListViewEventRow, Object.assign({ key: dayStr + ':' + seg.eventRange.instance.instanceId /* are multiple segs for an instanceId */, seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false, timeHeaderId: timeHeaderId, eventHeaderId: eventHeaderId, dateHeaderId: dateHeaderId }, getSegMeta(seg, todayRange, nowDate))));
}
}
}
- return (h("table", { className: 'fc-list-table ' + theme.getClass('table') },
- h("thead", null,
- h("tr", null,
- h("th", { scope: "col", id: timeHeaderId }, options.timeHint),
- h("th", { scope: "col", "aria-hidden": true }),
- h("th", { scope: "col", id: eventHeaderId }, options.eventHint))),
- h("tbody", null, innerNodes)));
+ return (y("table", { className: 'fc-list-table ' + theme.getClass('table') },
+ y("thead", null,
+ y("tr", null,
+ y("th", { scope: "col", id: timeHeaderId }, options.timeHint),
+ y("th", { scope: "col", "aria-hidden": true }),
+ y("th", { scope: "col", id: eventHeaderId }, options.eventHint))),
+ y("tbody", null, innerNodes)));
}));
}
_eventStoreToSegs(eventStore, eventUiBases, dayRanges) {
@@ -14012,7 +14317,7 @@ var FullCalendar = (function (exports) {
return segsByDay;
}
- const OPTION_REFINERS = {
+ const OPTION_REFINERS$1 = {
listDayFormat: createFalsableFormatter,
listDaySideFormat: createFalsableFormatter,
noEventsClassNames: identity,
@@ -14025,12 +14330,9 @@ var FullCalendar = (function (exports) {
return input === false ? null : createFormatter(input);
}
- var css_248z = ":root{--fc-list-event-dot-width:10px;--fc-list-event-hover-bg-color:#f5f5f5}.fc-theme-standard .fc-list{border:1px solid var(--fc-border-color)}.fc .fc-list-empty{align-items:center;background-color:var(--fc-neutral-bg-color);display:flex;height:100%;justify-content:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{border-style:hidden;width:100%}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{background:var(--fc-page-bg-color);position:sticky;top:0}.fc .fc-list-table thead{left:-10000px;position:absolute}.fc .fc-list-table tbody>tr:first-child th{border-top:0}.fc .fc-list-table th{padding:0}.fc .fc-list-day-cushion,.fc .fc-list-table td{padding:8px 14px}.fc .fc-list-day-cushion:after{clear:both;content:\"\";display:table}.fc-theme-standard .fc-list-day-cushion{background-color:var(--fc-neutral-bg-color)}.fc-direction-ltr .fc-list-day-text,.fc-direction-rtl .fc-list-day-side-text{float:left}.fc-direction-ltr .fc-list-day-side-text,.fc-direction-rtl .fc-list-day-text{float:right}.fc-direction-ltr .fc-list-table .fc-list-event-graphic{padding-right:0}.fc-direction-rtl .fc-list-table .fc-list-event-graphic{padding-left:0}.fc .fc-list-event.fc-event-forced-url{cursor:pointer}.fc .fc-list-event:hover td{background-color:var(--fc-list-event-hover-bg-color)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{border:calc(var(--fc-list-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-list-event-dot-width)/2);box-sizing:content-box;display:inline-block;height:0;width:0}.fc .fc-list-event-title a{color:inherit;text-decoration:none}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline}";
- injectStyles(css_248z);
-
- var index = createPlugin({
+ var index$1 = createPlugin({
name: '@fullcalendar/list',
- optionRefiners: OPTION_REFINERS,
+ optionRefiners: OPTION_REFINERS$1,
views: {
list: {
component: ListView,
@@ -14061,12 +14363,245 @@ var FullCalendar = (function (exports) {
},
});
- globalPlugins.push(index$3, index$2, index$1, index);
+ class SingleMonth extends DateComponent {
+ constructor() {
+ super(...arguments);
+ this.buildDayTableModel = memoize(buildDayTableModel);
+ this.slicer = new DayTableSlicer();
+ this.state = {
+ labelId: getUniqueDomId(),
+ };
+ }
+ render() {
+ const { props, state, context } = this;
+ const { dateProfile, forPrint } = props;
+ const { options } = context;
+ const dayTableModel = this.buildDayTableModel(dateProfile, context.dateProfileGenerator);
+ const slicedProps = this.slicer.sliceProps(props, dateProfile, options.nextDayThreshold, context, dayTableModel);
+ // ensure single-month has aspect ratio
+ const tableHeight = props.tableWidth != null ? props.tableWidth / options.aspectRatio : null;
+ const rowCnt = dayTableModel.cells.length;
+ const rowHeight = tableHeight != null ? tableHeight / rowCnt : null;
+ return (y("div", { ref: props.elRef, "data-date": props.isoDateStr, className: "fc-multimonth-month", style: { width: props.width }, role: "grid", "aria-labelledby": state.labelId },
+ y("div", { className: "fc-multimonth-header", style: { marginBottom: rowHeight }, role: "presentation" },
+ y("div", { className: "fc-multimonth-title", id: state.labelId }, context.dateEnv.format(props.dateProfile.currentRange.start, props.titleFormat)),
+ y("table", { className: [
+ 'fc-multimonth-header-table',
+ context.theme.getClass('table'),
+ ].join(' '), role: "presentation" },
+ y("thead", { role: "rowgroup" },
+ y(DayHeader, { dateProfile: props.dateProfile, dates: dayTableModel.headerDates, datesRepDistinctDays: false })))),
+ y("div", { className: [
+ 'fc-multimonth-daygrid',
+ 'fc-daygrid',
+ 'fc-daygrid-body',
+ !forPrint && 'fc-daygrid-body-balanced',
+ forPrint && 'fc-daygrid-body-unbalanced',
+ forPrint && 'fc-daygrid-body-natural',
+ ].join(' '), style: { marginTop: -rowHeight } },
+ y("table", { className: [
+ 'fc-multimonth-daygrid-table',
+ context.theme.getClass('table'),
+ ].join(' '), style: { height: forPrint ? '' : tableHeight }, role: "presentation" },
+ y("tbody", { role: "rowgroup" },
+ y(TableRows, Object.assign({}, slicedProps, { dateProfile: dateProfile, cells: dayTableModel.cells, eventSelection: props.eventSelection, dayMaxEvents: !forPrint, dayMaxEventRows: !forPrint, showWeekNumbers: options.weekNumbers, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: forPrint })))))));
+ }
+ }
+
+ class MultiMonthView extends DateComponent {
+ constructor() {
+ super(...arguments);
+ this.splitDateProfileByMonth = memoize(splitDateProfileByMonth);
+ this.buildMonthFormat = memoize(buildMonthFormat);
+ this.scrollElRef = d();
+ this.firstMonthElRef = d();
+ this.needsScrollReset = false;
+ this.handleSizing = (isForced) => {
+ if (isForced) {
+ this.updateSize();
+ }
+ };
+ }
+ render() {
+ const { context, props, state } = this;
+ const { options } = context;
+ const { clientWidth, clientHeight } = state;
+ const monthHPadding = state.monthHPadding || 0;
+ const colCount = Math.min(clientWidth != null ?
+ Math.floor(clientWidth / (options.multiMonthMinWidth + monthHPadding)) :
+ 1, options.multiMonthMaxColumns) || 1;
+ const monthWidthPct = (100 / colCount) + '%';
+ const monthTableWidth = clientWidth == null ? null :
+ (clientWidth / colCount) - monthHPadding;
+ const isLegitSingleCol = clientWidth != null && colCount === 1;
+ const monthDateProfiles = this.splitDateProfileByMonth(context.dateProfileGenerator, props.dateProfile, context.dateEnv, isLegitSingleCol ? false : options.fixedWeekCount, options.showNonCurrentDates);
+ const monthTitleFormat = this.buildMonthFormat(options.multiMonthTitleFormat, monthDateProfiles);
+ const rootClassNames = [
+ 'fc-multimonth',
+ isLegitSingleCol ?
+ 'fc-multimonth-singlecol' :
+ 'fc-multimonth-multicol',
+ (monthTableWidth != null && monthTableWidth < 400) ?
+ 'fc-multimonth-compact' :
+ '',
+ ];
+ return (y(ViewContainer, { elRef: this.scrollElRef, elClasses: rootClassNames, viewSpec: context.viewSpec }, monthDateProfiles.map((monthDateProfile, i) => {
+ const monthStr = formatIsoMonthStr(monthDateProfile.currentRange.start);
+ return (y(SingleMonth, Object.assign({}, props, { key: monthStr, isoDateStr: monthStr, elRef: i === 0 ? this.firstMonthElRef : undefined, titleFormat: monthTitleFormat, dateProfile: monthDateProfile, width: monthWidthPct, tableWidth: monthTableWidth, clientWidth: clientWidth, clientHeight: clientHeight })));
+ })));
+ }
+ componentDidMount() {
+ this.updateSize();
+ this.context.addResizeHandler(this.handleSizing);
+ this.requestScrollReset();
+ }
+ componentDidUpdate(prevProps) {
+ if (!isPropsEqual(prevProps, this.props)) { // an external change?
+ this.handleSizing(false);
+ }
+ if (prevProps.dateProfile !== this.props.dateProfile) {
+ this.requestScrollReset();
+ }
+ else {
+ this.flushScrollReset();
+ }
+ }
+ componentWillUnmount() {
+ this.context.removeResizeHandler(this.handleSizing);
+ }
+ updateSize() {
+ const scrollEl = this.scrollElRef.current;
+ const firstMonthEl = this.firstMonthElRef.current;
+ if (scrollEl) {
+ this.setState({
+ clientWidth: scrollEl.clientWidth,
+ clientHeight: scrollEl.clientHeight,
+ });
+ }
+ if (firstMonthEl && scrollEl) {
+ if (this.state.monthHPadding == null) { // always remember initial non-zero value
+ this.setState({
+ monthHPadding: scrollEl.clientWidth - // go within padding
+ firstMonthEl.firstChild.offsetWidth,
+ });
+ }
+ }
+ }
+ requestScrollReset() {
+ this.needsScrollReset = true;
+ this.flushScrollReset();
+ }
+ flushScrollReset() {
+ if (this.needsScrollReset &&
+ this.state.monthHPadding != null // indicates sizing already happened
+ ) {
+ const { currentDate } = this.props.dateProfile;
+ const scrollEl = this.scrollElRef.current;
+ const monthEl = scrollEl.querySelector(`[data-date="${formatIsoMonthStr(currentDate)}"]`);
+ scrollEl.scrollTop = monthEl.getBoundingClientRect().top -
+ this.firstMonthElRef.current.getBoundingClientRect().top;
+ this.needsScrollReset = false;
+ }
+ }
+ // workaround for when queued setState render (w/ clientWidth) gets cancelled because
+ // subsequent update and shouldComponentUpdate says not to render :(
+ shouldComponentUpdate() {
+ return true;
+ }
+ }
+ // date profile
+ // -------------------------------------------------------------------------------------------------
+ const oneMonthDuration = createDuration(1, 'month');
+ function splitDateProfileByMonth(dateProfileGenerator, dateProfile, dateEnv, fixedWeekCount, showNonCurrentDates) {
+ const { start, end } = dateProfile.currentRange;
+ let monthStart = start;
+ const monthDateProfiles = [];
+ while (monthStart.valueOf() < end.valueOf()) {
+ const monthEnd = dateEnv.add(monthStart, oneMonthDuration);
+ const currentRange = {
+ // yuck
+ start: dateProfileGenerator.skipHiddenDays(monthStart),
+ end: dateProfileGenerator.skipHiddenDays(monthEnd, -1, true),
+ };
+ let renderRange = buildDayTableRenderRange({
+ currentRange,
+ snapToWeek: true,
+ fixedWeekCount,
+ dateEnv,
+ });
+ renderRange = {
+ // yuck
+ start: dateProfileGenerator.skipHiddenDays(renderRange.start),
+ end: dateProfileGenerator.skipHiddenDays(renderRange.end, -1, true),
+ };
+ const activeRange = dateProfile.activeRange ?
+ intersectRanges(dateProfile.activeRange, showNonCurrentDates ? renderRange : currentRange) :
+ null;
+ monthDateProfiles.push({
+ currentDate: dateProfile.currentDate,
+ isValid: dateProfile.isValid,
+ validRange: dateProfile.validRange,
+ renderRange,
+ activeRange,
+ currentRange,
+ currentRangeUnit: 'month',
+ isRangeAllDay: true,
+ dateIncrement: dateProfile.dateIncrement,
+ slotMinTime: dateProfile.slotMaxTime,
+ slotMaxTime: dateProfile.slotMinTime,
+ });
+ monthStart = monthEnd;
+ }
+ return monthDateProfiles;
+ }
+ // date formatting
+ // -------------------------------------------------------------------------------------------------
+ const YEAR_MONTH_FORMATTER = createFormatter({ year: 'numeric', month: 'long' });
+ const YEAR_FORMATTER = createFormatter({ month: 'long' });
+ function buildMonthFormat(formatOverride, monthDateProfiles) {
+ return formatOverride ||
+ ((monthDateProfiles[0].currentRange.start.getUTCFullYear() !==
+ monthDateProfiles[monthDateProfiles.length - 1].currentRange.start.getUTCFullYear())
+ ? YEAR_MONTH_FORMATTER
+ : YEAR_FORMATTER);
+ }
+
+ const OPTION_REFINERS = {
+ multiMonthTitleFormat: createFormatter,
+ multiMonthMaxColumns: Number,
+ multiMonthMinWidth: Number,
+ };
+
+ var css_248z = ".fc .fc-multimonth{border:1px solid var(--fc-border-color);display:flex;flex-wrap:wrap;overflow-x:hidden;overflow-y:auto}.fc .fc-multimonth-title{font-size:1.2em;font-weight:700;padding:1em 0;text-align:center}.fc .fc-multimonth-daygrid{background:var(--fc-page-bg-color)}.fc .fc-multimonth-daygrid-table,.fc .fc-multimonth-header-table{table-layout:fixed;width:100%}.fc .fc-multimonth-daygrid-table{border-top-style:hidden!important}.fc .fc-multimonth-singlecol .fc-multimonth{position:relative}.fc .fc-multimonth-singlecol .fc-multimonth-header{background:var(--fc-page-bg-color);position:relative;top:0;z-index:2}.fc .fc-multimonth-singlecol .fc-multimonth-daygrid{position:relative;z-index:1}.fc .fc-multimonth-singlecol .fc-multimonth-daygrid-table,.fc .fc-multimonth-singlecol .fc-multimonth-header-table{border-left-style:hidden;border-right-style:hidden}.fc .fc-multimonth-singlecol .fc-multimonth-month:last-child .fc-multimonth-daygrid-table{border-bottom-style:hidden}.fc .fc-multimonth-multicol{line-height:1}.fc .fc-multimonth-multicol .fc-multimonth-month{padding:0 1.2em 1.2em}.fc .fc-multimonth-multicol .fc-daygrid-more-link{border:1px solid var(--fc-event-border-color);display:block;float:none;padding:1px}.fc .fc-multimonth-compact{line-height:1}.fc .fc-multimonth-compact .fc-multimonth-daygrid-table,.fc .fc-multimonth-compact .fc-multimonth-header-table{font-size:.9em}.fc-media-screen .fc-multimonth-singlecol .fc-multimonth-header{position:sticky}.fc-media-print .fc-multimonth{overflow:visible}";
+ injectStyles(css_248z);
+
+ var index = createPlugin({
+ name: '@fullcalendar/multimonth',
+ initialView: 'multiMonthYear',
+ optionRefiners: OPTION_REFINERS,
+ views: {
+ multiMonth: {
+ component: MultiMonthView,
+ dateProfileGeneratorClass: TableDateProfileGenerator,
+ multiMonthMinWidth: 350,
+ multiMonthMaxColumns: 3,
+ },
+ multiMonthYear: {
+ type: 'multiMonth',
+ duration: { years: 1 },
+ fixedWeekCount: true,
+ showNonCurrentDates: false,
+ },
+ },
+ });
+
+ globalPlugins.push(index$4, index$3, index$2, index$1, index);
exports.Calendar = Calendar;
exports.Draggable = ExternalDraggable;
- exports.Internal = internal_esm;
+ exports.Internal = internal;
exports.JsonRequestError = JsonRequestError;
+ exports.Preact = preact;
exports.ThirdPartyDraggable = ThirdPartyDraggable;
exports.createPlugin = createPlugin;
exports.formatDate = formatDate;
diff --git a/library/fullcalendar/dist/index.global.min.js b/library/fullcalendar/dist/index.global.min.js
index 9d9afed22..da46aa211 100644
--- a/library/fullcalendar/dist/index.global.min.js
+++ b/library/fullcalendar/dist/index.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Standard Bundle v6.0.3
+FullCalendar Standard Bundle v6.1.8
Docs & License: https://fullcalendar.io/docs/initialize-globals
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-var FullCalendar=function(e){"use strict";var t,n,r,i,s,o,a,l={},c=[],d=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function u(e,t){for(var n in t)e[n]=t[n];return e}function h(e){var t=e.parentNode;t&&t.removeChild(e)}function f(e,n,r){var i,s,o,a={};for(o in n)"key"==o?i=n[o]:"ref"==o?s=n[o]:a[o]=n[o];if(arguments.length>2&&(a.children=arguments.length>3?t.call(arguments,2):r),"function"==typeof e&&null!=e.defaultProps)for(o in e.defaultProps)void 0===a[o]&&(a[o]=e.defaultProps[o]);return g(e,a,i,s,null)}function g(e,t,i,s,o){var a={type:e,props:t,key:i,ref:s,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++r:o};return null==o&&null!=n.vnode&&n.vnode(a),a}function p(e){return e.children}function m(e,t){this.props=e,this.context=t}function v(e,t){if(null==t)return e.__?v(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?v(e):null}function b(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return b(e)}}function y(e){(!e.__d&&(e.__d=!0)&&s.push(e)&&!E.__r++||o!==n.debounceRendering)&&((o=n.debounceRendering)||setTimeout)(E)}function E(){for(var e;E.__r=s.length;)e=s.sort((function(e,t){return e.__v.__b-t.__v.__b})),s=[],e.some((function(e){var t,n,r,i,s,o;e.__d&&(s=(i=(t=e).__v).__e,(o=t.__P)&&(n=[],(r=u({},i)).__v=i.__v+1,T(o,i,r,t.__n,void 0!==o.ownerSVGElement,null!=i.__h?[s]:null,n,null==s?v(i):s,i.__h),k(n,i),i.__e!=s&&b(i)))}))}function A(e,t,n,r,i,s,o,a,d,u){var h,f,m,b,y,E,A,S=r&&r.__k||c,C=S.length;for(n.__k=[],h=0;h<t.length;h++)if(null!=(b=n.__k[h]=null==(b=t[h])||"boolean"==typeof b?null:"string"==typeof b||"number"==typeof b||"bigint"==typeof b?g(null,b,null,null,b):Array.isArray(b)?g(p,{children:b},null,null,null):b.__b>0?g(b.type,b.props,b.key,b.ref?b.ref:null,b.__v):b)){if(b.__=n,b.__b=n.__b+1,null===(m=S[h])||m&&b.key==m.key&&b.type===m.type)S[h]=void 0;else for(f=0;f<C;f++){if((m=S[f])&&b.key==m.key&&b.type===m.type){S[f]=void 0;break}m=null}T(e,b,m=m||l,i,s,o,a,d,u),y=b.__e,(f=b.ref)&&m.ref!=f&&(A||(A=[]),m.ref&&A.push(m.ref,null,b),A.push(f,b.__c||y,b)),null!=y?(null==E&&(E=y),"function"==typeof b.type&&b.__k===m.__k?b.__d=d=D(b,d,e):d=w(e,b,m,S,y,d),"function"==typeof n.type&&(n.__d=d)):d&&m.__e==d&&d.parentNode!=e&&(d=v(m))}for(n.__e=E,h=C;h--;)null!=S[h]&&O(S[h],S[h]);if(A)for(h=0;h<A.length;h++)I(A[h],A[++h],A[++h])}function D(e,t,n){for(var r,i=e.__k,s=0;i&&s<i.length;s++)(r=i[s])&&(r.__=e,t="function"==typeof r.type?D(r,t,n):w(n,r,r,i,r.__e,t));return t}function S(e,t){return t=t||[],null==e||"boolean"==typeof e||(Array.isArray(e)?e.some((function(e){S(e,t)})):t.push(e)),t}function w(e,t,n,r,i,s){var o,a,l;if(void 0!==t.__d)o=t.__d,t.__d=void 0;else if(null==n||i!=s||null==i.parentNode)e:if(null==s||s.parentNode!==e)e.appendChild(i),o=null;else{for(a=s,l=0;(a=a.nextSibling)&&l<r.length;l+=1)if(a==i)break e;e.insertBefore(i,s),o=s}return void 0!==o?o:i.nextSibling}function C(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||d.test(t)?n:n+"px"}function R(e,t,n,r,i){var s;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||C(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||C(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])s=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+s]=n,n?r||e.addEventListener(t,s?_:x,s):e.removeEventListener(t,s?_:x,s);else if("dangerouslySetInnerHTML"!==t){if(i)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null==n||!1===n&&-1==t.indexOf("-")?e.removeAttribute(t):e.setAttribute(t,n))}}function x(e){this.l[e.type+!1](n.event?n.event(e):e)}function _(e){this.l[e.type+!0](n.event?n.event(e):e)}function T(e,t,r,i,s,o,a,l,c){var d,h,f,g,v,b,y,E,D,S,w,C,R,x,_,T=t.type;if(void 0!==t.constructor)return null;null!=r.__h&&(c=r.__h,l=t.__e=r.__e,t.__h=null,o=[l]),(d=n.__b)&&d(t);try{e:if("function"==typeof T){if(E=t.props,D=(d=T.contextType)&&i[d.__c],S=d?D?D.props.value:d.__:i,r.__c?y=(h=t.__c=r.__c).__=h.__E:("prototype"in T&&T.prototype.render?t.__c=h=new T(E,S):(t.__c=h=new m(E,S),h.constructor=T,h.render=N),D&&D.sub(h),h.props=E,h.state||(h.state={}),h.context=S,h.__n=i,f=h.__d=!0,h.__h=[],h._sb=[]),null==h.__s&&(h.__s=h.state),null!=T.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=u({},h.__s)),u(h.__s,T.getDerivedStateFromProps(E,h.__s))),g=h.props,v=h.state,f)null==T.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(null==T.getDerivedStateFromProps&&E!==g&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(E,S),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(E,h.__s,S)||t.__v===r.__v){for(h.props=E,h.state=h.__s,t.__v!==r.__v&&(h.__d=!1),h.__v=t,t.__e=r.__e,t.__k=r.__k,t.__k.forEach((function(e){e&&(e.__=t)})),w=0;w<h._sb.length;w++)h.__h.push(h._sb[w]);h._sb=[],h.__h.length&&a.push(h);break e}null!=h.componentWillUpdate&&h.componentWillUpdate(E,h.__s,S),null!=h.componentDidUpdate&&h.__h.push((function(){h.componentDidUpdate(g,v,b)}))}if(h.context=S,h.props=E,h.__v=t,h.__P=e,C=n.__r,R=0,"prototype"in T&&T.prototype.render){for(h.state=h.__s,h.__d=!1,C&&C(t),d=h.render(h.props,h.state,h.context),x=0;x<h._sb.length;x++)h.__h.push(h._sb[x]);h._sb=[]}else do{h.__d=!1,C&&C(t),d=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++R<25);h.state=h.__s,null!=h.getChildContext&&(i=u(u({},i),h.getChildContext())),f||null==h.getSnapshotBeforeUpdate||(b=h.getSnapshotBeforeUpdate(g,v)),_=null!=d&&d.type===p&&null==d.key?d.props.children:d,A(e,Array.isArray(_)?_:[_],t,r,i,s,o,a,l,c),h.base=t.__e,t.__h=null,h.__h.length&&a.push(h),y&&(h.__E=h.__=null),h.__e=!1}else null==o&&t.__v===r.__v?(t.__k=r.__k,t.__e=r.__e):t.__e=M(r.__e,t,r,i,s,o,a,c);(d=n.diffed)&&d(t)}catch(e){t.__v=null,(c||null!=o)&&(t.__e=l,t.__h=!!c,o[o.indexOf(l)]=null),n.__e(e,t,r)}}function k(e,t){n.__c&&n.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){n.__e(e,t.__v)}}))}function M(e,n,r,i,s,o,a,c){var d,u,f,g=r.props,p=n.props,m=n.type,b=0;if("svg"===m&&(s=!0),null!=o)for(;b<o.length;b++)if((d=o[b])&&"setAttribute"in d==!!m&&(m?d.localName===m:3===d.nodeType)){e=d,o[b]=null;break}if(null==e){if(null===m)return document.createTextNode(p);e=s?document.createElementNS("http://www.w3.org/2000/svg",m):document.createElement(m,p.is&&p),o=null,c=!1}if(null===m)g===p||c&&e.data===p||(e.data=p);else{if(o=o&&t.call(e.childNodes),u=(g=r.props||l).dangerouslySetInnerHTML,f=p.dangerouslySetInnerHTML,!c){if(null!=o)for(g={},b=0;b<e.attributes.length;b++)g[e.attributes[b].name]=e.attributes[b].value;(f||u)&&(f&&(u&&f.__html==u.__html||f.__html===e.innerHTML)||(e.innerHTML=f&&f.__html||""))}if(function(e,t,n,r,i){var s;for(s in n)"children"===s||"key"===s||s in t||R(e,s,null,n[s],r);for(s in t)i&&"function"!=typeof t[s]||"children"===s||"key"===s||"value"===s||"checked"===s||n[s]===t[s]||R(e,s,t[s],n[s],r)}(e,p,g,s,c),f)n.__k=[];else if(b=n.props.children,A(e,Array.isArray(b)?b:[b],n,r,i,s&&"foreignObject"!==m,o,a,o?o[0]:r.__k&&v(r,0),c),null!=o)for(b=o.length;b--;)null!=o[b]&&h(o[b]);c||("value"in p&&void 0!==(b=p.value)&&(b!==e.value||"progress"===m&&!b||"option"===m&&b!==g.value)&&R(e,"value",b,g.value,!1),"checked"in p&&void 0!==(b=p.checked)&&b!==e.checked&&R(e,"checked",b,g.checked,!1))}return e}function I(e,t,r){try{"function"==typeof e?e(t):e.current=t}catch(e){n.__e(e,r)}}function O(e,t,r){var i,s;if(n.unmount&&n.unmount(e),(i=e.ref)&&(i.current&&i.current!==e.__e||I(i,null,t)),null!=(i=e.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(e){n.__e(e,t)}i.base=i.__P=null,e.__c=void 0}if(i=e.__k)for(s=0;s<i.length;s++)i[s]&&O(i[s],t,r||"function"!=typeof e.type);r||null==e.__e||h(e.__e),e.__=e.__e=e.__d=void 0}function N(e,t,n){return this.constructor(e,n)}function P(e,r,i){var s,o,a;n.__&&n.__(e,r),o=(s="function"==typeof i)?null:i&&i.__k||r.__k,a=[],T(r,e=(!s&&i||r).__k=f(p,null,[e]),o||l,l,void 0!==r.ownerSVGElement,!s&&i?[i]:o?null:r.firstChild?t.call(r.childNodes):null,a,!s&&i?i:o?o.__e:r.firstChild,s),k(a,e)}t=c.slice,n={__e:function(e,t,n,r){for(var i,s,o;t=t.__;)if((i=t.__c)&&!i.__)try{if((s=i.constructor)&&null!=s.getDerivedStateFromError&&(i.setState(s.getDerivedStateFromError(e)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(e,r||{}),o=i.__d),o)return i.__E=i}catch(t){e=t}throw e}},r=0,i=function(e){return null!=e&&void 0===e.constructor},m.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=u({},this.state),"function"==typeof e&&(e=e(u({},n),this.props)),e&&u(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),y(this))},m.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),y(this))},m.prototype.render=p,s=[],E.__r=0,a=0;var H,B,j,z=[],U=[],L=n.__b,W=n.__r,F=n.diffed,V=n.__c,G=n.unmount;function Q(){for(var e;e=z.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(Z),e.__H.__h.forEach(X),e.__H.__h=[]}catch(t){e.__H.__h=[],n.__e(t,e.__v)}}n.__b=function(e){H=null,L&&L(e)},n.__r=function(e){W&&W(e);var t=(H=e.__c).__H;t&&(B===H?(t.__h=[],H.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=U,e.__N=e.i=void 0}))):(t.__h.forEach(Z),t.__h.forEach(X),t.__h=[])),B=H},n.diffed=function(e){F&&F(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==z.push(t)&&j===n.requestAnimationFrame||((j=n.requestAnimationFrame)||Y)(Q)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==U&&(e.__=e.__V),e.i=void 0,e.__V=U}))),B=H=null},n.__c=function(e,t){t.some((function(e){try{e.__h.forEach(Z),e.__h=e.__h.filter((function(e){return!e.__||X(e)}))}catch(r){t.some((function(e){e.__h&&(e.__h=[])})),t=[],n.__e(r,e.__v)}})),V&&V(e,t)},n.unmount=function(e){G&&G(e);var t,r=e.__c;r&&r.__H&&(r.__H.__.forEach((function(e){try{Z(e)}catch(e){t=e}})),r.__H=void 0,t&&n.__e(t,r.__v))};var q="function"==typeof requestAnimationFrame;function Y(e){var t,n=function(){clearTimeout(r),q&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);q&&(t=requestAnimationFrame(n))}function Z(e){var t=H,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),H=t}function X(e){var t=H;e.__c=e.__(),H=t}function J(e,t){for(var n in e)if("__source"!==n&&!(n in t))return!0;for(var r in t)if("__source"!==r&&e[r]!==t[r])return!0;return!1}function $(e){this.props=e}($.prototype=new m).isPureReactComponent=!0,$.prototype.shouldComponentUpdate=function(e,t){return J(this.props,e)||J(this.state,t)};var K=n.__b;n.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),K&&K(e)};var ee=n.__e;n.__e=function(e,t,n,r){if(e.then)for(var i,s=t;s=s.__;)if((i=s.__c)&&i.__c)return null==t.__e&&(t.__e=n.__e,t.__k=n.__k),i.__c(e,t);ee(e,t,n,r)};var te=n.unmount;function ne(){this.__u=0,this.t=null,this.__b=null}function re(e){var t=e.__.__c;return t&&t.__a&&t.__a(e)}function ie(){this.u=null,this.o=null}n.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&!0===e.__h&&(e.type=null),te&&te(e)},(ne.prototype=new m).__c=function(e,t){var n=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(n);var i=re(r.__v),s=!1,o=function(){s||(s=!0,n.__R=null,i?i(a):a())};n.__R=o;var a=function(){if(!--r.__u){if(r.state.__a){var e=r.state.__a;r.__v.__k[0]=function e(t,n,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map((function(t){return e(t,n,r)})),t.__c&&t.__c.__P===n&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(e,e.__c.__P,e.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate()}},l=!0===t.__h;r.__u++||l||r.setState({__a:r.__b=r.__v.__k[0]}),e.then(o,o)},ne.prototype.componentWillUnmount=function(){this.t=[]},ne.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var n=document.createElement("div"),r=this.__v.__k[0].__c;this.__v.__k[0]=function e(t,n,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach((function(e){"function"==typeof e.__c&&e.__c()})),t.__c.__H=null),null!=(t=function(e,t){for(var n in t)e[n]=t[n];return e}({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=n),t.__c=null),t.__k=t.__k&&t.__k.map((function(t){return e(t,n,r)}))),t}(this.__b,n,r.__O=r.__P)}this.__b=null}var i=t.__a&&f(p,null,e.fallback);return i&&(i.__h=null),[f(p,null,t.__a?null:e.children),i]};var se=function(e,t,n){if(++n[1]===n[0]&&e.o.delete(t),e.props.revealOrder&&("t"!==e.props.revealOrder[0]||!e.o.size))for(n=e.u;n;){for(;n.length>3;)n.pop()();if(n[1]<n[0])break;e.u=n=n[2]}};function oe(e){return this.getChildContext=function(){return e.context},e.children}function ae(e){var t=this,n=e.i;t.componentWillUnmount=function(){P(null,t.l),t.l=null,t.i=null},t.i&&t.i!==n&&t.componentWillUnmount(),e.__v?(t.l||(t.i=n,t.l={nodeType:1,parentNode:n,childNodes:[],appendChild:function(e){this.childNodes.push(e),t.i.appendChild(e)},insertBefore:function(e,n){this.childNodes.push(e),t.i.appendChild(e)},removeChild:function(e){this.childNodes.splice(this.childNodes.indexOf(e)>>>1,1),t.i.removeChild(e)}}),P(f(oe,{context:t.context},e.__v),t.l)):t.l&&t.componentWillUnmount()}(ie.prototype=new m).__a=function(e){var t=this,n=re(t.__v),r=t.o.get(e);return r[0]++,function(i){var s=function(){t.props.revealOrder?(r.push(i),se(t,e,r)):i()};n?n(s):s()}},ie.prototype.render=function(e){this.u=null,this.o=new Map;var t=S(e.children);e.revealOrder&&"b"===e.revealOrder[0]&&t.reverse();for(var n=t.length;n--;)this.o.set(t[n],this.u=[1,0,this.u]);return e.children},ie.prototype.componentDidUpdate=ie.prototype.componentDidMount=function(){var e=this;this.o.forEach((function(t,n){se(e,n,t)}))};var le="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,ce=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,de="undefined"!=typeof document,ue=function(e){return("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(e)};m.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach((function(e){Object.defineProperty(m.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})}));var he=n.event;function fe(){}function ge(){return this.cancelBubble}function pe(){return this.defaultPrevented}n.event=function(e){return he&&(e=he(e)),e.persist=fe,e.isPropagationStopped=ge,e.isDefaultPrevented=pe,e.nativeEvent=e};var me={configurable:!0,get:function(){return this.class}},ve=n.vnode;n.vnode=function(e){var t=e.type,n=e.props,r=n;if("string"==typeof t){var i=-1===t.indexOf("-");for(var s in r={},n){var o=n[s];de&&"children"===s&&"noscript"===t||"value"===s&&"defaultValue"in n&&null==o||("defaultValue"===s&&"value"in n&&null==n.value?s="value":"download"===s&&!0===o?o="":/ondoubleclick/i.test(s)?s="ondblclick":/^onchange(textarea|input)/i.test(s+t)&&!ue(n.type)?s="oninput":/^onfocus$/i.test(s)?s="onfocusin":/^onblur$/i.test(s)?s="onfocusout":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(s)?s=s.toLowerCase():i&&ce.test(s)?s=s.replace(/[A-Z0-9]/g,"-$&").toLowerCase():null===o&&(o=void 0),/^oninput$/i.test(s)&&(s=s.toLowerCase(),r[s]&&(s="oninputCapture")),r[s]=o)}"select"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=S(n.children).forEach((function(e){e.props.selected=-1!=r.value.indexOf(e.props.value)}))),"select"==t&&null!=r.defaultValue&&(r.value=S(n.children).forEach((function(e){e.props.selected=r.multiple?-1!=r.defaultValue.indexOf(e.props.value):r.defaultValue==e.props.value}))),e.props=r,n.class!=n.className&&(me.enumerable="className"in n,null!=n.className&&(r.class=n.className),Object.defineProperty(r,"className",me))}e.$$typeof=le,ve&&ve(e)};var be=n.__r;function ye(e){e.parentNode&&e.parentNode.removeChild(e)}function Ee(e,t){if(e.closest)return e.closest(t);if(!document.documentElement.contains(e))return null;do{if(Ae(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null}function Ae(e,t){return(e.matches||e.matchesSelector||e.msMatchesSelector).call(e,t)}function De(e,t){let n=e instanceof HTMLElement?[e]:e,r=[];for(let e=0;e<n.length;e+=1){let i=n[e].querySelectorAll(t);for(let e=0;e<i.length;e+=1)r.push(i[e])}return r}n.__r=function(e){be&&be(e),e.__c};const Se=/(top|left|right|bottom|width|height)$/i;function we(e,t){for(let n in t)Ce(e,n,t[n])}function Ce(e,t,n){null==n?e.style[t]="":"number"==typeof n&&Se.test(t)?e.style[t]=n+"px":e.style[t]=n}function Re(e){var t,n;return null!==(n=null===(t=e.composedPath)||void 0===t?void 0:t.call(e)[0])&&void 0!==n?n:e.target}function xe(e){return e.getRootNode?e.getRootNode():document}let _e=0;function Te(){return _e+=1,"fc-dom-"+_e}function ke(e){e.preventDefault()}function Me(e,t,n,r){let i=function(e,t){return n=>{let r=Ee(n.target,e);r&&t.call(r,n,r)}}(n,r);return e.addEventListener(t,i),()=>{e.removeEventListener(t,i)}}const Ie=["webkitTransitionEnd","otransitionend","oTransitionEnd","msTransitionEnd","transitionend"];function Oe(e,t){let n=r=>{t(r),Ie.forEach(t=>{e.removeEventListener(t,n)})};Ie.forEach(t=>{e.addEventListener(t,n)})}function Ne(e){return Object.assign({onClick:e},Pe(e))}function Pe(e){return{tabIndex:0,onKeyDown(t){"Enter"!==t.key&&" "!==t.key||(e(t),t.preventDefault())}}}let He=0;function Be(){return He+=1,String(He)}function je(){document.body.classList.add("fc-not-allowed")}function ze(){document.body.classList.remove("fc-not-allowed")}function Ue(e){e.classList.add("fc-unselectable"),e.addEventListener("selectstart",ke)}function Le(e){e.classList.remove("fc-unselectable"),e.removeEventListener("selectstart",ke)}function We(e){e.addEventListener("contextmenu",ke)}function Fe(e){e.removeEventListener("contextmenu",ke)}function Ve(e){let t,n,r=[],i=[];for("string"==typeof e?i=e.split(/\s*,\s*/):"function"==typeof e?i=[e]:Array.isArray(e)&&(i=e),t=0;t<i.length;t+=1)n=i[t],"string"==typeof n?r.push("-"===n.charAt(0)?{field:n.substring(1),order:-1}:{field:n,order:1}):"function"==typeof n&&r.push({func:n});return r}function Ge(e,t,n){let r,i;for(r=0;r<n.length;r+=1)if(i=Qe(e,t,n[r]),i)return i;return 0}function Qe(e,t,n){return n.func?n.func(e,t):qe(e[n.field],t[n.field])*(n.order||1)}function qe(e,t){return e||t?null==t?-1:null==e?1:"string"==typeof e||"string"==typeof t?String(e).localeCompare(String(t)):e-t:0}function Ye(e,t){let n=String(e);return"000".substr(0,t-n.length)+n}function Ze(e,t,n){return"function"==typeof e?e(...t):"string"==typeof e?t.reduce((e,t,n)=>e.replace("$"+n,t||""),e):n}function Xe(e,t){return e-t}function Je(e){return e%1==0}function $e(e){let t=e.querySelector(".fc-scrollgrid-shrink-frame"),n=e.querySelector(".fc-scrollgrid-shrink-cushion");if(!t)throw new Error("needs fc-scrollgrid-shrink-frame className");if(!n)throw new Error("needs fc-scrollgrid-shrink-cushion className");return e.getBoundingClientRect().width-t.getBoundingClientRect().width+n.getBoundingClientRect().width}const Ke=["years","months","days","milliseconds"],et=/^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/;function tt(e,t){return"string"==typeof e?function(e){let t=et.exec(e);if(t){let e=t[1]?-1:1;return{years:0,months:0,days:e*(t[2]?parseInt(t[2],10):0),milliseconds:e*(60*(t[3]?parseInt(t[3],10):0)*60*1e3+60*(t[4]?parseInt(t[4],10):0)*1e3+1e3*(t[5]?parseInt(t[5],10):0)+(t[6]?parseInt(t[6],10):0))}}return null}(e):"object"==typeof e&&e?nt(e):"number"==typeof e?nt({[t||"milliseconds"]:e}):null}function nt(e){let t={years:e.years||e.year||0,months:e.months||e.month||0,days:e.days||e.day||0,milliseconds:60*(e.hours||e.hour||0)*60*1e3+60*(e.minutes||e.minute||0)*1e3+1e3*(e.seconds||e.second||0)+(e.milliseconds||e.millisecond||e.ms||0)},n=e.weeks||e.week;return n&&(t.days+=7*n,t.specifiedWeeks=!0),t}function rt(e,t){return{years:e.years+t.years,months:e.months+t.months,days:e.days+t.days,milliseconds:e.milliseconds+t.milliseconds}}function it(e,t){return{years:e.years*t,months:e.months*t,days:e.days*t,milliseconds:e.milliseconds*t}}function st(e){return ot(e)/864e5}function ot(e){return 31536e6*e.years+2592e6*e.months+864e5*e.days+e.milliseconds}function at(e,t){let n=null;for(let r=0;r<Ke.length;r+=1){let i=Ke[r];if(t[i]){let r=e[i]/t[i];if(!Je(r)||null!==n&&n!==r)return null;n=r}else if(e[i])return null}return n}function lt(e){let t=e.milliseconds;if(t){if(t%1e3!=0)return{unit:"millisecond",value:t};if(t%6e4!=0)return{unit:"second",value:t/1e3};if(t%36e5!=0)return{unit:"minute",value:t/6e4};if(t)return{unit:"hour",value:t/36e5}}return e.days?e.specifiedWeeks&&e.days%7==0?{unit:"week",value:e.days/7}:{unit:"day",value:e.days}:e.months?{unit:"month",value:e.months}:e.years?{unit:"year",value:e.years}:{unit:"millisecond",value:0}}const{hasOwnProperty:ct}=Object.prototype;function dt(e,t){let n={};if(t)for(let r in t){let t=[];for(let i=e.length-1;i>=0;i-=1){let s=e[i][r];if("object"==typeof s&&s)t.unshift(s);else if(void 0!==s){n[r]=s;break}}t.length&&(n[r]=dt(t))}for(let t=e.length-1;t>=0;t-=1){let r=e[t];for(let e in r)e in n||(n[e]=r[e])}return n}function ut(e,t){let n={};for(let r in e)t(e[r],r)&&(n[r]=e[r]);return n}function ht(e,t){let n={};for(let r in e)n[r]=t(e[r],r);return n}function ft(e){let t={};for(let n of e)t[n]=!0;return t}function gt(e){let t=[];for(let n in e)t.push(e[n]);return t}function pt(e,t){if(e===t)return!0;for(let n in e)if(ct.call(e,n)&&!(n in t))return!1;for(let n in t)if(ct.call(t,n)&&e[n]!==t[n])return!1;return!0}const mt=/^on[A-Z]/;function vt(e,t){let n=[];for(let r in e)ct.call(e,r)&&(r in t||n.push(r));for(let r in t)ct.call(t,r)&&e[r]!==t[r]&&n.push(r);return n}function bt(e,t,n={}){if(e===t)return!0;for(let r in t)if(!(r in e)||!yt(e[r],t[r],n[r]))return!1;for(let n in e)if(!(n in t))return!1;return!0}function yt(e,t,n){return e===t||!0===n||!!n&&n(e,t)}function Et(e,t=0,n,r=1){let i=[];null==n&&(n=Object.keys(e).length);for(let s=t;s<n;s+=r){let t=e[s];void 0!==t&&i.push(t)}return i}const At=["sun","mon","tue","wed","thu","fri","sat"];function Dt(e,t){let n=Pt(e);return n[2]+=7*t,Ht(n)}function St(e,t){let n=Pt(e);return n[2]+=t,Ht(n)}function wt(e,t){let n=Pt(e);return n[6]+=t,Ht(n)}function Ct(e,t){return Rt(e,t)/7}function Rt(e,t){return(t.valueOf()-e.valueOf())/864e5}function xt(e,t){let n=kt(e),r=kt(t);return{years:0,months:0,days:Math.round(Rt(n,r)),milliseconds:t.valueOf()-r.valueOf()-(e.valueOf()-n.valueOf())}}function _t(e,t){let n=Tt(e,t);return null!==n&&n%7==0?n/7:null}function Tt(e,t){return jt(e)===jt(t)?Math.round(Rt(e,t)):null}function kt(e){return Ht([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()])}function Mt(e,t,n,r){let i=Ht([t,0,1+It(t,n,r)]),s=kt(e),o=Math.round(Rt(i,s));return Math.floor(o/7)+1}function It(e,t,n){let r=7+t-n;return-((7+Ht([e,0,r]).getUTCDay()-t)%7)+r-1}function Ot(e){return[e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()]}function Nt(e){return new Date(e[0],e[1]||0,null==e[2]?1:e[2],e[3]||0,e[4]||0,e[5]||0)}function Pt(e){return[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()]}function Ht(e){return 1===e.length&&(e=e.concat([0])),new Date(Date.UTC(...e))}function Bt(e){return!isNaN(e.valueOf())}function jt(e){return 1e3*e.getUTCHours()*60*60+1e3*e.getUTCMinutes()*60+1e3*e.getUTCSeconds()+e.getUTCMilliseconds()}function zt(e,t,n=!1){let r=e.toISOString();return r=r.replace(".000",""),n&&(r=r.replace("T00:00:00Z","")),r.length>10&&(null==t?r=r.replace("Z",""):0!==t&&(r=r.replace("Z",Wt(t,!0)))),r}function Ut(e){return e.toISOString().replace(/T.*$/,"")}function Lt(e){return Ye(e.getUTCHours(),2)+":"+Ye(e.getUTCMinutes(),2)+":"+Ye(e.getUTCSeconds(),2)}function Wt(e,t=!1){let n=e<0?"-":"+",r=Math.abs(e),i=Math.floor(r/60),s=Math.round(r%60);return t?`${n+Ye(i,2)}:${Ye(s,2)}`:`GMT${n}${i}${s?":"+Ye(s,2):""}`}function Ft(e,t,n){if(e===t)return!0;let r,i=e.length;if(i!==t.length)return!1;for(r=0;r<i;r+=1)if(!(n?n(e[r],t[r]):e[r]===t[r]))return!1;return!0}function Vt(e,t,n){let r,i;return function(...s){if(r){if(!Ft(r,s)){n&&n(i);let r=e.apply(this,s);t&&t(r,i)||(i=r)}}else i=e.apply(this,s);return r=s,i}}function Gt(e,t,n){let r,i;return s=>{if(r){if(!pt(r,s)){n&&n(i);let r=e.call(this,s);t&&t(r,i)||(i=r)}}else i=e.call(this,s);return r=s,i}}const Qt={week:3,separator:0,omitZeroMinute:0,meridiem:0,omitCommas:0},qt={timeZoneName:7,era:6,year:5,month:4,day:2,weekday:2,hour:1,minute:1,second:1},Yt=/\s*([ap])\.?m\.?/i,Zt=/,/g,Xt=/\s+/g,Jt=/\u200e/g,$t=/UTC|GMT/;class Kt{constructor(e){let t={},n={},r=0;for(let i in e)i in Qt?(n[i]=e[i],r=Math.max(Qt[i],r)):(t[i]=e[i],i in qt&&(r=Math.max(qt[i],r)));this.standardDateProps=t,this.extendedSettings=n,this.severity=r,this.buildFormattingFunc=Vt(en)}format(e,t){return this.buildFormattingFunc(this.standardDateProps,this.extendedSettings,t)(e)}formatRange(e,t,n,r){let{standardDateProps:i,extendedSettings:s}=this,o=function(e,t,n){if(n.getMarkerYear(e)!==n.getMarkerYear(t))return 5;if(n.getMarkerMonth(e)!==n.getMarkerMonth(t))return 4;if(n.getMarkerDay(e)!==n.getMarkerDay(t))return 2;if(jt(e)!==jt(t))return 1;return 0}(e.marker,t.marker,n.calendarSystem);if(!o)return this.format(e,n);let a=o;!(a>1)||"numeric"!==i.year&&"2-digit"!==i.year||"numeric"!==i.month&&"2-digit"!==i.month||"numeric"!==i.day&&"2-digit"!==i.day||(a=1);let l=this.format(e,n),c=this.format(t,n);if(l===c)return l;let d=en(function(e,t){let n={};for(let r in e)(!(r in qt)||qt[r]<=t)&&(n[r]=e[r]);return n}(i,a),s,n),u=d(e),h=d(t),f=function(e,t,n,r){let i=0;for(;i<e.length;){let s=e.indexOf(t,i);if(-1===s)break;let o=e.substr(0,s);i=s+t.length;let a=e.substr(i),l=0;for(;l<n.length;){let e=n.indexOf(r,l);if(-1===e)break;let t=n.substr(0,e);l=e+r.length;let i=n.substr(l);if(o===t&&a===i)return{before:o,after:a}}}return null}(l,u,c,h),g=s.separator||r||n.defaultSeparator||"";return f?f.before+u+g+h+f.after:l+g+c}getLargestUnit(){switch(this.severity){case 7:case 6:case 5:return"year";case 4:return"month";case 3:return"week";case 2:return"day";default:return"time"}}}function en(e,t,n){let r=Object.keys(e).length;return 1===r&&"short"===e.timeZoneName?e=>Wt(e.timeZoneOffset):0===r&&t.week?e=>function(e,t,n,r,i){let s=[];"long"===i?s.push(n):"short"!==i&&"narrow"!==i||s.push(t);"long"!==i&&"short"!==i||s.push(" ");s.push(r.simpleNumberFormat.format(e)),"rtl"===r.options.direction&&s.reverse();return s.join("")}(n.computeWeekNumber(e.marker),n.weekText,n.weekTextLong,n.locale,t.week):function(e,t,n){e=Object.assign({},e),t=Object.assign({},t),function(e,t){e.timeZoneName&&(e.hour||(e.hour="2-digit"),e.minute||(e.minute="2-digit"));"long"===e.timeZoneName&&(e.timeZoneName="short");t.omitZeroMinute&&(e.second||e.millisecond)&&delete t.omitZeroMinute}(e,t),e.timeZone="UTC";let r,i=new Intl.DateTimeFormat(n.locale.codes,e);if(t.omitZeroMinute){let t=Object.assign({},e);delete t.minute,r=new Intl.DateTimeFormat(n.locale.codes,t)}return s=>{let o,{marker:a}=s;return o=r&&!a.getUTCMinutes()?r:i,function(e,t,n,r,i){e=e.replace(Jt,""),"short"===n.timeZoneName&&(e=function(e,t){let n=!1;e=e.replace($t,()=>(n=!0,t)),n||(e+=" "+t);return e}(e,"UTC"===i.timeZone||null==t.timeZoneOffset?"UTC":Wt(t.timeZoneOffset)));r.omitCommas&&(e=e.replace(Zt,"").trim());r.omitZeroMinute&&(e=e.replace(":00",""));!1===r.meridiem?e=e.replace(Yt,"").trim():"narrow"===r.meridiem?e=e.replace(Yt,(e,t)=>t.toLocaleLowerCase()):"short"===r.meridiem?e=e.replace(Yt,(e,t)=>t.toLocaleLowerCase()+"m"):"lowercase"===r.meridiem&&(e=e.replace(Yt,e=>e.toLocaleLowerCase()));return e=(e=e.replace(Xt," ")).trim()}(o.format(a),s,e,t,n)}}(e,t,n)}function tn(e,t){let n=t.markerToArray(e.marker);return{marker:e.marker,timeZoneOffset:e.timeZoneOffset,array:n,year:n[0],month:n[1],day:n[2],hour:n[3],minute:n[4],second:n[5],millisecond:n[6]}}function nn(e,t,n,r){let i=tn(e,n.calendarSystem);return{date:i,start:i,end:t?tn(t,n.calendarSystem):null,timeZone:n.timeZone,localeCodes:n.locale.codes,defaultSeparator:r||n.defaultSeparator}}class rn{constructor(e){this.cmdStr=e}format(e,t,n){return t.cmdFormatter(this.cmdStr,nn(e,null,t,n))}formatRange(e,t,n,r){return n.cmdFormatter(this.cmdStr,nn(e,t,n,r))}}class sn{constructor(e){this.func=e}format(e,t,n){return this.func(nn(e,null,t,n))}formatRange(e,t,n,r){return this.func(nn(e,t,n,r))}}function on(e){return"object"==typeof e&&e?new Kt(e):"string"==typeof e?new rn(e):"function"==typeof e?new sn(e):null}const an={navLinkDayClick:mn,navLinkWeekClick:mn,duration:tt,bootstrapFontAwesome:mn,buttonIcons:mn,customButtons:mn,defaultAllDayEventDuration:tt,defaultTimedEventDuration:tt,nextDayThreshold:tt,scrollTime:tt,scrollTimeReset:Boolean,slotMinTime:tt,slotMaxTime:tt,dayPopoverFormat:on,slotDuration:tt,snapDuration:tt,headerToolbar:mn,footerToolbar:mn,defaultRangeSeparator:String,titleRangeSeparator:String,forceEventDuration:Boolean,dayHeaders:Boolean,dayHeaderFormat:on,dayHeaderClassNames:mn,dayHeaderContent:mn,dayHeaderDidMount:mn,dayHeaderWillUnmount:mn,dayCellClassNames:mn,dayCellContent:mn,dayCellDidMount:mn,dayCellWillUnmount:mn,initialView:String,aspectRatio:Number,weekends:Boolean,weekNumberCalculation:mn,weekNumbers:Boolean,weekNumberClassNames:mn,weekNumberContent:mn,weekNumberDidMount:mn,weekNumberWillUnmount:mn,editable:Boolean,viewClassNames:mn,viewDidMount:mn,viewWillUnmount:mn,nowIndicator:Boolean,nowIndicatorClassNames:mn,nowIndicatorContent:mn,nowIndicatorDidMount:mn,nowIndicatorWillUnmount:mn,showNonCurrentDates:Boolean,lazyFetching:Boolean,startParam:String,endParam:String,timeZoneParam:String,timeZone:String,locales:mn,locale:mn,themeSystem:String,dragRevertDuration:Number,dragScroll:Boolean,allDayMaintainDuration:Boolean,unselectAuto:Boolean,dropAccept:mn,eventOrder:Ve,eventOrderStrict:Boolean,handleWindowResize:Boolean,windowResizeDelay:Number,longPressDelay:Number,eventDragMinDistance:Number,expandRows:Boolean,height:mn,contentHeight:mn,direction:String,weekNumberFormat:on,eventResizableFromStart:Boolean,displayEventTime:Boolean,displayEventEnd:Boolean,weekText:String,weekTextLong:String,progressiveEventRendering:Boolean,businessHours:mn,initialDate:mn,now:mn,eventDataTransform:mn,stickyHeaderDates:mn,stickyFooterScrollbar:mn,viewHeight:mn,defaultAllDay:Boolean,eventSourceFailure:mn,eventSourceSuccess:mn,eventDisplay:String,eventStartEditable:Boolean,eventDurationEditable:Boolean,eventOverlap:mn,eventConstraint:mn,eventAllow:mn,eventBackgroundColor:String,eventBorderColor:String,eventTextColor:String,eventColor:String,eventClassNames:mn,eventContent:mn,eventDidMount:mn,eventWillUnmount:mn,selectConstraint:mn,selectOverlap:mn,selectAllow:mn,droppable:Boolean,unselectCancel:String,slotLabelFormat:mn,slotLaneClassNames:mn,slotLaneContent:mn,slotLaneDidMount:mn,slotLaneWillUnmount:mn,slotLabelClassNames:mn,slotLabelContent:mn,slotLabelDidMount:mn,slotLabelWillUnmount:mn,dayMaxEvents:mn,dayMaxEventRows:mn,dayMinWidth:Number,slotLabelInterval:tt,allDayText:String,allDayClassNames:mn,allDayContent:mn,allDayDidMount:mn,allDayWillUnmount:mn,slotMinWidth:Number,navLinks:Boolean,eventTimeFormat:on,rerenderDelay:Number,moreLinkText:mn,moreLinkHint:mn,selectMinDistance:Number,selectable:Boolean,selectLongPressDelay:Number,eventLongPressDelay:Number,selectMirror:Boolean,eventMaxStack:Number,eventMinHeight:Number,eventMinWidth:Number,eventShortHeight:Number,slotEventOverlap:Boolean,plugins:mn,firstDay:Number,dayCount:Number,dateAlignment:String,dateIncrement:tt,hiddenDays:mn,monthMode:Boolean,fixedWeekCount:Boolean,validRange:mn,visibleRange:mn,titleFormat:mn,eventInteractive:Boolean,noEventsText:String,viewHint:mn,navLinkHint:mn,closeHint:String,timeHint:String,eventHint:String,moreLinkClick:mn,moreLinkClassNames:mn,moreLinkContent:mn,moreLinkDidMount:mn,moreLinkWillUnmount:mn,handleCustomRendering:mn,customRenderingMetaMap:mn,customRenderingReplacesEl:Boolean},ln={eventDisplay:"auto",defaultRangeSeparator:" - ",titleRangeSeparator:" – ",defaultTimedEventDuration:"01:00:00",defaultAllDayEventDuration:{day:1},forceEventDuration:!1,nextDayThreshold:"00:00:00",dayHeaders:!0,initialView:"",aspectRatio:1.35,headerToolbar:{start:"title",center:"",end:"today prev,next"},weekends:!0,weekNumbers:!1,weekNumberCalculation:"local",editable:!1,nowIndicator:!1,scrollTime:"06:00:00",scrollTimeReset:!0,slotMinTime:"00:00:00",slotMaxTime:"24:00:00",showNonCurrentDates:!0,lazyFetching:!0,startParam:"start",endParam:"end",timeZoneParam:"timeZone",timeZone:"local",locales:[],locale:"",themeSystem:"standard",dragRevertDuration:500,dragScroll:!0,allDayMaintainDuration:!1,unselectAuto:!0,dropAccept:"*",eventOrder:"start,-duration,allDay,title",dayPopoverFormat:{month:"long",day:"numeric",year:"numeric"},handleWindowResize:!0,windowResizeDelay:100,longPressDelay:1e3,eventDragMinDistance:5,expandRows:!1,navLinks:!1,selectable:!1,eventMinHeight:15,eventMinWidth:30,eventShortHeight:30},cn={datesSet:mn,eventsSet:mn,eventAdd:mn,eventChange:mn,eventRemove:mn,windowResize:mn,eventClick:mn,eventMouseEnter:mn,eventMouseLeave:mn,select:mn,unselect:mn,loading:mn,_unmount:mn,_beforeprint:mn,_afterprint:mn,_noEventDrop:mn,_noEventResize:mn,_resize:mn,_scrollRequest:mn},dn={buttonText:mn,buttonHints:mn,views:mn,plugins:mn,initialEvents:mn,events:mn,eventSources:mn},un={headerToolbar:hn,footerToolbar:hn,buttonText:hn,buttonHints:hn,buttonIcons:hn,dateIncrement:hn};function hn(e,t){return"object"==typeof e&&"object"==typeof t&&e&&t?pt(e,t):e===t}const fn={type:String,component:mn,buttonText:String,buttonTextKey:String,dateProfileGeneratorClass:mn,usesMinMaxTime:Boolean,classNames:mn,content:mn,didMount:mn,willUnmount:mn};function gn(e){return dt(e,un)}function pn(e,t){let n={},r={};for(let r in t)r in e&&(n[r]=t[r](e[r]));for(let n in e)n in t||(r[n]=e[n]);return{refined:n,extra:r}}function mn(e){return e}function vn(e,t,n,r){return{instanceId:Be(),defId:e,range:t,forcedStartTzo:null==n?null:n,forcedEndTzo:null==r?null:r}}function bn(e,t,n){let{dateEnv:r,pluginHooks:i,options:s}=n,{defs:o,instances:a}=e;a=ut(a,e=>!o[e.defId].recurringDef);for(let e in o){let n=o[e];if(n.recurringDef){let{duration:o}=n.recurringDef;o||(o=n.allDay?s.defaultAllDayEventDuration:s.defaultTimedEventDuration);let l=yn(n,o,t,r,i.recurringTypes);for(let t of l){let n=vn(e,{start:t,end:r.add(t,o)});a[n.instanceId]=n}}}return{defs:o,instances:a}}function yn(e,t,n,r,i){let s=i[e.recurringDef.typeId].expand(e.recurringDef.typeData,{start:r.subtract(n.start,t),end:n.end},r);return e.allDay&&(s=s.map(kt)),s}function En(e,t,n,r){let i={defs:{},instances:{}},s=Bn(n);for(let o of e){let e=Pn(o,t,n,r,s);e&&An(e,i)}return i}function An(e,t={defs:{},instances:{}}){return t.defs[e.def.defId]=e.def,e.instance&&(t.instances[e.instance.instanceId]=e.instance),t}function Dn(e,t){let n=e.instances[t];if(n){let t=e.defs[n.defId],r=Cn(e,e=>{return n=t,r=e,Boolean(n.groupId&&n.groupId===r.groupId);var n,r});return r.defs[t.defId]=t,r.instances[n.instanceId]=n,r}return{defs:{},instances:{}}}function Sn(){return{defs:{},instances:{}}}function wn(e,t){return{defs:Object.assign(Object.assign({},e.defs),t.defs),instances:Object.assign(Object.assign({},e.instances),t.instances)}}function Cn(e,t){let n=ut(e.defs,t),r=ut(e.instances,e=>n[e.defId]);return{defs:n,instances:r}}function Rn(e){return Array.isArray(e)?e:"string"==typeof e?e.split(/\s+/):[]}const xn={display:String,editable:Boolean,startEditable:Boolean,durationEditable:Boolean,constraint:mn,overlap:mn,allow:mn,className:Rn,classNames:Rn,color:String,backgroundColor:String,borderColor:String,textColor:String},_n={display:null,startEditable:null,durationEditable:null,constraints:[],overlap:null,allows:[],backgroundColor:"",borderColor:"",textColor:"",classNames:[]};function Tn(e,t){let n=function(e,t){return Array.isArray(e)?En(e,null,t,!0):"object"==typeof e&&e?En([e],null,t,!0):null!=e?String(e):null}(e.constraint,t);return{display:e.display||null,startEditable:null!=e.startEditable?e.startEditable:e.editable,durationEditable:null!=e.durationEditable?e.durationEditable:e.editable,constraints:null!=n?[n]:[],overlap:null!=e.overlap?e.overlap:null,allows:null!=e.allow?[e.allow]:[],backgroundColor:e.backgroundColor||e.color||"",borderColor:e.borderColor||e.color||"",textColor:e.textColor||"",classNames:(e.className||[]).concat(e.classNames||[])}}function kn(e){return e.reduce(Mn,_n)}function Mn(e,t){return{display:null!=t.display?t.display:e.display,startEditable:null!=t.startEditable?t.startEditable:e.startEditable,durationEditable:null!=t.durationEditable?t.durationEditable:e.durationEditable,constraints:e.constraints.concat(t.constraints),overlap:"boolean"==typeof t.overlap?t.overlap:e.overlap,allows:e.allows.concat(t.allows),backgroundColor:t.backgroundColor||e.backgroundColor,borderColor:t.borderColor||e.borderColor,textColor:t.textColor||e.textColor,classNames:e.classNames.concat(t.classNames)}}const In={id:String,groupId:String,title:String,url:String,interactive:Boolean},On={start:mn,end:mn,date:mn,allDay:Boolean},Nn=Object.assign(Object.assign(Object.assign({},In),On),{extendedProps:mn});function Pn(e,t,n,r,i=Bn(n)){let{refined:s,extra:o}=Hn(e,n,i),a=function(e,t){let n=null;e&&(n=e.defaultAllDay);null==n&&(n=t.options.defaultAllDay);return n}(t,n),l=function(e,t,n,r){for(let i=0;i<r.length;i+=1){let s=r[i].parse(e,n);if(s){let{allDay:n}=e;return null==n&&(n=t,null==n&&(n=s.allDayGuess,null==n&&(n=!1))),{allDay:n,duration:s.duration,typeData:s.typeData,typeId:i}}}return null}(s,a,n.dateEnv,n.pluginHooks.recurringTypes);if(l){let e=jn(s,o,t?t.sourceId:"",l.allDay,Boolean(l.duration),n);return e.recurringDef={typeId:l.typeId,typeData:l.typeData,duration:l.duration},{def:e,instance:null}}let c=function(e,t,n,r){let i,s,{allDay:o}=e,a=null,l=!1,c=null,d=null!=e.start?e.start:e.date;if(i=n.dateEnv.createMarkerMeta(d),i)a=i.marker;else if(!r)return null;null!=e.end&&(s=n.dateEnv.createMarkerMeta(e.end));null==o&&(o=null!=t?t:(!i||i.isTimeUnspecified)&&(!s||s.isTimeUnspecified));o&&a&&(a=kt(a));s&&(c=s.marker,o&&(c=kt(c)),a&&c<=a&&(c=null));c?l=!0:r||(l=n.options.forceEventDuration||!1,c=n.dateEnv.add(a,o?n.options.defaultAllDayEventDuration:n.options.defaultTimedEventDuration));return{allDay:o,hasEnd:l,range:{start:a,end:c},forcedStartTzo:i?i.forcedTzo:null,forcedEndTzo:s?s.forcedTzo:null}}(s,a,n,r);if(c){let e=jn(s,o,t?t.sourceId:"",c.allDay,c.hasEnd,n);return{def:e,instance:vn(e.defId,c.range,c.forcedStartTzo,c.forcedEndTzo)}}return null}function Hn(e,t,n=Bn(t)){return pn(e,n)}function Bn(e){return Object.assign(Object.assign(Object.assign({},xn),Nn),e.pluginHooks.eventRefiners)}function jn(e,t,n,r,i,s){let o={title:e.title||"",groupId:e.groupId||"",publicId:e.id||"",url:e.url||"",recurringDef:null,defId:Be(),sourceId:n,allDay:r,hasEnd:i,interactive:e.interactive,ui:Tn(e,s),extendedProps:Object.assign(Object.assign({},e.extendedProps||{}),t)};for(let t of s.pluginHooks.eventDefMemberAdders)Object.assign(o,t(e));return Object.freeze(o.ui.classNames),Object.freeze(o.extendedProps),o}const zn={startTime:"09:00",endTime:"17:00",daysOfWeek:[1,2,3,4,5],display:"inverse-background",classNames:"fc-non-business",groupId:"_businessHours"};function Un(e,t){return En(function(e){let t;t=!0===e?[{}]:Array.isArray(e)?e.filter(e=>e.daysOfWeek):"object"==typeof e&&e?[e]:[];return t=t.map(e=>Object.assign(Object.assign({},zn),e)),t}(e),null,t)}function Ln(e){let t=Math.floor(Rt(e.start,e.end))||1,n=kt(e.start);return{start:n,end:St(n,t)}}function Wn(e,t=tt(0)){let n=null,r=null;if(e.end){r=kt(e.end);let n=e.end.valueOf()-r.valueOf();n&&n>=ot(t)&&(r=St(r,1))}return e.start&&(n=kt(e.start),r&&r<=n&&(r=St(n,1))),{start:n,end:r}}function Fn(e){let t=Wn(e);return Rt(t.start,t.end)>1}function Vn(e,t,n,r){return"year"===r?tt(n.diffWholeYears(e,t),"year"):"month"===r?tt(n.diffWholeMonths(e,t),"month"):xt(e,t)}function Gn(e,t){return e.left>=t.left&&e.left<t.right&&e.top>=t.top&&e.top<t.bottom}function Qn(e,t){let n={left:Math.max(e.left,t.left),right:Math.min(e.right,t.right),top:Math.max(e.top,t.top),bottom:Math.min(e.bottom,t.bottom)};return n.left<n.right&&n.top<n.bottom&&n}function qn(e,t){return{left:Math.min(Math.max(e.left,t.left),t.right),top:Math.min(Math.max(e.top,t.top),t.bottom)}}function Yn(e){return{left:(e.left+e.right)/2,top:(e.top+e.bottom)/2}}function Zn(e,t){return{left:e.left-t.left,top:e.top-t.top}}let Xn;function Jn(){return null==Xn&&(Xn=function(){if("undefined"==typeof document)return!0;let e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.innerHTML="<table><tr><td><div></div></td></tr></table>",e.querySelector("table").style.height="100px",e.querySelector("div").style.height="100%",document.body.appendChild(e);let t=e.querySelector("div").offsetHeight>0;return document.body.removeChild(e),t}()),Xn}const $n={defs:{},instances:{}};class Kn{constructor(){this.getKeysForEventDefs=Vt(this._getKeysForEventDefs),this.splitDateSelection=Vt(this._splitDateSpan),this.splitEventStore=Vt(this._splitEventStore),this.splitIndividualUi=Vt(this._splitIndividualUi),this.splitEventDrag=Vt(this._splitInteraction),this.splitEventResize=Vt(this._splitInteraction),this.eventUiBuilders={}}splitProps(e){let t=this.getKeyInfo(e),n=this.getKeysForEventDefs(e.eventStore),r=this.splitDateSelection(e.dateSelection),i=this.splitIndividualUi(e.eventUiBases,n),s=this.splitEventStore(e.eventStore,n),o=this.splitEventDrag(e.eventDrag),a=this.splitEventResize(e.eventResize),l={};this.eventUiBuilders=ht(t,(e,t)=>this.eventUiBuilders[t]||Vt(er));for(let n in t){let c=t[n],d=s[n]||$n,u=this.eventUiBuilders[n];l[n]={businessHours:c.businessHours||e.businessHours,dateSelection:r[n]||null,eventStore:d,eventUiBases:u(e.eventUiBases[""],c.ui,i[n]),eventSelection:d.instances[e.eventSelection]?e.eventSelection:"",eventDrag:o[n]||null,eventResize:a[n]||null}}return l}_splitDateSpan(e){let t={};if(e){let n=this.getKeysForDateSpan(e);for(let r of n)t[r]=e}return t}_getKeysForEventDefs(e){return ht(e.defs,e=>this.getKeysForEventDef(e))}_splitEventStore(e,t){let{defs:n,instances:r}=e,i={};for(let e in n)for(let r of t[e])i[r]||(i[r]={defs:{},instances:{}}),i[r].defs[e]=n[e];for(let e in r){let n=r[e];for(let r of t[n.defId])i[r]&&(i[r].instances[e]=n)}return i}_splitIndividualUi(e,t){let n={};for(let r in e)if(r)for(let i of t[r])n[i]||(n[i]={}),n[i][r]=e[r];return n}_splitInteraction(e){let t={};if(e){let n=this._splitEventStore(e.affectedEvents,this._getKeysForEventDefs(e.affectedEvents)),r=this._getKeysForEventDefs(e.mutatedEvents),i=this._splitEventStore(e.mutatedEvents,r),s=r=>{t[r]||(t[r]={affectedEvents:n[r]||$n,mutatedEvents:i[r]||$n,isEvent:e.isEvent})};for(let e in n)s(e);for(let e in i)s(e)}return t}}function er(e,t,n){let r=[];e&&r.push(e),t&&r.push(t);let i={"":kn(r)};return n&&Object.assign(i,n),i}function tr(e,t){let n,r,i=[],{start:s}=t;for(e.sort(nr),n=0;n<e.length;n+=1)r=e[n],r.start>s&&i.push({start:s,end:r.start}),r.end>s&&(s=r.end);return s<t.end&&i.push({start:s,end:t.end}),i}function nr(e,t){return e.start.valueOf()-t.start.valueOf()}function rr(e,t){let{start:n,end:r}=e,i=null;return null!==t.start&&(n=null===n?t.start:new Date(Math.max(n.valueOf(),t.start.valueOf()))),null!=t.end&&(r=null===r?t.end:new Date(Math.min(r.valueOf(),t.end.valueOf()))),(null===n||null===r||n<r)&&(i={start:n,end:r}),i}function ir(e,t){return(null===e.start?null:e.start.valueOf())===(null===t.start?null:t.start.valueOf())&&(null===e.end?null:e.end.valueOf())===(null===t.end?null:t.end.valueOf())}function sr(e,t){return(null===e.end||null===t.start||e.end>t.start)&&(null===e.start||null===t.end||e.start<t.end)}function or(e,t){return(null===e.start||null!==t.start&&t.start>=e.start)&&(null===e.end||null!==t.end&&t.end<=e.end)}function ar(e,t){return(null===e.start||t>=e.start)&&(null===e.end||t<e.end)}function lr(e,t,n,r){return{dow:e.getUTCDay(),isDisabled:Boolean(r&&!ar(r.activeRange,e)),isOther:Boolean(r&&!ar(r.currentRange,e)),isToday:Boolean(t&&ar(t,e)),isPast:Boolean(n?e<n:!!t&&e<t.start),isFuture:Boolean(n?e>n:!!t&&e>=t.end)}}function cr(e,t){let n=["fc-day","fc-day-"+At[e.dow]];return e.isDisabled?n.push("fc-day-disabled"):(e.isToday&&(n.push("fc-day-today"),n.push(t.getClass("today"))),e.isPast&&n.push("fc-day-past"),e.isFuture&&n.push("fc-day-future"),e.isOther&&n.push("fc-day-other")),n}const dr=on({year:"numeric",month:"long",day:"numeric"}),ur=on({week:"long"});function hr(e,t,n="day",r=!0){const{dateEnv:i,options:s,calendarApi:o}=e;let a=i.format(t,"week"===n?ur:dr);if(s.navLinks){let e=i.toDate(t);const l=e=>{let r="day"===n?s.navLinkDayClick:"week"===n?s.navLinkWeekClick:null;"function"==typeof r?r.call(o,i.toDate(t),e):("string"==typeof r&&(n=r),o.zoomTo(t,n))};return Object.assign({title:Ze(s.navLinkHint,[a,e],a),"data-navlink":""},r?Ne(l):{onClick:l})}return{"aria-label":a}}let fr,gr=null;function pr(){return null===gr&&(gr=function(){let e=document.createElement("div");we(e,{position:"absolute",top:-1e3,left:0,border:0,padding:0,overflow:"scroll",direction:"rtl"}),e.innerHTML="<div></div>",document.body.appendChild(e);let t=e.firstChild.getBoundingClientRect().left>e.getBoundingClientRect().left;return ye(e),t}()),gr}function mr(){return fr||(fr=function(){let e=document.createElement("div");e.style.overflow="scroll",e.style.position="absolute",e.style.top="-9999px",e.style.left="-9999px",document.body.appendChild(e);let t=vr(e);return document.body.removeChild(e),t}()),fr}function vr(e){return{x:e.offsetHeight-e.clientHeight,y:e.offsetWidth-e.clientWidth}}function br(e,t=!1){let n=window.getComputedStyle(e),r=parseInt(n.borderLeftWidth,10)||0,i=parseInt(n.borderRightWidth,10)||0,s=parseInt(n.borderTopWidth,10)||0,o=parseInt(n.borderBottomWidth,10)||0,a=vr(e),l=a.y-r-i,c={borderLeft:r,borderRight:i,borderTop:s,borderBottom:o,scrollbarBottom:a.x-s-o,scrollbarLeft:0,scrollbarRight:0};return pr()&&"rtl"===n.direction?c.scrollbarLeft=l:c.scrollbarRight=l,t&&(c.paddingLeft=parseInt(n.paddingLeft,10)||0,c.paddingRight=parseInt(n.paddingRight,10)||0,c.paddingTop=parseInt(n.paddingTop,10)||0,c.paddingBottom=parseInt(n.paddingBottom,10)||0),c}function yr(e,t=!1,n){let r=n?e.getBoundingClientRect():Er(e),i=br(e,t),s={left:r.left+i.borderLeft+i.scrollbarLeft,right:r.right-i.borderRight-i.scrollbarRight,top:r.top+i.borderTop,bottom:r.bottom-i.borderBottom-i.scrollbarBottom};return t&&(s.left+=i.paddingLeft,s.right-=i.paddingRight,s.top+=i.paddingTop,s.bottom-=i.paddingBottom),s}function Er(e){let t=e.getBoundingClientRect();return{left:t.left+window.pageXOffset,top:t.top+window.pageYOffset,right:t.right+window.pageXOffset,bottom:t.bottom+window.pageYOffset}}function Ar(e){let t=[];for(;e instanceof HTMLElement;){let n=window.getComputedStyle(e);if("fixed"===n.position)break;/(auto|scroll)/.test(n.overflow+n.overflowY+n.overflowX)&&t.push(e),e=e.parentNode}return t}function Dr(e,t,n){let r=!1,i=function(e){r||(r=!0,t(e))},s=function(e){r||(r=!0,n(e))},o=e(i,s);o&&"function"==typeof o.then&&o.then(i,s)}class Sr{constructor(){this.handlers={},this.thisContext=null}setThisContext(e){this.thisContext=e}setOptions(e){this.options=e}on(e,t){!function(e,t,n){(e[t]||(e[t]=[])).push(n)}(this.handlers,e,t)}off(e,t){!function(e,t,n){n?e[t]&&(e[t]=e[t].filter(e=>e!==n)):delete e[t]}(this.handlers,e,t)}trigger(e,...t){let n=this.handlers[e]||[],r=this.options&&this.options[e],i=[].concat(r||[],n);for(let e of i)e.apply(this.thisContext,t)}hasHandlers(e){return Boolean(this.handlers[e]&&this.handlers[e].length||this.options&&this.options[e])}}class wr{constructor(e,t,n,r){this.els=t;let i=this.originClientRect=e.getBoundingClientRect();n&&this.buildElHorizontals(i.left),r&&this.buildElVerticals(i.top)}buildElHorizontals(e){let t=[],n=[];for(let r of this.els){let i=r.getBoundingClientRect();t.push(i.left-e),n.push(i.right-e)}this.lefts=t,this.rights=n}buildElVerticals(e){let t=[],n=[];for(let r of this.els){let i=r.getBoundingClientRect();t.push(i.top-e),n.push(i.bottom-e)}this.tops=t,this.bottoms=n}leftToIndex(e){let t,{lefts:n,rights:r}=this,i=n.length;for(t=0;t<i;t+=1)if(e>=n[t]&&e<r[t])return t}topToIndex(e){let t,{tops:n,bottoms:r}=this,i=n.length;for(t=0;t<i;t+=1)if(e>=n[t]&&e<r[t])return t}getWidth(e){return this.rights[e]-this.lefts[e]}getHeight(e){return this.bottoms[e]-this.tops[e]}similarTo(e){return Cr(this.tops||[],e.tops||[])&&Cr(this.bottoms||[],e.bottoms||[])&&Cr(this.lefts||[],e.lefts||[])&&Cr(this.rights||[],e.rights||[])}}function Cr(e,t){const n=e.length;if(n!==t.length)return!1;for(let r=0;r<n;r++)if(Math.round(e[r])!==Math.round(t[r]))return!1;return!0}class Rr{getMaxScrollTop(){return this.getScrollHeight()-this.getClientHeight()}getMaxScrollLeft(){return this.getScrollWidth()-this.getClientWidth()}canScrollVertically(){return this.getMaxScrollTop()>0}canScrollHorizontally(){return this.getMaxScrollLeft()>0}canScrollUp(){return this.getScrollTop()>0}canScrollDown(){return this.getScrollTop()<this.getMaxScrollTop()}canScrollLeft(){return this.getScrollLeft()>0}canScrollRight(){return this.getScrollLeft()<this.getMaxScrollLeft()}}class xr extends Rr{constructor(e){super(),this.el=e}getScrollTop(){return this.el.scrollTop}getScrollLeft(){return this.el.scrollLeft}setScrollTop(e){this.el.scrollTop=e}setScrollLeft(e){this.el.scrollLeft=e}getScrollWidth(){return this.el.scrollWidth}getScrollHeight(){return this.el.scrollHeight}getClientHeight(){return this.el.clientHeight}getClientWidth(){return this.el.clientWidth}}class _r extends Rr{getScrollTop(){return window.pageYOffset}getScrollLeft(){return window.pageXOffset}setScrollTop(e){window.scroll(window.pageXOffset,e)}setScrollLeft(e){window.scroll(e,window.pageYOffset)}getScrollWidth(){return document.documentElement.scrollWidth}getScrollHeight(){return document.documentElement.scrollHeight}getClientHeight(){return document.documentElement.clientHeight}getClientWidth(){return document.documentElement.clientWidth}}class Tr{constructor(e){this.iconOverrideOption&&this.setIconOverride(e[this.iconOverrideOption])}setIconOverride(e){let t,n;if("object"==typeof e&&e){for(n in t=Object.assign({},this.iconClasses),e)t[n]=this.applyIconOverridePrefix(e[n]);this.iconClasses=t}else!1===e&&(this.iconClasses={})}applyIconOverridePrefix(e){let t=this.iconOverridePrefix;return t&&0!==e.indexOf(t)&&(e=t+e),e}getClass(e){return this.classes[e]||""}getIconClass(e,t){let n;return n=t&&this.rtlIconClasses&&this.rtlIconClasses[e]||this.iconClasses[e],n?`${this.baseIconClass} ${n}`:""}getCustomButtonIconClass(e){let t;return this.iconOverrideCustomButtonOption&&(t=e[this.iconOverrideCustomButtonOption],t)?`${this.baseIconClass} ${this.applyIconOverridePrefix(t)}`:""}}function kr(e){e();let t=n.debounceRendering,r=[];for(n.debounceRendering=function(e){r.push(e)},P(f(Mr,{}),document.createElement("div"));r.length;)r.shift()();n.debounceRendering=t}Tr.prototype.classes={},Tr.prototype.iconClasses={},Tr.prototype.baseIconClass="",Tr.prototype.iconOverridePrefix="";class Mr extends m{render(){return f("div",{})}componentDidMount(){this.setState({})}}function Ir(e){let t=function(e,t){var n={__c:t="__cC"+a++,__:e,Consumer:function(e,t){return e.children(t)},Provider:function(e){var n,r;return this.getChildContext||(n=[],(r={})[t]=this,this.getChildContext=function(){return r},this.shouldComponentUpdate=function(e){this.props.value!==e.value&&n.some(y)},this.sub=function(e){n.push(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){n.splice(n.indexOf(e),1),t&&t.call(e)}}),e.children}};return n.Provider.__=n.Consumer.contextType=n}(e),n=t.Provider;return t.Provider=function(){let e=!this.getChildContext,t=n.apply(this,arguments);if(e){let e=[];this.shouldComponentUpdate=t=>{this.props.value!==t.value&&e.forEach(e=>{e.context=t.value,e.forceUpdate()})},this.sub=t=>{e.push(t);let n=t.componentWillUnmount;t.componentWillUnmount=()=>{e.splice(e.indexOf(t),1),n&&n.call(t)}}}return t},t}class Or{constructor(e,t,n,r){this.execFunc=e,this.emitter=t,this.scrollTime=n,this.scrollTimeReset=r,this.handleScrollRequest=e=>{this.queuedRequest=Object.assign({},this.queuedRequest||{},e),this.drain()},t.on("_scrollRequest",this.handleScrollRequest),this.fireInitialScroll()}detach(){this.emitter.off("_scrollRequest",this.handleScrollRequest)}update(e){e&&this.scrollTimeReset?this.fireInitialScroll():this.drain()}fireInitialScroll(){this.handleScrollRequest({time:this.scrollTime})}drain(){this.queuedRequest&&this.execFunc(this.queuedRequest)&&(this.queuedRequest=null)}}const Nr=Ir({});function Pr(e,t,n,r,i,s,o,a,l,c,d,u,h){return{dateEnv:i,options:n,pluginHooks:o,emitter:c,dispatch:a,getCurrentData:l,calendarApi:d,viewSpec:e,viewApi:t,dateProfileGenerator:r,theme:s,isRtl:"rtl"===n.direction,addResizeHandler(e){c.on("_resize",e)},removeResizeHandler(e){c.off("_resize",e)},createScrollResponder:e=>new Or(e,c,tt(n.scrollTime),n.scrollTimeReset),registerInteractiveComponent:u,unregisterInteractiveComponent:h}}class Hr extends m{shouldComponentUpdate(e,t){return this.debug&&console.log(vt(e,this.props),vt(t,this.state)),!bt(this.props,e,this.propEquality)||!bt(this.state,t,this.stateEquality)}safeSetState(e){bt(this.state,Object.assign(Object.assign({},this.state),e),this.stateEquality)||this.setState(e)}}Hr.addPropsEquality=function(e){let t=Object.create(this.prototype.propEquality);Object.assign(t,e),this.prototype.propEquality=t},Hr.addStateEquality=function(e){let t=Object.create(this.prototype.stateEquality);Object.assign(t,e),this.prototype.stateEquality=t},Hr.contextType=Nr,Hr.prototype.propEquality={},Hr.prototype.stateEquality={};class Br extends Hr{}function jr(e,t){"function"==typeof e?e(t):e&&(e.current=t)}Br.contextType=Nr;class zr extends Br{constructor(){super(...arguments),this.uid=Be()}prepareHits(){}queryHit(e,t,n,r){return null}isValidSegDownEl(e){return!this.props.eventDrag&&!this.props.eventResize&&!Ee(e,".fc-event-mirror")}isValidDateDownEl(e){return!(Ee(e,".fc-event:not(.fc-bg-event)")||Ee(e,".fc-more-link")||Ee(e,"a[data-navlink]")||Ee(e,".fc-popover"))}}function Ur(e,t){return"function"==typeof e&&(e=e()),null==e?t.createNowMarker():t.createMarker(e)}class Lr{constructor(e){this.props=e,this.nowDate=Ur(e.nowInput,e.dateEnv),this.initHiddenDays()}buildPrev(e,t,n){let{dateEnv:r}=this.props,i=r.subtract(r.startOf(t,e.currentRangeUnit),e.dateIncrement);return this.build(i,-1,n)}buildNext(e,t,n){let{dateEnv:r}=this.props,i=r.add(r.startOf(t,e.currentRangeUnit),e.dateIncrement);return this.build(i,1,n)}build(e,t,n=!0){let r,i,s,o,a,l,{props:c}=this;var d,u;return r=this.buildValidRange(),r=this.trimHiddenDays(r),n&&(d=e,e=null!=(u=r).start&&d<u.start?u.start:null!=u.end&&d>=u.end?new Date(u.end.valueOf()-1):d),i=this.buildCurrentRangeInfo(e,t),s=/^(year|month|week|day)$/.test(i.unit),o=this.buildRenderRange(this.trimHiddenDays(i.range),i.unit,s),o=this.trimHiddenDays(o),a=o,c.showNonCurrentDates||(a=rr(a,i.range)),a=this.adjustActiveRange(a),a=rr(a,r),l=sr(i.range,r),{validRange:r,currentRange:i.range,currentRangeUnit:i.unit,isRangeAllDay:s,activeRange:a,renderRange:o,slotMinTime:c.slotMinTime,slotMaxTime:c.slotMaxTime,isValid:l,dateIncrement:this.buildDateIncrement(i.duration)}}buildValidRange(){let e=this.props.validRangeInput,t="function"==typeof e?e.call(this.props.calendarApi,this.nowDate):e;return this.refineRange(t)||{start:null,end:null}}buildCurrentRangeInfo(e,t){let n,{props:r}=this,i=null,s=null,o=null;return r.duration?(i=r.duration,s=r.durationUnit,o=this.buildRangeFromDuration(e,t,i,s)):(n=this.props.dayCount)?(s="day",o=this.buildRangeFromDayCount(e,t,n)):(o=this.buildCustomVisibleRange(e))?s=r.dateEnv.greatestWholeUnit(o.start,o.end).unit:(i=this.getFallbackDuration(),s=lt(i).unit,o=this.buildRangeFromDuration(e,t,i,s)),{duration:i,unit:s,range:o}}getFallbackDuration(){return tt({day:1})}adjustActiveRange(e){let{dateEnv:t,usesMinMaxTime:n,slotMinTime:r,slotMaxTime:i}=this.props,{start:s,end:o}=e;return n&&(st(r)<0&&(s=kt(s),s=t.add(s,r)),st(i)>1&&(o=kt(o),o=St(o,-1),o=t.add(o,i))),{start:s,end:o}}buildRangeFromDuration(e,t,n,r){let i,s,o,{dateEnv:a,dateAlignment:l}=this.props;if(!l){let{dateIncrement:e}=this.props;l=e&&ot(e)<ot(n)?lt(e).unit:r}function c(){i=a.startOf(e,l),s=a.add(i,n),o={start:i,end:s}}return st(n)<=1&&this.isHiddenDay(i)&&(i=this.skipHiddenDays(i,t),i=kt(i)),c(),this.trimHiddenDays(o)||(e=this.skipHiddenDays(e,t),c()),o}buildRangeFromDayCount(e,t,n){let r,{dateEnv:i,dateAlignment:s}=this.props,o=0,a=e;s&&(a=i.startOf(a,s)),a=kt(a),a=this.skipHiddenDays(a,t),r=a;do{r=St(r,1),this.isHiddenDay(r)||(o+=1)}while(o<n);return{start:a,end:r}}buildCustomVisibleRange(e){let{props:t}=this,n=t.visibleRangeInput,r="function"==typeof n?n.call(t.calendarApi,t.dateEnv.toDate(e)):n,i=this.refineRange(r);return!i||null!=i.start&&null!=i.end?i:null}buildRenderRange(e,t,n){return e}buildDateIncrement(e){let t,{dateIncrement:n}=this.props;return n||((t=this.props.dateAlignment)?tt(1,t):e||tt({days:1}))}refineRange(e){if(e){let t=function(e,t){let n=null,r=null;return e.start&&(n=t.createMarker(e.start)),e.end&&(r=t.createMarker(e.end)),n||r?n&&r&&r<n?null:{start:n,end:r}:null}(e,this.props.dateEnv);return t&&(t=Wn(t)),t}return null}initHiddenDays(){let e,t=this.props.hiddenDays||[],n=[],r=0;for(!1===this.props.weekends&&t.push(0,6),e=0;e<7;e+=1)(n[e]=-1!==t.indexOf(e))||(r+=1);if(!r)throw new Error("invalid hiddenDays");this.isHiddenDayHash=n}trimHiddenDays(e){let{start:t,end:n}=e;return t&&(t=this.skipHiddenDays(t)),n&&(n=this.skipHiddenDays(n,-1,!0)),null==t||null==n||t<n?{start:t,end:n}:null}isHiddenDay(e){return e instanceof Date&&(e=e.getUTCDay()),this.isHiddenDayHash[e]}skipHiddenDays(e,t=1,n=!1){for(;this.isHiddenDayHash[(e.getUTCDay()+(n?t:0)+7)%7];)e=St(e,t);return e}}function Wr(e,t,n){n.emitter.trigger("select",Object.assign(Object.assign({},Fr(e,n)),{jsEvent:t?t.origEvent:null,view:n.viewApi||n.calendarApi.view}))}function Fr(e,t){let n={};for(let r of t.pluginHooks.dateSpanTransforms)Object.assign(n,r(e,t));var r,i;return Object.assign(n,(r=e,i=t.dateEnv,Object.assign(Object.assign({},bi(r.range,i,r.allDay)),{allDay:r.allDay}))),n}function Vr(e,t,n){let{dateEnv:r,options:i}=n,s=t;return e?(s=kt(s),s=r.add(s,i.defaultAllDayEventDuration)):s=r.add(s,i.defaultTimedEventDuration),s}function Gr(e,t,n,r){let i=ni(e.defs,t),s={defs:{},instances:{}};for(let t in e.defs){let o=e.defs[t];s.defs[t]=Qr(o,i[t],n,r)}for(let t in e.instances){let o=e.instances[t],a=s.defs[o.defId];s.instances[t]=qr(o,a,i[o.defId],n,r)}return s}function Qr(e,t,n,r){let i=n.standardProps||{};null==i.hasEnd&&t.durationEditable&&(n.startDelta||n.endDelta)&&(i.hasEnd=!0);let s=Object.assign(Object.assign(Object.assign({},e),i),{ui:Object.assign(Object.assign({},e.ui),i.ui)});n.extendedProps&&(s.extendedProps=Object.assign(Object.assign({},s.extendedProps),n.extendedProps));for(let e of r.pluginHooks.eventDefMutationAppliers)e(s,n,r);return!s.hasEnd&&r.options.forceEventDuration&&(s.hasEnd=!0),s}function qr(e,t,n,r,i){let{dateEnv:s}=i,o=r.standardProps&&!0===r.standardProps.allDay,a=r.standardProps&&!1===r.standardProps.hasEnd,l=Object.assign({},e);return o&&(l.range=Ln(l.range)),r.datesDelta&&n.startEditable&&(l.range={start:s.add(l.range.start,r.datesDelta),end:s.add(l.range.end,r.datesDelta)}),r.startDelta&&n.durationEditable&&(l.range={start:s.add(l.range.start,r.startDelta),end:l.range.end}),r.endDelta&&n.durationEditable&&(l.range={start:l.range.start,end:s.add(l.range.end,r.endDelta)}),a&&(l.range={start:l.range.start,end:Vr(t.allDay,l.range.start,i)}),t.allDay&&(l.range={start:kt(l.range.start),end:kt(l.range.end)}),l.range.end<l.range.start&&(l.range.end=Vr(t.allDay,l.range.start,i)),l}class Yr{constructor(e,t){this.context=e,this.internalEventSource=t}remove(){this.context.dispatch({type:"REMOVE_EVENT_SOURCE",sourceId:this.internalEventSource.sourceId})}refetch(){this.context.dispatch({type:"FETCH_EVENT_SOURCES",sourceIds:[this.internalEventSource.sourceId],isRefetch:!0})}get id(){return this.internalEventSource.publicId}get url(){return this.internalEventSource.meta.url}get format(){return this.internalEventSource.meta.format}}class Zr{constructor(e,t,n){this._context=e,this._def=t,this._instance=n||null}setProp(e,t){if(e in On)console.warn("Could not set date-related prop 'name'. Use one of the date-related methods instead.");else if("id"===e)t=In[e](t),this.mutate({standardProps:{publicId:t}});else if(e in In)t=In[e](t),this.mutate({standardProps:{[e]:t}});else if(e in xn){let n=xn[e](t);n="color"===e?{backgroundColor:t,borderColor:t}:"editable"===e?{startEditable:t,durationEditable:t}:{[e]:t},this.mutate({standardProps:{ui:n}})}else console.warn(`Could not set prop '${e}'. Use setExtendedProp instead.`)}setExtendedProp(e,t){this.mutate({extendedProps:{[e]:t}})}setStart(e,t={}){let{dateEnv:n}=this._context,r=n.createMarker(e);if(r&&this._instance){let e=Vn(this._instance.range.start,r,n,t.granularity);t.maintainDuration?this.mutate({datesDelta:e}):this.mutate({startDelta:e})}}setEnd(e,t={}){let n,{dateEnv:r}=this._context;if((null==e||(n=r.createMarker(e),n))&&this._instance)if(n){let e=Vn(this._instance.range.end,n,r,t.granularity);this.mutate({endDelta:e})}else this.mutate({standardProps:{hasEnd:!1}})}setDates(e,t,n={}){let r,{dateEnv:i}=this._context,s={allDay:n.allDay},o=i.createMarker(e);var a,l;if(o&&((null==t||(r=i.createMarker(t),r))&&this._instance)){let e=this._instance.range;!0===n.allDay&&(e=Ln(e));let t=Vn(e.start,o,i,n.granularity);if(r){let o=Vn(e.end,r,i,n.granularity);l=o,(a=t).years===l.years&&a.months===l.months&&a.days===l.days&&a.milliseconds===l.milliseconds?this.mutate({datesDelta:t,standardProps:s}):this.mutate({startDelta:t,endDelta:o,standardProps:s})}else s.hasEnd=!1,this.mutate({datesDelta:t,standardProps:s})}}moveStart(e){let t=tt(e);t&&this.mutate({startDelta:t})}moveEnd(e){let t=tt(e);t&&this.mutate({endDelta:t})}moveDates(e){let t=tt(e);t&&this.mutate({datesDelta:t})}setAllDay(e,t={}){let n={allDay:e},{maintainDuration:r}=t;null==r&&(r=this._context.options.allDayMaintainDuration),this._def.allDay!==e&&(n.hasEnd=r),this.mutate({standardProps:n})}formatRange(e){let{dateEnv:t}=this._context,n=this._instance,r=on(e);return this._def.hasEnd?t.formatRange(n.range.start,n.range.end,r,{forcedStartTzo:n.forcedStartTzo,forcedEndTzo:n.forcedEndTzo}):t.format(n.range.start,r,{forcedTzo:n.forcedStartTzo})}mutate(e){let t=this._instance;if(t){let n=this._def,r=this._context,{eventStore:i}=r.getCurrentData(),s=Dn(i,t.instanceId);s=Gr(s,{"":{display:"",startEditable:!0,durationEditable:!0,constraints:[],overlap:null,allows:[],backgroundColor:"",borderColor:"",textColor:"",classNames:[]}},e,r);let o=new Zr(r,n,t);this._def=s.defs[n.defId],this._instance=s.instances[t.instanceId],r.dispatch({type:"MERGE_EVENTS",eventStore:s}),r.emitter.trigger("eventChange",{oldEvent:o,event:this,relatedEvents:Jr(s,r,t),revert(){r.dispatch({type:"RESET_EVENTS",eventStore:i})}})}}remove(){let e=this._context,t=Xr(this);e.dispatch({type:"REMOVE_EVENTS",eventStore:t}),e.emitter.trigger("eventRemove",{event:this,relatedEvents:[],revert(){e.dispatch({type:"MERGE_EVENTS",eventStore:t})}})}get source(){let{sourceId:e}=this._def;return e?new Yr(this._context,this._context.getCurrentData().eventSources[e]):null}get start(){return this._instance?this._context.dateEnv.toDate(this._instance.range.start):null}get end(){return this._instance&&this._def.hasEnd?this._context.dateEnv.toDate(this._instance.range.end):null}get startStr(){let e=this._instance;return e?this._context.dateEnv.formatIso(e.range.start,{omitTime:this._def.allDay,forcedTzo:e.forcedStartTzo}):""}get endStr(){let e=this._instance;return e&&this._def.hasEnd?this._context.dateEnv.formatIso(e.range.end,{omitTime:this._def.allDay,forcedTzo:e.forcedEndTzo}):""}get id(){return this._def.publicId}get groupId(){return this._def.groupId}get allDay(){return this._def.allDay}get title(){return this._def.title}get url(){return this._def.url}get display(){return this._def.ui.display||"auto"}get startEditable(){return this._def.ui.startEditable}get durationEditable(){return this._def.ui.durationEditable}get constraint(){return this._def.ui.constraints[0]||null}get overlap(){return this._def.ui.overlap}get allow(){return this._def.ui.allows[0]||null}get backgroundColor(){return this._def.ui.backgroundColor}get borderColor(){return this._def.ui.borderColor}get textColor(){return this._def.ui.textColor}get classNames(){return this._def.ui.classNames}get extendedProps(){return this._def.extendedProps}toPlainObject(e={}){let t=this._def,{ui:n}=t,{startStr:r,endStr:i}=this,s={};return t.title&&(s.title=t.title),r&&(s.start=r),i&&(s.end=i),t.publicId&&(s.id=t.publicId),t.groupId&&(s.groupId=t.groupId),t.url&&(s.url=t.url),n.display&&"auto"!==n.display&&(s.display=n.display),e.collapseColor&&n.backgroundColor&&n.backgroundColor===n.borderColor?s.color=n.backgroundColor:(n.backgroundColor&&(s.backgroundColor=n.backgroundColor),n.borderColor&&(s.borderColor=n.borderColor)),n.textColor&&(s.textColor=n.textColor),n.classNames.length&&(s.classNames=n.classNames),Object.keys(t.extendedProps).length&&(e.collapseExtendedProps?Object.assign(s,t.extendedProps):s.extendedProps=t.extendedProps),s}toJSON(){return this.toPlainObject()}}function Xr(e){let t=e._def,n=e._instance;return{defs:{[t.defId]:t},instances:n?{[n.instanceId]:n}:{}}}function Jr(e,t,n){let{defs:r,instances:i}=e,s=[],o=n?n.instanceId:"";for(let e in i){let n=i[e],a=r[n.defId];n.instanceId!==o&&s.push(new Zr(t,a,n))}return s}function $r(e,t,n,r){let i={},s={},o={},a=[],l=[],c=ni(e.defs,t);for(let t in e.defs){let n=e.defs[t];"inverse-background"===c[n.defId].display&&(n.groupId?(i[n.groupId]=[],o[n.groupId]||(o[n.groupId]=n)):s[t]=[])}for(let t in e.instances){let o=e.instances[t],d=e.defs[o.defId],u=c[d.defId],h=o.range,f=!d.allDay&&r?Wn(h,r):h,g=rr(f,n);g&&("inverse-background"===u.display?d.groupId?i[d.groupId].push(g):s[o.defId].push(g):"none"!==u.display&&("background"===u.display?a:l).push({def:d,ui:u,instance:o,range:g,isStart:f.start&&f.start.valueOf()===g.start.valueOf(),isEnd:f.end&&f.end.valueOf()===g.end.valueOf()}))}for(let e in i){let t=tr(i[e],n);for(let n of t){let t=o[e],r=c[t.defId];a.push({def:t,ui:r,instance:null,range:n,isStart:!1,isEnd:!1})}}for(let t in s){let r=tr(s[t],n);for(let n of r)a.push({def:e.defs[t],ui:c[t],instance:null,range:n,isStart:!1,isEnd:!1})}return{bg:a,fg:l}}function Kr(e){return"background"===e.ui.display||"inverse-background"===e.ui.display}function ei(e,t){e.fcSeg=t}function ti(e){return e.fcSeg||e.parentNode.fcSeg||null}function ni(e,t){return ht(e,e=>ri(e,t))}function ri(e,t){let n=[];return t[""]&&n.push(t[""]),t[e.defId]&&n.push(t[e.defId]),n.push(e.ui),kn(n)}function ii(e,t){let n=e.map(si);return n.sort((e,n)=>Ge(e,n,t)),n.map(e=>e._seg)}function si(e){let{eventRange:t}=e,n=t.def,r=t.instance?t.instance.range:t.range,i=r.start?r.start.valueOf():0,s=r.end?r.end.valueOf():0;return Object.assign(Object.assign(Object.assign({},n.extendedProps),n),{id:n.publicId,start:i,end:s,duration:s-i,allDay:Number(n.allDay),_seg:e})}function oi(e,t){let{pluginHooks:n}=t,r=n.isDraggableTransformers,{def:i,ui:s}=e.eventRange,o=s.startEditable;for(let e of r)o=e(o,i,s,t);return o}function ai(e,t){return e.isStart&&e.eventRange.ui.durationEditable&&t.options.eventResizableFromStart}function li(e,t){return e.isEnd&&e.eventRange.ui.durationEditable}function ci(e,t,n,r,i,s,o){let{dateEnv:a,options:l}=n,{displayEventTime:c,displayEventEnd:d}=l,u=e.eventRange.def,h=e.eventRange.instance;null==c&&(c=!1!==r),null==d&&(d=!1!==i);let f=h.range.start,g=h.range.end,p=s||e.start||e.eventRange.range.start,m=o||e.end||e.eventRange.range.end,v=kt(f).valueOf()===kt(p).valueOf(),b=kt(wt(g,-1)).valueOf()===kt(wt(m,-1)).valueOf();return c&&!u.allDay&&(v||b)?(p=v?f:p,m=b?g:m,d&&u.hasEnd?a.formatRange(p,m,t,{forcedStartTzo:s?null:h.forcedStartTzo,forcedEndTzo:o?null:h.forcedEndTzo}):a.format(p,t,{forcedTzo:s?null:h.forcedStartTzo})):""}function di(e,t,n){let r=e.eventRange.range;return{isPast:r.end<(n||t.start),isFuture:r.start>=(n||t.end),isToday:t&&ar(t,r.start)}}function ui(e){let t=["fc-event"];return e.isMirror&&t.push("fc-event-mirror"),e.isDraggable&&t.push("fc-event-draggable"),(e.isStartResizable||e.isEndResizable)&&t.push("fc-event-resizable"),e.isDragging&&t.push("fc-event-dragging"),e.isResizing&&t.push("fc-event-resizing"),e.isSelected&&t.push("fc-event-selected"),e.isStart&&t.push("fc-event-start"),e.isEnd&&t.push("fc-event-end"),e.isPast&&t.push("fc-event-past"),e.isToday&&t.push("fc-event-today"),e.isFuture&&t.push("fc-event-future"),t}function hi(e){return e.instance?e.instance.instanceId:`${e.def.defId}:${e.range.start.toISOString()}`}function fi(e,t){let{def:n,instance:r}=e.eventRange,{url:i}=n;if(i)return{href:i};let{emitter:s,options:o}=t,{eventInteractive:a}=o;return null==a&&(a=n.interactive,null==a&&(a=Boolean(s.hasHandlers("eventClick")))),a?Pe(e=>{s.trigger("eventClick",{el:e.target,event:new Zr(t,n,r),jsEvent:e,view:t.viewApi})}):{}}const gi={start:mn,end:mn,allDay:Boolean};function pi(e,t,n){let r=function(e,t){let{refined:n,extra:r}=pn(e,gi),i=n.start?t.createMarkerMeta(n.start):null,s=n.end?t.createMarkerMeta(n.end):null,{allDay:o}=n;null==o&&(o=i&&i.isTimeUnspecified&&(!s||s.isTimeUnspecified));return Object.assign({range:{start:i?i.marker:null,end:s?s.marker:null},allDay:o},r)}(e,t),{range:i}=r;if(!i.start)return null;if(!i.end){if(null==n)return null;i.end=t.add(i.start,n)}return r}function mi(e,t){return ir(e.range,t.range)&&e.allDay===t.allDay&&function(e,t){for(let n in t)if("range"!==n&&"allDay"!==n&&e[n]!==t[n])return!1;for(let n in e)if(!(n in t))return!1;return!0}(e,t)}function vi(e,t,n){return Object.assign(Object.assign({},bi(e,t,n)),{timeZone:t.timeZone})}function bi(e,t,n){return{start:t.toDate(e.start),end:t.toDate(e.end),startStr:t.formatIso(e.start,{omitTime:n}),endStr:t.formatIso(e.end,{omitTime:n})}}let yi={};var Ei,Ai;Ei="gregory",Ai=class{getMarkerYear(e){return e.getUTCFullYear()}getMarkerMonth(e){return e.getUTCMonth()}getMarkerDay(e){return e.getUTCDate()}arrayToMarker(e){return Ht(e)}markerToArray(e){return Pt(e)}},yi[Ei]=Ai;const Di=/^\s*(\d{4})(-?(\d{2})(-?(\d{2})([T ](\d{2}):?(\d{2})(:?(\d{2})(\.(\d+))?)?(Z|(([-+])(\d{2})(:?(\d{2}))?))?)?)?)?$/;function Si(e){let t=Di.exec(e);if(t){let e=new Date(Date.UTC(Number(t[1]),t[3]?Number(t[3])-1:0,Number(t[5]||1),Number(t[7]||0),Number(t[8]||0),Number(t[10]||0),t[12]?1e3*Number("0."+t[12]):0));if(Bt(e)){let n=null;return t[13]&&(n=("-"===t[15]?-1:1)*(60*Number(t[16]||0)+Number(t[18]||0))),{marker:e,isTimeUnspecified:!t[6],timeZoneOffset:n}}}return null}class wi{constructor(e){let t=this.timeZone=e.timeZone,n="local"!==t&&"UTC"!==t;e.namedTimeZoneImpl&&n&&(this.namedTimeZoneImpl=new e.namedTimeZoneImpl(t)),this.canComputeOffset=Boolean(!n||this.namedTimeZoneImpl),this.calendarSystem=function(e){return new yi[e]}(e.calendarSystem),this.locale=e.locale,this.weekDow=e.locale.week.dow,this.weekDoy=e.locale.week.doy,"ISO"===e.weekNumberCalculation&&(this.weekDow=1,this.weekDoy=4),"number"==typeof e.firstDay&&(this.weekDow=e.firstDay),"function"==typeof e.weekNumberCalculation&&(this.weekNumberFunc=e.weekNumberCalculation),this.weekText=null!=e.weekText?e.weekText:e.locale.options.weekText,this.weekTextLong=(null!=e.weekTextLong?e.weekTextLong:e.locale.options.weekTextLong)||this.weekText,this.cmdFormatter=e.cmdFormatter,this.defaultSeparator=e.defaultSeparator}createMarker(e){let t=this.createMarkerMeta(e);return null===t?null:t.marker}createNowMarker(){return this.canComputeOffset?this.timestampToMarker((new Date).valueOf()):Ht(Ot(new Date))}createMarkerMeta(e){if("string"==typeof e)return this.parse(e);let t=null;return"number"==typeof e?t=this.timestampToMarker(e):e instanceof Date?(e=e.valueOf(),isNaN(e)||(t=this.timestampToMarker(e))):Array.isArray(e)&&(t=Ht(e)),null!==t&&Bt(t)?{marker:t,isTimeUnspecified:!1,forcedTzo:null}:null}parse(e){let t=Si(e);if(null===t)return null;let{marker:n}=t,r=null;return null!==t.timeZoneOffset&&(this.canComputeOffset?n=this.timestampToMarker(n.valueOf()-60*t.timeZoneOffset*1e3):r=t.timeZoneOffset),{marker:n,isTimeUnspecified:t.isTimeUnspecified,forcedTzo:r}}getYear(e){return this.calendarSystem.getMarkerYear(e)}getMonth(e){return this.calendarSystem.getMarkerMonth(e)}add(e,t){let n=this.calendarSystem.markerToArray(e);return n[0]+=t.years,n[1]+=t.months,n[2]+=t.days,n[6]+=t.milliseconds,this.calendarSystem.arrayToMarker(n)}subtract(e,t){let n=this.calendarSystem.markerToArray(e);return n[0]-=t.years,n[1]-=t.months,n[2]-=t.days,n[6]-=t.milliseconds,this.calendarSystem.arrayToMarker(n)}addYears(e,t){let n=this.calendarSystem.markerToArray(e);return n[0]+=t,this.calendarSystem.arrayToMarker(n)}addMonths(e,t){let n=this.calendarSystem.markerToArray(e);return n[1]+=t,this.calendarSystem.arrayToMarker(n)}diffWholeYears(e,t){let{calendarSystem:n}=this;return jt(e)===jt(t)&&n.getMarkerDay(e)===n.getMarkerDay(t)&&n.getMarkerMonth(e)===n.getMarkerMonth(t)?n.getMarkerYear(t)-n.getMarkerYear(e):null}diffWholeMonths(e,t){let{calendarSystem:n}=this;return jt(e)===jt(t)&&n.getMarkerDay(e)===n.getMarkerDay(t)?n.getMarkerMonth(t)-n.getMarkerMonth(e)+12*(n.getMarkerYear(t)-n.getMarkerYear(e)):null}greatestWholeUnit(e,t){let n=this.diffWholeYears(e,t);return null!==n?{unit:"year",value:n}:(n=this.diffWholeMonths(e,t),null!==n?{unit:"month",value:n}:(n=_t(e,t),null!==n?{unit:"week",value:n}:(n=Tt(e,t),null!==n?{unit:"day",value:n}:(n=function(e,t){return(t.valueOf()-e.valueOf())/36e5}(e,t),Je(n)?{unit:"hour",value:n}:(n=function(e,t){return(t.valueOf()-e.valueOf())/6e4}(e,t),Je(n)?{unit:"minute",value:n}:(n=function(e,t){return(t.valueOf()-e.valueOf())/1e3}(e,t),Je(n)?{unit:"second",value:n}:{unit:"millisecond",value:t.valueOf()-e.valueOf()}))))))}countDurationsBetween(e,t,n){let r;return n.years&&(r=this.diffWholeYears(e,t),null!==r)?r/(st(n)/365):n.months&&(r=this.diffWholeMonths(e,t),null!==r)?r/function(e){return st(e)/30}(n):n.days&&(r=Tt(e,t),null!==r)?r/st(n):(t.valueOf()-e.valueOf())/ot(n)}startOf(e,t){return"year"===t?this.startOfYear(e):"month"===t?this.startOfMonth(e):"week"===t?this.startOfWeek(e):"day"===t?kt(e):"hour"===t?function(e){return Ht([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours()])}(e):"minute"===t?function(e){return Ht([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes()])}(e):"second"===t?function(e){return Ht([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds()])}(e):null}startOfYear(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e)])}startOfMonth(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e),this.calendarSystem.getMarkerMonth(e)])}startOfWeek(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e),this.calendarSystem.getMarkerMonth(e),e.getUTCDate()-(e.getUTCDay()-this.weekDow+7)%7])}computeWeekNumber(e){return this.weekNumberFunc?this.weekNumberFunc(this.toDate(e)):function(e,t,n){let r=e.getUTCFullYear(),i=Mt(e,r,t,n);if(i<1)return Mt(e,r-1,t,n);let s=Mt(e,r+1,t,n);return s>=1?Math.min(i,s):i}(e,this.weekDow,this.weekDoy)}format(e,t,n={}){return t.format({marker:e,timeZoneOffset:null!=n.forcedTzo?n.forcedTzo:this.offsetForMarker(e)},this)}formatRange(e,t,n,r={}){return r.isEndExclusive&&(t=wt(t,-1)),n.formatRange({marker:e,timeZoneOffset:null!=r.forcedStartTzo?r.forcedStartTzo:this.offsetForMarker(e)},{marker:t,timeZoneOffset:null!=r.forcedEndTzo?r.forcedEndTzo:this.offsetForMarker(t)},this,r.defaultSeparator)}formatIso(e,t={}){let n=null;return t.omitTimeZoneOffset||(n=null!=t.forcedTzo?t.forcedTzo:this.offsetForMarker(e)),zt(e,n,t.omitTime)}timestampToMarker(e){return"local"===this.timeZone?Ht(Ot(new Date(e))):"UTC"!==this.timeZone&&this.namedTimeZoneImpl?Ht(this.namedTimeZoneImpl.timestampToArray(e)):new Date(e)}offsetForMarker(e){return"local"===this.timeZone?-Nt(Pt(e)).getTimezoneOffset():"UTC"===this.timeZone?0:this.namedTimeZoneImpl?this.namedTimeZoneImpl.offsetForArray(Pt(e)):null}toDate(e,t){return"local"===this.timeZone?Nt(Pt(e)):"UTC"===this.timeZone?new Date(e.valueOf()):this.namedTimeZoneImpl?new Date(e.valueOf()-1e3*this.namedTimeZoneImpl.offsetForArray(Pt(e))*60):new Date(e.valueOf()-(t||0))}}class Ci{constructor(){this.strictOrder=!1,this.allowReslicing=!1,this.maxCoord=-1,this.maxStackCnt=-1,this.levelCoords=[],this.entriesByLevel=[],this.stackCnts={}}addSegs(e){let t=[];for(let n of e)this.insertEntry(n,t);return t}insertEntry(e,t){let n=this.findInsertion(e);return this.isInsertionValid(n,e)?(this.insertEntryAt(e,n),1):this.handleInvalidInsertion(n,e,t)}isInsertionValid(e,t){return(-1===this.maxCoord||e.levelCoord+t.thickness<=this.maxCoord)&&(-1===this.maxStackCnt||e.stackCnt<this.maxStackCnt)}handleInvalidInsertion(e,t,n){return this.allowReslicing&&e.touchingEntry?this.splitEntry(t,e.touchingEntry,n):(n.push(t),0)}splitEntry(e,t,n){let r=0,i=[],s=e.span,o=t.span;return s.start<o.start&&(r+=this.insertEntry({index:e.index,thickness:e.thickness,span:{start:s.start,end:o.start}},i)),s.end>o.end&&(r+=this.insertEntry({index:e.index,thickness:e.thickness,span:{start:o.end,end:s.end}},i)),r?(n.push({index:e.index,thickness:e.thickness,span:Ti(o,s)},...i),r):(n.push(e),0)}insertEntryAt(e,t){let{entriesByLevel:n,levelCoords:r}=this;-1===t.lateral?(ki(r,t.level,t.levelCoord),ki(n,t.level,[e])):ki(n[t.level],t.lateral,e),this.stackCnts[xi(e)]=t.stackCnt}findInsertion(e){let{levelCoords:t,entriesByLevel:n,strictOrder:r,stackCnts:i}=this,s=t.length,o=0,a=-1,l=-1,c=null,d=0;for(let u=0;u<s;u+=1){let s=t[u];if(!r&&s>=o+e.thickness)break;let h,f=n[u],g=Mi(f,e.span.start,Ri),p=g[0]+g[1];for(;(h=f[p])&&h.span.start<e.span.end;){let e=s+h.thickness;e>o&&(o=e,c=h,a=u,l=p),e===o&&(d=Math.max(d,i[xi(h)]+1)),p+=1}}let u=0;if(c)for(u=a+1;u<s&&t[u]<o;)u+=1;let h=-1;return u<s&&t[u]===o&&(h=Mi(n[u],e.span.end,Ri)[0]),{touchingLevel:a,touchingLateral:l,touchingEntry:c,stackCnt:d,levelCoord:o,level:u,lateral:h}}toRects(){let{entriesByLevel:e,levelCoords:t}=this,n=e.length,r=[];for(let i=0;i<n;i+=1){let n=e[i],s=t[i];for(let e of n)r.push(Object.assign(Object.assign({},e),{levelCoord:s}))}return r}}function Ri(e){return e.span.end}function xi(e){return e.index+":"+e.span.start}function _i(e){let t=[];for(let i of e){let e=[],s={span:i.span,entries:[i]};for(let i of t)Ti(i.span,s.span)?s={entries:i.entries.concat(s.entries),span:(n=i.span,r=s.span,{start:Math.min(n.start,r.start),end:Math.max(n.end,r.end)})}:e.push(i);e.push(s),t=e}var n,r;return t}function Ti(e,t){let n=Math.max(e.start,t.start),r=Math.min(e.end,t.end);return n<r?{start:n,end:r}:null}function ki(e,t,n){e.splice(t,0,n)}function Mi(e,t,n){let r=0,i=e.length;if(!i||t<n(e[r]))return[0,0];if(t>n(e[i-1]))return[i,0];for(;r<i;){let s=Math.floor(r+(i-r)/2),o=n(e[s]);if(t<o)i=s;else{if(!(t>o))return[s,1];r=s+1}}return[r,0]}class Ii{constructor(e){this.component=e.component,this.isHitComboAllowed=e.isHitComboAllowed||null}destroy(){}}function Oi(e){return{[e.component.uid]:e}}const Ni={};class Pi{constructor(e,t){this.emitter=new Sr}destroy(){}setMirrorIsVisible(e){}setMirrorNeedsRevert(e){}setAutoScrollEnabled(e){}}const Hi={},Bi={startTime:tt,duration:tt,create:Boolean,sourceId:String};function ji(e){let{refined:t,extra:n}=pn(e,Bi);return{startTime:t.startTime||null,duration:t.duration||null,create:null==t.create||t.create,sourceId:t.sourceId,leftoverProps:n}}class zi extends Br{constructor(){super(...arguments),this.state={forPrint:!1},this.handleBeforePrint=()=>{this.setState({forPrint:!0})},this.handleAfterPrint=()=>{this.setState({forPrint:!1})}}render(){let{props:e}=this,{options:t}=e,{forPrint:n}=this.state,r=n||"auto"===t.height||"auto"===t.contentHeight,i=r||null==t.height?"":t.height,s=["fc",n?"fc-media-print":"fc-media-screen","fc-direction-"+t.direction,e.theme.getClass("root")];return Jn()||s.push("fc-liquid-hack"),e.children(s,i,r,n)}componentDidMount(){let{emitter:e}=this.props;e.on("_beforeprint",this.handleBeforePrint),e.on("_afterprint",this.handleAfterPrint)}componentWillUnmount(){let{emitter:e}=this.props;e.off("_beforeprint",this.handleBeforePrint),e.off("_afterprint",this.handleAfterPrint)}}function Ui(e,t){return on(!e||t>10?{weekday:"short"}:t>1?{weekday:"short",month:"numeric",day:"numeric",omitCommas:!0}:{weekday:"long"})}const Li="fc-col-header-cell";function Wi(e){return e.text}class Fi extends Br{constructor(){super(...arguments),this.id=Be(),this.currentDomNodes=[],this.queuedDomNodes=[],this.handleEl=e=>{this.props.elRef&&jr(this.props.elRef,e)}}render(){const{props:e,context:t}=this,{options:n}=t,{generator:r,renderProps:s}=e,o=Gi(e);let a,l=[];if(Vi(e.generatorName,n))n.customRenderingReplacesEl&&delete o.elRef;else{const e="function"==typeof r?r(s,f):r;"string"==typeof e||i(e)||Array.isArray(e)?a=e:"object"==typeof e&&("html"in e?o.dangerouslySetInnerHTML={__html:e.html}:"domNodes"in e&&(l=Array.prototype.slice.call(e.domNodes)))}return this.queuedDomNodes=l,f(e.elTag,o,a)}componentDidMount(){this.applyQueueudDomNodes(),this.triggerCustomRendering(!0)}componentDidUpdate(){this.applyQueueudDomNodes(),this.triggerCustomRendering(!0)}componentWillUnmount(){this.triggerCustomRendering(!1)}triggerCustomRendering(e){const{props:t,context:n}=this,{handleCustomRendering:r,customRenderingMetaMap:i}=n.options;if(r){const n=null==i?void 0:i[t.generatorName];n&&r(Object.assign({id:this.id,isActive:e,containerEl:this.base,reportNewContainerEl:this.handleEl,generatorMeta:n},t))}}applyQueueudDomNodes(){const{queuedDomNodes:e,currentDomNodes:t}=this,n=this.base;if(!Ft(e,t)){t.forEach(ye);for(let t of e)n.appendChild(t);this.currentDomNodes=e}}}function Vi(e,t){var n;return Boolean(t.handleCustomRendering&&e&&(null===(n=t.customRenderingMetaMap)||void 0===n?void 0:n[e]))}function Gi(e,t){const n=Object.assign(Object.assign({},e.elAttrs),{ref:e.elRef});return(e.elClasses||t)&&(n.className=(e.elClasses||[]).concat(t||[]).concat(n.className||[]).filter(Boolean).join(" ")),e.elStyle&&(n.style=e.elStyle),n}Fi.addPropsEquality({elClasses:Ft,elStyle:pt,elAttrs:function(e,t){const n=vt(e,t);for(let e of n)if(!mt.test(e))return!1;return!0},renderProps:pt});const Qi=Ir(0);class qi extends m{constructor(){super(...arguments),this.InnerContent=Yi.bind(void 0,this)}render(){const{props:e}=this,t=function(e,t){const n="function"==typeof e?e(t):e||[];return"string"==typeof n?[n]:n}(e.classNameGenerator,e.renderProps);if(e.children){const n=Gi(e,t),r=e.children(this.InnerContent,e.renderProps,n);return e.elTag?f(e.elTag,n,r):r}return f(Fi,Object.assign(Object.assign({},e),{elTag:e.elTag||"div",elClasses:(e.elClasses||[]).concat(t),renderId:this.context}))}componentDidMount(){var e,t;null===(t=(e=this.props).didMount)||void 0===t||t.call(e,Object.assign(Object.assign({},this.props.renderProps),{el:this.base}))}componentWillUnmount(){var e,t;null===(t=(e=this.props).willUnmount)||void 0===t||t.call(e,Object.assign(Object.assign({},this.props.renderProps),{el:this.base}))}}function Yi(e,t){const n=e.props;return f(Fi,Object.assign({renderProps:n.renderProps,generatorName:n.generatorName,generator:n.generator,renderId:e.context},t))}qi.contextType=Qi;class Zi extends Br{render(){let{dateEnv:e,options:t,theme:n,viewApi:r}=this.context,{props:i}=this,{date:s,dateProfile:o}=i,a=lr(s,i.todayRange,null,o),l=[Li].concat(cr(a,n)),c=e.format(s,i.dayHeaderFormat),d=!a.isDisabled&&i.colCnt>1?hr(this.context,s):{},u=Object.assign(Object.assign(Object.assign({date:e.toDate(s),view:r},i.extraRenderProps),{text:c}),a);return f(qi,{elTag:"th",elClasses:l,elAttrs:Object.assign({role:"columnheader",colSpan:i.colSpan,"data-date":a.isDisabled?void 0:Ut(s)},i.extraDataAttrs),renderProps:u,generatorName:"dayHeaderContent",generator:t.dayHeaderContent||Wi,classNameGenerator:t.dayHeaderClassNames,didMount:t.dayHeaderDidMount,willUnmount:t.dayHeaderWillUnmount},e=>f("div",{className:"fc-scrollgrid-sync-inner"},!a.isDisabled&&f(e,{elTag:"a",elAttrs:d,elClasses:["fc-col-header-cell-cushion",i.isSticky&&"fc-sticky"]})))}}const Xi=on({weekday:"long"});class Ji extends Br{render(){let{props:e}=this,{dateEnv:t,theme:n,viewApi:r,options:i}=this.context,s=St(new Date(2592e5),e.dow),o={dow:e.dow,isDisabled:!1,isFuture:!1,isPast:!1,isToday:!1,isOther:!1},a=t.format(s,e.dayHeaderFormat),l=Object.assign(Object.assign(Object.assign(Object.assign({date:s},o),{view:r}),e.extraRenderProps),{text:a});return f(qi,{elTag:"th",elClasses:[Li,...cr(o,n),...e.extraClassNames||[]],elAttrs:Object.assign({role:"columnheader",colSpan:e.colSpan},e.extraDataAttrs),renderProps:l,generatorName:"dayHeaderContent",generator:i.dayHeaderContent||Wi,classNameGenerator:i.dayHeaderClassNames,didMount:i.dayHeaderDidMount,willUnmount:i.dayHeaderWillUnmount},n=>f("div",{className:"fc-scrollgrid-sync-inner"},f(n,{elTag:"a",elClasses:["fc-col-header-cell-cushion",e.isSticky&&"fc-sticky"],elAttrs:{"aria-label":t.format(s,Xi)}})))}}class $i extends m{constructor(e,t){super(e,t),this.initialNowDate=Ur(t.options.now,t.dateEnv),this.initialNowQueriedMs=(new Date).valueOf(),this.state=this.computeTiming().currentState}render(){let{props:e,state:t}=this;return e.children(t.nowDate,t.todayRange)}componentDidMount(){this.setTimeout()}componentDidUpdate(e){e.unit!==this.props.unit&&(this.clearTimeout(),this.setTimeout())}componentWillUnmount(){this.clearTimeout()}computeTiming(){let{props:e,context:t}=this,n=wt(this.initialNowDate,(new Date).valueOf()-this.initialNowQueriedMs),r=t.dateEnv.startOf(n,e.unit),i=t.dateEnv.add(r,tt(1,e.unit)),s=i.valueOf()-n.valueOf();return s=Math.min(864e5,s),{currentState:{nowDate:r,todayRange:Ki(r)},nextState:{nowDate:i,todayRange:Ki(i)},waitMs:s}}setTimeout(){let{nextState:e,waitMs:t}=this.computeTiming();this.timeoutId=setTimeout(()=>{this.setState(e,()=>{this.setTimeout()})},t)}clearTimeout(){this.timeoutId&&clearTimeout(this.timeoutId)}}function Ki(e){let t=kt(e);return{start:t,end:St(t,1)}}$i.contextType=Nr;class es extends Br{constructor(){super(...arguments),this.createDayHeaderFormatter=Vt(ts)}render(){let{context:e}=this,{dates:t,dateProfile:n,datesRepDistinctDays:r,renderIntro:i}=this.props,s=this.createDayHeaderFormatter(e.options.dayHeaderFormat,r,t.length);return f($i,{unit:"day"},(e,o)=>f("tr",{role:"row"},i&&i("day"),t.map(e=>r?f(Zi,{key:e.toISOString(),date:e,dateProfile:n,todayRange:o,colCnt:t.length,dayHeaderFormat:s}):f(Ji,{key:e.getUTCDay(),dow:e.getUTCDay(),dayHeaderFormat:s}))))}}function ts(e,t,n){return e||Ui(t,n)}class ns{constructor(e,t){let n=e.start,{end:r}=e,i=[],s=[],o=-1;for(;n<r;)t.isHiddenDay(n)?i.push(o+.5):(o+=1,i.push(o),s.push(n)),n=St(n,1);this.dates=s,this.indices=i,this.cnt=s.length}sliceRange(e){let t=this.getDateDayIndex(e.start),n=this.getDateDayIndex(St(e.end,-1)),r=Math.max(0,t),i=Math.min(this.cnt-1,n);return r=Math.ceil(r),i=Math.floor(i),r<=i?{firstIndex:r,lastIndex:i,isStart:t===r,isEnd:n===i}:null}getDateDayIndex(e){let{indices:t}=this,n=Math.floor(Rt(this.dates[0],e));return n<0?t[0]-1:n>=t.length?t[t.length-1]+1:t[n]}}class rs{constructor(e,t){let n,r,i,{dates:s}=e;if(t){for(r=s[0].getUTCDay(),n=1;n<s.length&&s[n].getUTCDay()!==r;n+=1);i=Math.ceil(s.length/n)}else i=1,n=s.length;this.rowCnt=i,this.colCnt=n,this.daySeries=e,this.cells=this.buildCells(),this.headerDates=this.buildHeaderDates()}buildCells(){let e=[];for(let t=0;t<this.rowCnt;t+=1){let n=[];for(let e=0;e<this.colCnt;e+=1)n.push(this.buildCell(t,e));e.push(n)}return e}buildCell(e,t){let n=this.daySeries.dates[e*this.colCnt+t];return{key:n.toISOString(),date:n}}buildHeaderDates(){let e=[];for(let t=0;t<this.colCnt;t+=1)e.push(this.cells[0][t].date);return e}sliceRange(e){let{colCnt:t}=this,n=this.daySeries.sliceRange(e),r=[];if(n){let{firstIndex:e,lastIndex:i}=n,s=e;for(;s<=i;){let o=Math.floor(s/t),a=Math.min((o+1)*t,i+1);r.push({row:o,firstCol:s%t,lastCol:(a-1)%t,isStart:n.isStart&&s===e,isEnd:n.isEnd&&a-1===i}),s=a}}return r}}class is{constructor(){this.sliceBusinessHours=Vt(this._sliceBusinessHours),this.sliceDateSelection=Vt(this._sliceDateSpan),this.sliceEventStore=Vt(this._sliceEventStore),this.sliceEventDrag=Vt(this._sliceInteraction),this.sliceEventResize=Vt(this._sliceInteraction),this.forceDayIfListItem=!1}sliceProps(e,t,n,r,...i){let{eventUiBases:s}=e,o=this.sliceEventStore(e.eventStore,s,t,n,...i);return{dateSelectionSegs:this.sliceDateSelection(e.dateSelection,s,r,...i),businessHourSegs:this.sliceBusinessHours(e.businessHours,t,n,r,...i),fgEventSegs:o.fg,bgEventSegs:o.bg,eventDrag:this.sliceEventDrag(e.eventDrag,s,t,n,...i),eventResize:this.sliceEventResize(e.eventResize,s,t,n,...i),eventSelection:e.eventSelection}}sliceNowDate(e,t,...n){return this._sliceDateSpan({range:{start:e,end:wt(e,1)},allDay:!1},{},t,...n)}_sliceBusinessHours(e,t,n,r,...i){return e?this._sliceEventStore(bn(e,ss(t,Boolean(n)),r),{},t,n,...i).bg:[]}_sliceEventStore(e,t,n,r,...i){if(e){let s=$r(e,t,ss(n,Boolean(r)),r);return{bg:this.sliceEventRanges(s.bg,i),fg:this.sliceEventRanges(s.fg,i)}}return{bg:[],fg:[]}}_sliceInteraction(e,t,n,r,...i){if(!e)return null;let s=$r(e.mutatedEvents,t,ss(n,Boolean(r)),r);return{segs:this.sliceEventRanges(s.fg,i),affectedInstances:e.affectedEvents.instances,isEvent:e.isEvent}}_sliceDateSpan(e,t,n,...r){if(!e)return[];let i=function(e,t,n){let r=Hn({editable:!1},n),i=jn(r.refined,r.extra,"",e.allDay,!0,n);return{def:i,ui:ri(i,t),instance:vn(i.defId,e.range),range:e.range,isStart:!0,isEnd:!0}}(e,t,n),s=this.sliceRange(e.range,...r);for(let e of s)e.eventRange=i;return s}sliceEventRanges(e,t){let n=[];for(let r of e)n.push(...this.sliceEventRange(r,t));return n}sliceEventRange(e,t){let n=e.range;this.forceDayIfListItem&&"list-item"===e.ui.display&&(n={start:n.start,end:St(n.start,1)});let r=this.sliceRange(n,...t);for(let t of r)t.eventRange=e,t.isStart=e.isStart&&t.isStart,t.isEnd=e.isEnd&&t.isEnd;return r}}function ss(e,t){let n=e.activeRange;return t?n:{start:wt(n.start,e.slotMinTime.milliseconds),end:wt(n.end,e.slotMaxTime.milliseconds-864e5)}}function os(e,t,n,r,i){switch(t.type){case"RECEIVE_EVENTS":return function(e,t,n,r,i,s){if(t&&n===t.latestFetchId){let n=En(function(e,t,n){let r=n.options.eventDataTransform,i=t?t.eventDataTransform:null;i&&(e=as(e,i));r&&(e=as(e,r));return e}(i,t,s),t,s);return r&&(n=bn(n,r,s)),wn(ls(e,t.sourceId),n)}return e}(e,n[t.sourceId],t.fetchId,t.fetchRange,t.rawEvents,i);case"ADD_EVENTS":return function(e,t,n,r){n&&(t=bn(t,n,r));return wn(e,t)}(e,t.eventStore,r?r.activeRange:null,i);case"RESET_EVENTS":return t.eventStore;case"MERGE_EVENTS":return wn(e,t.eventStore);case"PREV":case"NEXT":case"CHANGE_DATE":case"CHANGE_VIEW_TYPE":return r?bn(e,r.activeRange,i):e;case"REMOVE_EVENTS":return function(e,t){let{defs:n,instances:r}=e,i={},s={};for(let e in n)t.defs[e]||(i[e]=n[e]);for(let e in r)!t.instances[e]&&i[r[e].defId]&&(s[e]=r[e]);return{defs:i,instances:s}}(e,t.eventStore);case"REMOVE_EVENT_SOURCE":return ls(e,t.sourceId);case"REMOVE_ALL_EVENT_SOURCES":return Cn(e,e=>!e.sourceId);case"REMOVE_ALL_EVENTS":return{defs:{},instances:{}};default:return e}}function as(e,t){let n;if(t){n=[];for(let r of e){let e=t(r);e?n.push(e):null==e&&n.push(r)}}else n=e;return n}function ls(e,t){return Cn(e,e=>e.sourceId!==t)}function cs(e,t,n){let{instances:r}=e.mutatedEvents;for(let e in r)if(!or(t.validRange,r[e].range))return!1;return us({eventDrag:e},n)}function ds(e,t,n){return!!or(t.validRange,e.range)&&us({dateSelection:e},n)}function us(e,t){let n=t.getCurrentData(),r=Object.assign({businessHours:n.businessHours,dateSelection:"",eventStore:n.eventStore,eventUiBases:n.eventUiBases,eventSelection:"",eventDrag:null,eventResize:null},e);return(t.pluginHooks.isPropsValid||hs)(r,t)}function hs(e,t,n={},r){return!(e.eventDrag&&!function(e,t,n,r){let i=t.getCurrentData(),s=e.eventDrag,o=s.mutatedEvents,a=o.defs,l=o.instances,c=ni(a,s.isEvent?e.eventUiBases:{"":i.selectionConfig});r&&(c=ht(c,r));let d=(g=e.eventStore,p=s.affectedEvents.instances,{defs:g.defs,instances:ut(g.instances,e=>!p[e.instanceId])}),u=d.defs,h=d.instances,f=ni(u,e.eventUiBases);var g,p;for(let r in l){let o=l[r],g=o.range,p=c[o.defId],m=a[o.defId];if(!fs(p.constraints,g,d,e.businessHours,t))return!1;let{eventOverlap:v}=t.options,b="function"==typeof v?v:null;for(let e in h){let n=h[e];if(sr(g,n.range)){if(!1===f[n.defId].overlap&&s.isEvent)return!1;if(!1===p.overlap)return!1;if(b&&!b(new Zr(t,u[n.defId],n),new Zr(t,m,o)))return!1}}let y=i.eventStore;for(let e of p.allows){let i,s=Object.assign(Object.assign({},n),{range:o.range,allDay:m.allDay}),a=y.defs[m.defId],l=y.instances[r];if(i=a?new Zr(t,a,l):new Zr(t,m),!e(Fr(s,t),i))return!1}}return!0}(e,t,n,r))&&!(e.dateSelection&&!function(e,t,n,r){let i=e.eventStore,s=i.defs,o=i.instances,a=e.dateSelection,l=a.range,{selectionConfig:c}=t.getCurrentData();r&&(c=r(c));if(!fs(c.constraints,l,i,e.businessHours,t))return!1;let{selectOverlap:d}=t.options,u="function"==typeof d?d:null;for(let e in o){let n=o[e];if(sr(l,n.range)){if(!1===c.overlap)return!1;if(u&&!u(new Zr(t,s[n.defId],n),null))return!1}}for(let e of c.allows){let r=Object.assign(Object.assign({},n),a);if(!e(Fr(r,t),null))return!1}return!0}(e,t,n,r))}function fs(e,t,n,r,i){for(let s of e)if(!ms(gs(s,t,n,r,i),t))return!1;return!0}function gs(e,t,n,r,i){return"businessHours"===e?ps(bn(r,t,i)):"string"==typeof e?ps(Cn(n,t=>t.groupId===e)):"object"==typeof e&&e?ps(bn(e,t,i)):[]}function ps(e){let{instances:t}=e,n=[];for(let e in t)n.push(t[e].range);return n}function ms(e,t){for(let n of e)if(or(n,t))return!0;return!1}class vs extends Error{constructor(e,t){super(e),this.response=t}}function bs(e,t,n){const r={method:e=e.toUpperCase()};return"GET"===e?t+=(-1===t.indexOf("?")?"?":"&")+new URLSearchParams(n):(r.body=new URLSearchParams(n),r.headers={"Content-Type":"application/x-www-form-urlencoded"}),fetch(t,r).then(e=>{if(e.ok)return e.json().then(t=>[t,e],()=>{throw new vs("Failure parsing JSON",e)});throw new vs("Request failed",e)})}class ys{constructor(e){this.drainedOption=e,this.isRunning=!1,this.isDirty=!1,this.pauseDepths={},this.timeoutId=0}request(e){this.isDirty=!0,this.isPaused()||(this.clearTimeout(),null==e?this.tryDrain():this.timeoutId=setTimeout(this.tryDrain.bind(this),e))}pause(e=""){let{pauseDepths:t}=this;t[e]=(t[e]||0)+1,this.clearTimeout()}resume(e="",t){let{pauseDepths:n}=this;if(e in n){if(t)delete n[e];else{n[e]-=1,n[e]<=0&&delete n[e]}this.tryDrain()}}isPaused(){return Object.keys(this.pauseDepths).length}tryDrain(){if(!this.isRunning&&!this.isPaused()){for(this.isRunning=!0;this.isDirty;)this.isDirty=!1,this.drained();this.isRunning=!1}}clear(){this.clearTimeout(),this.isDirty=!1,this.pauseDepths={}}clearTimeout(){this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=0)}drained(){this.drainedOption&&this.drainedOption()}}const Es=/^(visible|hidden)$/;class As extends Br{constructor(){super(...arguments),this.handleEl=e=>{this.el=e,jr(this.props.elRef,e)}}render(){let{props:e}=this,{liquid:t,liquidIsAbsolute:n}=e,r=t&&n,i=["fc-scroller"];return t&&(n?i.push("fc-scroller-liquid-absolute"):i.push("fc-scroller-liquid")),f("div",{ref:this.handleEl,className:i.join(" "),style:{overflowX:e.overflowX,overflowY:e.overflowY,left:r&&-(e.overcomeLeft||0)||"",right:r&&-(e.overcomeRight||0)||"",bottom:r&&-(e.overcomeBottom||0)||"",marginLeft:!r&&-(e.overcomeLeft||0)||"",marginRight:!r&&-(e.overcomeRight||0)||"",marginBottom:!r&&-(e.overcomeBottom||0)||"",maxHeight:e.maxHeight||""}},e.children)}needsXScrolling(){if(Es.test(this.props.overflowX))return!1;let{el:e}=this,t=this.el.getBoundingClientRect().width-this.getYScrollbarWidth(),{children:n}=e;for(let e=0;e<n.length;e+=1){if(n[e].getBoundingClientRect().width>t)return!0}return!1}needsYScrolling(){if(Es.test(this.props.overflowY))return!1;let{el:e}=this,t=this.el.getBoundingClientRect().height-this.getXScrollbarWidth(),{children:n}=e;for(let e=0;e<n.length;e+=1){if(n[e].getBoundingClientRect().height>t)return!0}return!1}getXScrollbarWidth(){return Es.test(this.props.overflowX)?0:this.el.offsetHeight-this.el.clientHeight}getYScrollbarWidth(){return Es.test(this.props.overflowY)?0:this.el.offsetWidth-this.el.clientWidth}}class Ds{constructor(e){this.masterCallback=e,this.currentMap={},this.depths={},this.callbackMap={},this.handleValue=(e,t)=>{let{depths:n,currentMap:r}=this,i=!1,s=!1;null!==e?(i=t in r,r[t]=e,n[t]=(n[t]||0)+1,s=!0):(n[t]-=1,n[t]||(delete r[t],delete this.callbackMap[t],i=!0)),this.masterCallback&&(i&&this.masterCallback(null,String(t)),s&&this.masterCallback(e,String(t)))}}createRef(e){let t=this.callbackMap[e];return t||(t=this.callbackMap[e]=t=>{this.handleValue(t,String(e))}),t}collect(e,t,n){return Et(this.currentMap,e,t,n)}getAll(){return gt(this.currentMap)}}function Ss(e){let t=De(e,".fc-scrollgrid-shrink"),n=0;for(let e of t)n=Math.max(n,$e(e));return Math.ceil(n)}function ws(e,t){return e.liquid&&t.liquid}function Cs(e,t){return null!=t.maxHeight||ws(e,t)}function Rs(e,t,n,r){let{expandRows:i}=n;return"function"==typeof t.content?t.content(n):f("table",{role:"presentation",className:[t.tableClassName,e.syncRowHeights?"fc-scrollgrid-sync-table":""].join(" "),style:{minWidth:n.tableMinWidth,width:n.clientWidth,height:i?n.clientHeight:""}},n.tableColGroupNode,f(r?"thead":"tbody",{role:"presentation"},"function"==typeof t.rowContent?t.rowContent(n):t.rowContent))}function xs(e,t){return Ft(e,t,pt)}function _s(e,t){let n=[];for(let r of e){let e=r.span||1;for(let i=0;i<e;i+=1)n.push(f("col",{style:{width:"shrink"===r.width?Ts(t):r.width||"",minWidth:r.minWidth||""}}))}return f("colgroup",{},...n)}function Ts(e){return null==e?4:e}function ks(e){for(let t of e)if("shrink"===t.width)return!0;return!1}function Ms(e,t){let n=["fc-scrollgrid",t.theme.getClass("table")];return e&&n.push("fc-scrollgrid-liquid"),n}function Is(e,t){let n=["fc-scrollgrid-section","fc-scrollgrid-section-"+e.type,e.className];return t&&e.liquid&&null==e.maxHeight&&n.push("fc-scrollgrid-section-liquid"),e.isSticky&&n.push("fc-scrollgrid-section-sticky"),n}function Os(e){return f("div",{className:"fc-scrollgrid-sticky-shim",style:{width:e.clientWidth,minWidth:e.tableMinWidth}})}function Ns(e){let{stickyHeaderDates:t}=e;return null!=t&&"auto"!==t||(t="auto"===e.height||"auto"===e.viewHeight),t}function Ps(e){let{stickyFooterScrollbar:t}=e;return null!=t&&"auto"!==t||(t="auto"===e.height||"auto"===e.viewHeight),t}class Hs extends Br{constructor(){super(...arguments),this.processCols=Vt(e=>e,xs),this.renderMicroColGroup=Vt(_s),this.scrollerRefs=new Ds,this.scrollerElRefs=new Ds(this._handleScrollerEl.bind(this)),this.state={shrinkWidth:null,forceYScrollbars:!1,scrollerClientWidths:{},scrollerClientHeights:{}},this.handleSizing=()=>{this.safeSetState(Object.assign({shrinkWidth:this.computeShrinkWidth()},this.computeScrollerDims()))}}render(){let{props:e,state:t,context:n}=this,r=e.sections||[],i=this.processCols(e.cols),s=this.renderMicroColGroup(i,t.shrinkWidth),o=Ms(e.liquid,n);e.collapsibleWidth&&o.push("fc-scrollgrid-collapsible");let a,l=r.length,c=0,d=[],u=[],h=[];for(;c<l&&"header"===(a=r[c]).type;)d.push(this.renderSection(a,s,!0)),c+=1;for(;c<l&&"body"===(a=r[c]).type;)u.push(this.renderSection(a,s,!1)),c+=1;for(;c<l&&"footer"===(a=r[c]).type;)h.push(this.renderSection(a,s,!0)),c+=1;let g=!Jn();const p={role:"rowgroup"};return f("table",{role:"grid",className:o.join(" "),style:{height:e.height}},Boolean(!g&&d.length)&&f("thead",p,...d),Boolean(!g&&u.length)&&f("tbody",p,...u),Boolean(!g&&h.length)&&f("tfoot",p,...h),g&&f("tbody",p,...d,...u,...h))}renderSection(e,t,n){return"outerContent"in e?f(p,{key:e.key},e.outerContent):f("tr",{key:e.key,role:"presentation",className:Is(e,this.props.liquid).join(" ")},this.renderChunkTd(e,t,e.chunk,n))}renderChunkTd(e,t,n,r){if("outerContent"in n)return n.outerContent;let{props:i}=this,{forceYScrollbars:s,scrollerClientWidths:o,scrollerClientHeights:a}=this.state,l=Cs(i,e),c=ws(i,e),d=i.liquid?s?"scroll":l?"auto":"hidden":"visible",u=e.key,h=Rs(e,n,{tableColGroupNode:t,tableMinWidth:"",clientWidth:i.collapsibleWidth||void 0===o[u]?null:o[u],clientHeight:void 0!==a[u]?a[u]:null,expandRows:e.expandRows,syncRowHeights:!1,rowSyncHeights:[],reportRowHeightChange:()=>{}},r);return f(r?"th":"td",{ref:n.elRef,role:"presentation"},f("div",{className:"fc-scroller-harness"+(c?" fc-scroller-harness-liquid":"")},f(As,{ref:this.scrollerRefs.createRef(u),elRef:this.scrollerElRefs.createRef(u),overflowY:d,overflowX:i.liquid?"hidden":"visible",maxHeight:e.maxHeight,liquid:c,liquidIsAbsolute:!0},h)))}_handleScrollerEl(e,t){let n=function(e,t){for(let n of e)if(n.key===t)return n;return null}(this.props.sections,t);n&&jr(n.chunk.scrollerElRef,e)}componentDidMount(){this.handleSizing(),this.context.addResizeHandler(this.handleSizing)}componentDidUpdate(){this.handleSizing()}componentWillUnmount(){this.context.removeResizeHandler(this.handleSizing)}computeShrinkWidth(){return ks(this.props.cols)?Ss(this.scrollerElRefs.getAll()):0}computeScrollerDims(){let e=mr(),{scrollerRefs:t,scrollerElRefs:n}=this,r=!1,i={},s={};for(let e in t.currentMap){let n=t.currentMap[e];if(n&&n.needsYScrolling()){r=!0;break}}for(let t of this.props.sections){let o=t.key,a=n.currentMap[o];if(a){let t=a.parentNode;i[o]=Math.floor(t.getBoundingClientRect().width-(r?e.y:0)),s[o]=Math.floor(t.getBoundingClientRect().height)}}return{forceYScrollbars:r,scrollerClientWidths:i,scrollerClientHeights:s}}}Hs.addStateEquality({scrollerClientWidths:pt,scrollerClientHeights:pt});class Bs extends Br{constructor(){super(...arguments),this.handleEl=e=>{this.el=e,e&&ei(e,this.props.seg)}}render(){const{props:e,context:t}=this,{options:n}=t,{seg:r}=e,{eventRange:i}=r,{ui:s}=i,o={event:new Zr(t,i.def,i.instance),view:t.viewApi,timeText:e.timeText,textColor:s.textColor,backgroundColor:s.backgroundColor,borderColor:s.borderColor,isDraggable:!e.disableDragging&&oi(r,t),isStartResizable:!e.disableResizing&&ai(r,t),isEndResizable:!e.disableResizing&&li(r),isMirror:Boolean(e.isDragging||e.isResizing||e.isDateSelecting),isStart:Boolean(r.isStart),isEnd:Boolean(r.isEnd),isPast:Boolean(e.isPast),isFuture:Boolean(e.isFuture),isToday:Boolean(e.isToday),isSelected:Boolean(e.isSelected),isDragging:Boolean(e.isDragging),isResizing:Boolean(e.isResizing)};return f(qi,Object.assign({},e,{elRef:this.handleEl,elClasses:[...ui(o),...r.eventRange.ui.classNames,...e.elClasses||[]],renderProps:o,generatorName:"eventContent",generator:n.eventContent||e.defaultGenerator,classNameGenerator:n.eventClassNames,didMount:n.eventDidMount,willUnmount:n.eventWillUnmount}))}componentDidUpdate(e){this.el&&this.props.seg!==e.seg&&ei(this.el,this.props.seg)}}class js extends Br{render(){let{props:e,context:t}=this,{options:n}=t,{seg:r}=e,{ui:i}=r.eventRange,s=ci(r,n.eventTimeFormat||e.defaultTimeFormat,t,e.defaultDisplayEventTime,e.defaultDisplayEventEnd);return f(Bs,Object.assign({},e,{elTag:"a",elStyle:{borderColor:i.borderColor,backgroundColor:i.backgroundColor},elAttrs:fi(r,t),defaultGenerator:zs,timeText:s}),(e,t)=>f(p,null,f(e,{elTag:"div",elClasses:["fc-event-main"],elStyle:{color:t.textColor}}),Boolean(t.isStartResizable)&&f("div",{className:"fc-event-resizer fc-event-resizer-start"}),Boolean(t.isEndResizable)&&f("div",{className:"fc-event-resizer fc-event-resizer-end"})))}}function zs(e){return f("div",{className:"fc-event-main-frame"},e.timeText&&f("div",{className:"fc-event-time"},e.timeText),f("div",{className:"fc-event-title-container"},f("div",{className:"fc-event-title fc-sticky"},e.event.title||f(p,null," "))))}const Us=e=>f(Nr.Consumer,null,t=>{let{options:n}=t,r={isAxis:e.isAxis,date:t.dateEnv.toDate(e.date),view:t.viewApi};return f(qi,Object.assign({},e,{elTag:e.elTag||"div",renderProps:r,generatorName:"nowIndicatorContent",generator:n.nowIndicatorContent,classNameGenerator:n.nowIndicatorClassNames,didMount:n.nowIndicatorDidMount,willUnmount:n.nowIndicatorWillUnmount}))}),Ls=on({day:"numeric"});class Ws extends Br{constructor(){super(...arguments),this.refineRenderProps=Gt(Vs)}render(){let{props:e,context:t}=this,{options:n}=t,r=this.refineRenderProps({date:e.date,dateProfile:e.dateProfile,todayRange:e.todayRange,showDayNumber:e.showDayNumber,extraRenderProps:e.extraRenderProps,viewApi:t.viewApi,dateEnv:t.dateEnv});return f(qi,Object.assign({},e,{elClasses:[...cr(r,t.theme),...e.elClasses||[]],elAttrs:Object.assign(Object.assign({},e.elAttrs),r.isDisabled?{}:{"data-date":Ut(e.date)}),renderProps:r,generatorName:"dayCellContent",generator:n.dayCellContent||e.defaultGenerator,classNameGenerator:r.isDisabled?void 0:n.dayCellClassNames,didMount:n.dayCellDidMount,willUnmount:n.dayCellWillUnmount}))}}function Fs(e){return Boolean(e.dayCellContent||Vi("dayCellContent",e))}function Vs(e){let{date:t,dateEnv:n}=e,r=lr(t,e.todayRange,null,e.dateProfile);return Object.assign(Object.assign(Object.assign({date:n.toDate(t),view:e.viewApi},r),{dayNumberText:e.showDayNumber?n.format(t,Ls):""}),e.extraRenderProps)}class Gs extends Br{render(){let{props:e}=this,{seg:t}=e;return f(Bs,{elTag:"div",elClasses:["fc-bg-event"],elStyle:{backgroundColor:t.eventRange.ui.backgroundColor},defaultGenerator:Qs,seg:t,timeText:"",isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:!1,isPast:e.isPast,isFuture:e.isFuture,isToday:e.isToday,disableDragging:!0,disableResizing:!0})}}function Qs(e){let{title:t}=e.event;return t&&f("div",{className:"fc-event-title"},e.event.title)}function qs(e){return f("div",{className:"fc-"+e})}const Ys=e=>f(Nr.Consumer,null,t=>{let{dateEnv:n,options:r}=t,{date:i}=e,s=r.weekNumberFormat||e.defaultFormat,o={num:n.computeWeekNumber(i),text:n.format(i,s),date:i};return f(qi,Object.assign({},e,{renderProps:o,generatorName:"weekNumberContent",generator:r.weekNumberContent||Zs,classNameGenerator:r.weekNumberClassNames,didMount:r.weekNumberDidMount,willUnmount:r.weekNumberWillUnmount}))});function Zs(e){return e.text}class Xs extends Br{constructor(){super(...arguments),this.state={titleId:Te()},this.handleRootEl=e=>{this.rootEl=e,this.props.elRef&&jr(this.props.elRef,e)},this.handleDocumentMouseDown=e=>{const t=Re(e);this.rootEl.contains(t)||this.handleCloseClick()},this.handleDocumentKeyDown=e=>{"Escape"===e.key&&this.handleCloseClick()},this.handleCloseClick=()=>{let{onClose:e}=this.props;e&&e()}}render(){let{theme:e,options:t}=this.context,{props:n,state:r}=this,i=["fc-popover",e.getClass("popover")].concat(n.extraClassNames||[]);return function(e,t){var n=f(ae,{__v:e,i:t});return n.containerInfo=t,n}(f("div",Object.assign({},n.extraAttrs,{id:n.id,className:i.join(" "),"aria-labelledby":r.titleId,ref:this.handleRootEl}),f("div",{className:"fc-popover-header "+e.getClass("popoverHeader")},f("span",{className:"fc-popover-title",id:r.titleId},n.title),f("span",{className:"fc-popover-close "+e.getIconClass("close"),title:t.closeHint,onClick:this.handleCloseClick})),f("div",{className:"fc-popover-body "+e.getClass("popoverContent")},n.children)),n.parentEl)}componentDidMount(){document.addEventListener("mousedown",this.handleDocumentMouseDown),document.addEventListener("keydown",this.handleDocumentKeyDown),this.updateSize()}componentWillUnmount(){document.removeEventListener("mousedown",this.handleDocumentMouseDown),document.removeEventListener("keydown",this.handleDocumentKeyDown)}updateSize(){let{isRtl:e}=this.context,{alignmentEl:t,alignGridTop:n}=this.props,{rootEl:r}=this,i=function(e){let t=Ar(e),n=e.getBoundingClientRect();for(let e of t){let t=Qn(n,e.getBoundingClientRect());if(!t)return null;n=t}return n}(t);if(i){let s=r.getBoundingClientRect(),o=n?Ee(t,".fc-scrollgrid").getBoundingClientRect().top:i.top,a=e?i.right-s.width:i.left;o=Math.max(o,10),a=Math.min(a,document.documentElement.clientWidth-10-s.width),a=Math.max(a,10);let l=r.offsetParent.getBoundingClientRect();we(r,{top:o-l.top,left:a-l.left})}}}class Js extends zr{constructor(){super(...arguments),this.handleRootEl=e=>{this.rootEl=e,e?this.context.registerInteractiveComponent(this,{el:e,useEventCenter:!1}):this.context.unregisterInteractiveComponent(this)}}render(){let{options:e,dateEnv:t}=this.context,{props:n}=this,{startDate:r,todayRange:i,dateProfile:s}=n,o=t.format(r,e.dayPopoverFormat);return f(Ws,{elRef:this.handleRootEl,date:r,dateProfile:s,todayRange:i},(t,r,i)=>f(Xs,{elRef:i.ref,id:n.id,title:o,extraClassNames:["fc-more-popover"].concat(i.className||[]),extraAttrs:i,parentEl:n.parentEl,alignmentEl:n.alignmentEl,alignGridTop:n.alignGridTop,onClose:n.onClose},Fs(e)&&f(t,{elTag:"div",elClasses:["fc-more-popover-misc"]}),n.children))}queryHit(e,t,n,r){let{rootEl:i,props:s}=this;return e>=0&&e<n&&t>=0&&t<r?{dateProfile:s.dateProfile,dateSpan:Object.assign({allDay:!0,range:{start:s.startDate,end:s.endDate}},s.extraDateSpan),dayEl:i,rect:{left:0,top:0,right:n,bottom:r},layer:1}:null}}class $s extends Br{constructor(){super(...arguments),this.state={isPopoverOpen:!1,popoverId:Te()},this.handleLinkEl=e=>{this.linkEl=e,this.props.elRef&&jr(this.props.elRef,e)},this.handleClick=e=>{let{props:t,context:n}=this,{moreLinkClick:r}=n.options,i=eo(t).start;function s(e){let{def:t,instance:r,range:i}=e.eventRange;return{event:new Zr(n,t,r),start:n.dateEnv.toDate(i.start),end:n.dateEnv.toDate(i.end),isStart:e.isStart,isEnd:e.isEnd}}"function"==typeof r&&(r=r({date:i,allDay:Boolean(t.allDayDate),allSegs:t.allSegs.map(s),hiddenSegs:t.hiddenSegs.map(s),jsEvent:e,view:n.viewApi})),r&&"popover"!==r?"string"==typeof r&&n.calendarApi.zoomTo(i,r):this.setState({isPopoverOpen:!0})},this.handlePopoverClose=()=>{this.setState({isPopoverOpen:!1})}}render(){let{props:e,state:t}=this;return f(Nr.Consumer,null,n=>{let{viewApi:r,options:i,calendarApi:s}=n,{moreLinkText:o}=i,{moreCnt:a}=e,l=eo(e),c="function"==typeof o?o.call(s,a):`+${a} ${o}`,d=Ze(i.moreLinkHint,[a],c),u={num:a,shortText:"+"+a,text:c,view:r};return f(p,null,Boolean(e.moreCnt)&&f(qi,{elTag:e.elTag||"a",elRef:this.handleLinkEl,elClasses:[...e.elClasses||[],"fc-more-link"],elStyle:e.elStyle,elAttrs:Object.assign(Object.assign(Object.assign({},e.elAttrs),Ne(this.handleClick)),{title:d,"aria-expanded":t.isPopoverOpen,"aria-controls":t.isPopoverOpen?t.popoverId:""}),renderProps:u,generatorName:"moreLinkContent",generator:i.moreLinkContent||e.defaultGenerator||Ks,classNameGenerator:i.moreLinkClassNames,didMount:i.moreLinkDidMount,willUnmount:i.moreLinkWillUnmount},e.children),t.isPopoverOpen&&f(Js,{id:t.popoverId,startDate:l.start,endDate:l.end,dateProfile:e.dateProfile,todayRange:e.todayRange,extraDateSpan:e.extraDateSpan,parentEl:this.parentEl,alignmentEl:e.alignmentElRef?e.alignmentElRef.current:this.linkEl,alignGridTop:e.alignGridTop,onClose:this.handlePopoverClose},e.popoverContent()))})}componentDidMount(){this.updateParentEl()}componentDidUpdate(){this.updateParentEl()}updateParentEl(){this.linkEl&&(this.parentEl=Ee(this.linkEl,".fc-view-harness"))}}function Ks(e){return e.text}function eo(e){if(e.allDayDate)return{start:e.allDayDate,end:St(e.allDayDate,1)};let{hiddenSegs:t}=e;return{start:to(t),end:(n=t,n.reduce(ro).eventRange.range.end)};var n}function to(e){return e.reduce(no).eventRange.range.start}function no(e,t){return e.eventRange.range.start<t.eventRange.range.start?e:t}function ro(e,t){return e.eventRange.range.end>t.eventRange.range.end?e:t}class io extends Br{render(){let{props:e,context:t}=this,{options:n}=t,r={view:t.viewApi};return f(qi,Object.assign({},e,{elTag:e.elTag||"div",elClasses:[...so(e.viewSpec),...e.elClasses||[]],renderProps:r,classNameGenerator:n.viewClassNames,generatorName:void 0,generator:void 0,didMount:n.viewDidMount,willUnmount:n.viewWillUnmount}),()=>e.children)}}function so(e){return[`fc-${e.type}-view`,"fc-view"]}function oo(e){if(!e||"undefined"==typeof document)return;const t=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}const ao={id:String,defaultAllDay:Boolean,url:String,format:String,events:mn,eventDataTransform:mn,success:mn,failure:mn};function lo(e,t,n=co(t)){let r;if("string"==typeof e?r={url:e}:"function"==typeof e||Array.isArray(e)?r={events:e}:"object"==typeof e&&e&&(r=e),r){let{refined:i,extra:s}=pn(r,n),o=function(e,t){let n=t.pluginHooks.eventSourceDefs;for(let t=n.length-1;t>=0;t-=1){let r=n[t].parseMeta(e);if(r)return{sourceDefId:t,meta:r}}return null}(i,t);if(o)return{_raw:e,isFetching:!1,latestFetchId:"",fetchRange:null,defaultAllDay:i.defaultAllDay,eventDataTransform:i.eventDataTransform,success:i.success,failure:i.failure,publicId:i.id||"",sourceId:Be(),sourceDefId:o.sourceDefId,meta:o.meta,ui:Tn(i,t),extendedProps:s}}return null}function co(e){return Object.assign(Object.assign(Object.assign({},xn),ao),e.pluginHooks.eventSourceRefiners)}class uo{getCurrentData(){return this.currentDataManager.getCurrentData()}dispatch(e){this.currentDataManager.dispatch(e)}get view(){return this.getCurrentData().viewApi}batchRendering(e){e()}updateSize(){this.trigger("_resize",!0)}setOption(e,t){this.dispatch({type:"SET_OPTION",optionName:e,rawOptionValue:t})}getOption(e){return this.currentDataManager.currentCalendarOptionsInput[e]}getAvailableLocaleCodes(){return Object.keys(this.getCurrentData().availableRawLocales)}on(e,t){let{currentDataManager:n}=this;n.currentCalendarOptionsRefiners[e]?n.emitter.on(e,t):console.warn(`Unknown listener name '${e}'`)}off(e,t){this.currentDataManager.emitter.off(e,t)}trigger(e,...t){this.currentDataManager.emitter.trigger(e,...t)}changeView(e,t){this.batchRendering(()=>{if(this.unselect(),t)if(t.start&&t.end)this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e}),this.dispatch({type:"SET_OPTION",optionName:"visibleRange",rawOptionValue:t});else{let{dateEnv:n}=this.getCurrentData();this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e,dateMarker:n.createMarker(t)})}else this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e})})}zoomTo(e,t){let n;t=t||"day",n=this.getCurrentData().viewSpecs[t]||this.getUnitViewSpec(t),this.unselect(),n?this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:n.type,dateMarker:e}):this.dispatch({type:"CHANGE_DATE",dateMarker:e})}getUnitViewSpec(e){let t,n,{viewSpecs:r,toolbarConfig:i}=this.getCurrentData(),s=[].concat(i.header?i.header.viewsWithButtons:[],i.footer?i.footer.viewsWithButtons:[]);for(let e in r)s.push(e);for(t=0;t<s.length;t+=1)if(n=r[s[t]],n&&n.singleUnit===e)return n;return null}prev(){this.unselect(),this.dispatch({type:"PREV"})}next(){this.unselect(),this.dispatch({type:"NEXT"})}prevYear(){let e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:e.dateEnv.addYears(e.currentDate,-1)})}nextYear(){let e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:e.dateEnv.addYears(e.currentDate,1)})}today(){let e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:Ur(e.calendarOptions.now,e.dateEnv)})}gotoDate(e){let t=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:t.dateEnv.createMarker(e)})}incrementDate(e){let t=this.getCurrentData(),n=tt(e);n&&(this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:t.dateEnv.add(t.currentDate,n)}))}getDate(){let e=this.getCurrentData();return e.dateEnv.toDate(e.currentDate)}formatDate(e,t){let{dateEnv:n}=this.getCurrentData();return n.format(n.createMarker(e),on(t))}formatRange(e,t,n){let{dateEnv:r}=this.getCurrentData();return r.formatRange(r.createMarker(e),r.createMarker(t),on(n),n)}formatIso(e,t){let{dateEnv:n}=this.getCurrentData();return n.formatIso(n.createMarker(e),{omitTime:t})}select(e,t){let n;n=null==t?null!=e.start?e:{start:e,end:null}:{start:e,end:t};let r=this.getCurrentData(),i=pi(n,r.dateEnv,tt({days:1}));i&&(this.dispatch({type:"SELECT_DATES",selection:i}),Wr(i,null,r))}unselect(e){let t=this.getCurrentData();t.dateSelection&&(this.dispatch({type:"UNSELECT_DATES"}),function(e,t){t.emitter.trigger("unselect",{jsEvent:e?e.origEvent:null,view:t.viewApi||t.calendarApi.view})}(e,t))}addEvent(e,t){if(e instanceof Zr){let t=e._def,n=e._instance;return this.getCurrentData().eventStore.defs[t.defId]||(this.dispatch({type:"ADD_EVENTS",eventStore:An({def:t,instance:n})}),this.triggerEventAdd(e)),e}let n,r=this.getCurrentData();if(t instanceof Yr)n=t.internalEventSource;else if("boolean"==typeof t)t&&([n]=gt(r.eventSources));else if(null!=t){let e=this.getEventSourceById(t);if(!e)return console.warn(`Could not find an event source with ID "${t}"`),null;n=e.internalEventSource}let i=Pn(e,n,r,!1);if(i){let e=new Zr(r,i.def,i.def.recurringDef?null:i.instance);return this.dispatch({type:"ADD_EVENTS",eventStore:An(i)}),this.triggerEventAdd(e),e}return null}triggerEventAdd(e){let{emitter:t}=this.getCurrentData();t.trigger("eventAdd",{event:e,relatedEvents:[],revert:()=>{this.dispatch({type:"REMOVE_EVENTS",eventStore:Xr(e)})}})}getEventById(e){let t=this.getCurrentData(),{defs:n,instances:r}=t.eventStore;e=String(e);for(let i in n){let s=n[i];if(s.publicId===e){if(s.recurringDef)return new Zr(t,s,null);for(let e in r){let n=r[e];if(n.defId===s.defId)return new Zr(t,s,n)}}}return null}getEvents(){let e=this.getCurrentData();return Jr(e.eventStore,e)}removeAllEvents(){this.dispatch({type:"REMOVE_ALL_EVENTS"})}getEventSources(){let e=this.getCurrentData(),t=e.eventSources,n=[];for(let r in t)n.push(new Yr(e,t[r]));return n}getEventSourceById(e){let t=this.getCurrentData(),n=t.eventSources;e=String(e);for(let r in n)if(n[r].publicId===e)return new Yr(t,n[r]);return null}addEventSource(e){let t=this.getCurrentData();if(e instanceof Yr)return t.eventSources[e.internalEventSource.sourceId]||this.dispatch({type:"ADD_EVENT_SOURCES",sources:[e.internalEventSource]}),e;let n=lo(e,t);return n?(this.dispatch({type:"ADD_EVENT_SOURCES",sources:[n]}),new Yr(t,n)):null}removeAllEventSources(){this.dispatch({type:"REMOVE_ALL_EVENT_SOURCES"})}refetchEvents(){this.dispatch({type:"FETCH_EVENT_SOURCES",isRefetch:!0})}scrollToTime(e){let t=tt(e);t&&this.trigger("_scrollRequest",{time:t})}}var ho={__proto__:null,BASE_OPTION_DEFAULTS:ln,BaseComponent:Br,BgEvent:Gs,CalendarImpl:uo,CalendarRoot:zi,ContentContainer:qi,CustomRenderingStore:class extends class{constructor(){this.handlers=[]}set(e){this.currentValue=e;for(let t of this.handlers)t(e)}subscribe(e){this.handlers.push(e),void 0!==this.currentValue&&e(this.currentValue)}}{constructor(){super(...arguments),this.map=new Map}handle(e){const{map:t}=this;let n=!1;e.isActive?(t.set(e.id,e),n=!0):t.has(e.id)&&(t.delete(e.id),n=!0),n&&this.set(t)}},DateComponent:zr,DateEnv:wi,DateProfileGenerator:Lr,DayCellContainer:Ws,DayHeader:es,DaySeriesModel:ns,DayTableModel:rs,DelayedRunner:ys,ElementDragging:Pi,ElementScrollController:xr,Emitter:Sr,EventContainer:Bs,EventImpl:Zr,Interaction:Ii,MoreLinkContainer:$s,NamedTimeZoneImpl:class{constructor(e){this.timeZoneName=e}},NowIndicatorContainer:Us,NowTimer:$i,PositionCache:wr,RefMap:Ds,ScrollController:Rr,ScrollResponder:Or,Scroller:As,SegHierarchy:Ci,SimpleScrollGrid:Hs,Slicer:is,Splitter:Kn,StandardEvent:js,TableDateCell:Zi,TableDowCell:Ji,Theme:Tr,ViewContainer:io,ViewContextType:Nr,WeekNumberContainer:Ys,WindowScrollController:_r,addDays:St,addDurations:rt,addMs:wt,addWeeks:Dt,allowContextMenu:Fe,allowSelection:Le,applyMutationToEventStore:Gr,applyStyle:we,asCleanDays:function(e){return e.years||e.months||e.milliseconds?0:e.days},asRoughMinutes:function(e){return ot(e)/6e4},asRoughMs:ot,asRoughSeconds:function(e){return ot(e)/1e3},binarySearch:Mi,buildElAttrs:Gi,buildEntryKey:xi,buildEventApis:Jr,buildEventRangeKey:hi,buildIsoString:zt,buildNavLinkAttrs:hr,buildSegTimeText:ci,collectFromHash:Et,combineEventUis:kn,compareByFieldSpecs:Ge,compareNumbers:Xe,compareObjs:bt,computeEarliestSegStart:to,computeEdges:br,computeFallbackHeaderFormat:Ui,computeInnerRect:yr,computeRect:Er,computeShrinkWidth:Ss,computeVisibleDayRange:Wn,config:Hi,constrainPoint:qn,createDuration:tt,createEmptyEventStore:Sn,createEventInstance:vn,createEventUi:Tn,createFormatter:on,diffDates:Vn,diffDayAndTime:xt,diffDays:Rt,diffPoints:Zn,diffWeeks:Ct,diffWholeDays:Tt,diffWholeWeeks:_t,disableCursor:je,elementClosest:Ee,elementMatches:Ae,enableCursor:ze,eventTupleToStore:An,filterHash:ut,findDirectChildren:function(e,t){let n=e instanceof HTMLElement?[e]:e,r=[];for(let e=0;e<n.length;e+=1){let i=n[e].children;for(let e=0;e<i.length;e+=1){let n=i[e];t&&!Ae(n,t)||r.push(n)}}return r},findElements:De,flexibleCompare:qe,formatDayString:Ut,formatIsoTimeString:Lt,getAllowYScrolling:Cs,getCanVGrowWithinCell:Jn,getClippingParents:Ar,getDateMeta:lr,getDayClassNames:cr,getDefaultEventEnd:Vr,getElRoot:xe,getElSeg:ti,getEntrySpanEnd:Ri,getEventTargetViaRoot:Re,getIsRtlScrollbarOnLeft:pr,getRectCenter:Yn,getRelevantEvents:Dn,getScrollGridClassNames:Ms,getScrollbarWidths:mr,getSectionClassNames:Is,getSectionHasLiquidHeight:ws,getSegAnchorAttrs:fi,getSegMeta:di,getSlotClassNames:function(e,t){let n=["fc-slot","fc-slot-"+At[e.dow]];return e.isDisabled?n.push("fc-slot-disabled"):(e.isToday&&(n.push("fc-slot-today"),n.push(t.getClass("today"))),e.isPast&&n.push("fc-slot-past"),e.isFuture&&n.push("fc-slot-future")),n},getStickyFooterScrollbar:Ps,getStickyHeaderDates:Ns,getUniqueDomId:Te,greatestDurationDenominator:lt,groupIntersectingEntries:_i,guid:Be,hasBgRendering:Kr,hasCustomDayCellContent:Fs,hasShrinkWidth:ks,identity:mn,injectStyles:oo,interactionSettingsStore:Ni,interactionSettingsToStore:Oi,intersectRanges:rr,intersectRects:Qn,intersectSpans:Ti,isArraysEqual:Ft,isColPropsEqual:xs,isDateSelectionValid:ds,isDateSpansEqual:mi,isInt:Je,isInteractionValid:cs,isMultiDayRange:Fn,isPropsEqual:pt,isPropsValid:hs,isValidDate:Bt,mapHash:ht,memoize:Vt,memoizeArraylike:function(e,t,n){let r=[],i=[];return s=>{let o=r.length,a=s.length,l=0;for(;l<o;l+=1)if(s[l]){if(!Ft(r[l],s[l])){n&&n(i[l]);let r=e.apply(this,s[l]);t&&t(r,i[l])||(i[l]=r)}}else n&&n(i[l]);for(;l<a;l+=1)i[l]=e.apply(this,s[l]);return r=s,i.splice(a),i}},memoizeHashlike:function(e,t,n){let r={},i={};return s=>{let o={};for(let a in s)if(i[a])if(Ft(r[a],s[a]))o[a]=i[a];else{n&&n(i[a]);let r=e.apply(this,s[a]);o[a]=t&&t(r,i[a])?i[a]:r}else o[a]=e.apply(this,s[a]);return r=s,i=o,o}},memoizeObjArg:Gt,mergeEventStores:wn,multiplyDuration:it,padStart:Ye,parseBusinessHours:Un,parseClassNames:Rn,parseDragMeta:ji,parseEventDef:jn,parseFieldSpecs:Ve,parseMarker:Si,pointInsideRect:Gn,preventContextMenu:We,preventDefault:ke,preventSelection:Ue,rangeContainsMarker:ar,rangeContainsRange:or,rangesEqual:ir,rangesIntersect:sr,refineEventDef:Hn,refineProps:pn,removeElement:ye,removeExact:function(e,t){let n=0,r=0;for(;r<e.length;)e[r]===t?(e.splice(r,1),n+=1):r+=1;return n},renderChunkContent:Rs,renderFill:qs,renderMicroColGroup:_s,renderScrollShim:Os,requestJson:bs,sanitizeShrinkWidth:Ts,setRef:jr,sliceEventStore:$r,sortEventSegs:ii,startOfDay:kt,translateRect:function(e,t,n){return{left:e.left+t,right:e.right+t,top:e.top+n,bottom:e.bottom+n}},triggerDateSelect:Wr,unpromisify:Dr,whenTransitionDone:Oe,wholeDivideDurations:at};oo(':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)}');const fo=[],go={code:"en",week:{dow:0,doy:4},direction:"ltr",buttonText:{prev:"prev",next:"next",prevYear:"prev year",nextYear:"next year",year:"year",today:"today",month:"month",week:"week",day:"day",list:"list"},weekText:"W",weekTextLong:"Week",closeHint:"Close",timeHint:"Time",eventHint:"Event",allDayText:"all-day",moreLinkText:"more",noEventsText:"No events to display"},po=Object.assign(Object.assign({},go),{buttonHints:{prev:"Previous $0",next:"Next $0",today:(e,t)=>"day"===t?"Today":"This "+e},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:e=>`Show ${e} more event${1===e?"":"s"}`});function mo(e){let t=e.length>0?e[0].code:"en",n=fo.concat(e),r={en:po};for(let e of n)r[e.code]=e;return{map:r,defaultCode:t}}function vo(e,t){return"object"!=typeof e||Array.isArray(e)?function(e,t){let n=[].concat(e||[]),r=function(e,t){for(let n=0;n<e.length;n+=1){let r=e[n].toLocaleLowerCase().split("-");for(let e=r.length;e>0;e-=1){let n=r.slice(0,e).join("-");if(t[n])return t[n]}}return null}(n,t)||po;return bo(e,n,r)}(e,t):bo(e.code,[e.code],e)}function bo(e,t,n){let r=dt([go,n],["buttonText"]);delete r.code;let{week:i}=r;return delete r.week,{codeArg:e,codes:t,week:i,simpleNumberFormat:new Intl.NumberFormat(e),options:r}}function yo(e){return{id:Be(),name:e.name,premiumReleaseDate:e.premiumReleaseDate?new Date(e.premiumReleaseDate):void 0,deps:e.deps||[],reducers:e.reducers||[],isLoadingFuncs:e.isLoadingFuncs||[],contextInit:[].concat(e.contextInit||[]),eventRefiners:e.eventRefiners||{},eventDefMemberAdders:e.eventDefMemberAdders||[],eventSourceRefiners:e.eventSourceRefiners||{},isDraggableTransformers:e.isDraggableTransformers||[],eventDragMutationMassagers:e.eventDragMutationMassagers||[],eventDefMutationAppliers:e.eventDefMutationAppliers||[],dateSelectionTransformers:e.dateSelectionTransformers||[],datePointTransforms:e.datePointTransforms||[],dateSpanTransforms:e.dateSpanTransforms||[],views:e.views||{},viewPropsTransformers:e.viewPropsTransformers||[],isPropsValid:e.isPropsValid||null,externalDefTransforms:e.externalDefTransforms||[],viewContainerAppends:e.viewContainerAppends||[],eventDropTransformers:e.eventDropTransformers||[],componentInteractions:e.componentInteractions||[],calendarInteractions:e.calendarInteractions||[],themeClasses:e.themeClasses||{},eventSourceDefs:e.eventSourceDefs||[],cmdFormatter:e.cmdFormatter,recurringTypes:e.recurringTypes||[],namedTimeZonedImpl:e.namedTimeZonedImpl,initialView:e.initialView||"",elementDraggingImpl:e.elementDraggingImpl,optionChangeHandlers:e.optionChangeHandlers||{},scrollGridImpl:e.scrollGridImpl||null,listenerRefiners:e.listenerRefiners||{},optionRefiners:e.optionRefiners||{},propSetHandlers:e.propSetHandlers||{}}}function Eo(){let e,t=[],n=[];return(r,i)=>(e&&Ft(r,t)&&Ft(i,n)||(e=function(e,t){let n={},r={premiumReleaseDate:void 0,reducers:[],isLoadingFuncs:[],contextInit:[],eventRefiners:{},eventDefMemberAdders:[],eventSourceRefiners:{},isDraggableTransformers:[],eventDragMutationMassagers:[],eventDefMutationAppliers:[],dateSelectionTransformers:[],datePointTransforms:[],dateSpanTransforms:[],views:{},viewPropsTransformers:[],isPropsValid:null,externalDefTransforms:[],viewContainerAppends:[],eventDropTransformers:[],componentInteractions:[],calendarInteractions:[],themeClasses:{},eventSourceDefs:[],cmdFormatter:null,recurringTypes:[],namedTimeZonedImpl:null,initialView:"",elementDraggingImpl:null,optionChangeHandlers:{},scrollGridImpl:null,listenerRefiners:{},optionRefiners:{},propSetHandlers:{}};function i(e){for(let o of e){const e=o.name,a=n[e];void 0===a?(n[e]=o.id,i(o.deps),s=o,r={premiumReleaseDate:Ao((t=r).premiumReleaseDate,s.premiumReleaseDate),reducers:t.reducers.concat(s.reducers),isLoadingFuncs:t.isLoadingFuncs.concat(s.isLoadingFuncs),contextInit:t.contextInit.concat(s.contextInit),eventRefiners:Object.assign(Object.assign({},t.eventRefiners),s.eventRefiners),eventDefMemberAdders:t.eventDefMemberAdders.concat(s.eventDefMemberAdders),eventSourceRefiners:Object.assign(Object.assign({},t.eventSourceRefiners),s.eventSourceRefiners),isDraggableTransformers:t.isDraggableTransformers.concat(s.isDraggableTransformers),eventDragMutationMassagers:t.eventDragMutationMassagers.concat(s.eventDragMutationMassagers),eventDefMutationAppliers:t.eventDefMutationAppliers.concat(s.eventDefMutationAppliers),dateSelectionTransformers:t.dateSelectionTransformers.concat(s.dateSelectionTransformers),datePointTransforms:t.datePointTransforms.concat(s.datePointTransforms),dateSpanTransforms:t.dateSpanTransforms.concat(s.dateSpanTransforms),views:Object.assign(Object.assign({},t.views),s.views),viewPropsTransformers:t.viewPropsTransformers.concat(s.viewPropsTransformers),isPropsValid:s.isPropsValid||t.isPropsValid,externalDefTransforms:t.externalDefTransforms.concat(s.externalDefTransforms),viewContainerAppends:t.viewContainerAppends.concat(s.viewContainerAppends),eventDropTransformers:t.eventDropTransformers.concat(s.eventDropTransformers),calendarInteractions:t.calendarInteractions.concat(s.calendarInteractions),componentInteractions:t.componentInteractions.concat(s.componentInteractions),themeClasses:Object.assign(Object.assign({},t.themeClasses),s.themeClasses),eventSourceDefs:t.eventSourceDefs.concat(s.eventSourceDefs),cmdFormatter:s.cmdFormatter||t.cmdFormatter,recurringTypes:t.recurringTypes.concat(s.recurringTypes),namedTimeZonedImpl:s.namedTimeZonedImpl||t.namedTimeZonedImpl,initialView:t.initialView||s.initialView,elementDraggingImpl:t.elementDraggingImpl||s.elementDraggingImpl,optionChangeHandlers:Object.assign(Object.assign({},t.optionChangeHandlers),s.optionChangeHandlers),scrollGridImpl:s.scrollGridImpl||t.scrollGridImpl,listenerRefiners:Object.assign(Object.assign({},t.listenerRefiners),s.listenerRefiners),optionRefiners:Object.assign(Object.assign({},t.optionRefiners),s.optionRefiners),propSetHandlers:Object.assign(Object.assign({},t.propSetHandlers),s.propSetHandlers)}):a!==o.id&&console.warn(`Duplicate plugin '${e}'`)}var t,s}return e&&i(e),i(t),r}(r,i)),t=r,n=i,e)}function Ao(e,t){return void 0===e?t:void 0===t?e:new Date(Math.max(e.valueOf(),t.valueOf()))}class Do extends Tr{}function So(e,t,n,r){if(t[e])return t[e];let i=function(e,t,n,r){let i=n[e],s=r[e],o=e=>i&&null!==i[e]?i[e]:s&&null!==s[e]?s[e]:null,a=o("component"),l=o("superType"),c=null;if(l){if(l===e)throw new Error("Can't have a custom view type that references itself");c=So(l,t,n,r)}!a&&c&&(a=c.component);if(!a)return null;return{type:e,component:a,defaults:Object.assign(Object.assign({},c?c.defaults:{}),i?i.rawOptions:{}),overrides:Object.assign(Object.assign({},c?c.overrides:{}),s?s.rawOptions:{})}}(e,t,n,r);return i&&(t[e]=i),i}function wo(e){return ht(e,Co)}function Co(e){let t="function"==typeof e?{component:e}:e,{component:n}=t;var r;return t.content&&(r=t,n=e=>f(Nr.Consumer,null,t=>f(qi,{elTag:"div",elClasses:so(t.viewSpec),renderProps:Object.assign(Object.assign({},e),{nextDayThreshold:t.options.nextDayThreshold}),generatorName:void 0,generator:r.content,classNameGenerator:r.classNames,didMount:r.didMount,willUnmount:r.willUnmount}))),{superType:t.type,component:n,rawOptions:t}}function Ro(e,t,n,r){let i=wo(e),s=wo(t.views);return ht(function(e,t){let n,r={};for(n in e)So(n,r,e,t);for(n in t)So(n,r,e,t);return r}(i,s),e=>function(e,t,n,r,i){let s=e.overrides.duration||e.defaults.duration||r.duration||n.duration,o=null,a="",l="",c={};if(s&&(o=function(e){let t=JSON.stringify(e),n=xo[t];void 0===n&&(n=tt(e),xo[t]=n);return n}(s),o)){let e=lt(o);a=e.unit,1===e.value&&(l=a,c=t[a]?t[a].rawOptions:{})}let d=t=>{let n=t.buttonText||{},r=e.defaults.buttonTextKey;return null!=r&&null!=n[r]?n[r]:null!=n[e.type]?n[e.type]:null!=n[l]?n[l]:null},u=t=>{let n=t.buttonHints||{},r=e.defaults.buttonTextKey;return null!=r&&null!=n[r]?n[r]:null!=n[e.type]?n[e.type]:null!=n[l]?n[l]:null};return{type:e.type,component:e.component,duration:o,durationUnit:a,singleUnit:l,optionDefaults:e.defaults,optionOverrides:Object.assign(Object.assign({},c),e.overrides),buttonTextOverride:d(r)||d(n)||e.overrides.buttonText,buttonTextDefault:d(i)||e.defaults.buttonText||d(ln)||e.type,buttonTitleOverride:u(r)||u(n)||e.overrides.buttonHint,buttonTitleDefault:u(i)||e.defaults.buttonHint||u(ln)}}(e,s,t,n,r))}Do.prototype.classes={root:"fc-theme-standard",tableCellShaded:"fc-cell-shaded",buttonGroup:"fc-button-group",button:"fc-button fc-button-primary",buttonActive:"fc-button-active"},Do.prototype.baseIconClass="fc-icon",Do.prototype.iconClasses={close:"fc-icon-x",prev:"fc-icon-chevron-left",next:"fc-icon-chevron-right",prevYear:"fc-icon-chevrons-left",nextYear:"fc-icon-chevrons-right"},Do.prototype.rtlIconClasses={prev:"fc-icon-chevron-right",next:"fc-icon-chevron-left",prevYear:"fc-icon-chevrons-right",nextYear:"fc-icon-chevrons-left"},Do.prototype.iconOverrideOption="buttonIcons",Do.prototype.iconOverrideCustomButtonOption="icon",Do.prototype.iconOverridePrefix="fc-icon-";let xo={};function _o(e,t,n){let r=t?t.activeRange:null;return Mo({},function(e,t){let n=co(t),r=[].concat(e.eventSources||[]),i=[];e.initialEvents&&r.unshift(e.initialEvents);e.events&&r.unshift(e.events);for(let e of r){let r=lo(e,t,n);r&&i.push(r)}return i}(e,n),r,n)}function To(e,t,n,r){let i=n?n.activeRange:null;switch(t.type){case"ADD_EVENT_SOURCES":return Mo(e,t.sources,i,r);case"REMOVE_EVENT_SOURCE":return s=e,o=t.sourceId,ut(s,e=>e.sourceId!==o);case"PREV":case"NEXT":case"CHANGE_DATE":case"CHANGE_VIEW_TYPE":return n?Io(e,i,r):e;case"FETCH_EVENT_SOURCES":return Oo(e,t.sourceIds?ft(t.sourceIds):Po(e,r),i,t.isRefetch||!1,r);case"RECEIVE_EVENTS":case"RECEIVE_EVENT_ERROR":return function(e,t,n,r){let i=e[t];if(i&&n===i.latestFetchId)return Object.assign(Object.assign({},e),{[t]:Object.assign(Object.assign({},i),{isFetching:!1,fetchRange:r})});return e}(e,t.sourceId,t.fetchId,t.fetchRange);case"REMOVE_ALL_EVENT_SOURCES":return{};default:return e}var s,o}function ko(e){for(let t in e)if(e[t].isFetching)return!0;return!1}function Mo(e,t,n,r){let i={};for(let e of t)i[e.sourceId]=e;return n&&(i=Io(i,n,r)),Object.assign(Object.assign({},e),i)}function Io(e,t,n){return Oo(e,ut(e,e=>function(e,t,n){if(!Ho(e,n))return!e.latestFetchId;return!n.options.lazyFetching||!e.fetchRange||e.isFetching||t.start<e.fetchRange.start||t.end>e.fetchRange.end}(e,t,n)),t,!1,n)}function Oo(e,t,n,r,i){let s={};for(let o in e){let a=e[o];t[o]?s[o]=No(a,n,r,i):s[o]=a}return s}function No(e,t,n,r){let{options:i,calendarApi:s}=r,o=r.pluginHooks.eventSourceDefs[e.sourceDefId],a=Be();return o.fetch({eventSource:e,range:t,isRefetch:n,context:r},n=>{let{rawEvents:o}=n;i.eventSourceSuccess&&(o=i.eventSourceSuccess.call(s,o,n.response)||o),e.success&&(o=e.success.call(s,o,n.response)||o),r.dispatch({type:"RECEIVE_EVENTS",sourceId:e.sourceId,fetchId:a,fetchRange:t,rawEvents:o})},n=>{let o=!1;i.eventSourceFailure&&(i.eventSourceFailure.call(s,n),o=!0),e.failure&&(e.failure(n),o=!0),o||console.warn(n.message,n),r.dispatch({type:"RECEIVE_EVENT_ERROR",sourceId:e.sourceId,fetchId:a,fetchRange:t,error:n})}),Object.assign(Object.assign({},e),{isFetching:!0,latestFetchId:a})}function Po(e,t){return ut(e,e=>Ho(e,t))}function Ho(e,t){return!t.pluginHooks.eventSourceDefs[e.sourceDefId].ignoreRange}function Bo(e,t){switch(t.type){case"UNSELECT_DATES":return null;case"SELECT_DATES":return t.selection;default:return e}}function jo(e,t){switch(t.type){case"UNSELECT_EVENT":return"";case"SELECT_EVENT":return t.eventInstanceId;default:return e}}function zo(e,t){let n;switch(t.type){case"UNSET_EVENT_DRAG":return null;case"SET_EVENT_DRAG":return n=t.state,{affectedEvents:n.affectedEvents,mutatedEvents:n.mutatedEvents,isEvent:n.isEvent};default:return e}}function Uo(e,t){let n;switch(t.type){case"UNSET_EVENT_RESIZE":return null;case"SET_EVENT_RESIZE":return n=t.state,{affectedEvents:n.affectedEvents,mutatedEvents:n.mutatedEvents,isEvent:n.isEvent};default:return e}}function Lo(e,t,n,r,i){return{header:e.headerToolbar?Wo(e.headerToolbar,e,t,n,r,i):null,footer:e.footerToolbar?Wo(e.footerToolbar,e,t,n,r,i):null}}function Wo(e,t,n,r,i,s){let o={},a=[],l=!1;for(let c in e){let d=Fo(e[c],t,n,r,i,s);o[c]=d.widgets,a.push(...d.viewsWithButtons),l=l||d.hasTitle}return{sectionWidgets:o,viewsWithButtons:a,hasTitle:l}}function Fo(e,t,n,r,i,s){let o="rtl"===t.direction,a=t.customButtons||{},l=n.buttonText||{},c=t.buttonText||{},d=n.buttonHints||{},u=t.buttonHints||{},h=e?e.split(" "):[],f=[],g=!1;return{widgets:h.map(e=>e.split(",").map(e=>{if("title"===e)return g=!0,{buttonName:e};let n,h,p,m,v,b;if(n=a[e])p=e=>{n.click&&n.click.call(e.target,e,e.target)},(m=r.getCustomButtonIconClass(n))||(m=r.getIconClass(e,o))||(v=n.text),b=n.hint||n.text;else if(h=i[e]){f.push(e),p=()=>{s.changeView(e)},(v=h.buttonTextOverride)||(m=r.getIconClass(e,o))||(v=h.buttonTextDefault);let n=h.buttonTextOverride||h.buttonTextDefault;b=Ze(h.buttonTitleOverride||h.buttonTitleDefault||t.viewHint,[n,e],n)}else if(s[e])if(p=()=>{s[e]()},(v=l[e])||(m=r.getIconClass(e,o))||(v=c[e]),"prevYear"===e||"nextYear"===e){let t="prevYear"===e?"prev":"next";b=Ze(d[t]||u[t],[c.year||"year","year"],c[e])}else b=t=>Ze(d[e]||u[e],[c[t]||t,t],c[e]);return{buttonName:e,buttonClick:p,buttonIcon:m,buttonText:v,buttonHint:b}})),viewsWithButtons:f,hasTitle:g}}class Vo{constructor(e,t,n){this.type=e,this.getCurrentData=t,this.dateEnv=n}get calendar(){return this.getCurrentData().calendarApi}get title(){return this.getCurrentData().viewTitle}get activeStart(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.start)}get activeEnd(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.end)}get currentStart(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.start)}get currentEnd(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.end)}getOption(e){return this.getCurrentData().options[e]}}function Go(e,t){let n=gt(t.getCurrentData().eventSources),r=[];for(let t of e){let e=!1;for(let r=0;r<n.length;r+=1)if(n[r]._raw===t){n.splice(r,1),e=!0;break}e||r.push(t)}for(let e of n)t.dispatch({type:"REMOVE_EVENT_SOURCE",sourceId:e.sourceId});for(let e of r)t.calendarApi.addEventSource(e)}const Qo=[yo({name:"array-event-source",eventSourceDefs:[{ignoreRange:!0,parseMeta:e=>Array.isArray(e.events)?e.events:null,fetch(e,t){t({rawEvents:e.eventSource.meta})}}]}),yo({name:"func-event-source",eventSourceDefs:[{parseMeta:e=>"function"==typeof e.events?e.events:null,fetch(e,t,n){const{dateEnv:r}=e.context;Dr(e.eventSource.meta.bind(null,vi(e.range,r)),e=>t({rawEvents:e}),n)}}]}),yo({name:"json-event-source",eventSourceRefiners:{method:String,extraParams:mn,startParam:String,endParam:String,timeZoneParam:String},eventSourceDefs:[{parseMeta:e=>!e.url||"json"!==e.format&&e.format?null:{url:e.url,format:"json",method:(e.method||"GET").toUpperCase(),extraParams:e.extraParams,startParam:e.startParam,endParam:e.endParam,timeZoneParam:e.timeZoneParam},fetch(e,t,n){const{meta:r}=e.eventSource,i=function(e,t,n){let r,i,s,o,{dateEnv:a,options:l}=n,c={};r=e.startParam,null==r&&(r=l.startParam);i=e.endParam,null==i&&(i=l.endParam);s=e.timeZoneParam,null==s&&(s=l.timeZoneParam);o="function"==typeof e.extraParams?e.extraParams():e.extraParams||{};Object.assign(c,o),c[r]=a.formatIso(t.start),c[i]=a.formatIso(t.end),"local"!==a.timeZone&&(c[s]=a.timeZone);return c}(r,e.range,e.context);bs(r.method,r.url,i).then(([e,n])=>{t({rawEvents:e,response:n})},n)}}]}),yo({name:"simple-recurring-event",recurringTypes:[{parse(e,t){if(e.daysOfWeek||e.startTime||e.endTime||e.startRecur||e.endRecur){let i,s={daysOfWeek:e.daysOfWeek||null,startTime:e.startTime||null,endTime:e.endTime||null,startRecur:e.startRecur?t.createMarker(e.startRecur):null,endRecur:e.endRecur?t.createMarker(e.endRecur):null};return e.duration&&(i=e.duration),!i&&e.startTime&&e.endTime&&(n=e.endTime,r=e.startTime,i={years:n.years-r.years,months:n.months-r.months,days:n.days-r.days,milliseconds:n.milliseconds-r.milliseconds}),{allDayGuess:Boolean(!e.startTime&&!e.endTime),duration:i,typeData:s}}var n,r;return null},expand(e,t,n){let r=rr(t,{start:e.startRecur,end:e.endRecur});return r?function(e,t,n,r){let i=e?ft(e):null,s=kt(n.start),o=n.end,a=[];for(;s<o;){let e;i&&!i[s.getUTCDay()]||(e=t?r.add(s,t):s,a.push(e)),s=St(s,1)}return a}(e.daysOfWeek,e.startTime,r,n):[]}}],eventRefiners:{daysOfWeek:mn,startTime:tt,endTime:tt,duration:tt,startRecur:mn,endRecur:mn}}),yo({name:"change-handler",optionChangeHandlers:{events(e,t){Go([e],t)},eventSources:Go}}),yo({name:"misc",isLoadingFuncs:[e=>ko(e.eventSources)],propSetHandlers:{dateProfile:function(e,t){t.emitter.trigger("datesSet",Object.assign(Object.assign({},vi(e.activeRange,t.dateEnv)),{view:t.viewApi}))},eventStore:function(e,t){let{emitter:n}=t;n.hasHandlers("eventsSet")&&n.trigger("eventsSet",Jr(e,t))}}})];class qo{constructor(e,t){this.runTaskOption=e,this.drainedOption=t,this.queue=[],this.delayedRunner=new ys(this.drain.bind(this))}request(e,t){this.queue.push(e),this.delayedRunner.request(t)}pause(e){this.delayedRunner.pause(e)}resume(e,t){this.delayedRunner.resume(e,t)}drain(){let{queue:e}=this;for(;e.length;){let t,n=[];for(;t=e.shift();)this.runTask(t),n.push(t);this.drained(n)}}runTask(e){this.runTaskOption&&this.runTaskOption(e)}drained(e){this.drainedOption&&this.drainedOption(e)}}function Yo(e,t,n){let r;return r=/^(year|month)$/.test(e.currentRangeUnit)?e.currentRange:e.activeRange,n.formatRange(r.start,r.end,on(t.titleFormat||function(e){let{currentRangeUnit:t}=e;if("year"===t)return{year:"numeric"};if("month"===t)return{year:"numeric",month:"long"};let n=Tt(e.currentRange.start,e.currentRange.end);if(null!==n&&n>1)return{year:"numeric",month:"short",day:"numeric"};return{year:"numeric",month:"long",day:"numeric"}}(e)),{isEndExclusive:e.isRangeAllDay,defaultSeparator:t.titleRangeSeparator})}class Zo{constructor(e){this.computeOptionsData=Vt(this._computeOptionsData),this.computeCurrentViewData=Vt(this._computeCurrentViewData),this.organizeRawLocales=Vt(mo),this.buildLocale=Vt(vo),this.buildPluginHooks=Eo(),this.buildDateEnv=Vt(Xo),this.buildTheme=Vt(Jo),this.parseToolbars=Vt(Lo),this.buildViewSpecs=Vt(Ro),this.buildDateProfileGenerator=Gt($o),this.buildViewApi=Vt(Ko),this.buildViewUiProps=Gt(na),this.buildEventUiBySource=Vt(ea,pt),this.buildEventUiBases=Vt(ta),this.parseContextBusinessHours=Gt(ia),this.buildTitle=Vt(Yo),this.emitter=new Sr,this.actionRunner=new qo(this._handleAction.bind(this),this.updateData.bind(this)),this.currentCalendarOptionsInput={},this.currentCalendarOptionsRefined={},this.currentViewOptionsInput={},this.currentViewOptionsRefined={},this.currentCalendarOptionsRefiners={},this.getCurrentData=()=>this.data,this.dispatch=e=>{this.actionRunner.request(e)},this.props=e,this.actionRunner.pause();let t={},n=this.computeOptionsData(e.optionOverrides,t,e.calendarApi),r=n.calendarOptions.initialView||n.pluginHooks.initialView,i=this.computeCurrentViewData(r,n,e.optionOverrides,t);e.calendarApi.currentDataManager=this,this.emitter.setThisContext(e.calendarApi),this.emitter.setOptions(i.options);let s=function(e,t){let n=e.initialDate;return null!=n?t.createMarker(n):Ur(e.now,t)}(n.calendarOptions,n.dateEnv),o=i.dateProfileGenerator.build(s);ar(o.activeRange,s)||(s=o.currentRange.start);let a={dateEnv:n.dateEnv,options:n.calendarOptions,pluginHooks:n.pluginHooks,calendarApi:e.calendarApi,dispatch:this.dispatch,emitter:this.emitter,getCurrentData:this.getCurrentData};for(let e of n.pluginHooks.contextInit)e(a);let l=_o(n.calendarOptions,o,a),c={dynamicOptionOverrides:t,currentViewType:r,currentDate:s,dateProfile:o,businessHours:this.parseContextBusinessHours(a),eventSources:l,eventUiBases:{},eventStore:{defs:{},instances:{}},renderableEventStore:{defs:{},instances:{}},dateSelection:null,eventSelection:"",eventDrag:null,eventResize:null,selectionConfig:this.buildViewUiProps(a).selectionConfig},d=Object.assign(Object.assign({},a),c);for(let e of n.pluginHooks.reducers)Object.assign(c,e(null,null,d));ra(c,a)&&this.emitter.trigger("loading",!0),this.state=c,this.updateData(),this.actionRunner.resume()}resetOptions(e,t){let{props:n}=this;n.optionOverrides=t?Object.assign(Object.assign({},n.optionOverrides),e):e,this.actionRunner.request({type:"NOTHING"})}_handleAction(e){let{props:t,state:n,emitter:r}=this,i=function(e,t){switch(t.type){case"SET_OPTION":return Object.assign(Object.assign({},e),{[t.optionName]:t.rawOptionValue});default:return e}}(n.dynamicOptionOverrides,e),s=this.computeOptionsData(t.optionOverrides,i,t.calendarApi),o=function(e,t){switch(t.type){case"CHANGE_VIEW_TYPE":e=t.viewType}return e}(n.currentViewType,e),a=this.computeCurrentViewData(o,s,t.optionOverrides,i);t.calendarApi.currentDataManager=this,r.setThisContext(t.calendarApi),r.setOptions(a.options);let l={dateEnv:s.dateEnv,options:s.calendarOptions,pluginHooks:s.pluginHooks,calendarApi:t.calendarApi,dispatch:this.dispatch,emitter:r,getCurrentData:this.getCurrentData},{currentDate:c,dateProfile:d}=n;this.data&&this.data.dateProfileGenerator!==a.dateProfileGenerator&&(d=a.dateProfileGenerator.build(c)),c=function(e,t){switch(t.type){case"CHANGE_DATE":return t.dateMarker;default:return e}}(c,e),d=function(e,t,n,r){let i;switch(t.type){case"CHANGE_VIEW_TYPE":return r.build(t.dateMarker||n);case"CHANGE_DATE":return r.build(t.dateMarker);case"PREV":if(i=r.buildPrev(e,n),i.isValid)return i;break;case"NEXT":if(i=r.buildNext(e,n),i.isValid)return i}return e}(d,e,c,a.dateProfileGenerator),"PREV"!==e.type&&"NEXT"!==e.type&&ar(d.currentRange,c)||(c=d.currentRange.start);let u=To(n.eventSources,e,d,l),h=os(n.eventStore,e,u,d,l),f=ko(u)&&!a.options.progressiveEventRendering&&n.renderableEventStore||h,{eventUiSingleBase:g,selectionConfig:p}=this.buildViewUiProps(l),m=this.buildEventUiBySource(u),v={dynamicOptionOverrides:i,currentViewType:o,currentDate:c,dateProfile:d,eventSources:u,eventStore:h,renderableEventStore:f,selectionConfig:p,eventUiBases:this.buildEventUiBases(f.defs,g,m),businessHours:this.parseContextBusinessHours(l),dateSelection:Bo(n.dateSelection,e),eventSelection:jo(n.eventSelection,e),eventDrag:zo(n.eventDrag,e),eventResize:Uo(n.eventResize,e)},b=Object.assign(Object.assign({},l),v);for(let t of s.pluginHooks.reducers)Object.assign(v,t(n,e,b));let y=ra(n,l),E=ra(v,l);!y&&E?r.trigger("loading",!0):y&&!E&&r.trigger("loading",!1),this.state=v,t.onAction&&t.onAction(e)}updateData(){let{props:e,state:t}=this,n=this.data,r=this.computeOptionsData(e.optionOverrides,t.dynamicOptionOverrides,e.calendarApi),i=this.computeCurrentViewData(t.currentViewType,r,e.optionOverrides,t.dynamicOptionOverrides),s=this.data=Object.assign(Object.assign(Object.assign({viewTitle:this.buildTitle(t.dateProfile,i.options,r.dateEnv),calendarApi:e.calendarApi,dispatch:this.dispatch,emitter:this.emitter,getCurrentData:this.getCurrentData},r),i),t),o=r.pluginHooks.optionChangeHandlers,a=n&&n.calendarOptions,l=r.calendarOptions;if(a&&a!==l){a.timeZone!==l.timeZone&&(t.eventSources=s.eventSources=function(e,t,n){let r=t?t.activeRange:null;return Oo(e,Po(e,n),r,!0,n)}(s.eventSources,t.dateProfile,s),t.eventStore=s.eventStore=function(e,t,n){let{defs:r}=e,i=ht(e.instances,e=>{let i=r[e.defId];return i.allDay||i.recurringDef?e:Object.assign(Object.assign({},e),{range:{start:n.createMarker(t.toDate(e.range.start,e.forcedStartTzo)),end:n.createMarker(t.toDate(e.range.end,e.forcedEndTzo))},forcedStartTzo:n.canComputeOffset?null:e.forcedStartTzo,forcedEndTzo:n.canComputeOffset?null:e.forcedEndTzo})});return{defs:r,instances:i}}(s.eventStore,n.dateEnv,s.dateEnv));for(let e in o)a[e]!==l[e]&&o[e](l[e],s)}e.onData&&e.onData(s)}_computeOptionsData(e,t,n){let{refinedOptions:r,pluginHooks:i,localeDefaults:s,availableLocaleData:o,extra:a}=this.processRawCalendarOptions(e,t);sa(a);let l=this.buildDateEnv(r.timeZone,r.locale,r.weekNumberCalculation,r.firstDay,r.weekText,i,o,r.defaultRangeSeparator),c=this.buildViewSpecs(i.views,e,t,s),d=this.buildTheme(r,i);return{calendarOptions:r,pluginHooks:i,dateEnv:l,viewSpecs:c,theme:d,toolbarConfig:this.parseToolbars(r,e,d,c,n),localeDefaults:s,availableRawLocales:o.map}}processRawCalendarOptions(e,t){let{locales:n,locale:r}=gn([ln,e,t]),i=this.organizeRawLocales(n),s=i.map,o=this.buildLocale(r||i.defaultCode,s).options,a=this.buildPluginHooks(e.plugins||[],Qo),l=this.currentCalendarOptionsRefiners=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},an),cn),dn),a.listenerRefiners),a.optionRefiners),c={},d=gn([ln,o,e,t]),u={},h=this.currentCalendarOptionsInput,f=this.currentCalendarOptionsRefined,g=!1;for(let e in d)"plugins"!==e&&(d[e]===h[e]||un[e]&&e in h&&un[e](h[e],d[e])?u[e]=f[e]:l[e]?(u[e]=l[e](d[e]),g=!0):c[e]=h[e]);return g&&(this.currentCalendarOptionsInput=d,this.currentCalendarOptionsRefined=u),{rawOptions:this.currentCalendarOptionsInput,refinedOptions:this.currentCalendarOptionsRefined,pluginHooks:a,availableLocaleData:i,localeDefaults:o,extra:c}}_computeCurrentViewData(e,t,n,r){let i=t.viewSpecs[e];if(!i)throw new Error(`viewType "${e}" is not available. Please make sure you've loaded all neccessary plugins`);let{refinedOptions:s,extra:o}=this.processRawViewOptions(i,t.pluginHooks,t.localeDefaults,n,r);return sa(o),{viewSpec:i,options:s,dateProfileGenerator:this.buildDateProfileGenerator({dateProfileGeneratorClass:i.optionDefaults.dateProfileGeneratorClass,duration:i.duration,durationUnit:i.durationUnit,usesMinMaxTime:i.optionDefaults.usesMinMaxTime,dateEnv:t.dateEnv,calendarApi:this.props.calendarApi,slotMinTime:s.slotMinTime,slotMaxTime:s.slotMaxTime,showNonCurrentDates:s.showNonCurrentDates,dayCount:s.dayCount,dateAlignment:s.dateAlignment,dateIncrement:s.dateIncrement,hiddenDays:s.hiddenDays,weekends:s.weekends,nowInput:s.now,validRangeInput:s.validRange,visibleRangeInput:s.visibleRange,monthMode:s.monthMode,fixedWeekCount:s.fixedWeekCount}),viewApi:this.buildViewApi(e,this.getCurrentData,t.dateEnv)}}processRawViewOptions(e,t,n,r,i){let s=gn([ln,e.optionDefaults,n,r,e.optionOverrides,i]),o=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},an),cn),dn),fn),t.listenerRefiners),t.optionRefiners),a={},l=this.currentViewOptionsInput,c=this.currentViewOptionsRefined,d=!1,u={};for(let e in s)s[e]===l[e]||un[e]&&un[e](s[e],l[e])?a[e]=c[e]:(s[e]===this.currentCalendarOptionsInput[e]||un[e]&&un[e](s[e],this.currentCalendarOptionsInput[e])?e in this.currentCalendarOptionsRefined&&(a[e]=this.currentCalendarOptionsRefined[e]):o[e]?a[e]=o[e](s[e]):u[e]=s[e],d=!0);return d&&(this.currentViewOptionsInput=s,this.currentViewOptionsRefined=a),{rawOptions:this.currentViewOptionsInput,refinedOptions:this.currentViewOptionsRefined,extra:u}}}function Xo(e,t,n,r,i,s,o,a){let l=vo(t||o.defaultCode,o.map);return new wi({calendarSystem:"gregory",timeZone:e,namedTimeZoneImpl:s.namedTimeZonedImpl,locale:l,weekNumberCalculation:n,firstDay:r,weekText:i,cmdFormatter:s.cmdFormatter,defaultSeparator:a})}function Jo(e,t){return new(t.themeClasses[e.themeSystem]||Do)(e)}function $o(e){return new(e.dateProfileGeneratorClass||Lr)(e)}function Ko(e,t,n){return new Vo(e,t,n)}function ea(e){return ht(e,e=>e.ui)}function ta(e,t,n){let r={"":t};for(let t in e){let i=e[t];i.sourceId&&n[i.sourceId]&&(r[t]=n[i.sourceId])}return r}function na(e){let{options:t}=e;return{eventUiSingleBase:Tn({display:t.eventDisplay,editable:t.editable,startEditable:t.eventStartEditable,durationEditable:t.eventDurationEditable,constraint:t.eventConstraint,overlap:"boolean"==typeof t.eventOverlap?t.eventOverlap:void 0,allow:t.eventAllow,backgroundColor:t.eventBackgroundColor,borderColor:t.eventBorderColor,textColor:t.eventTextColor,color:t.eventColor},e),selectionConfig:Tn({constraint:t.selectConstraint,overlap:"boolean"==typeof t.selectOverlap?t.selectOverlap:void 0,allow:t.selectAllow},e)}}function ra(e,t){for(let n of t.pluginHooks.isLoadingFuncs)if(n(e))return!0;return!1}function ia(e){return Un(e.options.businessHours,e)}function sa(e,t){for(let n in e)console.warn(`Unknown option '${n}'`+(t?` for view '${t}'`:""))}class oa extends Br{render(){return f("div",{className:"fc-toolbar-chunk"},...this.props.widgetGroups.map(e=>this.renderWidgetGroup(e)))}renderWidgetGroup(e){let{props:t}=this,{theme:n}=this.context,r=[],i=!0;for(let s of e){let{buttonName:e,buttonClick:o,buttonText:a,buttonIcon:l,buttonHint:c}=s;if("title"===e)i=!1,r.push(f("h2",{className:"fc-toolbar-title",id:t.titleId},t.title));else{let i=e===t.activeButton,s=!t.isTodayEnabled&&"today"===e||!t.isPrevEnabled&&"prev"===e||!t.isNextEnabled&&"next"===e,d=[`fc-${e}-button`,n.getClass("button")];i&&d.push(n.getClass("buttonActive")),r.push(f("button",{type:"button",title:"function"==typeof c?c(t.navUnit):c,disabled:s,"aria-pressed":i,className:d.join(" "),onClick:o},a||(l?f("span",{className:l}):"")))}}if(r.length>1){return f("div",{className:i&&n.getClass("buttonGroup")||""},...r)}return r[0]}}class aa extends Br{render(){let e,t,{model:n,extraClassName:r}=this.props,i=!1,s=n.sectionWidgets,o=s.center;return s.left?(i=!0,e=s.left):e=s.start,s.right?(i=!0,t=s.right):t=s.end,f("div",{className:[r||"","fc-toolbar",i?"fc-toolbar-ltr":""].join(" ")},this.renderSection("start",e||[]),this.renderSection("center",o||[]),this.renderSection("end",t||[]))}renderSection(e,t){let{props:n}=this;return f(oa,{key:e,widgetGroups:t,title:n.title,navUnit:n.navUnit,activeButton:n.activeButton,isTodayEnabled:n.isTodayEnabled,isPrevEnabled:n.isPrevEnabled,isNextEnabled:n.isNextEnabled,titleId:n.titleId})}}class la extends Br{constructor(){super(...arguments),this.state={availableWidth:null},this.handleEl=e=>{this.el=e,jr(this.props.elRef,e),this.updateAvailableWidth()},this.handleResize=()=>{this.updateAvailableWidth()}}render(){let{props:e,state:t}=this,{aspectRatio:n}=e,r=["fc-view-harness",n||e.liquid||e.height?"fc-view-harness-active":"fc-view-harness-passive"],i="",s="";return n?null!==t.availableWidth?i=t.availableWidth/n:s=1/n*100+"%":i=e.height||"",f("div",{"aria-labelledby":e.labeledById,ref:this.handleEl,className:r.join(" "),style:{height:i,paddingBottom:s}},e.children)}componentDidMount(){this.context.addResizeHandler(this.handleResize)}componentWillUnmount(){this.context.removeResizeHandler(this.handleResize)}updateAvailableWidth(){this.el&&this.props.aspectRatio&&this.setState({availableWidth:this.el.offsetWidth})}}class ca extends Ii{constructor(e){super(e),this.handleSegClick=(e,t)=>{let{component:n}=this,{context:r}=n,i=ti(t);if(i&&n.isValidSegDownEl(e.target)){let s=Ee(e.target,".fc-event-forced-url"),o=s?s.querySelector("a[href]").href:"";r.emitter.trigger("eventClick",{el:t,event:new Zr(n.context,i.eventRange.def,i.eventRange.instance),jsEvent:e,view:r.viewApi}),o&&!e.defaultPrevented&&(window.location.href=o)}},this.destroy=Me(e.el,"click",".fc-event",this.handleSegClick)}}class da extends Ii{constructor(e){super(e),this.handleEventElRemove=e=>{e===this.currentSegEl&&this.handleSegLeave(null,this.currentSegEl)},this.handleSegEnter=(e,t)=>{ti(t)&&(this.currentSegEl=t,this.triggerEvent("eventMouseEnter",e,t))},this.handleSegLeave=(e,t)=>{this.currentSegEl&&(this.currentSegEl=null,this.triggerEvent("eventMouseLeave",e,t))},this.removeHoverListeners=function(e,t,n,r){let i;return Me(e,"mouseover",t,(e,t)=>{if(t!==i){i=t,n(e,t);let s=e=>{i=null,r(e,t),t.removeEventListener("mouseleave",s)};t.addEventListener("mouseleave",s)}})}(e.el,".fc-event",this.handleSegEnter,this.handleSegLeave)}destroy(){this.removeHoverListeners()}triggerEvent(e,t,n){let{component:r}=this,{context:i}=r,s=ti(n);t&&!r.isValidSegDownEl(t.target)||i.emitter.trigger(e,{el:n,event:new Zr(i,s.eventRange.def,s.eventRange.instance),jsEvent:t,view:i.viewApi})}}class ua extends Hr{constructor(){super(...arguments),this.buildViewContext=Vt(Pr),this.buildViewPropTransformers=Vt(fa),this.buildToolbarProps=Vt(ha),this.headerRef={current:null},this.footerRef={current:null},this.interactionsStore={},this.state={viewLabelId:Te()},this.registerInteractiveComponent=(e,t)=>{let n=function(e,t){return{component:e,el:t.el,useEventCenter:null==t.useEventCenter||t.useEventCenter,isHitComboAllowed:t.isHitComboAllowed||null}}(e,t),r=[ca,da].concat(this.props.pluginHooks.componentInteractions).map(e=>new e(n));this.interactionsStore[e.uid]=r,Ni[e.uid]=n},this.unregisterInteractiveComponent=e=>{let t=this.interactionsStore[e.uid];if(t){for(let e of t)e.destroy();delete this.interactionsStore[e.uid]}delete Ni[e.uid]},this.resizeRunner=new ys(()=>{this.props.emitter.trigger("_resize",!0),this.props.emitter.trigger("windowResize",{view:this.props.viewApi})}),this.handleWindowResize=e=>{let{options:t}=this.props;t.handleWindowResize&&e.target===window&&this.resizeRunner.request(t.windowResizeDelay)}}render(){let e,{props:t}=this,{toolbarConfig:n,options:r}=t,i=this.buildToolbarProps(t.viewSpec,t.dateProfile,t.dateProfileGenerator,t.currentDate,Ur(t.options.now,t.dateEnv),t.viewTitle),s=!1,o="";t.isHeightAuto||t.forPrint?o="":null!=r.height?s=!0:null!=r.contentHeight?o=r.contentHeight:e=Math.max(r.aspectRatio,.5);let a=this.buildViewContext(t.viewSpec,t.viewApi,t.options,t.dateProfileGenerator,t.dateEnv,t.theme,t.pluginHooks,t.dispatch,t.getCurrentData,t.emitter,t.calendarApi,this.registerInteractiveComponent,this.unregisterInteractiveComponent),l=n.header&&n.header.hasTitle?this.state.viewLabelId:"";return f(Nr.Provider,{value:a},n.header&&f(aa,Object.assign({ref:this.headerRef,extraClassName:"fc-header-toolbar",model:n.header,titleId:l},i)),f(la,{liquid:s,height:o,aspectRatio:e,labeledById:l},this.renderView(t),this.buildAppendContent()),n.footer&&f(aa,Object.assign({ref:this.footerRef,extraClassName:"fc-footer-toolbar",model:n.footer,titleId:""},i)))}componentDidMount(){let{props:e}=this;this.calendarInteractions=e.pluginHooks.calendarInteractions.map(t=>new t(e)),window.addEventListener("resize",this.handleWindowResize);let{propSetHandlers:t}=e.pluginHooks;for(let n in t)t[n](e[n],e)}componentDidUpdate(e){let{props:t}=this,{propSetHandlers:n}=t.pluginHooks;for(let r in n)t[r]!==e[r]&&n[r](t[r],t)}componentWillUnmount(){window.removeEventListener("resize",this.handleWindowResize),this.resizeRunner.clear();for(let e of this.calendarInteractions)e.destroy();this.props.emitter.trigger("_unmount")}buildAppendContent(){let{props:e}=this;return f(p,{},...e.pluginHooks.viewContainerAppends.map(t=>t(e)))}renderView(e){let{pluginHooks:t}=e,{viewSpec:n}=e,r={dateProfile:e.dateProfile,businessHours:e.businessHours,eventStore:e.renderableEventStore,eventUiBases:e.eventUiBases,dateSelection:e.dateSelection,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,isHeightAuto:e.isHeightAuto,forPrint:e.forPrint},i=this.buildViewPropTransformers(t.viewPropsTransformers);for(let t of i)Object.assign(r,t.transform(r,e));return f(n.component,Object.assign({},r))}}function ha(e,t,n,r,i,s){let o=n.build(i,void 0,!1),a=n.buildPrev(t,r,!1),l=n.buildNext(t,r,!1);return{title:s,activeButton:e.type,navUnit:e.singleUnit,isTodayEnabled:o.isValid&&!ar(t.currentRange,i),isPrevEnabled:a.isValid,isNextEnabled:l.isValid}}function fa(e){return e.map(e=>new e)}function ga(e){let t=vo(e.locale||"en",mo([]).map);return new wi(Object.assign(Object.assign({timeZone:ln.timeZone,calendarSystem:"gregory"},e),{locale:t}))}Hi.touchMouseIgnoreWait=500;let pa=0,ma=0,va=!1;class ba{constructor(e){this.subjectEl=null,this.selector="",this.handleSelector="",this.shouldIgnoreMove=!1,this.shouldWatchScroll=!0,this.isDragging=!1,this.isTouchDragging=!1,this.wasTouchScroll=!1,this.handleMouseDown=e=>{if(!this.shouldIgnoreMouse()&&function(e){return 0===e.button&&!e.ctrlKey}(e)&&this.tryStart(e)){let t=this.createEventFromMouse(e,!0);this.emitter.trigger("pointerdown",t),this.initScrollWatch(t),this.shouldIgnoreMove||document.addEventListener("mousemove",this.handleMouseMove),document.addEventListener("mouseup",this.handleMouseUp)}},this.handleMouseMove=e=>{let t=this.createEventFromMouse(e);this.recordCoords(t),this.emitter.trigger("pointermove",t)},this.handleMouseUp=e=>{document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("mouseup",this.handleMouseUp),this.emitter.trigger("pointerup",this.createEventFromMouse(e)),this.cleanup()},this.handleTouchStart=e=>{if(this.tryStart(e)){this.isTouchDragging=!0;let t=this.createEventFromTouch(e,!0);this.emitter.trigger("pointerdown",t),this.initScrollWatch(t);let n=e.target;this.shouldIgnoreMove||n.addEventListener("touchmove",this.handleTouchMove),n.addEventListener("touchend",this.handleTouchEnd),n.addEventListener("touchcancel",this.handleTouchEnd),window.addEventListener("scroll",this.handleTouchScroll,!0)}},this.handleTouchMove=e=>{let t=this.createEventFromTouch(e);this.recordCoords(t),this.emitter.trigger("pointermove",t)},this.handleTouchEnd=e=>{if(this.isDragging){let t=e.target;t.removeEventListener("touchmove",this.handleTouchMove),t.removeEventListener("touchend",this.handleTouchEnd),t.removeEventListener("touchcancel",this.handleTouchEnd),window.removeEventListener("scroll",this.handleTouchScroll,!0),this.emitter.trigger("pointerup",this.createEventFromTouch(e)),this.cleanup(),this.isTouchDragging=!1,pa+=1,setTimeout(()=>{pa-=1},Hi.touchMouseIgnoreWait)}},this.handleTouchScroll=()=>{this.wasTouchScroll=!0},this.handleScroll=e=>{if(!this.shouldIgnoreMove){let t=window.pageXOffset-this.prevScrollX+this.prevPageX,n=window.pageYOffset-this.prevScrollY+this.prevPageY;this.emitter.trigger("pointermove",{origEvent:e,isTouch:this.isTouchDragging,subjectEl:this.subjectEl,pageX:t,pageY:n,deltaX:t-this.origPageX,deltaY:n-this.origPageY})}},this.containerEl=e,this.emitter=new Sr,e.addEventListener("mousedown",this.handleMouseDown),e.addEventListener("touchstart",this.handleTouchStart,{passive:!0}),ma+=1,1===ma&&window.addEventListener("touchmove",ya,{passive:!1})}destroy(){this.containerEl.removeEventListener("mousedown",this.handleMouseDown),this.containerEl.removeEventListener("touchstart",this.handleTouchStart,{passive:!0}),ma-=1,ma||window.removeEventListener("touchmove",ya,{passive:!1})}tryStart(e){let t=this.querySubjectEl(e),n=e.target;return!(!t||this.handleSelector&&!Ee(n,this.handleSelector))&&(this.subjectEl=t,this.isDragging=!0,this.wasTouchScroll=!1,!0)}cleanup(){va=!1,this.isDragging=!1,this.subjectEl=null,this.destroyScrollWatch()}querySubjectEl(e){return this.selector?Ee(e.target,this.selector):this.containerEl}shouldIgnoreMouse(){return pa||this.isTouchDragging}cancelTouchScroll(){this.isDragging&&(va=!0)}initScrollWatch(e){this.shouldWatchScroll&&(this.recordCoords(e),window.addEventListener("scroll",this.handleScroll,!0))}recordCoords(e){this.shouldWatchScroll&&(this.prevPageX=e.pageX,this.prevPageY=e.pageY,this.prevScrollX=window.pageXOffset,this.prevScrollY=window.pageYOffset)}destroyScrollWatch(){this.shouldWatchScroll&&window.removeEventListener("scroll",this.handleScroll,!0)}createEventFromMouse(e,t){let n=0,r=0;return t?(this.origPageX=e.pageX,this.origPageY=e.pageY):(n=e.pageX-this.origPageX,r=e.pageY-this.origPageY),{origEvent:e,isTouch:!1,subjectEl:this.subjectEl,pageX:e.pageX,pageY:e.pageY,deltaX:n,deltaY:r}}createEventFromTouch(e,t){let n,r,i=e.touches,s=0,o=0;return i&&i.length?(n=i[0].pageX,r=i[0].pageY):(n=e.pageX,r=e.pageY),t?(this.origPageX=n,this.origPageY=r):(s=n-this.origPageX,o=r-this.origPageY),{origEvent:e,isTouch:!0,subjectEl:this.subjectEl,pageX:n,pageY:r,deltaX:s,deltaY:o}}}function ya(e){va&&e.preventDefault()}class Ea{constructor(){this.isVisible=!1,this.sourceEl=null,this.mirrorEl=null,this.sourceElRect=null,this.parentNode=document.body,this.zIndex=9999,this.revertDuration=0}start(e,t,n){this.sourceEl=e,this.sourceElRect=this.sourceEl.getBoundingClientRect(),this.origScreenX=t-window.pageXOffset,this.origScreenY=n-window.pageYOffset,this.deltaX=0,this.deltaY=0,this.updateElPosition()}handleMove(e,t){this.deltaX=e-window.pageXOffset-this.origScreenX,this.deltaY=t-window.pageYOffset-this.origScreenY,this.updateElPosition()}setIsVisible(e){e?this.isVisible||(this.mirrorEl&&(this.mirrorEl.style.display=""),this.isVisible=e,this.updateElPosition()):this.isVisible&&(this.mirrorEl&&(this.mirrorEl.style.display="none"),this.isVisible=e)}stop(e,t){let n=()=>{this.cleanup(),t()};e&&this.mirrorEl&&this.isVisible&&this.revertDuration&&(this.deltaX||this.deltaY)?this.doRevertAnimation(n,this.revertDuration):setTimeout(n,0)}doRevertAnimation(e,t){let n=this.mirrorEl,r=this.sourceEl.getBoundingClientRect();n.style.transition="top "+t+"ms,left "+t+"ms",we(n,{left:r.left,top:r.top}),Oe(n,()=>{n.style.transition="",e()})}cleanup(){this.mirrorEl&&(ye(this.mirrorEl),this.mirrorEl=null),this.sourceEl=null}updateElPosition(){this.sourceEl&&this.isVisible&&we(this.getMirrorEl(),{left:this.sourceElRect.left+this.deltaX,top:this.sourceElRect.top+this.deltaY})}getMirrorEl(){let e=this.sourceElRect,t=this.mirrorEl;return t||(t=this.mirrorEl=this.sourceEl.cloneNode(!0),t.classList.add("fc-unselectable"),t.classList.add("fc-event-dragging"),we(t,{position:"fixed",zIndex:this.zIndex,visibility:"",boxSizing:"border-box",width:e.right-e.left,height:e.bottom-e.top,right:"auto",bottom:"auto",margin:0}),this.parentNode.appendChild(t)),t}}class Aa extends Rr{constructor(e,t){super(),this.handleScroll=()=>{this.scrollTop=this.scrollController.getScrollTop(),this.scrollLeft=this.scrollController.getScrollLeft(),this.handleScrollChange()},this.scrollController=e,this.doesListening=t,this.scrollTop=this.origScrollTop=e.getScrollTop(),this.scrollLeft=this.origScrollLeft=e.getScrollLeft(),this.scrollWidth=e.getScrollWidth(),this.scrollHeight=e.getScrollHeight(),this.clientWidth=e.getClientWidth(),this.clientHeight=e.getClientHeight(),this.clientRect=this.computeClientRect(),this.doesListening&&this.getEventTarget().addEventListener("scroll",this.handleScroll)}destroy(){this.doesListening&&this.getEventTarget().removeEventListener("scroll",this.handleScroll)}getScrollTop(){return this.scrollTop}getScrollLeft(){return this.scrollLeft}setScrollTop(e){this.scrollController.setScrollTop(e),this.doesListening||(this.scrollTop=Math.max(Math.min(e,this.getMaxScrollTop()),0),this.handleScrollChange())}setScrollLeft(e){this.scrollController.setScrollLeft(e),this.doesListening||(this.scrollLeft=Math.max(Math.min(e,this.getMaxScrollLeft()),0),this.handleScrollChange())}getClientWidth(){return this.clientWidth}getClientHeight(){return this.clientHeight}getScrollWidth(){return this.scrollWidth}getScrollHeight(){return this.scrollHeight}handleScrollChange(){}}class Da extends Aa{constructor(e,t){super(new xr(e),t)}getEventTarget(){return this.scrollController.el}computeClientRect(){return yr(this.scrollController.el)}}class Sa extends Aa{constructor(e){super(new _r,e)}getEventTarget(){return window}computeClientRect(){return{left:this.scrollLeft,right:this.scrollLeft+this.clientWidth,top:this.scrollTop,bottom:this.scrollTop+this.clientHeight}}handleScrollChange(){this.clientRect=this.computeClientRect()}}const wa="function"==typeof performance?performance.now:Date.now;class Ca{constructor(){this.isEnabled=!0,this.scrollQuery=[window,".fc-scroller"],this.edgeThreshold=50,this.maxVelocity=300,this.pointerScreenX=null,this.pointerScreenY=null,this.isAnimating=!1,this.scrollCaches=null,this.everMovedUp=!1,this.everMovedDown=!1,this.everMovedLeft=!1,this.everMovedRight=!1,this.animate=()=>{if(this.isAnimating){let e=this.computeBestEdge(this.pointerScreenX+window.pageXOffset,this.pointerScreenY+window.pageYOffset);if(e){let t=wa();this.handleSide(e,(t-this.msSinceRequest)/1e3),this.requestAnimation(t)}else this.isAnimating=!1}}}start(e,t,n){this.isEnabled&&(this.scrollCaches=this.buildCaches(n),this.pointerScreenX=null,this.pointerScreenY=null,this.everMovedUp=!1,this.everMovedDown=!1,this.everMovedLeft=!1,this.everMovedRight=!1,this.handleMove(e,t))}handleMove(e,t){if(this.isEnabled){let n=e-window.pageXOffset,r=t-window.pageYOffset,i=null===this.pointerScreenY?0:r-this.pointerScreenY,s=null===this.pointerScreenX?0:n-this.pointerScreenX;i<0?this.everMovedUp=!0:i>0&&(this.everMovedDown=!0),s<0?this.everMovedLeft=!0:s>0&&(this.everMovedRight=!0),this.pointerScreenX=n,this.pointerScreenY=r,this.isAnimating||(this.isAnimating=!0,this.requestAnimation(wa()))}}stop(){if(this.isEnabled){this.isAnimating=!1;for(let e of this.scrollCaches)e.destroy();this.scrollCaches=null}}requestAnimation(e){this.msSinceRequest=e,requestAnimationFrame(this.animate)}handleSide(e,t){let{scrollCache:n}=e,{edgeThreshold:r}=this,i=r-e.distance,s=i*i/(r*r)*this.maxVelocity*t,o=1;switch(e.name){case"left":o=-1;case"right":n.setScrollLeft(n.getScrollLeft()+s*o);break;case"top":o=-1;case"bottom":n.setScrollTop(n.getScrollTop()+s*o)}}computeBestEdge(e,t){let{edgeThreshold:n}=this,r=null,i=this.scrollCaches||[];for(let s of i){let i=s.clientRect,o=e-i.left,a=i.right-e,l=t-i.top,c=i.bottom-t;o>=0&&a>=0&&l>=0&&c>=0&&(l<=n&&this.everMovedUp&&s.canScrollUp()&&(!r||r.distance>l)&&(r={scrollCache:s,name:"top",distance:l}),c<=n&&this.everMovedDown&&s.canScrollDown()&&(!r||r.distance>c)&&(r={scrollCache:s,name:"bottom",distance:c}),o<=n&&this.everMovedLeft&&s.canScrollLeft()&&(!r||r.distance>o)&&(r={scrollCache:s,name:"left",distance:o}),a<=n&&this.everMovedRight&&s.canScrollRight()&&(!r||r.distance>a)&&(r={scrollCache:s,name:"right",distance:a}))}return r}buildCaches(e){return this.queryScrollEls(e).map(e=>e===window?new Sa(!1):new Da(e,!1))}queryScrollEls(e){let t=[];for(let n of this.scrollQuery)"object"==typeof n?t.push(n):t.push(...Array.prototype.slice.call(xe(e).querySelectorAll(n)));return t}}class Ra extends Pi{constructor(e,t){super(e),this.containerEl=e,this.delay=null,this.minDistance=0,this.touchScrollAllowed=!0,this.mirrorNeedsRevert=!1,this.isInteracting=!1,this.isDragging=!1,this.isDelayEnded=!1,this.isDistanceSurpassed=!1,this.delayTimeoutId=null,this.onPointerDown=e=>{this.isDragging||(this.isInteracting=!0,this.isDelayEnded=!1,this.isDistanceSurpassed=!1,Ue(document.body),We(document.body),e.isTouch||e.origEvent.preventDefault(),this.emitter.trigger("pointerdown",e),this.isInteracting&&!this.pointer.shouldIgnoreMove&&(this.mirror.setIsVisible(!1),this.mirror.start(e.subjectEl,e.pageX,e.pageY),this.startDelay(e),this.minDistance||this.handleDistanceSurpassed(e)))},this.onPointerMove=e=>{if(this.isInteracting){if(this.emitter.trigger("pointermove",e),!this.isDistanceSurpassed){let t,n=this.minDistance,{deltaX:r,deltaY:i}=e;t=r*r+i*i,t>=n*n&&this.handleDistanceSurpassed(e)}this.isDragging&&("scroll"!==e.origEvent.type&&(this.mirror.handleMove(e.pageX,e.pageY),this.autoScroller.handleMove(e.pageX,e.pageY)),this.emitter.trigger("dragmove",e))}},this.onPointerUp=e=>{this.isInteracting&&(this.isInteracting=!1,Le(document.body),Fe(document.body),this.emitter.trigger("pointerup",e),this.isDragging&&(this.autoScroller.stop(),this.tryStopDrag(e)),this.delayTimeoutId&&(clearTimeout(this.delayTimeoutId),this.delayTimeoutId=null))};let n=this.pointer=new ba(e);n.emitter.on("pointerdown",this.onPointerDown),n.emitter.on("pointermove",this.onPointerMove),n.emitter.on("pointerup",this.onPointerUp),t&&(n.selector=t),this.mirror=new Ea,this.autoScroller=new Ca}destroy(){this.pointer.destroy(),this.onPointerUp({})}startDelay(e){"number"==typeof this.delay?this.delayTimeoutId=setTimeout(()=>{this.delayTimeoutId=null,this.handleDelayEnd(e)},this.delay):this.handleDelayEnd(e)}handleDelayEnd(e){this.isDelayEnded=!0,this.tryStartDrag(e)}handleDistanceSurpassed(e){this.isDistanceSurpassed=!0,this.tryStartDrag(e)}tryStartDrag(e){this.isDelayEnded&&this.isDistanceSurpassed&&(this.pointer.wasTouchScroll&&!this.touchScrollAllowed||(this.isDragging=!0,this.mirrorNeedsRevert=!1,this.autoScroller.start(e.pageX,e.pageY,this.containerEl),this.emitter.trigger("dragstart",e),!1===this.touchScrollAllowed&&this.pointer.cancelTouchScroll()))}tryStopDrag(e){this.mirror.stop(this.mirrorNeedsRevert,this.stopDrag.bind(this,e))}stopDrag(e){this.isDragging=!1,this.emitter.trigger("dragend",e)}setIgnoreMove(e){this.pointer.shouldIgnoreMove=e}setMirrorIsVisible(e){this.mirror.setIsVisible(e)}setMirrorNeedsRevert(e){this.mirrorNeedsRevert=e}setAutoScrollEnabled(e){this.autoScroller.isEnabled=e}}class xa{constructor(e){this.origRect=Er(e),this.scrollCaches=Ar(e).map(e=>new Da(e,!0))}destroy(){for(let e of this.scrollCaches)e.destroy()}computeLeft(){let e=this.origRect.left;for(let t of this.scrollCaches)e+=t.origScrollLeft-t.getScrollLeft();return e}computeTop(){let e=this.origRect.top;for(let t of this.scrollCaches)e+=t.origScrollTop-t.getScrollTop();return e}isWithinClipping(e,t){let n={left:e,top:t};for(let e of this.scrollCaches)if(!_a(e.getEventTarget())&&!Gn(n,e.clientRect))return!1;return!0}}function _a(e){let t=e.tagName;return"HTML"===t||"BODY"===t}class Ta{constructor(e,t){this.useSubjectCenter=!1,this.requireInitial=!0,this.initialHit=null,this.movingHit=null,this.finalHit=null,this.handlePointerDown=e=>{let{dragging:t}=this;this.initialHit=null,this.movingHit=null,this.finalHit=null,this.prepareHits(),this.processFirstCoord(e),this.initialHit||!this.requireInitial?(t.setIgnoreMove(!1),this.emitter.trigger("pointerdown",e)):t.setIgnoreMove(!0)},this.handleDragStart=e=>{this.emitter.trigger("dragstart",e),this.handleMove(e,!0)},this.handleDragMove=e=>{this.emitter.trigger("dragmove",e),this.handleMove(e)},this.handlePointerUp=e=>{this.releaseHits(),this.emitter.trigger("pointerup",e)},this.handleDragEnd=e=>{this.movingHit&&this.emitter.trigger("hitupdate",null,!0,e),this.finalHit=this.movingHit,this.movingHit=null,this.emitter.trigger("dragend",e)},this.droppableStore=t,e.emitter.on("pointerdown",this.handlePointerDown),e.emitter.on("dragstart",this.handleDragStart),e.emitter.on("dragmove",this.handleDragMove),e.emitter.on("pointerup",this.handlePointerUp),e.emitter.on("dragend",this.handleDragEnd),this.dragging=e,this.emitter=new Sr}processFirstCoord(e){let t,n={left:e.pageX,top:e.pageY},r=n,i=e.subjectEl;i instanceof HTMLElement&&(t=Er(i),r=qn(r,t));let s=this.initialHit=this.queryHitForOffset(r.left,r.top);if(s){if(this.useSubjectCenter&&t){let e=Qn(t,s.rect);e&&(r=Yn(e))}this.coordAdjust=Zn(r,n)}else this.coordAdjust={left:0,top:0}}handleMove(e,t){let n=this.queryHitForOffset(e.pageX+this.coordAdjust.left,e.pageY+this.coordAdjust.top);!t&&ka(this.movingHit,n)||(this.movingHit=n,this.emitter.trigger("hitupdate",n,!1,e))}prepareHits(){this.offsetTrackers=ht(this.droppableStore,e=>(e.component.prepareHits(),new xa(e.el)))}releaseHits(){let{offsetTrackers:e}=this;for(let t in e)e[t].destroy();this.offsetTrackers={}}queryHitForOffset(e,t){let{droppableStore:n,offsetTrackers:r}=this,i=null;for(let s in n){let o=n[s].component,a=r[s];if(a&&a.isWithinClipping(e,t)){let n=a.computeLeft(),r=a.computeTop(),l=e-n,c=t-r,{origRect:d}=a,u=d.right-d.left,h=d.bottom-d.top;if(l>=0&&l<u&&c>=0&&c<h){let e=o.queryHit(l,c,u,h);e&&or(e.dateProfile.activeRange,e.dateSpan.range)&&(!i||e.layer>i.layer)&&(e.componentId=s,e.context=o.context,e.rect.left+=n,e.rect.right+=n,e.rect.top+=r,e.rect.bottom+=r,i=e)}}}return i}}function ka(e,t){return!e&&!t||Boolean(e)===Boolean(t)&&mi(e.dateSpan,t.dateSpan)}function Ma(e,t){let n={};for(let r of t.pluginHooks.datePointTransforms)Object.assign(n,r(e,t));var r,i;return Object.assign(n,(r=e,{date:(i=t.dateEnv).toDate(r.range.start),dateStr:i.formatIso(r.range.start,{omitTime:r.allDay}),allDay:r.allDay})),n}class Ia extends Ii{constructor(e){super(e),this.subjectEl=null,this.subjectSeg=null,this.isDragging=!1,this.eventRange=null,this.relevantEvents=null,this.receivingContext=null,this.validMutation=null,this.mutatedRelevantEvents=null,this.handlePointerDown=e=>{let t=e.origEvent.target,{component:n,dragging:r}=this,{mirror:i}=r,{options:s}=n.context,o=n.context;this.subjectEl=e.subjectEl;let a=this.subjectSeg=ti(e.subjectEl),l=(this.eventRange=a.eventRange).instance.instanceId;this.relevantEvents=Dn(o.getCurrentData().eventStore,l),r.minDistance=e.isTouch?0:s.eventDragMinDistance,r.delay=e.isTouch&&l!==n.props.eventSelection?function(e){let{options:t}=e.context,n=t.eventLongPressDelay;null==n&&(n=t.longPressDelay);return n}(n):null,s.fixedMirrorParent?i.parentNode=s.fixedMirrorParent:i.parentNode=Ee(t,".fc"),i.revertDuration=s.dragRevertDuration;let c=n.isValidSegDownEl(t)&&!Ee(t,".fc-event-resizer");r.setIgnoreMove(!c),this.isDragging=c&&e.subjectEl.classList.contains("fc-event-draggable")},this.handleDragStart=e=>{let t=this.component.context,n=this.eventRange,r=n.instance.instanceId;e.isTouch?r!==this.component.props.eventSelection&&t.dispatch({type:"SELECT_EVENT",eventInstanceId:r}):t.dispatch({type:"UNSELECT_EVENT"}),this.isDragging&&(t.calendarApi.unselect(e),t.emitter.trigger("eventDragStart",{el:this.subjectEl,event:new Zr(t,n.def,n.instance),jsEvent:e.origEvent,view:t.viewApi}))},this.handleHitUpdate=(e,t)=>{if(!this.isDragging)return;let n=this.relevantEvents,r=this.hitDragging.initialHit,i=this.component.context,s=null,o=null,a=null,l=!1,c={affectedEvents:n,mutatedEvents:{defs:{},instances:{}},isEvent:!0};if(e){s=e.context;let t=s.options;i===s||t.editable&&t.droppable?(o=function(e,t,n){let r=e.dateSpan,i=t.dateSpan,s=r.range.start,o=i.range.start,a={};r.allDay!==i.allDay&&(a.allDay=i.allDay,a.hasEnd=t.context.options.allDayMaintainDuration,i.allDay&&(s=kt(s)));let l=Vn(s,o,e.context.dateEnv,e.componentId===t.componentId?e.largeUnit:null);l.milliseconds&&(a.allDay=!1);let c={datesDelta:l,standardProps:a};for(let r of n)r(c,e,t);return c}(r,e,s.getCurrentData().pluginHooks.eventDragMutationMassagers),o&&(a=Gr(n,s.getCurrentData().eventUiBases,o,s),c.mutatedEvents=a,cs(c,e.dateProfile,s)||(l=!0,o=null,a=null,c.mutatedEvents={defs:{},instances:{}}))):s=null}this.displayDrag(s,c),l?je():ze(),t||(i===s&&ka(r,e)&&(o=null),this.dragging.setMirrorNeedsRevert(!o),this.dragging.setMirrorIsVisible(!e||!xe(this.subjectEl).querySelector(".fc-event-mirror")),this.receivingContext=s,this.validMutation=o,this.mutatedRelevantEvents=a)},this.handlePointerUp=()=>{this.isDragging||this.cleanup()},this.handleDragEnd=e=>{if(this.isDragging){let t=this.component.context,n=t.viewApi,{receivingContext:r,validMutation:i}=this,s=this.eventRange.def,o=this.eventRange.instance,a=new Zr(t,s,o),l=this.relevantEvents,c=this.mutatedRelevantEvents,{finalHit:d}=this.hitDragging;if(this.clearDrag(),t.emitter.trigger("eventDragStop",{el:this.subjectEl,event:a,jsEvent:e.origEvent,view:n}),i){if(r===t){let r=new Zr(t,c.defs[s.defId],o?c.instances[o.instanceId]:null);t.dispatch({type:"MERGE_EVENTS",eventStore:c});let d={oldEvent:a,event:r,relatedEvents:Jr(c,t,o),revert(){t.dispatch({type:"MERGE_EVENTS",eventStore:l})}},u={};for(let e of t.getCurrentData().pluginHooks.eventDropTransformers)Object.assign(u,e(i,t));t.emitter.trigger("eventDrop",Object.assign(Object.assign(Object.assign({},d),u),{el:e.subjectEl,delta:i.datesDelta,jsEvent:e.origEvent,view:n})),t.emitter.trigger("eventChange",d)}else if(r){let i={event:a,relatedEvents:Jr(l,t,o),revert(){t.dispatch({type:"MERGE_EVENTS",eventStore:l})}};t.emitter.trigger("eventLeave",Object.assign(Object.assign({},i),{draggedEl:e.subjectEl,view:n})),t.dispatch({type:"REMOVE_EVENTS",eventStore:l}),t.emitter.trigger("eventRemove",i);let u=c.defs[s.defId],h=c.instances[o.instanceId],f=new Zr(r,u,h);r.dispatch({type:"MERGE_EVENTS",eventStore:c});let g={event:f,relatedEvents:Jr(c,r,h),revert(){r.dispatch({type:"REMOVE_EVENTS",eventStore:c})}};r.emitter.trigger("eventAdd",g),e.isTouch&&r.dispatch({type:"SELECT_EVENT",eventInstanceId:o.instanceId}),r.emitter.trigger("drop",Object.assign(Object.assign({},Ma(d.dateSpan,r)),{draggedEl:e.subjectEl,jsEvent:e.origEvent,view:d.context.viewApi})),r.emitter.trigger("eventReceive",Object.assign(Object.assign({},g),{draggedEl:e.subjectEl,view:d.context.viewApi}))}}else t.emitter.trigger("_noEventDrop")}this.cleanup()};let{component:t}=this,{options:n}=t.context,r=this.dragging=new Ra(e.el);r.pointer.selector=Ia.SELECTOR,r.touchScrollAllowed=!1,r.autoScroller.isEnabled=n.dragScroll;let i=this.hitDragging=new Ta(this.dragging,Ni);i.useSubjectCenter=e.useEventCenter,i.emitter.on("pointerdown",this.handlePointerDown),i.emitter.on("dragstart",this.handleDragStart),i.emitter.on("hitupdate",this.handleHitUpdate),i.emitter.on("pointerup",this.handlePointerUp),i.emitter.on("dragend",this.handleDragEnd)}destroy(){this.dragging.destroy()}displayDrag(e,t){let n=this.component.context,r=this.receivingContext;r&&r!==e&&(r===n?r.dispatch({type:"SET_EVENT_DRAG",state:{affectedEvents:t.affectedEvents,mutatedEvents:{defs:{},instances:{}},isEvent:!0}}):r.dispatch({type:"UNSET_EVENT_DRAG"})),e&&e.dispatch({type:"SET_EVENT_DRAG",state:t})}clearDrag(){let e=this.component.context,{receivingContext:t}=this;t&&t.dispatch({type:"UNSET_EVENT_DRAG"}),e!==t&&e.dispatch({type:"UNSET_EVENT_DRAG"})}cleanup(){this.subjectSeg=null,this.isDragging=!1,this.eventRange=null,this.relevantEvents=null,this.receivingContext=null,this.validMutation=null,this.mutatedRelevantEvents=null}}Ia.SELECTOR=".fc-event-draggable, .fc-event-resizable";const Oa={fixedMirrorParent:mn},Na={dateClick:mn,eventDragStart:mn,eventDragStop:mn,eventDrop:mn,eventResizeStart:mn,eventResizeStop:mn,eventResize:mn,drop:mn,eventReceive:mn,eventLeave:mn};class Pa{constructor(e,t){this.receivingContext=null,this.droppableEvent=null,this.suppliedDragMeta=null,this.dragMeta=null,this.handleDragStart=e=>{this.dragMeta=this.buildDragMeta(e.subjectEl)},this.handleHitUpdate=(e,t,n)=>{let{dragging:r}=this.hitDragging,i=null,s=null,o=!1,a={affectedEvents:{defs:{},instances:{}},mutatedEvents:{defs:{},instances:{}},isEvent:this.dragMeta.create};e&&(i=e.context,this.canDropElOnCalendar(n.subjectEl,i)&&(s=function(e,t,n){let r=Object.assign({},t.leftoverProps);for(let i of n.pluginHooks.externalDefTransforms)Object.assign(r,i(e,t));let{refined:i,extra:s}=Hn(r,n),o=jn(i,s,t.sourceId,e.allDay,n.options.forceEventDuration||Boolean(t.duration),n),a=e.range.start;e.allDay&&t.startTime&&(a=n.dateEnv.add(a,t.startTime));let l=t.duration?n.dateEnv.add(a,t.duration):Vr(e.allDay,a,n),c=vn(o.defId,{start:a,end:l});return{def:o,instance:c}}(e.dateSpan,this.dragMeta,i),a.mutatedEvents=An(s),o=!cs(a,e.dateProfile,i),o&&(a.mutatedEvents={defs:{},instances:{}},s=null))),this.displayDrag(i,a),r.setMirrorIsVisible(t||!s||!document.querySelector(".fc-event-mirror")),o?je():ze(),t||(r.setMirrorNeedsRevert(!s),this.receivingContext=i,this.droppableEvent=s)},this.handleDragEnd=e=>{let{receivingContext:t,droppableEvent:n}=this;if(this.clearDrag(),t&&n){let r=this.hitDragging.finalHit,i=r.context.viewApi,s=this.dragMeta;if(t.emitter.trigger("drop",Object.assign(Object.assign({},Ma(r.dateSpan,t)),{draggedEl:e.subjectEl,jsEvent:e.origEvent,view:i})),s.create){let r=An(n);t.dispatch({type:"MERGE_EVENTS",eventStore:r}),e.isTouch&&t.dispatch({type:"SELECT_EVENT",eventInstanceId:n.instance.instanceId}),t.emitter.trigger("eventReceive",{event:new Zr(t,n.def,n.instance),relatedEvents:[],revert(){t.dispatch({type:"REMOVE_EVENTS",eventStore:r})},draggedEl:e.subjectEl,view:i})}}this.receivingContext=null,this.droppableEvent=null};let n=this.hitDragging=new Ta(e,Ni);n.requireInitial=!1,n.emitter.on("dragstart",this.handleDragStart),n.emitter.on("hitupdate",this.handleHitUpdate),n.emitter.on("dragend",this.handleDragEnd),this.suppliedDragMeta=t}buildDragMeta(e){return"object"==typeof this.suppliedDragMeta?ji(this.suppliedDragMeta):"function"==typeof this.suppliedDragMeta?ji(this.suppliedDragMeta(e)):function(e){let t=function(e,t){let n=Hi.dataAttrPrefix,r=(n?n+"-":"")+t;return e.getAttribute("data-"+r)||""}(e,"event");return ji(t?JSON.parse(t):{create:!1})}(e)}displayDrag(e,t){let n=this.receivingContext;n&&n!==e&&n.dispatch({type:"UNSET_EVENT_DRAG"}),e&&e.dispatch({type:"SET_EVENT_DRAG",state:t})}clearDrag(){this.receivingContext&&this.receivingContext.dispatch({type:"UNSET_EVENT_DRAG"})}canDropElOnCalendar(e,t){let n=t.options.dropAccept;return"function"==typeof n?n.call(t.calendarApi,e):"string"!=typeof n||!n||Boolean(Ae(e,n))}}Hi.dataAttrPrefix="";class Ha extends Pi{constructor(e){super(e),this.shouldIgnoreMove=!1,this.mirrorSelector="",this.currentMirrorEl=null,this.handlePointerDown=e=>{this.emitter.trigger("pointerdown",e),this.shouldIgnoreMove||this.emitter.trigger("dragstart",e)},this.handlePointerMove=e=>{this.shouldIgnoreMove||this.emitter.trigger("dragmove",e)},this.handlePointerUp=e=>{this.emitter.trigger("pointerup",e),this.shouldIgnoreMove||this.emitter.trigger("dragend",e)};let t=this.pointer=new ba(e);t.emitter.on("pointerdown",this.handlePointerDown),t.emitter.on("pointermove",this.handlePointerMove),t.emitter.on("pointerup",this.handlePointerUp)}destroy(){this.pointer.destroy()}setIgnoreMove(e){this.shouldIgnoreMove=e}setMirrorIsVisible(e){if(e)this.currentMirrorEl&&(this.currentMirrorEl.style.visibility="",this.currentMirrorEl=null);else{let e=this.mirrorSelector?document.querySelector(this.mirrorSelector):null;e&&(this.currentMirrorEl=e,e.style.visibility="hidden")}}}var Ba=yo({name:"@fullcalendar/interaction",componentInteractions:[class extends Ii{constructor(e){super(e),this.handlePointerDown=e=>{let{dragging:t}=this,n=e.origEvent.target;t.setIgnoreMove(!this.component.isValidDateDownEl(n))},this.handleDragEnd=e=>{let{component:t}=this,{pointer:n}=this.dragging;if(!n.wasTouchScroll){let{initialHit:n,finalHit:r}=this.hitDragging;if(n&&r&&ka(n,r)){let{context:r}=t,i=Object.assign(Object.assign({},Ma(n.dateSpan,r)),{dayEl:n.dayEl,jsEvent:e.origEvent,view:r.viewApi||r.calendarApi.view});r.emitter.trigger("dateClick",i)}}},this.dragging=new Ra(e.el),this.dragging.autoScroller.isEnabled=!1;let t=this.hitDragging=new Ta(this.dragging,Oi(e));t.emitter.on("pointerdown",this.handlePointerDown),t.emitter.on("dragend",this.handleDragEnd)}destroy(){this.dragging.destroy()}},class extends Ii{constructor(e){super(e),this.dragSelection=null,this.handlePointerDown=e=>{let{component:t,dragging:n}=this,{options:r}=t.context,i=r.selectable&&t.isValidDateDownEl(e.origEvent.target);n.setIgnoreMove(!i),n.delay=e.isTouch?function(e){let{options:t}=e.context,n=t.selectLongPressDelay;null==n&&(n=t.longPressDelay);return n}(t):null},this.handleDragStart=e=>{this.component.context.calendarApi.unselect(e)},this.handleHitUpdate=(e,t)=>{let{context:n}=this.component,r=null,i=!1;if(e){let t=this.hitDragging.initialHit;e.componentId===t.componentId&&this.isHitComboAllowed&&!this.isHitComboAllowed(t,e)||(r=function(e,t,n){let r=e.dateSpan,i=t.dateSpan,s=[r.range.start,r.range.end,i.range.start,i.range.end];s.sort(Xe);let o={};for(let r of n){let n=r(e,t);if(!1===n)return null;n&&Object.assign(o,n)}return o.range={start:s[0],end:s[3]},o.allDay=r.allDay,o}(t,e,n.pluginHooks.dateSelectionTransformers)),r&&ds(r,e.dateProfile,n)||(i=!0,r=null)}r?n.dispatch({type:"SELECT_DATES",selection:r}):t||n.dispatch({type:"UNSELECT_DATES"}),i?je():ze(),t||(this.dragSelection=r)},this.handlePointerUp=e=>{this.dragSelection&&(Wr(this.dragSelection,e,this.component.context),this.dragSelection=null)};let{component:t}=e,{options:n}=t.context,r=this.dragging=new Ra(e.el);r.touchScrollAllowed=!1,r.minDistance=n.selectMinDistance||0,r.autoScroller.isEnabled=n.dragScroll;let i=this.hitDragging=new Ta(this.dragging,Oi(e));i.emitter.on("pointerdown",this.handlePointerDown),i.emitter.on("dragstart",this.handleDragStart),i.emitter.on("hitupdate",this.handleHitUpdate),i.emitter.on("pointerup",this.handlePointerUp)}destroy(){this.dragging.destroy()}},Ia,class extends Ii{constructor(e){super(e),this.draggingSegEl=null,this.draggingSeg=null,this.eventRange=null,this.relevantEvents=null,this.validMutation=null,this.mutatedRelevantEvents=null,this.handlePointerDown=e=>{let{component:t}=this,n=ti(this.querySegEl(e)),r=this.eventRange=n.eventRange;this.dragging.minDistance=t.context.options.eventDragMinDistance,this.dragging.setIgnoreMove(!this.component.isValidSegDownEl(e.origEvent.target)||e.isTouch&&this.component.props.eventSelection!==r.instance.instanceId)},this.handleDragStart=e=>{let{context:t}=this.component,n=this.eventRange;this.relevantEvents=Dn(t.getCurrentData().eventStore,this.eventRange.instance.instanceId);let r=this.querySegEl(e);this.draggingSegEl=r,this.draggingSeg=ti(r),t.calendarApi.unselect(),t.emitter.trigger("eventResizeStart",{el:r,event:new Zr(t,n.def,n.instance),jsEvent:e.origEvent,view:t.viewApi})},this.handleHitUpdate=(e,t,n)=>{let{context:r}=this.component,i=this.relevantEvents,s=this.hitDragging.initialHit,o=this.eventRange.instance,a=null,l=null,c=!1,d={affectedEvents:i,mutatedEvents:{defs:{},instances:{}},isEvent:!0};if(e){e.componentId===s.componentId&&this.isHitComboAllowed&&!this.isHitComboAllowed(s,e)||(a=function(e,t,n,r){let i=e.context.dateEnv,s=e.dateSpan.range.start,o=t.dateSpan.range.start,a=Vn(s,o,i,e.largeUnit);if(n){if(i.add(r.start,a)<r.end)return{startDelta:a}}else if(i.add(r.end,a)>r.start)return{endDelta:a};return null}(s,e,n.subjectEl.classList.contains("fc-event-resizer-start"),o.range))}a&&(l=Gr(i,r.getCurrentData().eventUiBases,a,r),d.mutatedEvents=l,cs(d,e.dateProfile,r)||(c=!0,a=null,l=null,d.mutatedEvents=null)),l?r.dispatch({type:"SET_EVENT_RESIZE",state:d}):r.dispatch({type:"UNSET_EVENT_RESIZE"}),c?je():ze(),t||(a&&ka(s,e)&&(a=null),this.validMutation=a,this.mutatedRelevantEvents=l)},this.handleDragEnd=e=>{let{context:t}=this.component,n=this.eventRange.def,r=this.eventRange.instance,i=new Zr(t,n,r),s=this.relevantEvents,o=this.mutatedRelevantEvents;if(t.emitter.trigger("eventResizeStop",{el:this.draggingSegEl,event:i,jsEvent:e.origEvent,view:t.viewApi}),this.validMutation){let a=new Zr(t,o.defs[n.defId],r?o.instances[r.instanceId]:null);t.dispatch({type:"MERGE_EVENTS",eventStore:o});let l={oldEvent:i,event:a,relatedEvents:Jr(o,t,r),revert(){t.dispatch({type:"MERGE_EVENTS",eventStore:s})}};t.emitter.trigger("eventResize",Object.assign(Object.assign({},l),{el:this.draggingSegEl,startDelta:this.validMutation.startDelta||tt(0),endDelta:this.validMutation.endDelta||tt(0),jsEvent:e.origEvent,view:t.viewApi})),t.emitter.trigger("eventChange",l)}else t.emitter.trigger("_noEventResize");this.draggingSeg=null,this.relevantEvents=null,this.validMutation=null};let{component:t}=e,n=this.dragging=new Ra(e.el);n.pointer.selector=".fc-event-resizer",n.touchScrollAllowed=!1,n.autoScroller.isEnabled=t.context.options.dragScroll;let r=this.hitDragging=new Ta(this.dragging,Oi(e));r.emitter.on("pointerdown",this.handlePointerDown),r.emitter.on("dragstart",this.handleDragStart),r.emitter.on("hitupdate",this.handleHitUpdate),r.emitter.on("dragend",this.handleDragEnd)}destroy(){this.dragging.destroy()}querySegEl(e){return Ee(e.subjectEl,".fc-event")}}],calendarInteractions:[class{constructor(e){this.context=e,this.isRecentPointerDateSelect=!1,this.matchesCancel=!1,this.matchesEvent=!1,this.onSelect=e=>{e.jsEvent&&(this.isRecentPointerDateSelect=!0)},this.onDocumentPointerDown=e=>{let t=this.context.options.unselectCancel,n=Re(e.origEvent);this.matchesCancel=!!Ee(n,t),this.matchesEvent=!!Ee(n,Ia.SELECTOR)},this.onDocumentPointerUp=e=>{let{context:t}=this,{documentPointer:n}=this,r=t.getCurrentData();if(!n.wasTouchScroll){if(r.dateSelection&&!this.isRecentPointerDateSelect){let n=t.options.unselectAuto;!n||n&&this.matchesCancel||t.calendarApi.unselect(e)}r.eventSelection&&!this.matchesEvent&&t.dispatch({type:"UNSELECT_EVENT"})}this.isRecentPointerDateSelect=!1};let t=this.documentPointer=new ba(document);t.shouldIgnoreMove=!0,t.shouldWatchScroll=!1,t.emitter.on("pointerdown",this.onDocumentPointerDown),t.emitter.on("pointerup",this.onDocumentPointerUp),e.emitter.on("select",this.onSelect)}destroy(){this.context.emitter.off("select",this.onSelect),this.documentPointer.destroy()}}],elementDraggingImpl:Ra,optionRefiners:Oa,listenerRefiners:Na});class ja extends zr{constructor(){super(...arguments),this.headerElRef={current:null}}renderSimpleLayout(e,t){let{props:n,context:r}=this,i=[],s=Ns(r.options);return e&&i.push({type:"header",key:"header",isSticky:s,chunk:{elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}}),i.push({type:"body",key:"body",liquid:!0,chunk:{content:t}}),f(io,{elClasses:["fc-daygrid"],viewSpec:r.viewSpec},f(Hs,{liquid:!n.isHeightAuto&&!n.forPrint,collapsibleWidth:n.forPrint,cols:[],sections:i}))}renderHScrollLayout(e,t,n,r){let i=this.context.pluginHooks.scrollGridImpl;if(!i)throw new Error("No ScrollGrid implementation");let{props:s,context:o}=this,a=!s.forPrint&&Ns(o.options),l=!s.forPrint&&Ps(o.options),c=[];return e&&c.push({type:"header",key:"header",isSticky:a,chunks:[{key:"main",elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}]}),c.push({type:"body",key:"body",liquid:!0,chunks:[{key:"main",content:t}]}),l&&c.push({type:"footer",key:"footer",isSticky:!0,chunks:[{key:"main",content:Os}]}),f(io,{elClasses:["fc-daygrid"],viewSpec:o.viewSpec},f(i,{liquid:!s.isHeightAuto&&!s.forPrint,collapsibleWidth:s.forPrint,colGroups:[{cols:[{span:n,minWidth:r}]}],sections:c}))}}function za(e,t){let n=[];for(let e=0;e<t;e+=1)n[e]=[];for(let t of e)n[t.row].push(t);return n}function Ua(e,t){let n=[];for(let e=0;e<t;e+=1)n[e]=[];for(let t of e)n[t.firstCol].push(t);return n}function La(e,t){let n=[];if(e){for(let r=0;r<t;r+=1)n[r]={affectedInstances:e.affectedInstances,isEvent:e.isEvent,segs:[]};for(let t of e.segs)n[t.row].segs.push(t)}else for(let e=0;e<t;e+=1)n[e]=null;return n}const Wa=on({hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"narrow"});function Fa(e){let{display:t}=e.eventRange.ui;return"list-item"===t||"auto"===t&&!e.eventRange.def.allDay&&e.firstCol===e.lastCol&&e.isStart&&e.isEnd}class Va extends Br{render(){let{props:e}=this;return f(js,Object.assign({},e,{elClasses:["fc-daygrid-event","fc-daygrid-block-event","fc-h-event"],defaultTimeFormat:Wa,defaultDisplayEventEnd:e.defaultDisplayEventEnd,disableResizing:!e.seg.eventRange.def.allDay}))}}class Ga extends Br{render(){let{props:e,context:t}=this,{options:n}=t,{seg:r}=e,i=ci(r,n.eventTimeFormat||Wa,t,!0,e.defaultDisplayEventEnd);return f(Bs,Object.assign({},e,{elTag:"a",elClasses:["fc-daygrid-event","fc-daygrid-dot-event"],elAttrs:fi(e.seg,t),defaultGenerator:Qa,timeText:i,isResizing:!1,isDateSelecting:!1}))}}function Qa(e){return f(p,null,f("div",{className:"fc-daygrid-event-dot",style:{borderColor:e.borderColor||e.backgroundColor}}),e.timeText&&f("div",{className:"fc-event-time"},e.timeText),f("div",{className:"fc-event-title"},e.event.title||f(p,null," ")))}class qa extends Br{constructor(){super(...arguments),this.compileSegs=Vt(Ya)}render(){let{props:e}=this,{allSegs:t,invisibleSegs:n}=this.compileSegs(e.singlePlacements);return f($s,{elClasses:["fc-daygrid-more-link"],dateProfile:e.dateProfile,todayRange:e.todayRange,allDayDate:e.allDayDate,moreCnt:e.moreCnt,allSegs:t,hiddenSegs:n,alignmentElRef:e.alignmentElRef,alignGridTop:e.alignGridTop,extraDateSpan:e.extraDateSpan,popoverContent:()=>{let n=(e.eventDrag?e.eventDrag.affectedInstances:null)||(e.eventResize?e.eventResize.affectedInstances:null)||{};return f(p,null,t.map(t=>{let r=t.eventRange.instance.instanceId;return f("div",{className:"fc-daygrid-event-harness",key:r,style:{visibility:n[r]?"hidden":""}},Fa(t)?f(Ga,Object.assign({seg:t,isDragging:!1,isSelected:r===e.eventSelection,defaultDisplayEventEnd:!1},di(t,e.todayRange))):f(Va,Object.assign({seg:t,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:r===e.eventSelection,defaultDisplayEventEnd:!1},di(t,e.todayRange))))}))}})}}function Ya(e){let t=[],n=[];for(let r of e)t.push(r.seg),r.isVisible||n.push(r.seg);return{allSegs:t,invisibleSegs:n}}const Za=on({week:"narrow"});class Xa extends zr{constructor(){super(...arguments),this.rootElRef={current:null},this.state={dayNumberId:Te()},this.handleRootEl=e=>{jr(this.rootElRef,e),jr(this.props.elRef,e)}}render(){let{context:e,props:t,state:n,rootElRef:r}=this,{options:i}=e,{date:s,dateProfile:o}=t;return f(Ws,{elTag:"td",elRef:this.handleRootEl,elClasses:["fc-daygrid-day",...t.extraClassNames||[]],elAttrs:Object.assign(Object.assign(Object.assign({},t.extraDataAttrs),t.showDayNumber?{"aria-labelledby":n.dayNumberId}:{}),{role:"gridcell"}),defaultGenerator:Ja,date:s,dateProfile:o,todayRange:t.todayRange,showDayNumber:t.showDayNumber,extraRenderProps:t.extraRenderProps},(o,a)=>f("div",{className:"fc-daygrid-day-frame fc-scrollgrid-sync-inner",ref:t.innerElRef},t.showWeekNumber&&f(Ys,{elTag:"a",elClasses:["fc-daygrid-week-number"],elAttrs:hr(e,s,"week"),date:s,defaultFormat:Za}),Boolean(!a.isDisabled&&(t.showDayNumber||Fs(i)||t.forceDayTop))&&f("div",{className:"fc-daygrid-day-top"},f(o,{elTag:"a",elClasses:["fc-daygrid-day-number"],elAttrs:Object.assign(Object.assign({},hr(e,s)),{id:n.dayNumberId})})),f("div",{className:"fc-daygrid-day-events",ref:t.fgContentElRef},t.fgContent,f("div",{className:"fc-daygrid-day-bottom",style:{marginTop:t.moreMarginTop}},f(qa,{allDayDate:s,singlePlacements:t.singlePlacements,moreCnt:t.moreCnt,alignmentElRef:r,alignGridTop:!t.showDayNumber,extraDateSpan:t.extraDateSpan,dateProfile:t.dateProfile,eventSelection:t.eventSelection,eventDrag:t.eventDrag,eventResize:t.eventResize,todayRange:t.todayRange}))),f("div",{className:"fc-daygrid-day-bg"},t.bgContent)))}}function Ja(e){return e.dayNumberText||f(p,null," ")}function $a(e,t,n,r,i,s,o){let a=new el;a.allowReslicing=!0,a.strictOrder=r,!0===t||!0===n?(a.maxCoord=s,a.hiddenConsumes=!0):"number"==typeof t?a.maxStackCnt=t:"number"==typeof n&&(a.maxStackCnt=n,a.hiddenConsumes=!0);let l=[],c=[];for(let t=0;t<e.length;t+=1){let n=e[t],{instanceId:r}=n.eventRange.instance,s=i[r];null!=s?l.push({index:t,thickness:s,span:{start:n.firstCol,end:n.lastCol+1}}):c.push(n)}let d=a.addSegs(l),u=a.toRects(),{singleColPlacements:h,multiColPlacements:f,leftoverMargins:g}=function(e,t,n){let r=function(e,t){let n=[];for(let e=0;e<t;e+=1)n.push([]);for(let t of e)for(let e=t.span.start;e<t.span.end;e+=1)n[e].push(t);return n}(e,n.length),i=[],s=[],o=[];for(let e=0;e<n.length;e+=1){let a=r[e],l=[],c=0,d=0;for(let r of a){let i=t[r.index];l.push({seg:Ka(i,e,e+1,n),isVisible:!0,isAbsolute:!1,absoluteTop:r.levelCoord,marginTop:r.levelCoord-c}),c=r.levelCoord+r.thickness}let u=[];c=0,d=0;for(let r of a){let i=t[r.index],s=r.span.end-r.span.start>1,o=r.span.start===e;d+=r.levelCoord-c,c=r.levelCoord+r.thickness,s?(d+=r.thickness,o&&u.push({seg:Ka(i,r.span.start,r.span.end,n),isVisible:!0,isAbsolute:!0,absoluteTop:r.levelCoord,marginTop:0})):o&&(u.push({seg:Ka(i,r.span.start,r.span.end,n),isVisible:!0,isAbsolute:!1,absoluteTop:r.levelCoord,marginTop:d}),d=0)}i.push(l),s.push(u),o.push(d)}return{singleColPlacements:i,multiColPlacements:s,leftoverMargins:o}}(u,e,o),p=[],m=[];for(let e of c){f[e.firstCol].push({seg:e,isVisible:!1,isAbsolute:!0,absoluteTop:0,marginTop:0});for(let t=e.firstCol;t<=e.lastCol;t+=1)h[t].push({seg:Ka(e,t,t+1,o),isVisible:!1,isAbsolute:!1,absoluteTop:0,marginTop:0})}for(let e=0;e<o.length;e+=1)p.push(0);for(let t of d){let n=e[t.index],r=t.span;f[r.start].push({seg:Ka(n,r.start,r.end,o),isVisible:!1,isAbsolute:!0,absoluteTop:0,marginTop:0});for(let e=r.start;e<r.end;e+=1)p[e]+=1,h[e].push({seg:Ka(n,e,e+1,o),isVisible:!1,isAbsolute:!1,absoluteTop:0,marginTop:0})}for(let e=0;e<o.length;e+=1)m.push(g[e]);return{singleColPlacements:h,multiColPlacements:f,moreCnts:p,moreMarginTops:m}}function Ka(e,t,n,r){if(e.firstCol===t&&e.lastCol===n-1)return e;let i=e.eventRange,s=i.range,o=rr(s,{start:r[t].date,end:St(r[n-1].date,1)});return Object.assign(Object.assign({},e),{firstCol:t,lastCol:n-1,eventRange:{def:i.def,ui:Object.assign(Object.assign({},i.ui),{durationEditable:!1}),instance:i.instance,range:o},isStart:e.isStart&&o.start.valueOf()===s.start.valueOf(),isEnd:e.isEnd&&o.end.valueOf()===s.end.valueOf()})}class el extends Ci{constructor(){super(...arguments),this.hiddenConsumes=!1,this.forceHidden={}}addSegs(e){const t=super.addSegs(e),{entriesByLevel:n}=this,r=e=>!this.forceHidden[xi(e)];for(let e=0;e<n.length;e+=1)n[e]=n[e].filter(r);return t}handleInvalidInsertion(e,t,n){const{entriesByLevel:r,forceHidden:i}=this,{touchingEntry:s,touchingLevel:o,touchingLateral:a}=e;if(this.hiddenConsumes&&s){const e=xi(s);if(!i[e])if(this.allowReslicing){const e=Object.assign(Object.assign({},s),{span:Ti(s.span,t.span)});i[xi(e)]=!0,r[o][a]=e,this.splitEntry(s,t,n)}else i[e]=!0,n.push(s)}return super.handleInvalidInsertion(e,t,n)}}class tl extends zr{constructor(){super(...arguments),this.cellElRefs=new Ds,this.frameElRefs=new Ds,this.fgElRefs=new Ds,this.segHarnessRefs=new Ds,this.rootElRef={current:null},this.state={framePositions:null,maxContentHeight:null,eventInstanceHeights:{}},this.handleResize=e=>{e&&this.updateSizing(!0)}}render(){let{props:e,state:t,context:n}=this,{options:r}=n,i=e.cells.length,s=Ua(e.businessHourSegs,i),o=Ua(e.bgEventSegs,i),a=Ua(this.getHighlightSegs(),i),l=Ua(this.getMirrorSegs(),i),{singleColPlacements:c,multiColPlacements:d,moreCnts:u,moreMarginTops:h}=$a(ii(e.fgEventSegs,r.eventOrder),e.dayMaxEvents,e.dayMaxEventRows,r.eventOrderStrict,t.eventInstanceHeights,t.maxContentHeight,e.cells),g=e.eventDrag&&e.eventDrag.affectedInstances||e.eventResize&&e.eventResize.affectedInstances||{};return f("tr",{ref:this.rootElRef,role:"row"},e.renderIntro&&e.renderIntro(),e.cells.map((t,n)=>{let r=this.renderFgSegs(n,e.forPrint?c[n]:d[n],e.todayRange,g),i=this.renderFgSegs(n,function(e,t){if(!e.length)return[];let n=function(e){let t={};for(let n of e)for(let e of n)t[e.seg.eventRange.instance.instanceId]=e.absoluteTop;return t}(t);return e.map(e=>({seg:e,isVisible:!0,isAbsolute:!0,absoluteTop:n[e.eventRange.instance.instanceId],marginTop:0}))}(l[n],d),e.todayRange,{},Boolean(e.eventDrag),Boolean(e.eventResize),!1);return f(Xa,{key:t.key,elRef:this.cellElRefs.createRef(t.key),innerElRef:this.frameElRefs.createRef(t.key),dateProfile:e.dateProfile,date:t.date,showDayNumber:e.showDayNumbers,showWeekNumber:e.showWeekNumbers&&0===n,forceDayTop:e.showWeekNumbers,todayRange:e.todayRange,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,extraRenderProps:t.extraRenderProps,extraDataAttrs:t.extraDataAttrs,extraClassNames:t.extraClassNames,extraDateSpan:t.extraDateSpan,moreCnt:u[n],moreMarginTop:h[n],singlePlacements:c[n],fgContentElRef:this.fgElRefs.createRef(t.key),fgContent:f(p,null,f(p,null,r),f(p,null,i)),bgContent:f(p,null,this.renderFillSegs(a[n],"highlight"),this.renderFillSegs(s[n],"non-business"),this.renderFillSegs(o[n],"bg-event"))})}))}componentDidMount(){this.updateSizing(!0),this.context.addResizeHandler(this.handleResize)}componentDidUpdate(e,t){let n=this.props;this.updateSizing(!pt(e,n))}componentWillUnmount(){this.context.removeResizeHandler(this.handleResize)}getHighlightSegs(){let{props:e}=this;return e.eventDrag&&e.eventDrag.segs.length?e.eventDrag.segs:e.eventResize&&e.eventResize.segs.length?e.eventResize.segs:e.dateSelectionSegs}getMirrorSegs(){let{props:e}=this;return e.eventResize&&e.eventResize.segs.length?e.eventResize.segs:[]}renderFgSegs(e,t,n,r,i,s,o){let{context:a}=this,{eventSelection:l}=this.props,{framePositions:c}=this.state,d=1===this.props.cells.length,u=i||s||o,h=[];if(c)for(let g of t){let{seg:t}=g,{instanceId:p}=t.eventRange.instance,m=p+":"+e,v=g.isVisible&&!r[p],b=g.isAbsolute,y="",E="";b&&(a.isRtl?(E=0,y=c.lefts[t.lastCol]-c.lefts[t.firstCol]):(y=0,E=c.rights[t.firstCol]-c.rights[t.lastCol])),h.push(f("div",{className:"fc-daygrid-event-harness"+(b?" fc-daygrid-event-harness-abs":""),key:m,ref:u?null:this.segHarnessRefs.createRef(m),style:{visibility:v?"":"hidden",marginTop:b?"":g.marginTop,top:b?g.absoluteTop:"",left:y,right:E}},Fa(t)?f(Ga,Object.assign({seg:t,isDragging:i,isSelected:p===l,defaultDisplayEventEnd:d},di(t,n))):f(Va,Object.assign({seg:t,isDragging:i,isResizing:s,isDateSelecting:o,isSelected:p===l,defaultDisplayEventEnd:d},di(t,n)))))}return h}renderFillSegs(e,t){let{isRtl:n}=this.context,{todayRange:r}=this.props,{framePositions:i}=this.state,s=[];if(i)for(let o of e){let e=n?{right:0,left:i.lefts[o.lastCol]-i.lefts[o.firstCol]}:{left:0,right:i.rights[o.firstCol]-i.rights[o.lastCol]};s.push(f("div",{key:hi(o.eventRange),className:"fc-daygrid-bg-harness",style:e},"bg-event"===t?f(Gs,Object.assign({seg:o},di(o,r))):qs(t)))}return f(p,{},...s)}updateSizing(e){let{props:t,state:n,frameElRefs:r}=this;if(!t.forPrint&&null!==t.clientWidth){if(e){let e=t.cells.map(e=>r.currentMap[e.key]);if(e.length){let t=this.rootElRef.current,r=new wr(t,e,!0,!1);n.framePositions&&n.framePositions.similarTo(r)||this.setState({framePositions:new wr(t,e,!0,!1)})}}const i=this.state.eventInstanceHeights,s=this.queryEventInstanceHeights(),o=!0===t.dayMaxEvents||!0===t.dayMaxEventRows;this.safeSetState({eventInstanceHeights:Object.assign(Object.assign({},i),s),maxContentHeight:o?this.computeMaxContentHeight():null})}}queryEventInstanceHeights(){let e=this.segHarnessRefs.currentMap,t={};for(let n in e){let r=Math.round(e[n].getBoundingClientRect().height),i=n.split(":")[0];t[i]=Math.max(t[i]||0,r)}return t}computeMaxContentHeight(){let e=this.props.cells[0].key,t=this.cellElRefs.currentMap[e],n=this.fgElRefs.currentMap[e];return t.getBoundingClientRect().bottom-n.getBoundingClientRect().top}getCellEls(){let e=this.cellElRefs.currentMap;return this.props.cells.map(t=>e[t.key])}}tl.addStateEquality({eventInstanceHeights:pt});class nl extends zr{constructor(){super(...arguments),this.splitBusinessHourSegs=Vt(za),this.splitBgEventSegs=Vt(za),this.splitFgEventSegs=Vt(za),this.splitDateSelectionSegs=Vt(za),this.splitEventDrag=Vt(La),this.splitEventResize=Vt(La),this.rowRefs=new Ds,this.handleRootEl=e=>{this.rootEl=e,e?this.context.registerInteractiveComponent(this,{el:e,isHitComboAllowed:this.props.isHitComboAllowed}):this.context.unregisterInteractiveComponent(this)}}render(){let{props:e}=this,{dateProfile:t,dayMaxEventRows:n,dayMaxEvents:r,expandRows:i}=e,s=e.cells.length,o=this.splitBusinessHourSegs(e.businessHourSegs,s),a=this.splitBgEventSegs(e.bgEventSegs,s),l=this.splitFgEventSegs(e.fgEventSegs,s),c=this.splitDateSelectionSegs(e.dateSelectionSegs,s),d=this.splitEventDrag(e.eventDrag,s),u=this.splitEventResize(e.eventResize,s),h=!0===r||!0===n;return h&&!i&&(h=!1,n=null,r=null),f("div",{className:["fc-daygrid-body",h?"fc-daygrid-body-balanced":"fc-daygrid-body-unbalanced",i?"":"fc-daygrid-body-natural"].join(" "),ref:this.handleRootEl,style:{width:e.clientWidth,minWidth:e.tableMinWidth}},f($i,{unit:"day"},(h,g)=>f(p,null,f("table",{role:"presentation",className:"fc-scrollgrid-sync-table",style:{width:e.clientWidth,minWidth:e.tableMinWidth,height:i?e.clientHeight:""}},e.colGroupNode,f("tbody",{role:"presentation"},e.cells.map((i,h)=>f(tl,{ref:this.rowRefs.createRef(h),key:i.length?i[0].date.toISOString():h,showDayNumbers:s>1,showWeekNumbers:e.showWeekNumbers,todayRange:g,dateProfile:t,cells:i,renderIntro:e.renderRowIntro,businessHourSegs:o[h],eventSelection:e.eventSelection,bgEventSegs:a[h].filter(rl),fgEventSegs:l[h],dateSelectionSegs:c[h],eventDrag:d[h],eventResize:u[h],dayMaxEvents:r,dayMaxEventRows:n,clientWidth:e.clientWidth,clientHeight:e.clientHeight,forPrint:e.forPrint})))))))}prepareHits(){this.rowPositions=new wr(this.rootEl,this.rowRefs.collect().map(e=>e.getCellEls()[0]),!1,!0),this.colPositions=new wr(this.rootEl,this.rowRefs.currentMap[0].getCellEls(),!0,!1)}queryHit(e,t){let{colPositions:n,rowPositions:r}=this,i=n.leftToIndex(e),s=r.topToIndex(t);if(null!=s&&null!=i){let e=this.props.cells[s][i];return{dateProfile:this.props.dateProfile,dateSpan:Object.assign({range:this.getCellRange(s,i),allDay:!0},e.extraDateSpan),dayEl:this.getCellEl(s,i),rect:{left:n.lefts[i],right:n.rights[i],top:r.tops[s],bottom:r.bottoms[s]},layer:0}}return null}getCellEl(e,t){return this.rowRefs.currentMap[e].getCellEls()[t]}getCellRange(e,t){let n=this.props.cells[e][t].date;return{start:n,end:St(n,1)}}}function rl(e){return e.eventRange.def.allDay}class il extends is{constructor(){super(...arguments),this.forceDayIfListItem=!0}sliceRange(e,t){return t.sliceRange(e)}}class sl extends zr{constructor(){super(...arguments),this.slicer=new il,this.tableRef={current:null}}render(){let{props:e,context:t}=this;return f(nl,Object.assign({ref:this.tableRef},this.slicer.sliceProps(e,e.dateProfile,e.nextDayThreshold,t,e.dayTableModel),{dateProfile:e.dateProfile,cells:e.dayTableModel.cells,colGroupNode:e.colGroupNode,tableMinWidth:e.tableMinWidth,renderRowIntro:e.renderRowIntro,dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,showWeekNumbers:e.showWeekNumbers,expandRows:e.expandRows,headerAlignElRef:e.headerAlignElRef,clientWidth:e.clientWidth,clientHeight:e.clientHeight,forPrint:e.forPrint}))}}function ol(e,t){let n=new ns(e.renderRange,t);return new rs(n,/year|month|week/.test(e.currentRangeUnit))}oo(':root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:"";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;padding:2px 3px 0}.fc .fc-daygrid-day-bottom:before{clear:both;content:"";display:table}.fc .fc-daygrid-more-link{cursor:pointer;position:relative;z-index:4}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}');var al=yo({name:"@fullcalendar/daygrid",initialView:"dayGridMonth",views:{dayGrid:{component:class extends ja{constructor(){super(...arguments),this.buildDayTableModel=Vt(ol),this.headerRef={current:null},this.tableRef={current:null}}render(){let{options:e,dateProfileGenerator:t}=this.context,{props:n}=this,r=this.buildDayTableModel(n.dateProfile,t),i=e.dayHeaders&&f(es,{ref:this.headerRef,dateProfile:n.dateProfile,dates:r.headerDates,datesRepDistinctDays:1===r.rowCnt}),s=t=>f(sl,{ref:this.tableRef,dateProfile:n.dateProfile,dayTableModel:r,businessHours:n.businessHours,dateSelection:n.dateSelection,eventStore:n.eventStore,eventUiBases:n.eventUiBases,eventSelection:n.eventSelection,eventDrag:n.eventDrag,eventResize:n.eventResize,nextDayThreshold:e.nextDayThreshold,colGroupNode:t.tableColGroupNode,tableMinWidth:t.tableMinWidth,dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,showWeekNumbers:e.weekNumbers,expandRows:!n.isHeightAuto,headerAlignElRef:this.headerElRef,clientWidth:t.clientWidth,clientHeight:t.clientHeight,forPrint:n.forPrint});return e.dayMinWidth?this.renderHScrollLayout(i,s,r.colCnt,e.dayMinWidth):this.renderSimpleLayout(i,s)}},dateProfileGeneratorClass:class extends Lr{buildRenderRange(e,t,n){let r,{dateEnv:i}=this.props,s=super.buildRenderRange(e,t,n),o=s.start,a=s.end;if(/^(year|month)$/.test(t)&&(o=i.startOfWeek(o),r=i.startOfWeek(a),r.valueOf()!==a.valueOf()&&(a=Dt(r,1))),this.props.monthMode&&this.props.fixedWeekCount){a=Dt(a,6-Math.ceil(Ct(o,a)))}return{start:o,end:a}}}},dayGridDay:{type:"dayGrid",duration:{days:1}},dayGridWeek:{type:"dayGrid",duration:{weeks:1}},dayGridMonth:{type:"dayGrid",duration:{months:1},monthMode:!0,fixedWeekCount:!0}}});class ll extends Kn{getKeyInfo(){return{allDay:{},timed:{}}}getKeysForDateSpan(e){return e.allDay?["allDay"]:["timed"]}getKeysForEventDef(e){return e.allDay?Kr(e)?["timed","allDay"]:["allDay"]:["timed"]}}const cl=on({hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"short"});function dl(e){let t=["fc-timegrid-slot","fc-timegrid-slot-label",e.isLabeled?"fc-scrollgrid-shrink":"fc-timegrid-slot-minor"];return f(Nr.Consumer,null,n=>{if(!e.isLabeled)return f("td",{className:t.join(" "),"data-time":e.isoTimeStr});let{dateEnv:r,options:i,viewApi:s}=n,o=null==i.slotLabelFormat?cl:Array.isArray(i.slotLabelFormat)?on(i.slotLabelFormat[0]):on(i.slotLabelFormat),a={level:0,time:e.time,date:r.toDate(e.date),view:s,text:r.format(e.date,o)};return f(qi,{elTag:"td",elClasses:t,elAttrs:{"data-time":e.isoTimeStr},renderProps:a,generatorName:"slotLabelContent",generator:i.slotLabelContent||ul,classNameGenerator:i.slotLabelClassNames,didMount:i.slotLabelDidMount,willUnmount:i.slotLabelWillUnmount},e=>f("div",{className:"fc-timegrid-slot-label-frame fc-scrollgrid-shrink-frame"},f(e,{elTag:"div",elClasses:["fc-timegrid-slot-label-cushion","fc-scrollgrid-shrink-cushion"]})))})}function ul(e){return e.text}class hl extends Br{render(){return this.props.slatMetas.map(e=>f("tr",{key:e.key},f(dl,Object.assign({},e))))}}const fl=on({week:"short"});class gl extends zr{constructor(){super(...arguments),this.allDaySplitter=new ll,this.headerElRef={current:null},this.rootElRef={current:null},this.scrollerElRef={current:null},this.state={slatCoords:null},this.handleScrollTopRequest=e=>{let t=this.scrollerElRef.current;t&&(t.scrollTop=e)},this.renderHeadAxis=(e,t="")=>{let{options:n}=this.context,{dateProfile:r}=this.props,i=r.renderRange,s=1===Rt(i.start,i.end)?hr(this.context,i.start,"week"):{};return n.weekNumbers&&"day"===e?f(Ys,{elTag:"th",elClasses:["fc-timegrid-axis","fc-scrollgrid-shrink"],elAttrs:{"aria-hidden":!0},date:i.start,defaultFormat:fl},e=>f("div",{className:["fc-timegrid-axis-frame","fc-scrollgrid-shrink-frame","fc-timegrid-axis-frame-liquid"].join(" "),style:{height:t}},f(e,{elTag:"a",elClasses:["fc-timegrid-axis-cushion","fc-scrollgrid-shrink-cushion","fc-scrollgrid-sync-inner"],elAttrs:s}))):f("th",{"aria-hidden":!0,className:"fc-timegrid-axis"},f("div",{className:"fc-timegrid-axis-frame",style:{height:t}}))},this.renderTableRowAxis=e=>{let{options:t,viewApi:n}=this.context,r={text:t.allDayText,view:n};return f(qi,{elTag:"td",elClasses:["fc-timegrid-axis","fc-scrollgrid-shrink"],elAttrs:{"aria-hidden":!0},renderProps:r,generatorName:"allDayContent",generator:t.allDayContent||pl,classNameGenerator:t.allDayClassNames,didMount:t.allDayDidMount,willUnmount:t.allDayWillUnmount},t=>f("div",{className:["fc-timegrid-axis-frame","fc-scrollgrid-shrink-frame",null==e?" fc-timegrid-axis-frame-liquid":""].join(" "),style:{height:e}},f(t,{elTag:"span",elClasses:["fc-timegrid-axis-cushion","fc-scrollgrid-shrink-cushion","fc-scrollgrid-sync-inner"]})))},this.handleSlatCoords=e=>{this.setState({slatCoords:e})}}renderSimpleLayout(e,t,n){let{context:r,props:i}=this,s=[],o=Ns(r.options);return e&&s.push({type:"header",key:"header",isSticky:o,chunk:{elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}}),t&&(s.push({type:"body",key:"all-day",chunk:{content:t}}),s.push({type:"body",key:"all-day-divider",outerContent:f("tr",{role:"presentation",className:"fc-scrollgrid-section"},f("td",{className:"fc-timegrid-divider "+r.theme.getClass("tableCellShaded")}))})),s.push({type:"body",key:"body",liquid:!0,expandRows:Boolean(r.options.expandRows),chunk:{scrollerElRef:this.scrollerElRef,content:n}}),f(io,{elRef:this.rootElRef,elClasses:["fc-timegrid"],viewSpec:r.viewSpec},f(Hs,{liquid:!i.isHeightAuto&&!i.forPrint,collapsibleWidth:i.forPrint,cols:[{width:"shrink"}],sections:s}))}renderHScrollLayout(e,t,n,r,i,s,o){let a=this.context.pluginHooks.scrollGridImpl;if(!a)throw new Error("No ScrollGrid implementation");let{context:l,props:c}=this,d=!c.forPrint&&Ns(l.options),u=!c.forPrint&&Ps(l.options),h=[];e&&h.push({type:"header",key:"header",isSticky:d,syncRowHeights:!0,chunks:[{key:"axis",rowContent:e=>f("tr",{role:"presentation"},this.renderHeadAxis("day",e.rowSyncHeights[0]))},{key:"cols",elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}]}),t&&(h.push({type:"body",key:"all-day",syncRowHeights:!0,chunks:[{key:"axis",rowContent:e=>f("tr",{role:"presentation"},this.renderTableRowAxis(e.rowSyncHeights[0]))},{key:"cols",content:t}]}),h.push({key:"all-day-divider",type:"body",outerContent:f("tr",{role:"presentation",className:"fc-scrollgrid-section"},f("td",{colSpan:2,className:"fc-timegrid-divider "+l.theme.getClass("tableCellShaded")}))}));let g=l.options.nowIndicator;return h.push({type:"body",key:"body",liquid:!0,expandRows:Boolean(l.options.expandRows),chunks:[{key:"axis",content:e=>f("div",{className:"fc-timegrid-axis-chunk"},f("table",{"aria-hidden":!0,style:{height:e.expandRows?e.clientHeight:""}},e.tableColGroupNode,f("tbody",null,f(hl,{slatMetas:s}))),f("div",{className:"fc-timegrid-now-indicator-container"},f($i,{unit:g?"minute":"day"},e=>{let t=g&&o&&o.safeComputeTop(e);return"number"==typeof t?f(Us,{elClasses:["fc-timegrid-now-indicator-arrow"],elStyle:{top:t},isAxis:!0,date:e}):null})))},{key:"cols",scrollerElRef:this.scrollerElRef,content:n}]}),u&&h.push({key:"footer",type:"footer",isSticky:!0,chunks:[{key:"axis",content:Os},{key:"cols",content:Os}]}),f(io,{elRef:this.rootElRef,elClasses:["fc-timegrid"],viewSpec:l.viewSpec},f(a,{liquid:!c.isHeightAuto&&!c.forPrint,collapsibleWidth:!1,colGroups:[{width:"shrink",cols:[{width:"shrink"}]},{cols:[{span:r,minWidth:i}]}],sections:h}))}getAllDayMaxEventProps(){let{dayMaxEvents:e,dayMaxEventRows:t}=this.context.options;return!0!==e&&!0!==t||(e=void 0,t=5),{dayMaxEvents:e,dayMaxEventRows:t}}}function pl(e){return e.text}class ml{constructor(e,t,n){this.positions=e,this.dateProfile=t,this.slotDuration=n}safeComputeTop(e){let{dateProfile:t}=this;if(ar(t.currentRange,e)){let n=kt(e),r=e.valueOf()-n.valueOf();if(r>=ot(t.slotMinTime)&&r<ot(t.slotMaxTime))return this.computeTimeTop(tt(r))}return null}computeDateTop(e,t){return t||(t=kt(e)),this.computeTimeTop(tt(e.valueOf()-t.valueOf()))}computeTimeTop(e){let t,n,{positions:r,dateProfile:i}=this,s=r.els.length,o=(e.milliseconds-ot(i.slotMinTime))/ot(this.slotDuration);return o=Math.max(0,o),o=Math.min(s,o),t=Math.floor(o),t=Math.min(t,s-1),n=o-t,r.tops[t]+r.getHeight(t)*n}}class vl extends Br{render(){let{props:e,context:t}=this,{options:n}=t,{slatElRefs:r}=e;return f("tbody",null,e.slatMetas.map((i,s)=>{let o={time:i.time,date:t.dateEnv.toDate(i.date),view:t.viewApi};return f("tr",{key:i.key,ref:r.createRef(i.key)},e.axis&&f(dl,Object.assign({},i)),f(qi,{elTag:"td",elClasses:["fc-timegrid-slot","fc-timegrid-slot-lane",!i.isLabeled&&"fc-timegrid-slot-minor"],elAttrs:{"data-time":i.isoTimeStr},renderProps:o,generatorName:"slotLaneContent",generator:n.slotLaneContent,classNameGenerator:n.slotLaneClassNames,didMount:n.slotLaneDidMount,willUnmount:n.slotLaneWillUnmount}))}))}}class bl extends Br{constructor(){super(...arguments),this.rootElRef={current:null},this.slatElRefs=new Ds}render(){let{props:e,context:t}=this;return f("div",{ref:this.rootElRef,className:"fc-timegrid-slots"},f("table",{"aria-hidden":!0,className:t.theme.getClass("table"),style:{minWidth:e.tableMinWidth,width:e.clientWidth,height:e.minHeight}},e.tableColGroupNode,f(vl,{slatElRefs:this.slatElRefs,axis:e.axis,slatMetas:e.slatMetas})))}componentDidMount(){this.updateSizing()}componentDidUpdate(){this.updateSizing()}componentWillUnmount(){this.props.onCoords&&this.props.onCoords(null)}updateSizing(){let{context:e,props:t}=this;if(t.onCoords&&null!==t.clientWidth){this.rootElRef.current.offsetHeight&&t.onCoords(new ml(new wr(this.rootElRef.current,(n=this.slatElRefs.currentMap,t.slatMetas.map(e=>n[e.key])),!1,!0),this.props.dateProfile,e.options.slotDuration))}var n}}function yl(e,t){let n,r=[];for(n=0;n<t;n+=1)r.push([]);if(e)for(n=0;n<e.length;n+=1)r[e[n].col].push(e[n]);return r}function El(e,t){let n=[];if(e){for(let r=0;r<t;r+=1)n[r]={affectedInstances:e.affectedInstances,isEvent:e.isEvent,segs:[]};for(let t of e.segs)n[t.col].segs.push(t)}else for(let e=0;e<t;e+=1)n[e]=null;return n}class Al extends Br{render(){let{props:e}=this;return f($s,{elClasses:["fc-timegrid-more-link"],elStyle:{top:e.top,bottom:e.bottom},allDayDate:null,moreCnt:e.hiddenSegs.length,allSegs:e.hiddenSegs,hiddenSegs:e.hiddenSegs,extraDateSpan:e.extraDateSpan,dateProfile:e.dateProfile,todayRange:e.todayRange,popoverContent:()=>Il(e.hiddenSegs,e),defaultGenerator:Dl},e=>f(e,{elTag:"div",elClasses:["fc-timegrid-more-link-inner","fc-sticky"]}))}}function Dl(e){return e.shortText}function Sl(e,t,n){let r=new Ci;null!=t&&(r.strictOrder=t),null!=n&&(r.maxStackCnt=n);let i=_i(r.addSegs(e)),s=function(e){const{entriesByLevel:t}=e,n=xl((e,t)=>e+":"+t,(r,i)=>{let s=wl(function(e,t,n){let{levelCoords:r,entriesByLevel:i}=e,s=i[t][n],o=r[t]+s.thickness,a=r.length,l=t;for(;l<a&&r[l]<o;l+=1);for(;l<a;l+=1){let e,t=i[l],n=Mi(t,s.span.start,Ri),r=n[0]+n[1],o=r;for(;(e=t[o])&&e.span.start<s.span.end;)o+=1;if(r<o)return{level:l,lateralStart:r,lateralEnd:o}}return null}(e,r,i),n),o=t[r][i];return[Object.assign(Object.assign({},o),{nextLevelNodes:s[0]}),o.thickness+s[1]]});return wl(t.length?{level:0,lateralStart:0,lateralEnd:t[0].length}:null,n)[0]}(r);return s=function(e,t){const n=xl((e,t,n)=>xi(e),(e,r,i)=>{let s,{nextLevelNodes:o,thickness:a}=e,l=a+i,c=a/l,d=[];if(o.length)for(let e of o)if(void 0===s){let t=n(e,r,l);s=t[0],d.push(t[1])}else{let t=n(e,s,0);d.push(t[1])}else s=t;let u=(s-r)*c;return[s-u,Object.assign(Object.assign({},e),{thickness:u,nextLevelNodes:d})]});return e.map(e=>n(e,0,0)[1])}(s,1),{segRects:function(e){let t=[];const n=xl((e,t,n)=>xi(e),(e,n,i)=>{let s=Object.assign(Object.assign({},e),{levelCoord:n,stackDepth:i,stackForward:0});return t.push(s),s.stackForward=r(e.nextLevelNodes,n+e.thickness,i+1)+1});function r(e,t,r){let i=0;for(let s of e)i=Math.max(n(s,t,r),i);return i}return r(e,0,0),t}(s),hiddenGroups:i}}function wl(e,t){if(!e)return[[],0];let{level:n,lateralStart:r,lateralEnd:i}=e,s=r,o=[];for(;s<i;)o.push(t(n,s)),s+=1;return o.sort(Cl),[o.map(Rl),o[0][1]]}function Cl(e,t){return t[1]-e[1]}function Rl(e){return e[0]}function xl(e,t){const n={};return(...r)=>{let i=e(...r);return i in n?n[i]:n[i]=t(...r)}}function _l(e,t,n=null,r=0){let i=[];if(n)for(let s=0;s<e.length;s+=1){let o=e[s],a=n.computeDateTop(o.start,t),l=Math.max(a+(r||0),n.computeDateTop(o.end,t));i.push({start:Math.round(a),end:Math.round(l)})}return i}const Tl=on({hour:"numeric",minute:"2-digit",meridiem:!1});class kl extends Br{render(){return f(js,Object.assign({},this.props,{elClasses:["fc-timegrid-event","fc-v-event",this.props.isShort&&"fc-timegrid-event-short"],defaultTimeFormat:Tl}))}}class Ml extends Br{constructor(){super(...arguments),this.sortEventSegs=Vt(ii)}render(){let{props:e,context:t}=this,{options:n}=t,r=n.selectMirror,i=e.eventDrag&&e.eventDrag.segs||e.eventResize&&e.eventResize.segs||r&&e.dateSelectionSegs||[],s=e.eventDrag&&e.eventDrag.affectedInstances||e.eventResize&&e.eventResize.affectedInstances||{},o=this.sortEventSegs(e.fgEventSegs,n.eventOrder);return f(Ws,{elTag:"td",elRef:e.elRef,elClasses:["fc-timegrid-col",...e.extraClassNames||[]],elAttrs:Object.assign({role:"gridcell"},e.extraDataAttrs),date:e.date,dateProfile:e.dateProfile,todayRange:e.todayRange,extraRenderProps:e.extraRenderProps},t=>f("div",{className:"fc-timegrid-col-frame"},f("div",{className:"fc-timegrid-col-bg"},this.renderFillSegs(e.businessHourSegs,"non-business"),this.renderFillSegs(e.bgEventSegs,"bg-event"),this.renderFillSegs(e.dateSelectionSegs,"highlight")),f("div",{className:"fc-timegrid-col-events"},this.renderFgSegs(o,s,!1,!1,!1)),f("div",{className:"fc-timegrid-col-events"},this.renderFgSegs(i,{},Boolean(e.eventDrag),Boolean(e.eventResize),Boolean(r))),f("div",{className:"fc-timegrid-now-indicator-container"},this.renderNowIndicator(e.nowIndicatorSegs)),Fs(n)&&f(t,{elTag:"div",elClasses:["fc-timegrid-col-misc"]})))}renderFgSegs(e,t,n,r,i){let{props:s}=this;return s.forPrint?Il(e,s):this.renderPositionedFgSegs(e,t,n,r,i)}renderPositionedFgSegs(e,t,n,r,i){let{eventMaxStack:s,eventShortHeight:o,eventOrderStrict:a,eventMinHeight:l}=this.context.options,{date:c,slatCoords:d,eventSelection:u,todayRange:h,nowDate:g}=this.props,m=n||r||i,v=_l(e,c,d,l),{segPlacements:b,hiddenGroups:y}=function(e,t,n,r){let i=[],s=[];for(let n=0;n<e.length;n+=1){let r=t[n];r?i.push({index:n,thickness:1,span:r}):s.push(e[n])}let{segRects:o,hiddenGroups:a}=Sl(i,n,r),l=[];for(let t of o)l.push({seg:e[t.index],rect:t});for(let e of s)l.push({seg:e,rect:null});return{segPlacements:l,hiddenGroups:a}}(e,v,a,s);return f(p,null,this.renderHiddenGroups(y,e),b.map(e=>{let{seg:s,rect:a}=e,l=s.eventRange.instance.instanceId,c=m||Boolean(!t[l]&&a),d=Ol(a&&a.span),p=!m&&a?this.computeSegHStyle(a):{left:0,right:0},v=Boolean(a)&&a.stackForward>0,b=Boolean(a)&&a.span.end-a.span.start<o;return f("div",{className:"fc-timegrid-event-harness"+(v?" fc-timegrid-event-harness-inset":""),key:l,style:Object.assign(Object.assign({visibility:c?"":"hidden"},d),p)},f(kl,Object.assign({seg:s,isDragging:n,isResizing:r,isDateSelecting:i,isSelected:l===u,isShort:b},di(s,h,g))))}))}renderHiddenGroups(e,t){let{extraDateSpan:n,dateProfile:r,todayRange:i,nowDate:s,eventSelection:o,eventDrag:a,eventResize:l}=this.props;return f(p,null,e.map(e=>{let c=Ol(e.span),d=(u=e.entries,h=t,u.map(e=>h[e.index]));var u,h;return f(Al,{key:zt(to(d)),hiddenSegs:d,top:c.top,bottom:c.bottom,extraDateSpan:n,dateProfile:r,todayRange:i,nowDate:s,eventSelection:o,eventDrag:a,eventResize:l})}))}renderFillSegs(e,t){let{props:n,context:r}=this,i=_l(e,n.date,n.slatCoords,r.options.eventMinHeight).map((r,i)=>{let s=e[i];return f("div",{key:hi(s.eventRange),className:"fc-timegrid-bg-harness",style:Ol(r)},"bg-event"===t?f(Gs,Object.assign({seg:s},di(s,n.todayRange,n.nowDate))):qs(t))});return f(p,null,i)}renderNowIndicator(e){let{slatCoords:t,date:n}=this.props;return t?e.map((e,r)=>f(Us,{key:r,elClasses:["fc-timegrid-now-indicator-line"],elStyle:{top:t.computeDateTop(e.start,n)},isAxis:!1,date:n})):null}computeSegHStyle(e){let t,n,{isRtl:r,options:i}=this.context,s=i.slotEventOverlap,o=e.levelCoord,a=e.levelCoord+e.thickness;s&&(a=Math.min(1,o+2*(a-o))),r?(t=1-a,n=o):(t=o,n=1-a);let l={zIndex:e.stackDepth+1,left:100*t+"%",right:100*n+"%"};return s&&!e.stackForward&&(l[r?"marginLeft":"marginRight"]=20),l}}function Il(e,{todayRange:t,nowDate:n,eventSelection:r,eventDrag:i,eventResize:s}){let o=(i?i.affectedInstances:null)||(s?s.affectedInstances:null)||{};return f(p,null,e.map(e=>{let i=e.eventRange.instance.instanceId;return f("div",{key:i,style:{visibility:o[i]?"hidden":""}},f(kl,Object.assign({seg:e,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:i===r,isShort:!1},di(e,t,n))))}))}function Ol(e){return e?{top:e.start,bottom:-e.end}:{top:"",bottom:""}}class Nl extends Br{constructor(){super(...arguments),this.splitFgEventSegs=Vt(yl),this.splitBgEventSegs=Vt(yl),this.splitBusinessHourSegs=Vt(yl),this.splitNowIndicatorSegs=Vt(yl),this.splitDateSelectionSegs=Vt(yl),this.splitEventDrag=Vt(El),this.splitEventResize=Vt(El),this.rootElRef={current:null},this.cellElRefs=new Ds}render(){let{props:e,context:t}=this,n=t.options.nowIndicator&&e.slatCoords&&e.slatCoords.safeComputeTop(e.nowDate),r=e.cells.length,i=this.splitFgEventSegs(e.fgEventSegs,r),s=this.splitBgEventSegs(e.bgEventSegs,r),o=this.splitBusinessHourSegs(e.businessHourSegs,r),a=this.splitNowIndicatorSegs(e.nowIndicatorSegs,r),l=this.splitDateSelectionSegs(e.dateSelectionSegs,r),c=this.splitEventDrag(e.eventDrag,r),d=this.splitEventResize(e.eventResize,r);return f("div",{className:"fc-timegrid-cols",ref:this.rootElRef},f("table",{role:"presentation",style:{minWidth:e.tableMinWidth,width:e.clientWidth}},e.tableColGroupNode,f("tbody",{role:"presentation"},f("tr",{role:"row"},e.axis&&f("td",{"aria-hidden":!0,className:"fc-timegrid-col fc-timegrid-axis"},f("div",{className:"fc-timegrid-col-frame"},f("div",{className:"fc-timegrid-now-indicator-container"},"number"==typeof n&&f(Us,{elClasses:["fc-timegrid-now-indicator-arrow"],elStyle:{top:n},isAxis:!0,date:e.nowDate})))),e.cells.map((t,n)=>f(Ml,{key:t.key,elRef:this.cellElRefs.createRef(t.key),dateProfile:e.dateProfile,date:t.date,nowDate:e.nowDate,todayRange:e.todayRange,extraRenderProps:t.extraRenderProps,extraDataAttrs:t.extraDataAttrs,extraClassNames:t.extraClassNames,extraDateSpan:t.extraDateSpan,fgEventSegs:i[n],bgEventSegs:s[n],businessHourSegs:o[n],nowIndicatorSegs:a[n],dateSelectionSegs:l[n],eventDrag:c[n],eventResize:d[n],slatCoords:e.slatCoords,eventSelection:e.eventSelection,forPrint:e.forPrint}))))))}componentDidMount(){this.updateCoords()}componentDidUpdate(){this.updateCoords()}updateCoords(){let{props:e}=this;var t;e.onColCoords&&null!==e.clientWidth&&e.onColCoords(new wr(this.rootElRef.current,(t=this.cellElRefs.currentMap,e.cells.map(e=>t[e.key])),!0,!1))}}class Pl extends zr{constructor(){super(...arguments),this.processSlotOptions=Vt(Hl),this.state={slatCoords:null},this.handleRootEl=e=>{e?this.context.registerInteractiveComponent(this,{el:e,isHitComboAllowed:this.props.isHitComboAllowed}):this.context.unregisterInteractiveComponent(this)},this.handleScrollRequest=e=>{let{onScrollTopRequest:t}=this.props,{slatCoords:n}=this.state;if(t&&n){if(e.time){let r=n.computeTimeTop(e.time);r=Math.ceil(r),r&&(r+=1),t(r)}return!0}return!1},this.handleColCoords=e=>{this.colCoords=e},this.handleSlatCoords=e=>{this.setState({slatCoords:e}),this.props.onSlatCoords&&this.props.onSlatCoords(e)}}render(){let{props:e,state:t}=this;return f("div",{className:"fc-timegrid-body",ref:this.handleRootEl,style:{width:e.clientWidth,minWidth:e.tableMinWidth}},f(bl,{axis:e.axis,dateProfile:e.dateProfile,slatMetas:e.slatMetas,clientWidth:e.clientWidth,minHeight:e.expandRows?e.clientHeight:"",tableMinWidth:e.tableMinWidth,tableColGroupNode:e.axis?e.tableColGroupNode:null,onCoords:this.handleSlatCoords}),f(Nl,{cells:e.cells,axis:e.axis,dateProfile:e.dateProfile,businessHourSegs:e.businessHourSegs,bgEventSegs:e.bgEventSegs,fgEventSegs:e.fgEventSegs,dateSelectionSegs:e.dateSelectionSegs,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,todayRange:e.todayRange,nowDate:e.nowDate,nowIndicatorSegs:e.nowIndicatorSegs,clientWidth:e.clientWidth,tableMinWidth:e.tableMinWidth,tableColGroupNode:e.tableColGroupNode,slatCoords:t.slatCoords,onColCoords:this.handleColCoords,forPrint:e.forPrint}))}componentDidMount(){this.scrollResponder=this.context.createScrollResponder(this.handleScrollRequest)}componentDidUpdate(e){this.scrollResponder.update(e.dateProfile!==this.props.dateProfile)}componentWillUnmount(){this.scrollResponder.detach()}queryHit(e,t){let{dateEnv:n,options:r}=this.context,{colCoords:i}=this,{dateProfile:s}=this.props,{slatCoords:o}=this.state,{snapDuration:a,snapsPerSlot:l}=this.processSlotOptions(this.props.slotDuration,r.snapDuration),c=i.leftToIndex(e),d=o.positions.topToIndex(t);if(null!=c&&null!=d){let e=this.props.cells[c],r=o.positions.tops[d],u=o.positions.getHeight(d),h=(t-r)/u,f=d*l+Math.floor(h*l),g=this.props.cells[c].date,p=rt(s.slotMinTime,it(a,f)),m=n.add(g,p),v=n.add(m,a);return{dateProfile:s,dateSpan:Object.assign({range:{start:m,end:v},allDay:!1},e.extraDateSpan),dayEl:i.els[c],rect:{left:i.lefts[c],right:i.rights[c],top:r,bottom:r+u},layer:0}}return null}}function Hl(e,t){let n=t||e,r=at(e,n);return null===r&&(n=e,r=1),{snapDuration:n,snapsPerSlot:r}}class Bl extends is{sliceRange(e,t){let n=[];for(let r=0;r<t.length;r+=1){let i=rr(e,t[r]);i&&n.push({start:i.start,end:i.end,isStart:i.start.valueOf()===e.start.valueOf(),isEnd:i.end.valueOf()===e.end.valueOf(),col:r})}return n}}class jl extends zr{constructor(){super(...arguments),this.buildDayRanges=Vt(zl),this.slicer=new Bl,this.timeColsRef={current:null}}render(){let{props:e,context:t}=this,{dateProfile:n,dayTableModel:r}=e,i=t.options.nowIndicator,s=this.buildDayRanges(r,n,t.dateEnv);return f($i,{unit:i?"minute":"day"},(o,a)=>f(Pl,Object.assign({ref:this.timeColsRef},this.slicer.sliceProps(e,n,null,t,s),{forPrint:e.forPrint,axis:e.axis,dateProfile:n,slatMetas:e.slatMetas,slotDuration:e.slotDuration,cells:r.cells[0],tableColGroupNode:e.tableColGroupNode,tableMinWidth:e.tableMinWidth,clientWidth:e.clientWidth,clientHeight:e.clientHeight,expandRows:e.expandRows,nowDate:o,nowIndicatorSegs:i&&this.slicer.sliceNowDate(o,t,s),todayRange:a,onScrollTopRequest:e.onScrollTopRequest,onSlatCoords:e.onSlatCoords})))}}function zl(e,t,n){let r=[];for(let i of e.headerDates)r.push({start:n.add(i,t.slotMinTime),end:n.add(i,t.slotMaxTime)});return r}const Ul=[{hours:1},{minutes:30},{minutes:15},{seconds:30},{seconds:15}];function Ll(e,t,n,r,i){let s=new Date(0),o=e,a=tt(0),l=n||function(e){let t,n,r;for(t=Ul.length-1;t>=0;t-=1)if(n=tt(Ul[t]),r=at(n,e),null!==r&&r>1)return n;return e}(r),c=[];for(;ot(o)<ot(t);){let e=i.add(s,o),t=null!==at(a,l);c.push({date:e,time:o,key:e.toISOString(),isoTimeStr:Lt(e),isLabeled:t}),o=rt(o,r),a=rt(a,r)}return c}function Wl(e,t){let n=new ns(e.renderRange,t);return new rs(n,!1)}const Fl={allDaySlot:Boolean};oo('.fc-v-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-v-event .fc-event-main{color:var(--fc-event-text-color);height:100%}.fc-v-event .fc-event-main-frame{display:flex;flex-direction:column;height:100%}.fc-v-event .fc-event-time{flex-grow:0;flex-shrink:0;max-height:100%;overflow:hidden}.fc-v-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-height:0}.fc-v-event .fc-event-title{bottom:0;max-height:100%;overflow:hidden;top:0}.fc-v-event:not(.fc-event-start){border-top-left-radius:0;border-top-right-radius:0;border-top-width:0}.fc-v-event:not(.fc-event-end){border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-width:0}.fc-v-event.fc-event-selected:before{left:-10px;right:-10px}.fc-v-event .fc-event-resizer-start{cursor:n-resize}.fc-v-event .fc-event-resizer-end{cursor:s-resize}.fc-v-event:not(.fc-event-selected) .fc-event-resizer{height:var(--fc-event-resizer-thickness);left:0;right:0}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start{top:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer{left:50%;margin-left:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-start{top:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc .fc-timegrid .fc-daygrid-body{z-index:2}.fc .fc-timegrid-divider{padding:0 0 2px}.fc .fc-timegrid-body{min-height:100%;position:relative;z-index:1}.fc .fc-timegrid-axis-chunk{position:relative}.fc .fc-timegrid-axis-chunk>table,.fc .fc-timegrid-slots{position:relative;z-index:1}.fc .fc-timegrid-slot{border-bottom:0;height:1.5em}.fc .fc-timegrid-slot:empty:before{content:"\\00a0"}.fc .fc-timegrid-slot-minor{border-top-style:dotted}.fc .fc-timegrid-slot-label-cushion{display:inline-block;white-space:nowrap}.fc .fc-timegrid-slot-label{vertical-align:middle}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{padding:0 4px}.fc .fc-timegrid-axis-frame-liquid{height:100%}.fc .fc-timegrid-axis-frame{align-items:center;display:flex;justify-content:flex-end;overflow:hidden}.fc .fc-timegrid-axis-cushion{flex-shrink:0;max-width:60px}.fc-direction-ltr .fc-timegrid-slot-label-frame{text-align:right}.fc-direction-rtl .fc-timegrid-slot-label-frame{text-align:left}.fc-liquid-hack .fc-timegrid-axis-frame-liquid{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-timegrid-col-frame{min-height:100%;position:relative}.fc-media-screen.fc-liquid-hack .fc-timegrid-col-frame{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols{bottom:0;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols>table{height:100%}.fc-media-screen .fc-timegrid-col-bg,.fc-media-screen .fc-timegrid-col-events,.fc-media-screen .fc-timegrid-now-indicator-container{left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col-bg{z-index:2}.fc .fc-timegrid-col-bg .fc-non-business{z-index:1}.fc .fc-timegrid-col-bg .fc-bg-event{z-index:2}.fc .fc-timegrid-col-bg .fc-highlight{z-index:3}.fc .fc-timegrid-bg-harness{left:0;position:absolute;right:0}.fc .fc-timegrid-col-events{z-index:3}.fc .fc-timegrid-now-indicator-container{bottom:0;overflow:hidden}.fc-direction-ltr .fc-timegrid-col-events{margin:0 2.5% 0 2px}.fc-direction-rtl .fc-timegrid-col-events{margin:0 2px 0 2.5%}.fc-timegrid-event-harness{position:absolute}.fc-timegrid-event-harness>.fc-timegrid-event{bottom:0;left:0;position:absolute;right:0;top:0}.fc-timegrid-event-harness-inset .fc-timegrid-event,.fc-timegrid-event.fc-event-mirror,.fc-timegrid-more-link{box-shadow:0 0 0 1px var(--fc-page-bg-color)}.fc-timegrid-event,.fc-timegrid-more-link{border-radius:3px;font-size:var(--fc-small-font-size)}.fc-timegrid-event{margin-bottom:1px}.fc-timegrid-event .fc-event-main{padding:1px 1px 0}.fc-timegrid-event .fc-event-time{font-size:var(--fc-small-font-size);margin-bottom:1px;white-space:nowrap}.fc-timegrid-event-short .fc-event-main-frame{flex-direction:row;overflow:hidden}.fc-timegrid-event-short .fc-event-time:after{content:"\\00a0-\\00a0"}.fc-timegrid-event-short .fc-event-title{font-size:var(--fc-small-font-size)}.fc-timegrid-more-link{background:var(--fc-more-link-bg-color);color:var(--fc-more-link-text-color);cursor:pointer;margin-bottom:1px;position:absolute;z-index:9999}.fc-timegrid-more-link-inner{padding:3px 2px;top:0}.fc-direction-ltr .fc-timegrid-more-link{right:0}.fc-direction-rtl .fc-timegrid-more-link{left:0}.fc .fc-timegrid-now-indicator-line{border-color:var(--fc-now-indicator-color);border-style:solid;border-width:1px 0 0;left:0;position:absolute;right:0;z-index:4}.fc .fc-timegrid-now-indicator-arrow{border-color:var(--fc-now-indicator-color);border-style:solid;margin-top:-5px;position:absolute;z-index:4}.fc-direction-ltr .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 0 5px 6px;left:0}.fc-direction-rtl .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 6px 5px 0;right:0}');var Vl=yo({name:"@fullcalendar/timegrid",initialView:"timeGridWeek",optionRefiners:Fl,views:{timeGrid:{component:class extends gl{constructor(){super(...arguments),this.buildTimeColsModel=Vt(Wl),this.buildSlatMetas=Vt(Ll)}render(){let{options:e,dateEnv:t,dateProfileGenerator:n}=this.context,{props:r}=this,{dateProfile:i}=r,s=this.buildTimeColsModel(i,n),o=this.allDaySplitter.splitProps(r),a=this.buildSlatMetas(i.slotMinTime,i.slotMaxTime,e.slotLabelInterval,e.slotDuration,t),{dayMinWidth:l}=e,c=!l,d=l,u=e.dayHeaders&&f(es,{dates:s.headerDates,dateProfile:i,datesRepDistinctDays:!0,renderIntro:c?this.renderHeadAxis:null}),h=!1!==e.allDaySlot&&(t=>f(sl,Object.assign({},o.allDay,{dateProfile:i,dayTableModel:s,nextDayThreshold:e.nextDayThreshold,tableMinWidth:t.tableMinWidth,colGroupNode:t.tableColGroupNode,renderRowIntro:c?this.renderTableRowAxis:null,showWeekNumbers:!1,expandRows:!1,headerAlignElRef:this.headerElRef,clientWidth:t.clientWidth,clientHeight:t.clientHeight,forPrint:r.forPrint},this.getAllDayMaxEventProps()))),g=t=>f(jl,Object.assign({},o.timed,{dayTableModel:s,dateProfile:i,axis:c,slotDuration:e.slotDuration,slatMetas:a,forPrint:r.forPrint,tableColGroupNode:t.tableColGroupNode,tableMinWidth:t.tableMinWidth,clientWidth:t.clientWidth,clientHeight:t.clientHeight,onSlatCoords:this.handleSlatCoords,expandRows:t.expandRows,onScrollTopRequest:this.handleScrollTopRequest}));return d?this.renderHScrollLayout(u,h,g,s.colCnt,l,a,this.state.slatCoords):this.renderSimpleLayout(u,h,g)}},usesMinMaxTime:!0,allDaySlot:!0,slotDuration:"00:30:00",slotEventOverlap:!0},timeGridDay:{type:"timeGrid",duration:{days:1}},timeGridWeek:{type:"timeGrid",duration:{weeks:1}}}});class Gl extends Br{constructor(){super(...arguments),this.state={textId:Te()}}render(){let{theme:e,dateEnv:t,options:n,viewApi:r}=this.context,{cellId:i,dayDate:s,todayRange:o}=this.props,{textId:a}=this.state,l=lr(s,o),c=n.listDayFormat?t.format(s,n.listDayFormat):"",d=n.listDaySideFormat?t.format(s,n.listDaySideFormat):"",u=Object.assign({date:t.toDate(s),view:r,textId:a,text:c,sideText:d,navLinkAttrs:hr(this.context,s),sideNavLinkAttrs:hr(this.context,s,"day",!1)},l);return f(qi,{elTag:"tr",elClasses:["fc-list-day",...cr(l,e)],elAttrs:{"data-date":Ut(s)},renderProps:u,generatorName:"dayHeaderContent",generator:n.dayHeaderContent||Ql,classNameGenerator:n.dayHeaderClassNames,didMount:n.dayHeaderDidMount,willUnmount:n.dayHeaderWillUnmount},t=>f("th",{scope:"colgroup",colSpan:3,id:i,"aria-labelledby":a},f(t,{elTag:"div",elClasses:["fc-list-day-cushion",e.getClass("tableCellShaded")]})))}}function Ql(e){return f(p,null,e.text&&f("a",Object.assign({id:e.textId,className:"fc-list-day-text"},e.navLinkAttrs),e.text),e.sideText&&f("a",Object.assign({"aria-hidden":!0,className:"fc-list-day-side-text"},e.sideNavLinkAttrs),e.sideText))}const ql=on({hour:"numeric",minute:"2-digit",meridiem:"short"});class Yl extends Br{render(){let{props:e,context:t}=this,{options:n}=t,{seg:r,timeHeaderId:i,eventHeaderId:s,dateHeaderId:o}=e,a=n.eventTimeFormat||ql;return f(Bs,Object.assign({},e,{elTag:"tr",elClasses:["fc-list-event",r.eventRange.def.url&&"fc-event-forced-url"],defaultGenerator:()=>function(e,t){let n=fi(e,t);return f("a",Object.assign({},n),e.eventRange.def.title)}(r,t),seg:r,timeText:"",disableDragging:!0,disableResizing:!0}),(e,n)=>f(p,null,function(e,t,n,r,i){let{options:s}=n;if(!1!==s.displayEventTime){let o,a=e.eventRange.def,l=e.eventRange.instance,c=!1;if(a.allDay?c=!0:Fn(e.eventRange.range)?e.isStart?o=ci(e,t,n,null,null,l.range.start,e.end):e.isEnd?o=ci(e,t,n,null,null,e.start,l.range.end):c=!0:o=ci(e,t,n),c){let e={text:n.options.allDayText,view:n.viewApi};return f(qi,{elTag:"td",elClasses:["fc-list-event-time"],elAttrs:{headers:`${r} ${i}`},renderProps:e,generatorName:"allDayContent",generator:s.allDayContent||Zl,classNameGenerator:s.allDayClassNames,didMount:s.allDayDidMount,willUnmount:s.allDayWillUnmount})}return f("td",{className:"fc-list-event-time"},o)}return null}(r,a,t,i,o),f("td",{"aria-hidden":!0,className:"fc-list-event-graphic"},f("span",{className:"fc-list-event-dot",style:{borderColor:n.borderColor||n.backgroundColor}})),f(e,{elTag:"td",elClasses:["fc-list-event-title"],elAttrs:{headers:`${s} ${o}`}})))}}function Zl(e){return e.text}function Xl(e){return e.text}function Jl(e){let t=kt(e.renderRange.start),n=e.renderRange.end,r=[],i=[];for(;t<n;)r.push(t),i.push({start:t,end:St(t,1)}),t=St(t,1);return{dayDates:r,dayRanges:i}}const $l={listDayFormat:Kl,listDaySideFormat:Kl,noEventsClassNames:mn,noEventsContent:mn,noEventsDidMount:mn,noEventsWillUnmount:mn};function Kl(e){return!1===e?null:on(e)}oo(':root{--fc-list-event-dot-width:10px;--fc-list-event-hover-bg-color:#f5f5f5}.fc-theme-standard .fc-list{border:1px solid var(--fc-border-color)}.fc .fc-list-empty{align-items:center;background-color:var(--fc-neutral-bg-color);display:flex;height:100%;justify-content:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{border-style:hidden;width:100%}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{background:var(--fc-page-bg-color);position:sticky;top:0}.fc .fc-list-table thead{left:-10000px;position:absolute}.fc .fc-list-table tbody>tr:first-child th{border-top:0}.fc .fc-list-table th{padding:0}.fc .fc-list-day-cushion,.fc .fc-list-table td{padding:8px 14px}.fc .fc-list-day-cushion:after{clear:both;content:"";display:table}.fc-theme-standard .fc-list-day-cushion{background-color:var(--fc-neutral-bg-color)}.fc-direction-ltr .fc-list-day-text,.fc-direction-rtl .fc-list-day-side-text{float:left}.fc-direction-ltr .fc-list-day-side-text,.fc-direction-rtl .fc-list-day-text{float:right}.fc-direction-ltr .fc-list-table .fc-list-event-graphic{padding-right:0}.fc-direction-rtl .fc-list-table .fc-list-event-graphic{padding-left:0}.fc .fc-list-event.fc-event-forced-url{cursor:pointer}.fc .fc-list-event:hover td{background-color:var(--fc-list-event-hover-bg-color)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{border:calc(var(--fc-list-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-list-event-dot-width)/2);box-sizing:content-box;display:inline-block;height:0;width:0}.fc .fc-list-event-title a{color:inherit;text-decoration:none}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline}');var ec=yo({name:"@fullcalendar/list",optionRefiners:$l,views:{list:{component:class extends zr{constructor(){super(...arguments),this.computeDateVars=Vt(Jl),this.eventStoreToSegs=Vt(this._eventStoreToSegs),this.state={timeHeaderId:Te(),eventHeaderId:Te(),dateHeaderIdRoot:Te()},this.setRootEl=e=>{e?this.context.registerInteractiveComponent(this,{el:e}):this.context.unregisterInteractiveComponent(this)}}render(){let{props:e,context:t}=this,{dayDates:n,dayRanges:r}=this.computeDateVars(e.dateProfile),i=this.eventStoreToSegs(e.eventStore,e.eventUiBases,r);return f(io,{elRef:this.setRootEl,elClasses:["fc-list",t.theme.getClass("table"),!1!==t.options.stickyHeaderDates?"fc-list-sticky":""],viewSpec:t.viewSpec},f(As,{liquid:!e.isHeightAuto,overflowX:e.isHeightAuto?"visible":"hidden",overflowY:e.isHeightAuto?"visible":"auto"},i.length>0?this.renderSegList(i,n):this.renderEmptyMessage()))}renderEmptyMessage(){let{options:e,viewApi:t}=this.context,n={text:e.noEventsText,view:t};return f(qi,{elTag:"div",elClasses:["fc-list-empty"],renderProps:n,generatorName:"noEventsContent",generator:e.noEventsContent||Xl,classNameGenerator:e.noEventsClassNames,didMount:e.noEventsDidMount,willUnmount:e.noEventsWillUnmount},e=>f(e,{elTag:"div",elClasses:["fc-list-empty-cushion"]}))}renderSegList(e,t){let{theme:n,options:r}=this.context,{timeHeaderId:i,eventHeaderId:s,dateHeaderIdRoot:o}=this.state,a=function(e){let t,n,r=[];for(t=0;t<e.length;t+=1)n=e[t],(r[n.dayIndex]||(r[n.dayIndex]=[])).push(n);return r}(e);return f($i,{unit:"day"},(e,l)=>{let c=[];for(let n=0;n<a.length;n+=1){let d=a[n];if(d){let a=Ut(t[n]),u=o+"-"+a;c.push(f(Gl,{key:a,cellId:u,dayDate:t[n],todayRange:l})),d=ii(d,r.eventOrder);for(let t of d)c.push(f(Yl,Object.assign({key:a+":"+t.eventRange.instance.instanceId,seg:t,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:!1,timeHeaderId:i,eventHeaderId:s,dateHeaderId:u},di(t,l,e))))}}return f("table",{className:"fc-list-table "+n.getClass("table")},f("thead",null,f("tr",null,f("th",{scope:"col",id:i},r.timeHint),f("th",{scope:"col","aria-hidden":!0}),f("th",{scope:"col",id:s},r.eventHint))),f("tbody",null,c))})}_eventStoreToSegs(e,t,n){return this.eventRangesToSegs($r(e,t,this.props.dateProfile.activeRange,this.context.options.nextDayThreshold).fg,n)}eventRangesToSegs(e,t){let n=[];for(let r of e)n.push(...this.eventRangeToSegs(r,t));return n}eventRangeToSegs(e,t){let n,r,i,{dateEnv:s}=this.context,{nextDayThreshold:o}=this.context.options,a=e.range,l=e.def.allDay,c=[];for(n=0;n<t.length;n+=1)if(r=rr(a,t[n]),r&&(i={component:this,eventRange:e,start:r.start,end:r.end,isStart:e.isStart&&r.start.valueOf()===a.start.valueOf(),isEnd:e.isEnd&&r.end.valueOf()===a.end.valueOf(),dayIndex:n},c.push(i),!i.isEnd&&!l&&n+1<t.length&&a.end<s.add(t[n+1].start,o))){i.end=a.end,i.isEnd=!0;break}return c}},buttonTextKey:"list",listDayFormat:{month:"long",day:"numeric",year:"numeric"}},listDay:{type:"list",duration:{days:1},listDayFormat:{weekday:"long"}},listWeek:{type:"list",duration:{weeks:1},listDayFormat:{weekday:"long"},listDaySideFormat:{month:"long",day:"numeric",year:"numeric"}},listMonth:{type:"list",duration:{month:1},listDaySideFormat:{weekday:"long"}},listYear:{type:"list",duration:{year:1},listDaySideFormat:{weekday:"long"}}}});return Qo.push(Ba,al,Vl,ec),e.Calendar=class extends uo{constructor(e,t={}){super(),this.isRendering=!1,this.isRendered=!1,this.currentClassNames=[],this.customContentRenderId=0,this.handleAction=e=>{switch(e.type){case"SET_EVENT_DRAG":case"SET_EVENT_RESIZE":this.renderRunner.tryDrain()}},this.handleData=e=>{this.currentData=e,this.renderRunner.request(e.calendarOptions.rerenderDelay)},this.handleRenderRequest=()=>{if(this.isRendering){this.isRendered=!0;let{currentData:e}=this;kr(()=>{P(f(zi,{options:e.calendarOptions,theme:e.theme,emitter:e.emitter},(t,n,r,i)=>(this.setClassNames(t),this.setHeight(n),f(Qi.Provider,{value:this.customContentRenderId},f(ua,Object.assign({isHeightAuto:r,forPrint:i},e))))),this.el)})}else this.isRendered&&(this.isRendered=!1,P(null,this.el),this.setClassNames([]),this.setHeight(""))},this.el=e,this.renderRunner=new ys(this.handleRenderRequest),new Zo({optionOverrides:t,calendarApi:this,onAction:this.handleAction,onData:this.handleData})}render(){let e=this.isRendering;e?this.customContentRenderId+=1:this.isRendering=!0,this.renderRunner.request(),e&&this.updateSize()}destroy(){this.isRendering&&(this.isRendering=!1,this.renderRunner.request())}updateSize(){kr(()=>{super.updateSize()})}batchRendering(e){this.renderRunner.pause("batchRendering"),e(),this.renderRunner.resume("batchRendering")}pauseRendering(){this.renderRunner.pause("pauseRendering")}resumeRendering(){this.renderRunner.resume("pauseRendering",!0)}resetOptions(e,t){this.currentDataManager.resetOptions(e,t)}setClassNames(e){if(!Ft(e,this.currentClassNames)){let{classList:t}=this.el;for(let e of this.currentClassNames)t.remove(e);for(let n of e)t.add(n);this.currentClassNames=e}}setHeight(e){Ce(this.el,"height",e)}},e.Draggable=class{constructor(e,t={}){this.handlePointerDown=e=>{let{dragging:t}=this,{minDistance:n,longPressDelay:r}=this.settings;t.minDistance=null!=n?n:e.isTouch?0:ln.eventDragMinDistance,t.delay=e.isTouch?null!=r?r:ln.longPressDelay:0},this.handleDragStart=e=>{e.isTouch&&this.dragging.delay&&e.subjectEl.classList.contains("fc-event")&&this.dragging.mirror.getMirrorEl().classList.add("fc-event-selected")},this.settings=t;let n=this.dragging=new Ra(e);n.touchScrollAllowed=!1,null!=t.itemSelector&&(n.pointer.selector=t.itemSelector),null!=t.appendTo&&(n.mirror.parentNode=t.appendTo),n.emitter.on("pointerdown",this.handlePointerDown),n.emitter.on("dragstart",this.handleDragStart),new Pa(n,t.eventData)}destroy(){this.dragging.destroy()}},e.Internal=ho,e.JsonRequestError=vs,e.ThirdPartyDraggable=class{constructor(e,t){let n=document;e===document||e instanceof Element?(n=e,t=t||{}):t=e||{};let r=this.dragging=new Ha(n);"string"==typeof t.itemSelector?r.pointer.selector=t.itemSelector:n===document&&(r.pointer.selector="[data-event]"),"string"==typeof t.mirrorSelector&&(r.mirrorSelector=t.mirrorSelector),new Pa(r,t.eventData)}destroy(){this.dragging.destroy()}},e.createPlugin=yo,e.formatDate=function(e,t={}){let n=ga(t),r=on(t),i=n.createMarkerMeta(e);return i?n.format(i.marker,r,{forcedTzo:i.forcedTzo}):""},e.formatRange=function(e,t,n){let r=ga("object"==typeof n&&n?n:{}),i=on(n),s=r.createMarkerMeta(e),o=r.createMarkerMeta(t);return s&&o?r.formatRange(s.marker,o.marker,i,{forcedStartTzo:s.forcedTzo,forcedEndTzo:o.forcedTzo,isEndExclusive:n.isEndExclusive,defaultSeparator:ln.defaultRangeSeparator}):""},e.globalLocales=fo,e.globalPlugins=Qo,e.sliceEvents=function(e,t){return $r(e.eventStore,e.eventUiBases,e.dateProfile.activeRange,t?e.nextDayThreshold:null).fg},e.version="6.0.3",Object.defineProperty(e,"__esModule",{value:!0}),e}({}); \ No newline at end of file
+var FullCalendar=function(e){"use strict";var t,n,r,i,s,o,a,l,c,d={},u=[],h=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function f(e,t){for(var n in t)e[n]=t[n];return e}function g(e){var t=e.parentNode;t&&t.removeChild(e)}function p(e,n,r){var i,s,o,a={};for(o in n)"key"==o?i=n[o]:"ref"==o?s=n[o]:a[o]=n[o];if(arguments.length>2&&(a.children=arguments.length>3?t.call(arguments,2):r),"function"==typeof e&&null!=e.defaultProps)for(o in e.defaultProps)void 0===a[o]&&(a[o]=e.defaultProps[o]);return m(e,a,i,s,null)}function m(e,t,i,s,o){var a={type:e,props:t,key:i,ref:s,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++r:o};return null==o&&null!=n.vnode&&n.vnode(a),a}function v(){return{current:null}}function y(e){return e.children}function b(e,t,n){"-"===t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||h.test(t)?n:n+"px"}function E(e,t,n,r,i){var s;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||b(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||b(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])s=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+s]=n,n?r||e.addEventListener(t,s?A:S,s):e.removeEventListener(t,s?A:S,s);else if("dangerouslySetInnerHTML"!==t){if(i)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!==t&&"height"!==t&&"href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null==n||!1===n&&-1==t.indexOf("-")?e.removeAttribute(t):e.setAttribute(t,n))}}function S(e){s=!0;try{return this.l[e.type+!1](n.event?n.event(e):e)}finally{s=!1}}function A(e){s=!0;try{return this.l[e.type+!0](n.event?n.event(e):e)}finally{s=!1}}function D(e,t){this.props=e,this.context=t}function w(e,t){if(null==t)return e.__?w(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?w(e):null}function C(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return C(e)}}function R(e){s?setTimeout(e):l(e)}function x(e){(!e.__d&&(e.__d=!0)&&o.push(e)&&!_.__r++||a!==n.debounceRendering)&&((a=n.debounceRendering)||R)(_)}function _(){var e,t,n,r,i,s,a,l;for(o.sort((function(e,t){return e.__v.__b-t.__v.__b}));e=o.shift();)e.__d&&(t=o.length,r=void 0,i=void 0,a=(s=(n=e).__v).__e,(l=n.__P)&&(r=[],(i=f({},s)).__v=s.__v+1,N(l,s,i,n.__n,void 0!==l.ownerSVGElement,null!=s.__h?[a]:null,r,null==a?w(s):a,s.__h),P(r,s),s.__e!=a&&C(s)),o.length>t&&o.sort((function(e,t){return e.__v.__b-t.__v.__b})));_.__r=0}function T(e,t,n,r,i,s,o,a,l,c){var h,f,g,p,v,b,E,S=r&&r.__k||u,A=S.length;for(n.__k=[],h=0;h<t.length;h++)if(null!=(p=n.__k[h]=null==(p=t[h])||"boolean"==typeof p?null:"string"==typeof p||"number"==typeof p||"bigint"==typeof p?m(null,p,null,null,p):Array.isArray(p)?m(y,{children:p},null,null,null):p.__b>0?m(p.type,p.props,p.key,p.ref?p.ref:null,p.__v):p)){if(p.__=n,p.__b=n.__b+1,null===(g=S[h])||g&&p.key==g.key&&p.type===g.type)S[h]=void 0;else for(f=0;f<A;f++){if((g=S[f])&&p.key==g.key&&p.type===g.type){S[f]=void 0;break}g=null}N(e,p,g=g||d,i,s,o,a,l,c),v=p.__e,(f=p.ref)&&g.ref!=f&&(E||(E=[]),g.ref&&E.push(g.ref,null,p),E.push(f,p.__c||v,p)),null!=v?(null==b&&(b=v),"function"==typeof p.type&&p.__k===g.__k?p.__d=l=k(p,l,e):l=I(e,p,g,S,v,l),"function"==typeof n.type&&(n.__d=l)):l&&g.__e==l&&l.parentNode!=e&&(l=w(g))}for(n.__e=b,h=A;h--;)null!=S[h]&&("function"==typeof n.type&&null!=S[h].__e&&S[h].__e==n.__d&&(n.__d=O(r).nextSibling),j(S[h],S[h]));if(E)for(h=0;h<E.length;h++)B(E[h],E[++h],E[++h])}function k(e,t,n){for(var r,i=e.__k,s=0;i&&s<i.length;s++)(r=i[s])&&(r.__=e,t="function"==typeof r.type?k(r,t,n):I(n,r,r,i,r.__e,t));return t}function M(e,t){return t=t||[],null==e||"boolean"==typeof e||(Array.isArray(e)?e.some((function(e){M(e,t)})):t.push(e)),t}function I(e,t,n,r,i,s){var o,a,l;if(void 0!==t.__d)o=t.__d,t.__d=void 0;else if(null==n||i!=s||null==i.parentNode)e:if(null==s||s.parentNode!==e)e.appendChild(i),o=null;else{for(a=s,l=0;(a=a.nextSibling)&&l<r.length;l+=1)if(a==i)break e;e.insertBefore(i,s),o=s}return void 0!==o?o:i.nextSibling}function O(e){var t,n,r;if(null==e.type||"string"==typeof e.type)return e.__e;if(e.__k)for(t=e.__k.length-1;t>=0;t--)if((n=e.__k[t])&&(r=O(n)))return r;return null}function N(e,t,r,i,s,o,a,l,c){var d,u,h,g,p,m,v,b,E,S,A,w,C,R,x,_=t.type;if(void 0!==t.constructor)return null;null!=r.__h&&(c=r.__h,l=t.__e=r.__e,t.__h=null,o=[l]),(d=n.__b)&&d(t);try{e:if("function"==typeof _){if(b=t.props,E=(d=_.contextType)&&i[d.__c],S=d?E?E.props.value:d.__:i,r.__c?v=(u=t.__c=r.__c).__=u.__E:("prototype"in _&&_.prototype.render?t.__c=u=new _(b,S):(t.__c=u=new D(b,S),u.constructor=_,u.render=z),E&&E.sub(u),u.props=b,u.state||(u.state={}),u.context=S,u.__n=i,h=u.__d=!0,u.__h=[],u._sb=[]),null==u.__s&&(u.__s=u.state),null!=_.getDerivedStateFromProps&&(u.__s==u.state&&(u.__s=f({},u.__s)),f(u.__s,_.getDerivedStateFromProps(b,u.__s))),g=u.props,p=u.state,u.__v=t,h)null==_.getDerivedStateFromProps&&null!=u.componentWillMount&&u.componentWillMount(),null!=u.componentDidMount&&u.__h.push(u.componentDidMount);else{if(null==_.getDerivedStateFromProps&&b!==g&&null!=u.componentWillReceiveProps&&u.componentWillReceiveProps(b,S),!u.__e&&null!=u.shouldComponentUpdate&&!1===u.shouldComponentUpdate(b,u.__s,S)||t.__v===r.__v){for(t.__v!==r.__v&&(u.props=b,u.state=u.__s,u.__d=!1),t.__e=r.__e,t.__k=r.__k,t.__k.forEach((function(e){e&&(e.__=t)})),A=0;A<u._sb.length;A++)u.__h.push(u._sb[A]);u._sb=[],u.__h.length&&a.push(u);break e}null!=u.componentWillUpdate&&u.componentWillUpdate(b,u.__s,S),null!=u.componentDidUpdate&&u.__h.push((function(){u.componentDidUpdate(g,p,m)}))}if(u.context=S,u.props=b,u.__P=e,w=n.__r,C=0,"prototype"in _&&_.prototype.render){for(u.state=u.__s,u.__d=!1,w&&w(t),d=u.render(u.props,u.state,u.context),R=0;R<u._sb.length;R++)u.__h.push(u._sb[R]);u._sb=[]}else do{u.__d=!1,w&&w(t),d=u.render(u.props,u.state,u.context),u.state=u.__s}while(u.__d&&++C<25);u.state=u.__s,null!=u.getChildContext&&(i=f(f({},i),u.getChildContext())),h||null==u.getSnapshotBeforeUpdate||(m=u.getSnapshotBeforeUpdate(g,p)),x=null!=d&&d.type===y&&null==d.key?d.props.children:d,T(e,Array.isArray(x)?x:[x],t,r,i,s,o,a,l,c),u.base=t.__e,t.__h=null,u.__h.length&&a.push(u),v&&(u.__E=u.__=null),u.__e=!1}else null==o&&t.__v===r.__v?(t.__k=r.__k,t.__e=r.__e):t.__e=H(r.__e,t,r,i,s,o,a,c);(d=n.diffed)&&d(t)}catch(e){t.__v=null,(c||null!=o)&&(t.__e=l,t.__h=!!c,o[o.indexOf(l)]=null),n.__e(e,t,r)}}function P(e,t){n.__c&&n.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){n.__e(e,t.__v)}}))}function H(e,n,r,i,s,o,a,l){var c,u,h,f=r.props,p=n.props,m=n.type,v=0;if("svg"===m&&(s=!0),null!=o)for(;v<o.length;v++)if((c=o[v])&&"setAttribute"in c==!!m&&(m?c.localName===m:3===c.nodeType)){e=c,o[v]=null;break}if(null==e){if(null===m)return document.createTextNode(p);e=s?document.createElementNS("http://www.w3.org/2000/svg",m):document.createElement(m,p.is&&p),o=null,l=!1}if(null===m)f===p||l&&e.data===p||(e.data=p);else{if(o=o&&t.call(e.childNodes),u=(f=r.props||d).dangerouslySetInnerHTML,h=p.dangerouslySetInnerHTML,!l){if(null!=o)for(f={},v=0;v<e.attributes.length;v++)f[e.attributes[v].name]=e.attributes[v].value;(h||u)&&(h&&(u&&h.__html==u.__html||h.__html===e.innerHTML)||(e.innerHTML=h&&h.__html||""))}if(function(e,t,n,r,i){var s;for(s in n)"children"===s||"key"===s||s in t||E(e,s,null,n[s],r);for(s in t)i&&"function"!=typeof t[s]||"children"===s||"key"===s||"value"===s||"checked"===s||n[s]===t[s]||E(e,s,t[s],n[s],r)}(e,p,f,s,l),h)n.__k=[];else if(v=n.props.children,T(e,Array.isArray(v)?v:[v],n,r,i,s&&"foreignObject"!==m,o,a,o?o[0]:r.__k&&w(r,0),l),null!=o)for(v=o.length;v--;)null!=o[v]&&g(o[v]);l||("value"in p&&void 0!==(v=p.value)&&(v!==e.value||"progress"===m&&!v||"option"===m&&v!==f.value)&&E(e,"value",v,f.value,!1),"checked"in p&&void 0!==(v=p.checked)&&v!==e.checked&&E(e,"checked",v,f.checked,!1))}return e}function B(e,t,r){try{"function"==typeof e?e(t):e.current=t}catch(e){n.__e(e,r)}}function j(e,t,r){var i,s;if(n.unmount&&n.unmount(e),(i=e.ref)&&(i.current&&i.current!==e.__e||B(i,null,t)),null!=(i=e.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(e){n.__e(e,t)}i.base=i.__P=null,e.__c=void 0}if(i=e.__k)for(s=0;s<i.length;s++)i[s]&&j(i[s],t,r||"function"!=typeof e.type);r||null==e.__e||g(e.__e),e.__=e.__e=e.__d=void 0}function z(e,t,n){return this.constructor(e,n)}function U(e,r,i){var s,o,a;n.__&&n.__(e,r),o=(s="function"==typeof i)?null:i&&i.__k||r.__k,a=[],N(r,e=(!s&&i||r).__k=p(y,null,[e]),o||d,d,void 0!==r.ownerSVGElement,!s&&i?[i]:o?null:r.firstChild?t.call(r.childNodes):null,a,!s&&i?i:o?o.__e:r.firstChild,s),P(a,e)}t=u.slice,n={__e:function(e,t,n,r){for(var i,s,o;t=t.__;)if((i=t.__c)&&!i.__)try{if((s=i.constructor)&&null!=s.getDerivedStateFromError&&(i.setState(s.getDerivedStateFromError(e)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(e,r||{}),o=i.__d),o)return i.__E=i}catch(t){e=t}throw e}},r=0,i=function(e){return null!=e&&void 0===e.constructor},s=!1,D.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=f({},this.state),"function"==typeof e&&(e=e(f({},n),this.props)),e&&f(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),x(this))},D.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),x(this))},D.prototype.render=y,o=[],l="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,_.__r=0,c=0;var W,L,F,V=[],G=[],Q=n.__b,q=n.__r,Y=n.diffed,Z=n.__c,X=n.unmount;function $(){for(var e;e=V.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(ee),e.__H.__h.forEach(te),e.__H.__h=[]}catch(t){e.__H.__h=[],n.__e(t,e.__v)}}n.__b=function(e){W=null,Q&&Q(e)},n.__r=function(e){q&&q(e);var t=(W=e.__c).__H;t&&(L===W?(t.__h=[],W.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=G,e.__N=e.i=void 0}))):(t.__h.forEach(ee),t.__h.forEach(te),t.__h=[])),L=W},n.diffed=function(e){Y&&Y(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==V.push(t)&&F===n.requestAnimationFrame||((F=n.requestAnimationFrame)||K)($)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==G&&(e.__=e.__V),e.i=void 0,e.__V=G}))),L=W=null},n.__c=function(e,t){t.some((function(e){try{e.__h.forEach(ee),e.__h=e.__h.filter((function(e){return!e.__||te(e)}))}catch(r){t.some((function(e){e.__h&&(e.__h=[])})),t=[],n.__e(r,e.__v)}})),Z&&Z(e,t)},n.unmount=function(e){X&&X(e);var t,r=e.__c;r&&r.__H&&(r.__H.__.forEach((function(e){try{ee(e)}catch(e){t=e}})),r.__H=void 0,t&&n.__e(t,r.__v))};var J="function"==typeof requestAnimationFrame;function K(e){var t,n=function(){clearTimeout(r),J&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);J&&(t=requestAnimationFrame(n))}function ee(e){var t=W,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),W=t}function te(e){var t=W;e.__c=e.__(),W=t}function ne(e,t){for(var n in e)if("__source"!==n&&!(n in t))return!0;for(var r in t)if("__source"!==r&&e[r]!==t[r])return!0;return!1}function re(e){this.props=e}(re.prototype=new D).isPureReactComponent=!0,re.prototype.shouldComponentUpdate=function(e,t){return ne(this.props,e)||ne(this.state,t)};var ie=n.__b;n.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),ie&&ie(e)};var se=n.__e;n.__e=function(e,t,n,r){if(e.then)for(var i,s=t;s=s.__;)if((i=s.__c)&&i.__c)return null==t.__e&&(t.__e=n.__e,t.__k=n.__k),i.__c(e,t);se(e,t,n,r)};var oe=n.unmount;function ae(){this.__u=0,this.t=null,this.__b=null}function le(e){var t=e.__.__c;return t&&t.__a&&t.__a(e)}function ce(){this.u=null,this.o=null}n.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&!0===e.__h&&(e.type=null),oe&&oe(e)},(ae.prototype=new D).__c=function(e,t){var n=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(n);var i=le(r.__v),s=!1,o=function(){s||(s=!0,n.__R=null,i?i(a):a())};n.__R=o;var a=function(){if(!--r.__u){if(r.state.__a){var e=r.state.__a;r.__v.__k[0]=function e(t,n,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map((function(t){return e(t,n,r)})),t.__c&&t.__c.__P===n&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(e,e.__c.__P,e.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate()}},l=!0===t.__h;r.__u++||l||r.setState({__a:r.__b=r.__v.__k[0]}),e.then(o,o)},ae.prototype.componentWillUnmount=function(){this.t=[]},ae.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var n=document.createElement("div"),r=this.__v.__k[0].__c;this.__v.__k[0]=function e(t,n,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach((function(e){"function"==typeof e.__c&&e.__c()})),t.__c.__H=null),null!=(t=function(e,t){for(var n in t)e[n]=t[n];return e}({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=n),t.__c=null),t.__k=t.__k&&t.__k.map((function(t){return e(t,n,r)}))),t}(this.__b,n,r.__O=r.__P)}this.__b=null}var i=t.__a&&p(y,null,e.fallback);return i&&(i.__h=null),[p(y,null,t.__a?null:e.children),i]};var de=function(e,t,n){if(++n[1]===n[0]&&e.o.delete(t),e.props.revealOrder&&("t"!==e.props.revealOrder[0]||!e.o.size))for(n=e.u;n;){for(;n.length>3;)n.pop()();if(n[1]<n[0])break;e.u=n=n[2]}};function ue(e){return this.getChildContext=function(){return e.context},e.children}function he(e){var t=this,n=e.i;t.componentWillUnmount=function(){U(null,t.l),t.l=null,t.i=null},t.i&&t.i!==n&&t.componentWillUnmount(),e.__v?(t.l||(t.i=n,t.l={nodeType:1,parentNode:n,childNodes:[],appendChild:function(e){this.childNodes.push(e),t.i.appendChild(e)},insertBefore:function(e,n){this.childNodes.push(e),t.i.appendChild(e)},removeChild:function(e){this.childNodes.splice(this.childNodes.indexOf(e)>>>1,1),t.i.removeChild(e)}}),U(p(ue,{context:t.context},e.__v),t.l)):t.l&&t.componentWillUnmount()}function fe(e,t){var n=p(he,{__v:e,i:t});return n.containerInfo=t,n}(ce.prototype=new D).__a=function(e){var t=this,n=le(t.__v),r=t.o.get(e);return r[0]++,function(i){var s=function(){t.props.revealOrder?(r.push(i),de(t,e,r)):i()};n?n(s):s()}},ce.prototype.render=function(e){this.u=null,this.o=new Map;var t=M(e.children);e.revealOrder&&"b"===e.revealOrder[0]&&t.reverse();for(var n=t.length;n--;)this.o.set(t[n],this.u=[1,0,this.u]);return e.children},ce.prototype.componentDidUpdate=ce.prototype.componentDidMount=function(){var e=this;this.o.forEach((function(t,n){de(e,n,t)}))};var ge="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,pe=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,me="undefined"!=typeof document,ve=function(e){return("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(e)};D.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach((function(e){Object.defineProperty(D.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})}));var ye=n.event;function be(){}function Ee(){return this.cancelBubble}function Se(){return this.defaultPrevented}n.event=function(e){return ye&&(e=ye(e)),e.persist=be,e.isPropagationStopped=Ee,e.isDefaultPrevented=Se,e.nativeEvent=e};var Ae={configurable:!0,get:function(){return this.class}},De=n.vnode;n.vnode=function(e){var t=e.type,n=e.props,r=n;if("string"==typeof t){var i=-1===t.indexOf("-");for(var s in r={},n){var o=n[s];me&&"children"===s&&"noscript"===t||"value"===s&&"defaultValue"in n&&null==o||("defaultValue"===s&&"value"in n&&null==n.value?s="value":"download"===s&&!0===o?o="":/ondoubleclick/i.test(s)?s="ondblclick":/^onchange(textarea|input)/i.test(s+t)&&!ve(n.type)?s="oninput":/^onfocus$/i.test(s)?s="onfocusin":/^onblur$/i.test(s)?s="onfocusout":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(s)?s=s.toLowerCase():i&&pe.test(s)?s=s.replace(/[A-Z0-9]/g,"-$&").toLowerCase():null===o&&(o=void 0),/^oninput$/i.test(s)&&(s=s.toLowerCase(),r[s]&&(s="oninputCapture")),r[s]=o)}"select"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=M(n.children).forEach((function(e){e.props.selected=-1!=r.value.indexOf(e.props.value)}))),"select"==t&&null!=r.defaultValue&&(r.value=M(n.children).forEach((function(e){e.props.selected=r.multiple?-1!=r.defaultValue.indexOf(e.props.value):r.defaultValue==e.props.value}))),e.props=r,n.class!=n.className&&(Ae.enumerable="className"in n,null!=n.className&&(r.class=n.className),Object.defineProperty(r,"className",Ae))}e.$$typeof=ge,De&&De(e)};var we=n.__r;n.__r=function(e){we&&we(e),e.__c};const Ce=[],Re=new Map;function xe(e){Ce.push(e),Re.forEach(t=>{Te(t,e)})}function _e(e){let t=Re.get(e);if(!t||!t.isConnected){if(t=e.querySelector("style[data-fullcalendar]"),!t){t=document.createElement("style"),t.setAttribute("data-fullcalendar","");const n=function(){void 0===ke&&(ke=function(){const e=document.querySelector('meta[name="csp-nonce"]');if(e&&e.hasAttribute("content"))return e.getAttribute("content");const t=document.querySelector("script[nonce]");if(t)return t.nonce||"";return""}());return ke}();n&&(t.nonce=n);const r=e===document?document.head:e,i=e===document?r.querySelector("script,link[rel=stylesheet],link[as=style],style"):r.firstChild;r.insertBefore(t,i)}Re.set(e,t),function(e){for(const t of Ce)Te(e,t)}(t)}}function Te(e,t){const{sheet:n}=e,r=n.cssRules.length;t.split("}").forEach((e,t)=>{(e=e.trim())&&n.insertRule(e+"}",r+t)})}let ke;"undefined"!=typeof document&&_e(document);function Me(e){e.parentNode&&e.parentNode.removeChild(e)}function Ie(e,t){if(e.closest)return e.closest(t);if(!document.documentElement.contains(e))return null;do{if(Oe(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null}function Oe(e,t){return(e.matches||e.matchesSelector||e.msMatchesSelector).call(e,t)}function Ne(e,t){let n=e instanceof HTMLElement?[e]:e,r=[];for(let e=0;e<n.length;e+=1){let i=n[e].querySelectorAll(t);for(let e=0;e<i.length;e+=1)r.push(i[e])}return r}xe(':root{--fc-small-font-size:.85em;--fc-page-bg-color:#fff;--fc-neutral-bg-color:hsla(0,0%,82%,.3);--fc-neutral-text-color:grey;--fc-border-color:#ddd;--fc-button-text-color:#fff;--fc-button-bg-color:#2c3e50;--fc-button-border-color:#2c3e50;--fc-button-hover-bg-color:#1e2b37;--fc-button-hover-border-color:#1a252f;--fc-button-active-bg-color:#1a252f;--fc-button-active-border-color:#151e27;--fc-event-bg-color:#3788d8;--fc-event-border-color:#3788d8;--fc-event-text-color:#fff;--fc-event-selected-overlay-color:rgba(0,0,0,.25);--fc-more-link-bg-color:#d0d0d0;--fc-more-link-text-color:inherit;--fc-event-resizer-thickness:8px;--fc-event-resizer-dot-total-width:8px;--fc-event-resizer-dot-border-width:1px;--fc-non-business-color:hsla(0,0%,84%,.3);--fc-bg-event-color:#8fdf82;--fc-bg-event-opacity:0.3;--fc-highlight-color:rgba(188,232,241,.3);--fc-today-bg-color:rgba(255,220,40,.15);--fc-now-indicator-color:red}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc :after,.fc :before{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{padding:0;vertical-align:top}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid var(--fc-border-color)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;font-style:normal;font-weight:400;src:url("data:application/x-font-ttf;charset=utf-8;base64,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{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)}');const Pe=/(top|left|right|bottom|width|height)$/i;function He(e,t){for(let n in t)Be(e,n,t[n])}function Be(e,t,n){null==n?e.style[t]="":"number"==typeof n&&Pe.test(t)?e.style[t]=n+"px":e.style[t]=n}function je(e){var t,n;return null!==(n=null===(t=e.composedPath)||void 0===t?void 0:t.call(e)[0])&&void 0!==n?n:e.target}let ze=0;function Ue(){return ze+=1,"fc-dom-"+ze}function We(e){e.preventDefault()}function Le(e,t,n,r){let i=function(e,t){return n=>{let r=Ie(n.target,e);r&&t.call(r,n,r)}}(n,r);return e.addEventListener(t,i),()=>{e.removeEventListener(t,i)}}const Fe=["webkitTransitionEnd","otransitionend","oTransitionEnd","msTransitionEnd","transitionend"];function Ve(e,t){let n=r=>{t(r),Fe.forEach(t=>{e.removeEventListener(t,n)})};Fe.forEach(t=>{e.addEventListener(t,n)})}function Ge(e){return Object.assign({onClick:e},Qe(e))}function Qe(e){return{tabIndex:0,onKeyDown(t){"Enter"!==t.key&&" "!==t.key||(e(t),t.preventDefault())}}}let qe=0;function Ye(){return qe+=1,String(qe)}function Ze(){document.body.classList.add("fc-not-allowed")}function Xe(){document.body.classList.remove("fc-not-allowed")}function $e(e){e.style.userSelect="none",e.addEventListener("selectstart",We)}function Je(e){e.style.userSelect="",e.removeEventListener("selectstart",We)}function Ke(e){e.addEventListener("contextmenu",We)}function et(e){e.removeEventListener("contextmenu",We)}function tt(e){let t,n,r=[],i=[];for("string"==typeof e?i=e.split(/\s*,\s*/):"function"==typeof e?i=[e]:Array.isArray(e)&&(i=e),t=0;t<i.length;t+=1)n=i[t],"string"==typeof n?r.push("-"===n.charAt(0)?{field:n.substring(1),order:-1}:{field:n,order:1}):"function"==typeof n&&r.push({func:n});return r}function nt(e,t,n){let r,i;for(r=0;r<n.length;r+=1)if(i=rt(e,t,n[r]),i)return i;return 0}function rt(e,t,n){return n.func?n.func(e,t):it(e[n.field],t[n.field])*(n.order||1)}function it(e,t){return e||t?null==t?-1:null==e?1:"string"==typeof e||"string"==typeof t?String(e).localeCompare(String(t)):e-t:0}function st(e,t){let n=String(e);return"000".substr(0,t-n.length)+n}function ot(e,t,n){return"function"==typeof e?e(...t):"string"==typeof e?t.reduce((e,t,n)=>e.replace("$"+n,t||""),e):n}function at(e,t){return e-t}function lt(e){return e%1==0}function ct(e){let t=e.querySelector(".fc-scrollgrid-shrink-frame"),n=e.querySelector(".fc-scrollgrid-shrink-cushion");if(!t)throw new Error("needs fc-scrollgrid-shrink-frame className");if(!n)throw new Error("needs fc-scrollgrid-shrink-cushion className");return e.getBoundingClientRect().width-t.getBoundingClientRect().width+n.getBoundingClientRect().width}const dt=["years","months","days","milliseconds"],ut=/^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/;function ht(e,t){return"string"==typeof e?function(e){let t=ut.exec(e);if(t){let e=t[1]?-1:1;return{years:0,months:0,days:e*(t[2]?parseInt(t[2],10):0),milliseconds:e*(60*(t[3]?parseInt(t[3],10):0)*60*1e3+60*(t[4]?parseInt(t[4],10):0)*1e3+1e3*(t[5]?parseInt(t[5],10):0)+(t[6]?parseInt(t[6],10):0))}}return null}(e):"object"==typeof e&&e?ft(e):"number"==typeof e?ft({[t||"milliseconds"]:e}):null}function ft(e){let t={years:e.years||e.year||0,months:e.months||e.month||0,days:e.days||e.day||0,milliseconds:60*(e.hours||e.hour||0)*60*1e3+60*(e.minutes||e.minute||0)*1e3+1e3*(e.seconds||e.second||0)+(e.milliseconds||e.millisecond||e.ms||0)},n=e.weeks||e.week;return n&&(t.days+=7*n,t.specifiedWeeks=!0),t}function gt(e,t){return{years:e.years+t.years,months:e.months+t.months,days:e.days+t.days,milliseconds:e.milliseconds+t.milliseconds}}function pt(e,t){return{years:e.years*t,months:e.months*t,days:e.days*t,milliseconds:e.milliseconds*t}}function mt(e){return vt(e)/864e5}function vt(e){return 31536e6*e.years+2592e6*e.months+864e5*e.days+e.milliseconds}function yt(e,t){let n=null;for(let r=0;r<dt.length;r+=1){let i=dt[r];if(t[i]){let r=e[i]/t[i];if(!lt(r)||null!==n&&n!==r)return null;n=r}else if(e[i])return null}return n}function bt(e){let t=e.milliseconds;if(t){if(t%1e3!=0)return{unit:"millisecond",value:t};if(t%6e4!=0)return{unit:"second",value:t/1e3};if(t%36e5!=0)return{unit:"minute",value:t/6e4};if(t)return{unit:"hour",value:t/36e5}}return e.days?e.specifiedWeeks&&e.days%7==0?{unit:"week",value:e.days/7}:{unit:"day",value:e.days}:e.months?{unit:"month",value:e.months}:e.years?{unit:"year",value:e.years}:{unit:"millisecond",value:0}}const{hasOwnProperty:Et}=Object.prototype;function St(e,t){let n={};if(t)for(let r in t)if(t[r]===wn){let t=[];for(let i=e.length-1;i>=0;i-=1){let s=e[i][r];if("object"==typeof s&&s)t.unshift(s);else if(void 0!==s){n[r]=s;break}}t.length&&(n[r]=St(t))}for(let t=e.length-1;t>=0;t-=1){let r=e[t];for(let e in r)e in n||(n[e]=r[e])}return n}function At(e,t){let n={};for(let r in e)t(e[r],r)&&(n[r]=e[r]);return n}function Dt(e,t){let n={};for(let r in e)n[r]=t(e[r],r);return n}function wt(e){let t={};for(let n of e)t[n]=!0;return t}function Ct(e){let t=[];for(let n in e)t.push(e[n]);return t}function Rt(e,t){if(e===t)return!0;for(let n in e)if(Et.call(e,n)&&!(n in t))return!1;for(let n in t)if(Et.call(t,n)&&e[n]!==t[n])return!1;return!0}const xt=/^on[A-Z]/;function _t(e,t){let n=[];for(let r in e)Et.call(e,r)&&(r in t||n.push(r));for(let r in t)Et.call(t,r)&&e[r]!==t[r]&&n.push(r);return n}function Tt(e,t,n={}){if(e===t)return!0;for(let r in t)if(!(r in e)||!kt(e[r],t[r],n[r]))return!1;for(let n in e)if(!(n in t))return!1;return!0}function kt(e,t,n){return e===t||!0===n||!!n&&n(e,t)}function Mt(e,t=0,n,r=1){let i=[];null==n&&(n=Object.keys(e).length);for(let s=t;s<n;s+=r){let t=e[s];void 0!==t&&i.push(t)}return i}function It(e,t,n){if(e===t)return!0;let r,i=e.length;if(i!==t.length)return!1;for(r=0;r<i;r+=1)if(!(n?n(e[r],t[r]):e[r]===t[r]))return!1;return!0}const Ot=["sun","mon","tue","wed","thu","fri","sat"];function Nt(e,t){let n=qt(e);return n[2]+=7*t,Yt(n)}function Pt(e,t){let n=qt(e);return n[2]+=t,Yt(n)}function Ht(e,t){let n=qt(e);return n[6]+=t,Yt(n)}function Bt(e,t){return jt(e,t)/7}function jt(e,t){return(t.valueOf()-e.valueOf())/864e5}function zt(e,t){let n=Lt(e),r=Lt(t);return{years:0,months:0,days:Math.round(jt(n,r)),milliseconds:t.valueOf()-r.valueOf()-(e.valueOf()-n.valueOf())}}function Ut(e,t){let n=Wt(e,t);return null!==n&&n%7==0?n/7:null}function Wt(e,t){return Xt(e)===Xt(t)?Math.round(jt(e,t)):null}function Lt(e){return Yt([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()])}function Ft(e,t,n,r){let i=Yt([t,0,1+Vt(t,n,r)]),s=Lt(e),o=Math.round(jt(i,s));return Math.floor(o/7)+1}function Vt(e,t,n){let r=7+t-n;return-((7+Yt([e,0,r]).getUTCDay()-t)%7)+r-1}function Gt(e){return[e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()]}function Qt(e){return new Date(e[0],e[1]||0,null==e[2]?1:e[2],e[3]||0,e[4]||0,e[5]||0)}function qt(e){return[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()]}function Yt(e){return 1===e.length&&(e=e.concat([0])),new Date(Date.UTC(...e))}function Zt(e){return!isNaN(e.valueOf())}function Xt(e){return 1e3*e.getUTCHours()*60*60+1e3*e.getUTCMinutes()*60+1e3*e.getUTCSeconds()+e.getUTCMilliseconds()}function $t(e,t,n=!1){let r=e.toISOString();return r=r.replace(".000",""),n&&(r=r.replace("T00:00:00Z","")),r.length>10&&(null==t?r=r.replace("Z",""):0!==t&&(r=r.replace("Z",tn(t,!0)))),r}function Jt(e){return e.toISOString().replace(/T.*$/,"")}function Kt(e){return e.toISOString().match(/^\d{4}-\d{2}/)[0]}function en(e){return st(e.getUTCHours(),2)+":"+st(e.getUTCMinutes(),2)+":"+st(e.getUTCSeconds(),2)}function tn(e,t=!1){let n=e<0?"-":"+",r=Math.abs(e),i=Math.floor(r/60),s=Math.round(r%60);return t?`${n+st(i,2)}:${st(s,2)}`:`GMT${n}${i}${s?":"+st(s,2):""}`}function nn(e,t,n){let r,i;return function(...s){if(r){if(!It(r,s)){n&&n(i);let r=e.apply(this,s);t&&t(r,i)||(i=r)}}else i=e.apply(this,s);return r=s,i}}function rn(e,t,n){let r,i;return s=>{if(r){if(!Rt(r,s)){n&&n(i);let r=e.call(this,s);t&&t(r,i)||(i=r)}}else i=e.call(this,s);return r=s,i}}const sn={week:3,separator:0,omitZeroMinute:0,meridiem:0,omitCommas:0},on={timeZoneName:7,era:6,year:5,month:4,day:2,weekday:2,hour:1,minute:1,second:1},an=/\s*([ap])\.?m\.?/i,ln=/,/g,cn=/\s+/g,dn=/\u200e/g,un=/UTC|GMT/;class hn{constructor(e){let t={},n={},r=0;for(let i in e)i in sn?(n[i]=e[i],r=Math.max(sn[i],r)):(t[i]=e[i],i in on&&(r=Math.max(on[i],r)));this.standardDateProps=t,this.extendedSettings=n,this.severity=r,this.buildFormattingFunc=nn(fn)}format(e,t){return this.buildFormattingFunc(this.standardDateProps,this.extendedSettings,t)(e)}formatRange(e,t,n,r){let{standardDateProps:i,extendedSettings:s}=this,o=function(e,t,n){if(n.getMarkerYear(e)!==n.getMarkerYear(t))return 5;if(n.getMarkerMonth(e)!==n.getMarkerMonth(t))return 4;if(n.getMarkerDay(e)!==n.getMarkerDay(t))return 2;if(Xt(e)!==Xt(t))return 1;return 0}(e.marker,t.marker,n.calendarSystem);if(!o)return this.format(e,n);let a=o;!(a>1)||"numeric"!==i.year&&"2-digit"!==i.year||"numeric"!==i.month&&"2-digit"!==i.month||"numeric"!==i.day&&"2-digit"!==i.day||(a=1);let l=this.format(e,n),c=this.format(t,n);if(l===c)return l;let d=fn(function(e,t){let n={};for(let r in e)(!(r in on)||on[r]<=t)&&(n[r]=e[r]);return n}(i,a),s,n),u=d(e),h=d(t),f=function(e,t,n,r){let i=0;for(;i<e.length;){let s=e.indexOf(t,i);if(-1===s)break;let o=e.substr(0,s);i=s+t.length;let a=e.substr(i),l=0;for(;l<n.length;){let e=n.indexOf(r,l);if(-1===e)break;let t=n.substr(0,e);l=e+r.length;let i=n.substr(l);if(o===t&&a===i)return{before:o,after:a}}}return null}(l,u,c,h),g=s.separator||r||n.defaultSeparator||"";return f?f.before+u+g+h+f.after:l+g+c}getLargestUnit(){switch(this.severity){case 7:case 6:case 5:return"year";case 4:return"month";case 3:return"week";case 2:return"day";default:return"time"}}}function fn(e,t,n){let r=Object.keys(e).length;return 1===r&&"short"===e.timeZoneName?e=>tn(e.timeZoneOffset):0===r&&t.week?e=>function(e,t,n,r,i){let s=[];"long"===i?s.push(n):"short"!==i&&"narrow"!==i||s.push(t);"long"!==i&&"short"!==i||s.push(" ");s.push(r.simpleNumberFormat.format(e)),"rtl"===r.options.direction&&s.reverse();return s.join("")}(n.computeWeekNumber(e.marker),n.weekText,n.weekTextLong,n.locale,t.week):function(e,t,n){e=Object.assign({},e),t=Object.assign({},t),function(e,t){e.timeZoneName&&(e.hour||(e.hour="2-digit"),e.minute||(e.minute="2-digit"));"long"===e.timeZoneName&&(e.timeZoneName="short");t.omitZeroMinute&&(e.second||e.millisecond)&&delete t.omitZeroMinute}(e,t),e.timeZone="UTC";let r,i=new Intl.DateTimeFormat(n.locale.codes,e);if(t.omitZeroMinute){let t=Object.assign({},e);delete t.minute,r=new Intl.DateTimeFormat(n.locale.codes,t)}return s=>{let o,{marker:a}=s;return o=r&&!a.getUTCMinutes()?r:i,function(e,t,n,r,i){e=e.replace(dn,""),"short"===n.timeZoneName&&(e=function(e,t){let n=!1;e=e.replace(un,()=>(n=!0,t)),n||(e+=" "+t);return e}(e,"UTC"===i.timeZone||null==t.timeZoneOffset?"UTC":tn(t.timeZoneOffset)));r.omitCommas&&(e=e.replace(ln,"").trim());r.omitZeroMinute&&(e=e.replace(":00",""));!1===r.meridiem?e=e.replace(an,"").trim():"narrow"===r.meridiem?e=e.replace(an,(e,t)=>t.toLocaleLowerCase()):"short"===r.meridiem?e=e.replace(an,(e,t)=>t.toLocaleLowerCase()+"m"):"lowercase"===r.meridiem&&(e=e.replace(an,e=>e.toLocaleLowerCase()));return e=(e=e.replace(cn," ")).trim()}(o.format(a),s,e,t,n)}}(e,t,n)}function gn(e,t){let n=t.markerToArray(e.marker);return{marker:e.marker,timeZoneOffset:e.timeZoneOffset,array:n,year:n[0],month:n[1],day:n[2],hour:n[3],minute:n[4],second:n[5],millisecond:n[6]}}function pn(e,t,n,r){let i=gn(e,n.calendarSystem);return{date:i,start:i,end:t?gn(t,n.calendarSystem):null,timeZone:n.timeZone,localeCodes:n.locale.codes,defaultSeparator:r||n.defaultSeparator}}class mn{constructor(e){this.cmdStr=e}format(e,t,n){return t.cmdFormatter(this.cmdStr,pn(e,null,t,n))}formatRange(e,t,n,r){return n.cmdFormatter(this.cmdStr,pn(e,t,n,r))}}class vn{constructor(e){this.func=e}format(e,t,n){return this.func(pn(e,null,t,n))}formatRange(e,t,n,r){return this.func(pn(e,t,n,r))}}function yn(e){return"object"==typeof e&&e?new hn(e):"string"==typeof e?new mn(e):"function"==typeof e?new vn(e):null}const bn={navLinkDayClick:Tn,navLinkWeekClick:Tn,duration:ht,bootstrapFontAwesome:Tn,buttonIcons:Tn,customButtons:Tn,defaultAllDayEventDuration:ht,defaultTimedEventDuration:ht,nextDayThreshold:ht,scrollTime:ht,scrollTimeReset:Boolean,slotMinTime:ht,slotMaxTime:ht,dayPopoverFormat:yn,slotDuration:ht,snapDuration:ht,headerToolbar:Tn,footerToolbar:Tn,defaultRangeSeparator:String,titleRangeSeparator:String,forceEventDuration:Boolean,dayHeaders:Boolean,dayHeaderFormat:yn,dayHeaderClassNames:Tn,dayHeaderContent:Tn,dayHeaderDidMount:Tn,dayHeaderWillUnmount:Tn,dayCellClassNames:Tn,dayCellContent:Tn,dayCellDidMount:Tn,dayCellWillUnmount:Tn,initialView:String,aspectRatio:Number,weekends:Boolean,weekNumberCalculation:Tn,weekNumbers:Boolean,weekNumberClassNames:Tn,weekNumberContent:Tn,weekNumberDidMount:Tn,weekNumberWillUnmount:Tn,editable:Boolean,viewClassNames:Tn,viewDidMount:Tn,viewWillUnmount:Tn,nowIndicator:Boolean,nowIndicatorClassNames:Tn,nowIndicatorContent:Tn,nowIndicatorDidMount:Tn,nowIndicatorWillUnmount:Tn,showNonCurrentDates:Boolean,lazyFetching:Boolean,startParam:String,endParam:String,timeZoneParam:String,timeZone:String,locales:Tn,locale:Tn,themeSystem:String,dragRevertDuration:Number,dragScroll:Boolean,allDayMaintainDuration:Boolean,unselectAuto:Boolean,dropAccept:Tn,eventOrder:tt,eventOrderStrict:Boolean,handleWindowResize:Boolean,windowResizeDelay:Number,longPressDelay:Number,eventDragMinDistance:Number,expandRows:Boolean,height:Tn,contentHeight:Tn,direction:String,weekNumberFormat:yn,eventResizableFromStart:Boolean,displayEventTime:Boolean,displayEventEnd:Boolean,weekText:String,weekTextLong:String,progressiveEventRendering:Boolean,businessHours:Tn,initialDate:Tn,now:Tn,eventDataTransform:Tn,stickyHeaderDates:Tn,stickyFooterScrollbar:Tn,viewHeight:Tn,defaultAllDay:Boolean,eventSourceFailure:Tn,eventSourceSuccess:Tn,eventDisplay:String,eventStartEditable:Boolean,eventDurationEditable:Boolean,eventOverlap:Tn,eventConstraint:Tn,eventAllow:Tn,eventBackgroundColor:String,eventBorderColor:String,eventTextColor:String,eventColor:String,eventClassNames:Tn,eventContent:Tn,eventDidMount:Tn,eventWillUnmount:Tn,selectConstraint:Tn,selectOverlap:Tn,selectAllow:Tn,droppable:Boolean,unselectCancel:String,slotLabelFormat:Tn,slotLaneClassNames:Tn,slotLaneContent:Tn,slotLaneDidMount:Tn,slotLaneWillUnmount:Tn,slotLabelClassNames:Tn,slotLabelContent:Tn,slotLabelDidMount:Tn,slotLabelWillUnmount:Tn,dayMaxEvents:Tn,dayMaxEventRows:Tn,dayMinWidth:Number,slotLabelInterval:ht,allDayText:String,allDayClassNames:Tn,allDayContent:Tn,allDayDidMount:Tn,allDayWillUnmount:Tn,slotMinWidth:Number,navLinks:Boolean,eventTimeFormat:yn,rerenderDelay:Number,moreLinkText:Tn,moreLinkHint:Tn,selectMinDistance:Number,selectable:Boolean,selectLongPressDelay:Number,eventLongPressDelay:Number,selectMirror:Boolean,eventMaxStack:Number,eventMinHeight:Number,eventMinWidth:Number,eventShortHeight:Number,slotEventOverlap:Boolean,plugins:Tn,firstDay:Number,dayCount:Number,dateAlignment:String,dateIncrement:ht,hiddenDays:Tn,fixedWeekCount:Boolean,validRange:Tn,visibleRange:Tn,titleFormat:Tn,eventInteractive:Boolean,noEventsText:String,viewHint:Tn,navLinkHint:Tn,closeHint:String,timeHint:String,eventHint:String,moreLinkClick:Tn,moreLinkClassNames:Tn,moreLinkContent:Tn,moreLinkDidMount:Tn,moreLinkWillUnmount:Tn,monthStartFormat:yn,handleCustomRendering:Tn,customRenderingMetaMap:Tn,customRenderingReplacesEl:Boolean},En={eventDisplay:"auto",defaultRangeSeparator:" - ",titleRangeSeparator:" – ",defaultTimedEventDuration:"01:00:00",defaultAllDayEventDuration:{day:1},forceEventDuration:!1,nextDayThreshold:"00:00:00",dayHeaders:!0,initialView:"",aspectRatio:1.35,headerToolbar:{start:"title",center:"",end:"today prev,next"},weekends:!0,weekNumbers:!1,weekNumberCalculation:"local",editable:!1,nowIndicator:!1,scrollTime:"06:00:00",scrollTimeReset:!0,slotMinTime:"00:00:00",slotMaxTime:"24:00:00",showNonCurrentDates:!0,lazyFetching:!0,startParam:"start",endParam:"end",timeZoneParam:"timeZone",timeZone:"local",locales:[],locale:"",themeSystem:"standard",dragRevertDuration:500,dragScroll:!0,allDayMaintainDuration:!1,unselectAuto:!0,dropAccept:"*",eventOrder:"start,-duration,allDay,title",dayPopoverFormat:{month:"long",day:"numeric",year:"numeric"},handleWindowResize:!0,windowResizeDelay:100,longPressDelay:1e3,eventDragMinDistance:5,expandRows:!1,navLinks:!1,selectable:!1,eventMinHeight:15,eventMinWidth:30,eventShortHeight:30,monthStartFormat:{month:"long",day:"numeric"}},Sn={datesSet:Tn,eventsSet:Tn,eventAdd:Tn,eventChange:Tn,eventRemove:Tn,windowResize:Tn,eventClick:Tn,eventMouseEnter:Tn,eventMouseLeave:Tn,select:Tn,unselect:Tn,loading:Tn,_unmount:Tn,_beforeprint:Tn,_afterprint:Tn,_noEventDrop:Tn,_noEventResize:Tn,_resize:Tn,_scrollRequest:Tn},An={buttonText:Tn,buttonHints:Tn,views:Tn,plugins:Tn,initialEvents:Tn,events:Tn,eventSources:Tn},Dn={headerToolbar:wn,footerToolbar:wn,buttonText:wn,buttonHints:wn,buttonIcons:wn,dateIncrement:wn,plugins:Cn,events:Cn,eventSources:Cn,resources:Cn};function wn(e,t){return"object"==typeof e&&"object"==typeof t&&e&&t?Rt(e,t):e===t}function Cn(e,t){return Array.isArray(e)&&Array.isArray(t)?It(e,t):e===t}const Rn={type:String,component:Tn,buttonText:String,buttonTextKey:String,dateProfileGeneratorClass:Tn,usesMinMaxTime:Boolean,classNames:Tn,content:Tn,didMount:Tn,willUnmount:Tn};function xn(e){return St(e,Dn)}function _n(e,t){let n={},r={};for(let r in t)r in e&&(n[r]=t[r](e[r]));for(let n in e)n in t||(r[n]=e[n]);return{refined:n,extra:r}}function Tn(e){return e}function kn(e,t,n,r){return{instanceId:Ye(),defId:e,range:t,forcedStartTzo:null==n?null:n,forcedEndTzo:null==r?null:r}}function Mn(e,t,n){let{dateEnv:r,pluginHooks:i,options:s}=n,{defs:o,instances:a}=e;a=At(a,e=>!o[e.defId].recurringDef);for(let e in o){let n=o[e];if(n.recurringDef){let{duration:o}=n.recurringDef;o||(o=n.allDay?s.defaultAllDayEventDuration:s.defaultTimedEventDuration);let l=In(n,o,t,r,i.recurringTypes);for(let t of l){let n=kn(e,{start:t,end:r.add(t,o)});a[n.instanceId]=n}}}return{defs:o,instances:a}}function In(e,t,n,r,i){let s=i[e.recurringDef.typeId].expand(e.recurringDef.typeData,{start:r.subtract(n.start,t),end:n.end},r);return e.allDay&&(s=s.map(Lt)),s}function On(e,t,n,r,i,s){let o={defs:{},instances:{}},a=Xn(n);for(let l of e){let e=Yn(l,t,n,r,a,i,s);e&&Nn(e,o)}return o}function Nn(e,t={defs:{},instances:{}}){return t.defs[e.def.defId]=e.def,e.instance&&(t.instances[e.instance.instanceId]=e.instance),t}function Pn(e,t){let n=e.instances[t];if(n){let t=e.defs[n.defId],r=jn(e,e=>{return n=t,r=e,Boolean(n.groupId&&n.groupId===r.groupId);var n,r});return r.defs[t.defId]=t,r.instances[n.instanceId]=n,r}return{defs:{},instances:{}}}function Hn(){return{defs:{},instances:{}}}function Bn(e,t){return{defs:Object.assign(Object.assign({},e.defs),t.defs),instances:Object.assign(Object.assign({},e.instances),t.instances)}}function jn(e,t){let n=At(e.defs,t),r=At(e.instances,e=>n[e.defId]);return{defs:n,instances:r}}function zn(e){return Array.isArray(e)?e:"string"==typeof e?e.split(/\s+/):[]}const Un={display:String,editable:Boolean,startEditable:Boolean,durationEditable:Boolean,constraint:Tn,overlap:Tn,allow:Tn,className:zn,classNames:zn,color:String,backgroundColor:String,borderColor:String,textColor:String},Wn={display:null,startEditable:null,durationEditable:null,constraints:[],overlap:null,allows:[],backgroundColor:"",borderColor:"",textColor:"",classNames:[]};function Ln(e,t){let n=function(e,t){return Array.isArray(e)?On(e,null,t,!0):"object"==typeof e&&e?On([e],null,t,!0):null!=e?String(e):null}(e.constraint,t);return{display:e.display||null,startEditable:null!=e.startEditable?e.startEditable:e.editable,durationEditable:null!=e.durationEditable?e.durationEditable:e.editable,constraints:null!=n?[n]:[],overlap:null!=e.overlap?e.overlap:null,allows:null!=e.allow?[e.allow]:[],backgroundColor:e.backgroundColor||e.color||"",borderColor:e.borderColor||e.color||"",textColor:e.textColor||"",classNames:(e.className||[]).concat(e.classNames||[])}}function Fn(e){return e.reduce(Vn,Wn)}function Vn(e,t){return{display:null!=t.display?t.display:e.display,startEditable:null!=t.startEditable?t.startEditable:e.startEditable,durationEditable:null!=t.durationEditable?t.durationEditable:e.durationEditable,constraints:e.constraints.concat(t.constraints),overlap:"boolean"==typeof t.overlap?t.overlap:e.overlap,allows:e.allows.concat(t.allows),backgroundColor:t.backgroundColor||e.backgroundColor,borderColor:t.borderColor||e.borderColor,textColor:t.textColor||e.textColor,classNames:e.classNames.concat(t.classNames)}}const Gn={id:String,groupId:String,title:String,url:String,interactive:Boolean},Qn={start:Tn,end:Tn,date:Tn,allDay:Boolean},qn=Object.assign(Object.assign(Object.assign({},Gn),Qn),{extendedProps:Tn});function Yn(e,t,n,r,i=Xn(n),s,o){let{refined:a,extra:l}=Zn(e,n,i),c=function(e,t){let n=null;e&&(n=e.defaultAllDay);null==n&&(n=t.options.defaultAllDay);return n}(t,n),d=function(e,t,n,r){for(let i=0;i<r.length;i+=1){let s=r[i].parse(e,n);if(s){let{allDay:n}=e;return null==n&&(n=t,null==n&&(n=s.allDayGuess,null==n&&(n=!1))),{allDay:n,duration:s.duration,typeData:s.typeData,typeId:i}}}return null}(a,c,n.dateEnv,n.pluginHooks.recurringTypes);if(d){let e=$n(a,l,t?t.sourceId:"",d.allDay,Boolean(d.duration),n,s);return e.recurringDef={typeId:d.typeId,typeData:d.typeData,duration:d.duration},{def:e,instance:null}}let u=function(e,t,n,r){let i,s,{allDay:o}=e,a=null,l=!1,c=null,d=null!=e.start?e.start:e.date;if(i=n.dateEnv.createMarkerMeta(d),i)a=i.marker;else if(!r)return null;null!=e.end&&(s=n.dateEnv.createMarkerMeta(e.end));null==o&&(o=null!=t?t:(!i||i.isTimeUnspecified)&&(!s||s.isTimeUnspecified));o&&a&&(a=Lt(a));s&&(c=s.marker,o&&(c=Lt(c)),a&&c<=a&&(c=null));c?l=!0:r||(l=n.options.forceEventDuration||!1,c=n.dateEnv.add(a,o?n.options.defaultAllDayEventDuration:n.options.defaultTimedEventDuration));return{allDay:o,hasEnd:l,range:{start:a,end:c},forcedStartTzo:i?i.forcedTzo:null,forcedEndTzo:s?s.forcedTzo:null}}(a,c,n,r);if(u){let e=$n(a,l,t?t.sourceId:"",u.allDay,u.hasEnd,n,s),r=kn(e.defId,u.range,u.forcedStartTzo,u.forcedEndTzo);return o&&e.publicId&&o[e.publicId]&&(r.instanceId=o[e.publicId]),{def:e,instance:r}}return null}function Zn(e,t,n=Xn(t)){return _n(e,n)}function Xn(e){return Object.assign(Object.assign(Object.assign({},Un),qn),e.pluginHooks.eventRefiners)}function $n(e,t,n,r,i,s,o){let a={title:e.title||"",groupId:e.groupId||"",publicId:e.id||"",url:e.url||"",recurringDef:null,defId:(o&&e.id?o[e.id]:"")||Ye(),sourceId:n,allDay:r,hasEnd:i,interactive:e.interactive,ui:Ln(e,s),extendedProps:Object.assign(Object.assign({},e.extendedProps||{}),t)};for(let t of s.pluginHooks.eventDefMemberAdders)Object.assign(a,t(e));return Object.freeze(a.ui.classNames),Object.freeze(a.extendedProps),a}const Jn={startTime:"09:00",endTime:"17:00",daysOfWeek:[1,2,3,4,5],display:"inverse-background",classNames:"fc-non-business",groupId:"_businessHours"};function Kn(e,t){return On(function(e){let t;t=!0===e?[{}]:Array.isArray(e)?e.filter(e=>e.daysOfWeek):"object"==typeof e&&e?[e]:[];return t=t.map(e=>Object.assign(Object.assign({},Jn),e)),t}(e),null,t)}function er(e){let t=Math.floor(jt(e.start,e.end))||1,n=Lt(e.start);return{start:n,end:Pt(n,t)}}function tr(e,t=ht(0)){let n=null,r=null;if(e.end){r=Lt(e.end);let n=e.end.valueOf()-r.valueOf();n&&n>=vt(t)&&(r=Pt(r,1))}return e.start&&(n=Lt(e.start),r&&r<=n&&(r=Pt(n,1))),{start:n,end:r}}function nr(e){let t=tr(e);return jt(t.start,t.end)>1}function rr(e,t,n,r){return"year"===r?ht(n.diffWholeYears(e,t),"year"):"month"===r?ht(n.diffWholeMonths(e,t),"month"):zt(e,t)}function ir(e,t){return e.left>=t.left&&e.left<t.right&&e.top>=t.top&&e.top<t.bottom}function sr(e,t){let n={left:Math.max(e.left,t.left),right:Math.min(e.right,t.right),top:Math.max(e.top,t.top),bottom:Math.min(e.bottom,t.bottom)};return n.left<n.right&&n.top<n.bottom&&n}function or(e,t){return{left:Math.min(Math.max(e.left,t.left),t.right),top:Math.min(Math.max(e.top,t.top),t.bottom)}}function ar(e){return{left:(e.left+e.right)/2,top:(e.top+e.bottom)/2}}function lr(e,t){return{left:e.left-t.left,top:e.top-t.top}}let cr;function dr(){return null==cr&&(cr=function(){if("undefined"==typeof document)return!0;let e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.innerHTML="<table><tr><td><div></div></td></tr></table>",e.querySelector("table").style.height="100px",e.querySelector("div").style.height="100%",document.body.appendChild(e);let t=e.querySelector("div").offsetHeight>0;return document.body.removeChild(e),t}()),cr}const ur={defs:{},instances:{}};class hr{constructor(){this.getKeysForEventDefs=nn(this._getKeysForEventDefs),this.splitDateSelection=nn(this._splitDateSpan),this.splitEventStore=nn(this._splitEventStore),this.splitIndividualUi=nn(this._splitIndividualUi),this.splitEventDrag=nn(this._splitInteraction),this.splitEventResize=nn(this._splitInteraction),this.eventUiBuilders={}}splitProps(e){let t=this.getKeyInfo(e),n=this.getKeysForEventDefs(e.eventStore),r=this.splitDateSelection(e.dateSelection),i=this.splitIndividualUi(e.eventUiBases,n),s=this.splitEventStore(e.eventStore,n),o=this.splitEventDrag(e.eventDrag),a=this.splitEventResize(e.eventResize),l={};this.eventUiBuilders=Dt(t,(e,t)=>this.eventUiBuilders[t]||nn(fr));for(let n in t){let c=t[n],d=s[n]||ur,u=this.eventUiBuilders[n];l[n]={businessHours:c.businessHours||e.businessHours,dateSelection:r[n]||null,eventStore:d,eventUiBases:u(e.eventUiBases[""],c.ui,i[n]),eventSelection:d.instances[e.eventSelection]?e.eventSelection:"",eventDrag:o[n]||null,eventResize:a[n]||null}}return l}_splitDateSpan(e){let t={};if(e){let n=this.getKeysForDateSpan(e);for(let r of n)t[r]=e}return t}_getKeysForEventDefs(e){return Dt(e.defs,e=>this.getKeysForEventDef(e))}_splitEventStore(e,t){let{defs:n,instances:r}=e,i={};for(let e in n)for(let r of t[e])i[r]||(i[r]={defs:{},instances:{}}),i[r].defs[e]=n[e];for(let e in r){let n=r[e];for(let r of t[n.defId])i[r]&&(i[r].instances[e]=n)}return i}_splitIndividualUi(e,t){let n={};for(let r in e)if(r)for(let i of t[r])n[i]||(n[i]={}),n[i][r]=e[r];return n}_splitInteraction(e){let t={};if(e){let n=this._splitEventStore(e.affectedEvents,this._getKeysForEventDefs(e.affectedEvents)),r=this._getKeysForEventDefs(e.mutatedEvents),i=this._splitEventStore(e.mutatedEvents,r),s=r=>{t[r]||(t[r]={affectedEvents:n[r]||ur,mutatedEvents:i[r]||ur,isEvent:e.isEvent})};for(let e in n)s(e);for(let e in i)s(e)}return t}}function fr(e,t,n){let r=[];e&&r.push(e),t&&r.push(t);let i={"":Fn(r)};return n&&Object.assign(i,n),i}function gr(e,t){let n,r,i=[],{start:s}=t;for(e.sort(pr),n=0;n<e.length;n+=1)r=e[n],r.start>s&&i.push({start:s,end:r.start}),r.end>s&&(s=r.end);return s<t.end&&i.push({start:s,end:t.end}),i}function pr(e,t){return e.start.valueOf()-t.start.valueOf()}function mr(e,t){let{start:n,end:r}=e,i=null;return null!==t.start&&(n=null===n?t.start:new Date(Math.max(n.valueOf(),t.start.valueOf()))),null!=t.end&&(r=null===r?t.end:new Date(Math.min(r.valueOf(),t.end.valueOf()))),(null===n||null===r||n<r)&&(i={start:n,end:r}),i}function vr(e,t){return(null===e.start?null:e.start.valueOf())===(null===t.start?null:t.start.valueOf())&&(null===e.end?null:e.end.valueOf())===(null===t.end?null:t.end.valueOf())}function yr(e,t){return(null===e.end||null===t.start||e.end>t.start)&&(null===e.start||null===t.end||e.start<t.end)}function br(e,t){return(null===e.start||null!==t.start&&t.start>=e.start)&&(null===e.end||null!==t.end&&t.end<=e.end)}function Er(e,t){return(null===e.start||t>=e.start)&&(null===e.end||t<e.end)}function Sr(e,t,n,r){return{dow:e.getUTCDay(),isDisabled:Boolean(r&&!Er(r.activeRange,e)),isOther:Boolean(r&&!Er(r.currentRange,e)),isToday:Boolean(t&&Er(t,e)),isPast:Boolean(n?e<n:!!t&&e<t.start),isFuture:Boolean(n?e>n:!!t&&e>=t.end)}}function Ar(e,t){let n=["fc-day","fc-day-"+Ot[e.dow]];return e.isDisabled?n.push("fc-day-disabled"):(e.isToday&&(n.push("fc-day-today"),n.push(t.getClass("today"))),e.isPast&&n.push("fc-day-past"),e.isFuture&&n.push("fc-day-future"),e.isOther&&n.push("fc-day-other")),n}const Dr=yn({year:"numeric",month:"long",day:"numeric"}),wr=yn({week:"long"});function Cr(e,t,n="day",r=!0){const{dateEnv:i,options:s,calendarApi:o}=e;let a=i.format(t,"week"===n?wr:Dr);if(s.navLinks){let e=i.toDate(t);const l=e=>{let r="day"===n?s.navLinkDayClick:"week"===n?s.navLinkWeekClick:null;"function"==typeof r?r.call(o,i.toDate(t),e):("string"==typeof r&&(n=r),o.zoomTo(t,n))};return Object.assign({title:ot(s.navLinkHint,[a,e],a),"data-navlink":""},r?Ge(l):{onClick:l})}return{"aria-label":a}}let Rr,xr=null;function _r(){return null===xr&&(xr=function(){let e=document.createElement("div");He(e,{position:"absolute",top:-1e3,left:0,border:0,padding:0,overflow:"scroll",direction:"rtl"}),e.innerHTML="<div></div>",document.body.appendChild(e);let t=e.firstChild.getBoundingClientRect().left>e.getBoundingClientRect().left;return Me(e),t}()),xr}function Tr(){return Rr||(Rr=function(){let e=document.createElement("div");e.style.overflow="scroll",e.style.position="absolute",e.style.top="-9999px",e.style.left="-9999px",document.body.appendChild(e);let t=kr(e);return document.body.removeChild(e),t}()),Rr}function kr(e){return{x:e.offsetHeight-e.clientHeight,y:e.offsetWidth-e.clientWidth}}function Mr(e,t=!1){let n=window.getComputedStyle(e),r=parseInt(n.borderLeftWidth,10)||0,i=parseInt(n.borderRightWidth,10)||0,s=parseInt(n.borderTopWidth,10)||0,o=parseInt(n.borderBottomWidth,10)||0,a=kr(e),l=a.y-r-i,c={borderLeft:r,borderRight:i,borderTop:s,borderBottom:o,scrollbarBottom:a.x-s-o,scrollbarLeft:0,scrollbarRight:0};return _r()&&"rtl"===n.direction?c.scrollbarLeft=l:c.scrollbarRight=l,t&&(c.paddingLeft=parseInt(n.paddingLeft,10)||0,c.paddingRight=parseInt(n.paddingRight,10)||0,c.paddingTop=parseInt(n.paddingTop,10)||0,c.paddingBottom=parseInt(n.paddingBottom,10)||0),c}function Ir(e,t=!1,n){let r=n?e.getBoundingClientRect():Or(e),i=Mr(e,t),s={left:r.left+i.borderLeft+i.scrollbarLeft,right:r.right-i.borderRight-i.scrollbarRight,top:r.top+i.borderTop,bottom:r.bottom-i.borderBottom-i.scrollbarBottom};return t&&(s.left+=i.paddingLeft,s.right-=i.paddingRight,s.top+=i.paddingTop,s.bottom-=i.paddingBottom),s}function Or(e){let t=e.getBoundingClientRect();return{left:t.left+window.pageXOffset,top:t.top+window.pageYOffset,right:t.right+window.pageXOffset,bottom:t.bottom+window.pageYOffset}}function Nr(e){let t=[];for(;e instanceof HTMLElement;){let n=window.getComputedStyle(e);if("fixed"===n.position)break;/(auto|scroll)/.test(n.overflow+n.overflowY+n.overflowX)&&t.push(e),e=e.parentNode}return t}function Pr(e,t,n){let r=!1,i=function(e){r||(r=!0,t(e))},s=function(e){r||(r=!0,n(e))},o=e(i,s);o&&"function"==typeof o.then&&o.then(i,s)}class Hr{constructor(){this.handlers={},this.thisContext=null}setThisContext(e){this.thisContext=e}setOptions(e){this.options=e}on(e,t){!function(e,t,n){(e[t]||(e[t]=[])).push(n)}(this.handlers,e,t)}off(e,t){!function(e,t,n){n?e[t]&&(e[t]=e[t].filter(e=>e!==n)):delete e[t]}(this.handlers,e,t)}trigger(e,...t){let n=this.handlers[e]||[],r=this.options&&this.options[e],i=[].concat(r||[],n);for(let e of i)e.apply(this.thisContext,t)}hasHandlers(e){return Boolean(this.handlers[e]&&this.handlers[e].length||this.options&&this.options[e])}}class Br{constructor(e,t,n,r){this.els=t;let i=this.originClientRect=e.getBoundingClientRect();n&&this.buildElHorizontals(i.left),r&&this.buildElVerticals(i.top)}buildElHorizontals(e){let t=[],n=[];for(let r of this.els){let i=r.getBoundingClientRect();t.push(i.left-e),n.push(i.right-e)}this.lefts=t,this.rights=n}buildElVerticals(e){let t=[],n=[];for(let r of this.els){let i=r.getBoundingClientRect();t.push(i.top-e),n.push(i.bottom-e)}this.tops=t,this.bottoms=n}leftToIndex(e){let t,{lefts:n,rights:r}=this,i=n.length;for(t=0;t<i;t+=1)if(e>=n[t]&&e<r[t])return t}topToIndex(e){let t,{tops:n,bottoms:r}=this,i=n.length;for(t=0;t<i;t+=1)if(e>=n[t]&&e<r[t])return t}getWidth(e){return this.rights[e]-this.lefts[e]}getHeight(e){return this.bottoms[e]-this.tops[e]}similarTo(e){return jr(this.tops||[],e.tops||[])&&jr(this.bottoms||[],e.bottoms||[])&&jr(this.lefts||[],e.lefts||[])&&jr(this.rights||[],e.rights||[])}}function jr(e,t){const n=e.length;if(n!==t.length)return!1;for(let r=0;r<n;r++)if(Math.round(e[r])!==Math.round(t[r]))return!1;return!0}class zr{getMaxScrollTop(){return this.getScrollHeight()-this.getClientHeight()}getMaxScrollLeft(){return this.getScrollWidth()-this.getClientWidth()}canScrollVertically(){return this.getMaxScrollTop()>0}canScrollHorizontally(){return this.getMaxScrollLeft()>0}canScrollUp(){return this.getScrollTop()>0}canScrollDown(){return this.getScrollTop()<this.getMaxScrollTop()}canScrollLeft(){return this.getScrollLeft()>0}canScrollRight(){return this.getScrollLeft()<this.getMaxScrollLeft()}}class Ur extends zr{constructor(e){super(),this.el=e}getScrollTop(){return this.el.scrollTop}getScrollLeft(){return this.el.scrollLeft}setScrollTop(e){this.el.scrollTop=e}setScrollLeft(e){this.el.scrollLeft=e}getScrollWidth(){return this.el.scrollWidth}getScrollHeight(){return this.el.scrollHeight}getClientHeight(){return this.el.clientHeight}getClientWidth(){return this.el.clientWidth}}class Wr extends zr{getScrollTop(){return window.pageYOffset}getScrollLeft(){return window.pageXOffset}setScrollTop(e){window.scroll(window.pageXOffset,e)}setScrollLeft(e){window.scroll(e,window.pageYOffset)}getScrollWidth(){return document.documentElement.scrollWidth}getScrollHeight(){return document.documentElement.scrollHeight}getClientHeight(){return document.documentElement.clientHeight}getClientWidth(){return document.documentElement.clientWidth}}class Lr{constructor(e){this.iconOverrideOption&&this.setIconOverride(e[this.iconOverrideOption])}setIconOverride(e){let t,n;if("object"==typeof e&&e){for(n in t=Object.assign({},this.iconClasses),e)t[n]=this.applyIconOverridePrefix(e[n]);this.iconClasses=t}else!1===e&&(this.iconClasses={})}applyIconOverridePrefix(e){let t=this.iconOverridePrefix;return t&&0!==e.indexOf(t)&&(e=t+e),e}getClass(e){return this.classes[e]||""}getIconClass(e,t){let n;return n=t&&this.rtlIconClasses&&this.rtlIconClasses[e]||this.iconClasses[e],n?`${this.baseIconClass} ${n}`:""}getCustomButtonIconClass(e){let t;return this.iconOverrideCustomButtonOption&&(t=e[this.iconOverrideCustomButtonOption],t)?`${this.baseIconClass} ${this.applyIconOverridePrefix(t)}`:""}}function Fr(e){e();let t=n.debounceRendering,r=[];for(n.debounceRendering=function(e){r.push(e)},U(p(Vr,{}),document.createElement("div"));r.length;)r.shift()();n.debounceRendering=t}Lr.prototype.classes={},Lr.prototype.iconClasses={},Lr.prototype.baseIconClass="",Lr.prototype.iconOverridePrefix="";class Vr extends D{render(){return p("div",{})}componentDidMount(){this.setState({})}}function Gr(e){let t=function(e,t){var n={__c:t="__cC"+c++,__:e,Consumer:function(e,t){return e.children(t)},Provider:function(e){var n,r;return this.getChildContext||(n=[],(r={})[t]=this,this.getChildContext=function(){return r},this.shouldComponentUpdate=function(e){this.props.value!==e.value&&n.some((function(e){e.__e=!0,x(e)}))},this.sub=function(e){n.push(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){n.splice(n.indexOf(e),1),t&&t.call(e)}}),e.children}};return n.Provider.__=n.Consumer.contextType=n}(e),n=t.Provider;return t.Provider=function(){let e=!this.getChildContext,t=n.apply(this,arguments);if(e){let e=[];this.shouldComponentUpdate=t=>{this.props.value!==t.value&&e.forEach(e=>{e.context=t.value,e.forceUpdate()})},this.sub=t=>{e.push(t);let n=t.componentWillUnmount;t.componentWillUnmount=()=>{e.splice(e.indexOf(t),1),n&&n.call(t)}}}return t},t}class Qr{constructor(e,t,n,r){this.execFunc=e,this.emitter=t,this.scrollTime=n,this.scrollTimeReset=r,this.handleScrollRequest=e=>{this.queuedRequest=Object.assign({},this.queuedRequest||{},e),this.drain()},t.on("_scrollRequest",this.handleScrollRequest),this.fireInitialScroll()}detach(){this.emitter.off("_scrollRequest",this.handleScrollRequest)}update(e){e&&this.scrollTimeReset?this.fireInitialScroll():this.drain()}fireInitialScroll(){this.handleScrollRequest({time:this.scrollTime})}drain(){this.queuedRequest&&this.execFunc(this.queuedRequest)&&(this.queuedRequest=null)}}const qr=Gr({});function Yr(e,t,n,r,i,s,o,a,l,c,d,u,h){return{dateEnv:i,options:n,pluginHooks:o,emitter:c,dispatch:a,getCurrentData:l,calendarApi:d,viewSpec:e,viewApi:t,dateProfileGenerator:r,theme:s,isRtl:"rtl"===n.direction,addResizeHandler(e){c.on("_resize",e)},removeResizeHandler(e){c.off("_resize",e)},createScrollResponder:e=>new Qr(e,c,ht(n.scrollTime),n.scrollTimeReset),registerInteractiveComponent:u,unregisterInteractiveComponent:h}}class Zr extends D{shouldComponentUpdate(e,t){return this.debug&&console.log(_t(e,this.props),_t(t,this.state)),!Tt(this.props,e,this.propEquality)||!Tt(this.state,t,this.stateEquality)}safeSetState(e){Tt(this.state,Object.assign(Object.assign({},this.state),e),this.stateEquality)||this.setState(e)}}Zr.addPropsEquality=function(e){let t=Object.create(this.prototype.propEquality);Object.assign(t,e),this.prototype.propEquality=t},Zr.addStateEquality=function(e){let t=Object.create(this.prototype.stateEquality);Object.assign(t,e),this.prototype.stateEquality=t},Zr.contextType=qr,Zr.prototype.propEquality={},Zr.prototype.stateEquality={};class Xr extends Zr{}function $r(e,t){"function"==typeof e?e(t):e&&(e.current=t)}Xr.contextType=qr;class Jr extends Xr{constructor(){super(...arguments),this.uid=Ye()}prepareHits(){}queryHit(e,t,n,r){return null}isValidSegDownEl(e){return!this.props.eventDrag&&!this.props.eventResize&&!Ie(e,".fc-event-mirror")}isValidDateDownEl(e){return!(Ie(e,".fc-event:not(.fc-bg-event)")||Ie(e,".fc-more-link")||Ie(e,"a[data-navlink]")||Ie(e,".fc-popover"))}}function Kr(e,t){return"function"==typeof e&&(e=e()),null==e?t.createNowMarker():t.createMarker(e)}class ei{constructor(e){this.props=e,this.nowDate=Kr(e.nowInput,e.dateEnv),this.initHiddenDays()}buildPrev(e,t,n){let{dateEnv:r}=this.props,i=r.subtract(r.startOf(t,e.currentRangeUnit),e.dateIncrement);return this.build(i,-1,n)}buildNext(e,t,n){let{dateEnv:r}=this.props,i=r.add(r.startOf(t,e.currentRangeUnit),e.dateIncrement);return this.build(i,1,n)}build(e,t,n=!0){let r,i,s,o,a,l,{props:c}=this;var d,u;return r=this.buildValidRange(),r=this.trimHiddenDays(r),n&&(d=e,e=null!=(u=r).start&&d<u.start?u.start:null!=u.end&&d>=u.end?new Date(u.end.valueOf()-1):d),i=this.buildCurrentRangeInfo(e,t),s=/^(year|month|week|day)$/.test(i.unit),o=this.buildRenderRange(this.trimHiddenDays(i.range),i.unit,s),o=this.trimHiddenDays(o),a=o,c.showNonCurrentDates||(a=mr(a,i.range)),a=this.adjustActiveRange(a),a=mr(a,r),l=yr(i.range,r),Er(o,e)||(e=o.start),{currentDate:e,validRange:r,currentRange:i.range,currentRangeUnit:i.unit,isRangeAllDay:s,activeRange:a,renderRange:o,slotMinTime:c.slotMinTime,slotMaxTime:c.slotMaxTime,isValid:l,dateIncrement:this.buildDateIncrement(i.duration)}}buildValidRange(){let e=this.props.validRangeInput,t="function"==typeof e?e.call(this.props.calendarApi,this.nowDate):e;return this.refineRange(t)||{start:null,end:null}}buildCurrentRangeInfo(e,t){let n,{props:r}=this,i=null,s=null,o=null;return r.duration?(i=r.duration,s=r.durationUnit,o=this.buildRangeFromDuration(e,t,i,s)):(n=this.props.dayCount)?(s="day",o=this.buildRangeFromDayCount(e,t,n)):(o=this.buildCustomVisibleRange(e))?s=r.dateEnv.greatestWholeUnit(o.start,o.end).unit:(i=this.getFallbackDuration(),s=bt(i).unit,o=this.buildRangeFromDuration(e,t,i,s)),{duration:i,unit:s,range:o}}getFallbackDuration(){return ht({day:1})}adjustActiveRange(e){let{dateEnv:t,usesMinMaxTime:n,slotMinTime:r,slotMaxTime:i}=this.props,{start:s,end:o}=e;return n&&(mt(r)<0&&(s=Lt(s),s=t.add(s,r)),mt(i)>1&&(o=Lt(o),o=Pt(o,-1),o=t.add(o,i))),{start:s,end:o}}buildRangeFromDuration(e,t,n,r){let i,s,o,{dateEnv:a,dateAlignment:l}=this.props;if(!l){let{dateIncrement:e}=this.props;l=e&&vt(e)<vt(n)?bt(e).unit:r}function c(){i=a.startOf(e,l),s=a.add(i,n),o={start:i,end:s}}return mt(n)<=1&&this.isHiddenDay(i)&&(i=this.skipHiddenDays(i,t),i=Lt(i)),c(),this.trimHiddenDays(o)||(e=this.skipHiddenDays(e,t),c()),o}buildRangeFromDayCount(e,t,n){let r,{dateEnv:i,dateAlignment:s}=this.props,o=0,a=e;s&&(a=i.startOf(a,s)),a=Lt(a),a=this.skipHiddenDays(a,t),r=a;do{r=Pt(r,1),this.isHiddenDay(r)||(o+=1)}while(o<n);return{start:a,end:r}}buildCustomVisibleRange(e){let{props:t}=this,n=t.visibleRangeInput,r="function"==typeof n?n.call(t.calendarApi,t.dateEnv.toDate(e)):n,i=this.refineRange(r);return!i||null!=i.start&&null!=i.end?i:null}buildRenderRange(e,t,n){return e}buildDateIncrement(e){let t,{dateIncrement:n}=this.props;return n||((t=this.props.dateAlignment)?ht(1,t):e||ht({days:1}))}refineRange(e){if(e){let t=function(e,t){let n=null,r=null;return e.start&&(n=t.createMarker(e.start)),e.end&&(r=t.createMarker(e.end)),n||r?n&&r&&r<n?null:{start:n,end:r}:null}(e,this.props.dateEnv);return t&&(t=tr(t)),t}return null}initHiddenDays(){let e,t=this.props.hiddenDays||[],n=[],r=0;for(!1===this.props.weekends&&t.push(0,6),e=0;e<7;e+=1)(n[e]=-1!==t.indexOf(e))||(r+=1);if(!r)throw new Error("invalid hiddenDays");this.isHiddenDayHash=n}trimHiddenDays(e){let{start:t,end:n}=e;return t&&(t=this.skipHiddenDays(t)),n&&(n=this.skipHiddenDays(n,-1,!0)),null==t||null==n||t<n?{start:t,end:n}:null}isHiddenDay(e){return e instanceof Date&&(e=e.getUTCDay()),this.isHiddenDayHash[e]}skipHiddenDays(e,t=1,n=!1){for(;this.isHiddenDayHash[(e.getUTCDay()+(n?t:0)+7)%7];)e=Pt(e,t);return e}}function ti(e,t,n){n.emitter.trigger("select",Object.assign(Object.assign({},ni(e,n)),{jsEvent:t?t.origEvent:null,view:n.viewApi||n.calendarApi.view}))}function ni(e,t){let n={};for(let r of t.pluginHooks.dateSpanTransforms)Object.assign(n,r(e,t));var r,i;return Object.assign(n,(r=e,i=t.dateEnv,Object.assign(Object.assign({},Mi(r.range,i,r.allDay)),{allDay:r.allDay}))),n}function ri(e,t,n){let{dateEnv:r,options:i}=n,s=t;return e?(s=Lt(s),s=r.add(s,i.defaultAllDayEventDuration)):s=r.add(s,i.defaultTimedEventDuration),s}function ii(e,t,n,r){let i=pi(e.defs,t),s={defs:{},instances:{}};for(let t in e.defs){let o=e.defs[t];s.defs[t]=si(o,i[t],n,r)}for(let t in e.instances){let o=e.instances[t],a=s.defs[o.defId];s.instances[t]=oi(o,a,i[o.defId],n,r)}return s}function si(e,t,n,r){let i=n.standardProps||{};null==i.hasEnd&&t.durationEditable&&(n.startDelta||n.endDelta)&&(i.hasEnd=!0);let s=Object.assign(Object.assign(Object.assign({},e),i),{ui:Object.assign(Object.assign({},e.ui),i.ui)});n.extendedProps&&(s.extendedProps=Object.assign(Object.assign({},s.extendedProps),n.extendedProps));for(let e of r.pluginHooks.eventDefMutationAppliers)e(s,n,r);return!s.hasEnd&&r.options.forceEventDuration&&(s.hasEnd=!0),s}function oi(e,t,n,r,i){let{dateEnv:s}=i,o=r.standardProps&&!0===r.standardProps.allDay,a=r.standardProps&&!1===r.standardProps.hasEnd,l=Object.assign({},e);return o&&(l.range=er(l.range)),r.datesDelta&&n.startEditable&&(l.range={start:s.add(l.range.start,r.datesDelta),end:s.add(l.range.end,r.datesDelta)}),r.startDelta&&n.durationEditable&&(l.range={start:s.add(l.range.start,r.startDelta),end:l.range.end}),r.endDelta&&n.durationEditable&&(l.range={start:l.range.start,end:s.add(l.range.end,r.endDelta)}),a&&(l.range={start:l.range.start,end:ri(t.allDay,l.range.start,i)}),t.allDay&&(l.range={start:Lt(l.range.start),end:Lt(l.range.end)}),l.range.end<l.range.start&&(l.range.end=ri(t.allDay,l.range.start,i)),l}class ai{constructor(e,t){this.context=e,this.internalEventSource=t}remove(){this.context.dispatch({type:"REMOVE_EVENT_SOURCE",sourceId:this.internalEventSource.sourceId})}refetch(){this.context.dispatch({type:"FETCH_EVENT_SOURCES",sourceIds:[this.internalEventSource.sourceId],isRefetch:!0})}get id(){return this.internalEventSource.publicId}get url(){return this.internalEventSource.meta.url}get format(){return this.internalEventSource.meta.format}}class li{constructor(e,t,n){this._context=e,this._def=t,this._instance=n||null}setProp(e,t){if(e in Qn)console.warn("Could not set date-related prop 'name'. Use one of the date-related methods instead.");else if("id"===e)t=Gn[e](t),this.mutate({standardProps:{publicId:t}});else if(e in Gn)t=Gn[e](t),this.mutate({standardProps:{[e]:t}});else if(e in Un){let n=Un[e](t);n="color"===e?{backgroundColor:t,borderColor:t}:"editable"===e?{startEditable:t,durationEditable:t}:{[e]:t},this.mutate({standardProps:{ui:n}})}else console.warn(`Could not set prop '${e}'. Use setExtendedProp instead.`)}setExtendedProp(e,t){this.mutate({extendedProps:{[e]:t}})}setStart(e,t={}){let{dateEnv:n}=this._context,r=n.createMarker(e);if(r&&this._instance){let e=rr(this._instance.range.start,r,n,t.granularity);t.maintainDuration?this.mutate({datesDelta:e}):this.mutate({startDelta:e})}}setEnd(e,t={}){let n,{dateEnv:r}=this._context;if((null==e||(n=r.createMarker(e),n))&&this._instance)if(n){let e=rr(this._instance.range.end,n,r,t.granularity);this.mutate({endDelta:e})}else this.mutate({standardProps:{hasEnd:!1}})}setDates(e,t,n={}){let r,{dateEnv:i}=this._context,s={allDay:n.allDay},o=i.createMarker(e);var a,l;if(o&&((null==t||(r=i.createMarker(t),r))&&this._instance)){let e=this._instance.range;!0===n.allDay&&(e=er(e));let t=rr(e.start,o,i,n.granularity);if(r){let o=rr(e.end,r,i,n.granularity);l=o,(a=t).years===l.years&&a.months===l.months&&a.days===l.days&&a.milliseconds===l.milliseconds?this.mutate({datesDelta:t,standardProps:s}):this.mutate({startDelta:t,endDelta:o,standardProps:s})}else s.hasEnd=!1,this.mutate({datesDelta:t,standardProps:s})}}moveStart(e){let t=ht(e);t&&this.mutate({startDelta:t})}moveEnd(e){let t=ht(e);t&&this.mutate({endDelta:t})}moveDates(e){let t=ht(e);t&&this.mutate({datesDelta:t})}setAllDay(e,t={}){let n={allDay:e},{maintainDuration:r}=t;null==r&&(r=this._context.options.allDayMaintainDuration),this._def.allDay!==e&&(n.hasEnd=r),this.mutate({standardProps:n})}formatRange(e){let{dateEnv:t}=this._context,n=this._instance,r=yn(e);return this._def.hasEnd?t.formatRange(n.range.start,n.range.end,r,{forcedStartTzo:n.forcedStartTzo,forcedEndTzo:n.forcedEndTzo}):t.format(n.range.start,r,{forcedTzo:n.forcedStartTzo})}mutate(e){let t=this._instance;if(t){let n=this._def,r=this._context,{eventStore:i}=r.getCurrentData(),s=Pn(i,t.instanceId);s=ii(s,{"":{display:"",startEditable:!0,durationEditable:!0,constraints:[],overlap:null,allows:[],backgroundColor:"",borderColor:"",textColor:"",classNames:[]}},e,r);let o=new li(r,n,t);this._def=s.defs[n.defId],this._instance=s.instances[t.instanceId],r.dispatch({type:"MERGE_EVENTS",eventStore:s}),r.emitter.trigger("eventChange",{oldEvent:o,event:this,relatedEvents:di(s,r,t),revert(){r.dispatch({type:"RESET_EVENTS",eventStore:i})}})}}remove(){let e=this._context,t=ci(this);e.dispatch({type:"REMOVE_EVENTS",eventStore:t}),e.emitter.trigger("eventRemove",{event:this,relatedEvents:[],revert(){e.dispatch({type:"MERGE_EVENTS",eventStore:t})}})}get source(){let{sourceId:e}=this._def;return e?new ai(this._context,this._context.getCurrentData().eventSources[e]):null}get start(){return this._instance?this._context.dateEnv.toDate(this._instance.range.start):null}get end(){return this._instance&&this._def.hasEnd?this._context.dateEnv.toDate(this._instance.range.end):null}get startStr(){let e=this._instance;return e?this._context.dateEnv.formatIso(e.range.start,{omitTime:this._def.allDay,forcedTzo:e.forcedStartTzo}):""}get endStr(){let e=this._instance;return e&&this._def.hasEnd?this._context.dateEnv.formatIso(e.range.end,{omitTime:this._def.allDay,forcedTzo:e.forcedEndTzo}):""}get id(){return this._def.publicId}get groupId(){return this._def.groupId}get allDay(){return this._def.allDay}get title(){return this._def.title}get url(){return this._def.url}get display(){return this._def.ui.display||"auto"}get startEditable(){return this._def.ui.startEditable}get durationEditable(){return this._def.ui.durationEditable}get constraint(){return this._def.ui.constraints[0]||null}get overlap(){return this._def.ui.overlap}get allow(){return this._def.ui.allows[0]||null}get backgroundColor(){return this._def.ui.backgroundColor}get borderColor(){return this._def.ui.borderColor}get textColor(){return this._def.ui.textColor}get classNames(){return this._def.ui.classNames}get extendedProps(){return this._def.extendedProps}toPlainObject(e={}){let t=this._def,{ui:n}=t,{startStr:r,endStr:i}=this,s={allDay:t.allDay};return t.title&&(s.title=t.title),r&&(s.start=r),i&&(s.end=i),t.publicId&&(s.id=t.publicId),t.groupId&&(s.groupId=t.groupId),t.url&&(s.url=t.url),n.display&&"auto"!==n.display&&(s.display=n.display),e.collapseColor&&n.backgroundColor&&n.backgroundColor===n.borderColor?s.color=n.backgroundColor:(n.backgroundColor&&(s.backgroundColor=n.backgroundColor),n.borderColor&&(s.borderColor=n.borderColor)),n.textColor&&(s.textColor=n.textColor),n.classNames.length&&(s.classNames=n.classNames),Object.keys(t.extendedProps).length&&(e.collapseExtendedProps?Object.assign(s,t.extendedProps):s.extendedProps=t.extendedProps),s}toJSON(){return this.toPlainObject()}}function ci(e){let t=e._def,n=e._instance;return{defs:{[t.defId]:t},instances:n?{[n.instanceId]:n}:{}}}function di(e,t,n){let{defs:r,instances:i}=e,s=[],o=n?n.instanceId:"";for(let e in i){let n=i[e],a=r[n.defId];n.instanceId!==o&&s.push(new li(t,a,n))}return s}function ui(e,t,n,r){let i={},s={},o={},a=[],l=[],c=pi(e.defs,t);for(let t in e.defs){let n=e.defs[t];"inverse-background"===c[n.defId].display&&(n.groupId?(i[n.groupId]=[],o[n.groupId]||(o[n.groupId]=n)):s[t]=[])}for(let t in e.instances){let o=e.instances[t],d=e.defs[o.defId],u=c[d.defId],h=o.range,f=!d.allDay&&r?tr(h,r):h,g=mr(f,n);g&&("inverse-background"===u.display?d.groupId?i[d.groupId].push(g):s[o.defId].push(g):"none"!==u.display&&("background"===u.display?a:l).push({def:d,ui:u,instance:o,range:g,isStart:f.start&&f.start.valueOf()===g.start.valueOf(),isEnd:f.end&&f.end.valueOf()===g.end.valueOf()}))}for(let e in i){let t=gr(i[e],n);for(let n of t){let t=o[e],r=c[t.defId];a.push({def:t,ui:r,instance:null,range:n,isStart:!1,isEnd:!1})}}for(let t in s){let r=gr(s[t],n);for(let n of r)a.push({def:e.defs[t],ui:c[t],instance:null,range:n,isStart:!1,isEnd:!1})}return{bg:a,fg:l}}function hi(e){return"background"===e.ui.display||"inverse-background"===e.ui.display}function fi(e,t){e.fcSeg=t}function gi(e){return e.fcSeg||e.parentNode.fcSeg||null}function pi(e,t){return Dt(e,e=>mi(e,t))}function mi(e,t){let n=[];return t[""]&&n.push(t[""]),t[e.defId]&&n.push(t[e.defId]),n.push(e.ui),Fn(n)}function vi(e,t){let n=e.map(yi);return n.sort((e,n)=>nt(e,n,t)),n.map(e=>e._seg)}function yi(e){let{eventRange:t}=e,n=t.def,r=t.instance?t.instance.range:t.range,i=r.start?r.start.valueOf():0,s=r.end?r.end.valueOf():0;return Object.assign(Object.assign(Object.assign({},n.extendedProps),n),{id:n.publicId,start:i,end:s,duration:s-i,allDay:Number(n.allDay),_seg:e})}function bi(e,t){let{pluginHooks:n}=t,r=n.isDraggableTransformers,{def:i,ui:s}=e.eventRange,o=s.startEditable;for(let e of r)o=e(o,i,s,t);return o}function Ei(e,t){return e.isStart&&e.eventRange.ui.durationEditable&&t.options.eventResizableFromStart}function Si(e,t){return e.isEnd&&e.eventRange.ui.durationEditable}function Ai(e,t,n,r,i,s,o){let{dateEnv:a,options:l}=n,{displayEventTime:c,displayEventEnd:d}=l,u=e.eventRange.def,h=e.eventRange.instance;null==c&&(c=!1!==r),null==d&&(d=!1!==i);let f=h.range.start,g=h.range.end,p=s||e.start||e.eventRange.range.start,m=o||e.end||e.eventRange.range.end,v=Lt(f).valueOf()===Lt(p).valueOf(),y=Lt(Ht(g,-1)).valueOf()===Lt(Ht(m,-1)).valueOf();return c&&!u.allDay&&(v||y)?(p=v?f:p,m=y?g:m,d&&u.hasEnd?a.formatRange(p,m,t,{forcedStartTzo:s?null:h.forcedStartTzo,forcedEndTzo:o?null:h.forcedEndTzo}):a.format(p,t,{forcedTzo:s?null:h.forcedStartTzo})):""}function Di(e,t,n){let r=e.eventRange.range;return{isPast:r.end<(n||t.start),isFuture:r.start>=(n||t.end),isToday:t&&Er(t,r.start)}}function wi(e){let t=["fc-event"];return e.isMirror&&t.push("fc-event-mirror"),e.isDraggable&&t.push("fc-event-draggable"),(e.isStartResizable||e.isEndResizable)&&t.push("fc-event-resizable"),e.isDragging&&t.push("fc-event-dragging"),e.isResizing&&t.push("fc-event-resizing"),e.isSelected&&t.push("fc-event-selected"),e.isStart&&t.push("fc-event-start"),e.isEnd&&t.push("fc-event-end"),e.isPast&&t.push("fc-event-past"),e.isToday&&t.push("fc-event-today"),e.isFuture&&t.push("fc-event-future"),t}function Ci(e){return e.instance?e.instance.instanceId:`${e.def.defId}:${e.range.start.toISOString()}`}function Ri(e,t){let{def:n,instance:r}=e.eventRange,{url:i}=n;if(i)return{href:i};let{emitter:s,options:o}=t,{eventInteractive:a}=o;return null==a&&(a=n.interactive,null==a&&(a=Boolean(s.hasHandlers("eventClick")))),a?Qe(e=>{s.trigger("eventClick",{el:e.target,event:new li(t,n,r),jsEvent:e,view:t.viewApi})}):{}}const xi={start:Tn,end:Tn,allDay:Boolean};function _i(e,t,n){let r=function(e,t){let{refined:n,extra:r}=_n(e,xi),i=n.start?t.createMarkerMeta(n.start):null,s=n.end?t.createMarkerMeta(n.end):null,{allDay:o}=n;null==o&&(o=i&&i.isTimeUnspecified&&(!s||s.isTimeUnspecified));return Object.assign({range:{start:i?i.marker:null,end:s?s.marker:null},allDay:o},r)}(e,t),{range:i}=r;if(!i.start)return null;if(!i.end){if(null==n)return null;i.end=t.add(i.start,n)}return r}function Ti(e,t){return vr(e.range,t.range)&&e.allDay===t.allDay&&function(e,t){for(let n in t)if("range"!==n&&"allDay"!==n&&e[n]!==t[n])return!1;for(let n in e)if(!(n in t))return!1;return!0}(e,t)}function ki(e,t,n){return Object.assign(Object.assign({},Mi(e,t,n)),{timeZone:t.timeZone})}function Mi(e,t,n){return{start:t.toDate(e.start),end:t.toDate(e.end),startStr:t.formatIso(e.start,{omitTime:n}),endStr:t.formatIso(e.end,{omitTime:n})}}let Ii={};var Oi,Ni;Oi="gregory",Ni=class{getMarkerYear(e){return e.getUTCFullYear()}getMarkerMonth(e){return e.getUTCMonth()}getMarkerDay(e){return e.getUTCDate()}arrayToMarker(e){return Yt(e)}markerToArray(e){return qt(e)}},Ii[Oi]=Ni;const Pi=/^\s*(\d{4})(-?(\d{2})(-?(\d{2})([T ](\d{2}):?(\d{2})(:?(\d{2})(\.(\d+))?)?(Z|(([-+])(\d{2})(:?(\d{2}))?))?)?)?)?$/;function Hi(e){let t=Pi.exec(e);if(t){let e=new Date(Date.UTC(Number(t[1]),t[3]?Number(t[3])-1:0,Number(t[5]||1),Number(t[7]||0),Number(t[8]||0),Number(t[10]||0),t[12]?1e3*Number("0."+t[12]):0));if(Zt(e)){let n=null;return t[13]&&(n=("-"===t[15]?-1:1)*(60*Number(t[16]||0)+Number(t[18]||0))),{marker:e,isTimeUnspecified:!t[6],timeZoneOffset:n}}}return null}class Bi{constructor(e){let t=this.timeZone=e.timeZone,n="local"!==t&&"UTC"!==t;e.namedTimeZoneImpl&&n&&(this.namedTimeZoneImpl=new e.namedTimeZoneImpl(t)),this.canComputeOffset=Boolean(!n||this.namedTimeZoneImpl),this.calendarSystem=function(e){return new Ii[e]}(e.calendarSystem),this.locale=e.locale,this.weekDow=e.locale.week.dow,this.weekDoy=e.locale.week.doy,"ISO"===e.weekNumberCalculation&&(this.weekDow=1,this.weekDoy=4),"number"==typeof e.firstDay&&(this.weekDow=e.firstDay),"function"==typeof e.weekNumberCalculation&&(this.weekNumberFunc=e.weekNumberCalculation),this.weekText=null!=e.weekText?e.weekText:e.locale.options.weekText,this.weekTextLong=(null!=e.weekTextLong?e.weekTextLong:e.locale.options.weekTextLong)||this.weekText,this.cmdFormatter=e.cmdFormatter,this.defaultSeparator=e.defaultSeparator}createMarker(e){let t=this.createMarkerMeta(e);return null===t?null:t.marker}createNowMarker(){return this.canComputeOffset?this.timestampToMarker((new Date).valueOf()):Yt(Gt(new Date))}createMarkerMeta(e){if("string"==typeof e)return this.parse(e);let t=null;return"number"==typeof e?t=this.timestampToMarker(e):e instanceof Date?(e=e.valueOf(),isNaN(e)||(t=this.timestampToMarker(e))):Array.isArray(e)&&(t=Yt(e)),null!==t&&Zt(t)?{marker:t,isTimeUnspecified:!1,forcedTzo:null}:null}parse(e){let t=Hi(e);if(null===t)return null;let{marker:n}=t,r=null;return null!==t.timeZoneOffset&&(this.canComputeOffset?n=this.timestampToMarker(n.valueOf()-60*t.timeZoneOffset*1e3):r=t.timeZoneOffset),{marker:n,isTimeUnspecified:t.isTimeUnspecified,forcedTzo:r}}getYear(e){return this.calendarSystem.getMarkerYear(e)}getMonth(e){return this.calendarSystem.getMarkerMonth(e)}getDay(e){return this.calendarSystem.getMarkerDay(e)}add(e,t){let n=this.calendarSystem.markerToArray(e);return n[0]+=t.years,n[1]+=t.months,n[2]+=t.days,n[6]+=t.milliseconds,this.calendarSystem.arrayToMarker(n)}subtract(e,t){let n=this.calendarSystem.markerToArray(e);return n[0]-=t.years,n[1]-=t.months,n[2]-=t.days,n[6]-=t.milliseconds,this.calendarSystem.arrayToMarker(n)}addYears(e,t){let n=this.calendarSystem.markerToArray(e);return n[0]+=t,this.calendarSystem.arrayToMarker(n)}addMonths(e,t){let n=this.calendarSystem.markerToArray(e);return n[1]+=t,this.calendarSystem.arrayToMarker(n)}diffWholeYears(e,t){let{calendarSystem:n}=this;return Xt(e)===Xt(t)&&n.getMarkerDay(e)===n.getMarkerDay(t)&&n.getMarkerMonth(e)===n.getMarkerMonth(t)?n.getMarkerYear(t)-n.getMarkerYear(e):null}diffWholeMonths(e,t){let{calendarSystem:n}=this;return Xt(e)===Xt(t)&&n.getMarkerDay(e)===n.getMarkerDay(t)?n.getMarkerMonth(t)-n.getMarkerMonth(e)+12*(n.getMarkerYear(t)-n.getMarkerYear(e)):null}greatestWholeUnit(e,t){let n=this.diffWholeYears(e,t);return null!==n?{unit:"year",value:n}:(n=this.diffWholeMonths(e,t),null!==n?{unit:"month",value:n}:(n=Ut(e,t),null!==n?{unit:"week",value:n}:(n=Wt(e,t),null!==n?{unit:"day",value:n}:(n=function(e,t){return(t.valueOf()-e.valueOf())/36e5}(e,t),lt(n)?{unit:"hour",value:n}:(n=function(e,t){return(t.valueOf()-e.valueOf())/6e4}(e,t),lt(n)?{unit:"minute",value:n}:(n=function(e,t){return(t.valueOf()-e.valueOf())/1e3}(e,t),lt(n)?{unit:"second",value:n}:{unit:"millisecond",value:t.valueOf()-e.valueOf()}))))))}countDurationsBetween(e,t,n){let r;return n.years&&(r=this.diffWholeYears(e,t),null!==r)?r/(mt(n)/365):n.months&&(r=this.diffWholeMonths(e,t),null!==r)?r/function(e){return mt(e)/30}(n):n.days&&(r=Wt(e,t),null!==r)?r/mt(n):(t.valueOf()-e.valueOf())/vt(n)}startOf(e,t){return"year"===t?this.startOfYear(e):"month"===t?this.startOfMonth(e):"week"===t?this.startOfWeek(e):"day"===t?Lt(e):"hour"===t?function(e){return Yt([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours()])}(e):"minute"===t?function(e){return Yt([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes()])}(e):"second"===t?function(e){return Yt([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds()])}(e):null}startOfYear(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e)])}startOfMonth(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e),this.calendarSystem.getMarkerMonth(e)])}startOfWeek(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e),this.calendarSystem.getMarkerMonth(e),e.getUTCDate()-(e.getUTCDay()-this.weekDow+7)%7])}computeWeekNumber(e){return this.weekNumberFunc?this.weekNumberFunc(this.toDate(e)):function(e,t,n){let r=e.getUTCFullYear(),i=Ft(e,r,t,n);if(i<1)return Ft(e,r-1,t,n);let s=Ft(e,r+1,t,n);return s>=1?Math.min(i,s):i}(e,this.weekDow,this.weekDoy)}format(e,t,n={}){return t.format({marker:e,timeZoneOffset:null!=n.forcedTzo?n.forcedTzo:this.offsetForMarker(e)},this)}formatRange(e,t,n,r={}){return r.isEndExclusive&&(t=Ht(t,-1)),n.formatRange({marker:e,timeZoneOffset:null!=r.forcedStartTzo?r.forcedStartTzo:this.offsetForMarker(e)},{marker:t,timeZoneOffset:null!=r.forcedEndTzo?r.forcedEndTzo:this.offsetForMarker(t)},this,r.defaultSeparator)}formatIso(e,t={}){let n=null;return t.omitTimeZoneOffset||(n=null!=t.forcedTzo?t.forcedTzo:this.offsetForMarker(e)),$t(e,n,t.omitTime)}timestampToMarker(e){return"local"===this.timeZone?Yt(Gt(new Date(e))):"UTC"!==this.timeZone&&this.namedTimeZoneImpl?Yt(this.namedTimeZoneImpl.timestampToArray(e)):new Date(e)}offsetForMarker(e){return"local"===this.timeZone?-Qt(qt(e)).getTimezoneOffset():"UTC"===this.timeZone?0:this.namedTimeZoneImpl?this.namedTimeZoneImpl.offsetForArray(qt(e)):null}toDate(e,t){return"local"===this.timeZone?Qt(qt(e)):"UTC"===this.timeZone?new Date(e.valueOf()):this.namedTimeZoneImpl?new Date(e.valueOf()-1e3*this.namedTimeZoneImpl.offsetForArray(qt(e))*60):new Date(e.valueOf()-(t||0))}}class ji{constructor(){this.strictOrder=!1,this.allowReslicing=!1,this.maxCoord=-1,this.maxStackCnt=-1,this.levelCoords=[],this.entriesByLevel=[],this.stackCnts={}}addSegs(e){let t=[];for(let n of e)this.insertEntry(n,t);return t}insertEntry(e,t){let n=this.findInsertion(e);return this.isInsertionValid(n,e)?(this.insertEntryAt(e,n),1):this.handleInvalidInsertion(n,e,t)}isInsertionValid(e,t){return(-1===this.maxCoord||e.levelCoord+t.thickness<=this.maxCoord)&&(-1===this.maxStackCnt||e.stackCnt<this.maxStackCnt)}handleInvalidInsertion(e,t,n){return this.allowReslicing&&e.touchingEntry?this.splitEntry(t,e.touchingEntry,n):(n.push(t),0)}splitEntry(e,t,n){let r=0,i=[],s=e.span,o=t.span;return s.start<o.start&&(r+=this.insertEntry({index:e.index,thickness:e.thickness,span:{start:s.start,end:o.start}},i)),s.end>o.end&&(r+=this.insertEntry({index:e.index,thickness:e.thickness,span:{start:o.end,end:s.end}},i)),r?(n.push({index:e.index,thickness:e.thickness,span:Li(o,s)},...i),r):(n.push(e),0)}insertEntryAt(e,t){let{entriesByLevel:n,levelCoords:r}=this;-1===t.lateral?(Fi(r,t.level,t.levelCoord),Fi(n,t.level,[e])):Fi(n[t.level],t.lateral,e),this.stackCnts[Ui(e)]=t.stackCnt}findInsertion(e){let{levelCoords:t,entriesByLevel:n,strictOrder:r,stackCnts:i}=this,s=t.length,o=0,a=-1,l=-1,c=null,d=0;for(let u=0;u<s;u+=1){let s=t[u];if(!r&&s>=o+e.thickness)break;let h,f=n[u],g=Vi(f,e.span.start,zi),p=g[0]+g[1];for(;(h=f[p])&&h.span.start<e.span.end;){let e=s+h.thickness;e>o&&(o=e,c=h,a=u,l=p),e===o&&(d=Math.max(d,i[Ui(h)]+1)),p+=1}}let u=0;if(c)for(u=a+1;u<s&&t[u]<o;)u+=1;let h=-1;return u<s&&t[u]===o&&(h=Vi(n[u],e.span.end,zi)[0]),{touchingLevel:a,touchingLateral:l,touchingEntry:c,stackCnt:d,levelCoord:o,level:u,lateral:h}}toRects(){let{entriesByLevel:e,levelCoords:t}=this,n=e.length,r=[];for(let i=0;i<n;i+=1){let n=e[i],s=t[i];for(let e of n)r.push(Object.assign(Object.assign({},e),{levelCoord:s}))}return r}}function zi(e){return e.span.end}function Ui(e){return e.index+":"+e.span.start}function Wi(e){let t=[];for(let i of e){let e=[],s={span:i.span,entries:[i]};for(let i of t)Li(i.span,s.span)?s={entries:i.entries.concat(s.entries),span:(n=i.span,r=s.span,{start:Math.min(n.start,r.start),end:Math.max(n.end,r.end)})}:e.push(i);e.push(s),t=e}var n,r;return t}function Li(e,t){let n=Math.max(e.start,t.start),r=Math.min(e.end,t.end);return n<r?{start:n,end:r}:null}function Fi(e,t,n){e.splice(t,0,n)}function Vi(e,t,n){let r=0,i=e.length;if(!i||t<n(e[r]))return[0,0];if(t>n(e[i-1]))return[i,0];for(;r<i;){let s=Math.floor(r+(i-r)/2),o=n(e[s]);if(t<o)i=s;else{if(!(t>o))return[s,1];r=s+1}}return[r,0]}class Gi{constructor(e){this.component=e.component,this.isHitComboAllowed=e.isHitComboAllowed||null}destroy(){}}function Qi(e){return{[e.component.uid]:e}}const qi={};class Yi{constructor(e,t){this.emitter=new Hr}destroy(){}setMirrorIsVisible(e){}setMirrorNeedsRevert(e){}setAutoScrollEnabled(e){}}const Zi={},Xi={startTime:ht,duration:ht,create:Boolean,sourceId:String};function $i(e){let{refined:t,extra:n}=_n(e,Xi);return{startTime:t.startTime||null,duration:t.duration||null,create:null==t.create||t.create,sourceId:t.sourceId,leftoverProps:n}}class Ji extends Xr{constructor(){super(...arguments),this.state={forPrint:!1},this.handleBeforePrint=()=>{this.setState({forPrint:!0})},this.handleAfterPrint=()=>{this.setState({forPrint:!1})}}render(){let{props:e}=this,{options:t}=e,{forPrint:n}=this.state,r=n||"auto"===t.height||"auto"===t.contentHeight,i=r||null==t.height?"":t.height,s=["fc",n?"fc-media-print":"fc-media-screen","fc-direction-"+t.direction,e.theme.getClass("root")];return dr()||s.push("fc-liquid-hack"),e.children(s,i,r,n)}componentDidMount(){let{emitter:e}=this.props;e.on("_beforeprint",this.handleBeforePrint),e.on("_afterprint",this.handleAfterPrint)}componentWillUnmount(){let{emitter:e}=this.props;e.off("_beforeprint",this.handleBeforePrint),e.off("_afterprint",this.handleAfterPrint)}}function Ki(e,t){return yn(!e||t>10?{weekday:"short"}:t>1?{weekday:"short",month:"numeric",day:"numeric",omitCommas:!0}:{weekday:"long"})}const es="fc-col-header-cell";function ts(e){return e.text}class ns extends Xr{constructor(){super(...arguments),this.id=Ye(),this.queuedDomNodes=[],this.currentDomNodes=[],this.handleEl=e=>{this.props.elRef&&$r(this.props.elRef,e)}}render(){const{props:e,context:t}=this,{options:n}=t,{customGenerator:r,defaultGenerator:i,renderProps:s}=e,o=is(e);let a,l,c=!1,d=[];if(null!=r){const e="function"==typeof r?r(s,p):r;if(!0===e)c=!0;else{const t=e&&"object"==typeof e;t&&"html"in e?o.dangerouslySetInnerHTML={__html:e.html}:t&&"domNodes"in e?d=Array.prototype.slice.call(e.domNodes):t||"function"==typeof e?l=e:a=e}}else c=!rs(e.generatorName,n);return c&&i&&(a=i(s)),this.queuedDomNodes=d,this.currentGeneratorMeta=l,p(e.elTag,o,a)}componentDidMount(){this.applyQueueudDomNodes(),this.triggerCustomRendering(!0)}componentDidUpdate(){this.applyQueueudDomNodes(),this.triggerCustomRendering(!0)}componentWillUnmount(){this.triggerCustomRendering(!1)}triggerCustomRendering(e){var t;const{props:n,context:r}=this,{handleCustomRendering:i,customRenderingMetaMap:s}=r.options;if(i){const r=null!==(t=this.currentGeneratorMeta)&&void 0!==t?t:null==s?void 0:s[n.generatorName];r&&i(Object.assign(Object.assign({id:this.id,isActive:e,containerEl:this.base,reportNewContainerEl:this.handleEl,generatorMeta:r},n),{elClasses:(n.elClasses||[]).filter(ss)}))}}applyQueueudDomNodes(){const{queuedDomNodes:e,currentDomNodes:t}=this,n=this.base;if(!It(e,t)){t.forEach(Me);for(let t of e)n.appendChild(t);this.currentDomNodes=e}}}function rs(e,t){var n;return Boolean(t.handleCustomRendering&&e&&(null===(n=t.customRenderingMetaMap)||void 0===n?void 0:n[e]))}function is(e,t){const n=Object.assign(Object.assign({},e.elAttrs),{ref:e.elRef});return(e.elClasses||t)&&(n.className=(e.elClasses||[]).concat(t||[]).concat(n.className||[]).filter(Boolean).join(" ")),e.elStyle&&(n.style=e.elStyle),n}function ss(e){return Boolean(e)}ns.addPropsEquality({elClasses:It,elStyle:Rt,elAttrs:function(e,t){const n=_t(e,t);for(let e of n)if(!xt.test(e))return!1;return!0},renderProps:Rt});const os=Gr(0);class as extends D{constructor(){super(...arguments),this.InnerContent=ls.bind(void 0,this),this.handleRootEl=e=>{this.rootEl=e,this.props.elRef&&$r(this.props.elRef,e)}}render(){const{props:e}=this,t=function(e,t){const n="function"==typeof e?e(t):e||[];return"string"==typeof n?[n]:n}(e.classNameGenerator,e.renderProps);if(e.children){const n=is(e,t),r=e.children(this.InnerContent,e.renderProps,n);return e.elTag?p(e.elTag,n,r):r}return p(ns,Object.assign(Object.assign({},e),{elRef:this.handleRootEl,elTag:e.elTag||"div",elClasses:(e.elClasses||[]).concat(t),renderId:this.context}))}componentDidMount(){var e,t;null===(t=(e=this.props).didMount)||void 0===t||t.call(e,Object.assign(Object.assign({},this.props.renderProps),{el:this.rootEl||this.base}))}componentWillUnmount(){var e,t;null===(t=(e=this.props).willUnmount)||void 0===t||t.call(e,Object.assign(Object.assign({},this.props.renderProps),{el:this.rootEl||this.base}))}}function ls(e,t){const n=e.props;return p(ns,Object.assign({renderProps:n.renderProps,generatorName:n.generatorName,customGenerator:n.customGenerator,defaultGenerator:n.defaultGenerator,renderId:e.context},t))}as.contextType=os;class cs extends Xr{render(){let{dateEnv:e,options:t,theme:n,viewApi:r}=this.context,{props:i}=this,{date:s,dateProfile:o}=i,a=Sr(s,i.todayRange,null,o),l=[es].concat(Ar(a,n)),c=e.format(s,i.dayHeaderFormat),d=!a.isDisabled&&i.colCnt>1?Cr(this.context,s):{},u=Object.assign(Object.assign(Object.assign({date:e.toDate(s),view:r},i.extraRenderProps),{text:c}),a);return p(as,{elTag:"th",elClasses:l,elAttrs:Object.assign({role:"columnheader",colSpan:i.colSpan,"data-date":a.isDisabled?void 0:Jt(s)},i.extraDataAttrs),renderProps:u,generatorName:"dayHeaderContent",customGenerator:t.dayHeaderContent,defaultGenerator:ts,classNameGenerator:t.dayHeaderClassNames,didMount:t.dayHeaderDidMount,willUnmount:t.dayHeaderWillUnmount},e=>p("div",{className:"fc-scrollgrid-sync-inner"},!a.isDisabled&&p(e,{elTag:"a",elAttrs:d,elClasses:["fc-col-header-cell-cushion",i.isSticky&&"fc-sticky"]})))}}const ds=yn({weekday:"long"});class us extends Xr{render(){let{props:e}=this,{dateEnv:t,theme:n,viewApi:r,options:i}=this.context,s=Pt(new Date(2592e5),e.dow),o={dow:e.dow,isDisabled:!1,isFuture:!1,isPast:!1,isToday:!1,isOther:!1},a=t.format(s,e.dayHeaderFormat),l=Object.assign(Object.assign(Object.assign(Object.assign({date:s},o),{view:r}),e.extraRenderProps),{text:a});return p(as,{elTag:"th",elClasses:[es,...Ar(o,n),...e.extraClassNames||[]],elAttrs:Object.assign({role:"columnheader",colSpan:e.colSpan},e.extraDataAttrs),renderProps:l,generatorName:"dayHeaderContent",customGenerator:i.dayHeaderContent,defaultGenerator:ts,classNameGenerator:i.dayHeaderClassNames,didMount:i.dayHeaderDidMount,willUnmount:i.dayHeaderWillUnmount},n=>p("div",{className:"fc-scrollgrid-sync-inner"},p(n,{elTag:"a",elClasses:["fc-col-header-cell-cushion",e.isSticky&&"fc-sticky"],elAttrs:{"aria-label":t.format(s,ds)}})))}}class hs extends D{constructor(e,t){super(e,t),this.initialNowDate=Kr(t.options.now,t.dateEnv),this.initialNowQueriedMs=(new Date).valueOf(),this.state=this.computeTiming().currentState}render(){let{props:e,state:t}=this;return e.children(t.nowDate,t.todayRange)}componentDidMount(){this.setTimeout()}componentDidUpdate(e){e.unit!==this.props.unit&&(this.clearTimeout(),this.setTimeout())}componentWillUnmount(){this.clearTimeout()}computeTiming(){let{props:e,context:t}=this,n=Ht(this.initialNowDate,(new Date).valueOf()-this.initialNowQueriedMs),r=t.dateEnv.startOf(n,e.unit),i=t.dateEnv.add(r,ht(1,e.unit)),s=i.valueOf()-n.valueOf();return s=Math.min(864e5,s),{currentState:{nowDate:r,todayRange:fs(r)},nextState:{nowDate:i,todayRange:fs(i)},waitMs:s}}setTimeout(){let{nextState:e,waitMs:t}=this.computeTiming();this.timeoutId=setTimeout(()=>{this.setState(e,()=>{this.setTimeout()})},t)}clearTimeout(){this.timeoutId&&clearTimeout(this.timeoutId)}}function fs(e){let t=Lt(e);return{start:t,end:Pt(t,1)}}hs.contextType=qr;class gs extends Xr{constructor(){super(...arguments),this.createDayHeaderFormatter=nn(ps)}render(){let{context:e}=this,{dates:t,dateProfile:n,datesRepDistinctDays:r,renderIntro:i}=this.props,s=this.createDayHeaderFormatter(e.options.dayHeaderFormat,r,t.length);return p(hs,{unit:"day"},(e,o)=>p("tr",{role:"row"},i&&i("day"),t.map(e=>r?p(cs,{key:e.toISOString(),date:e,dateProfile:n,todayRange:o,colCnt:t.length,dayHeaderFormat:s}):p(us,{key:e.getUTCDay(),dow:e.getUTCDay(),dayHeaderFormat:s}))))}}function ps(e,t,n){return e||Ki(t,n)}class ms{constructor(e,t){let n=e.start,{end:r}=e,i=[],s=[],o=-1;for(;n<r;)t.isHiddenDay(n)?i.push(o+.5):(o+=1,i.push(o),s.push(n)),n=Pt(n,1);this.dates=s,this.indices=i,this.cnt=s.length}sliceRange(e){let t=this.getDateDayIndex(e.start),n=this.getDateDayIndex(Pt(e.end,-1)),r=Math.max(0,t),i=Math.min(this.cnt-1,n);return r=Math.ceil(r),i=Math.floor(i),r<=i?{firstIndex:r,lastIndex:i,isStart:t===r,isEnd:n===i}:null}getDateDayIndex(e){let{indices:t}=this,n=Math.floor(jt(this.dates[0],e));return n<0?t[0]-1:n>=t.length?t[t.length-1]+1:t[n]}}class vs{constructor(e,t){let n,r,i,{dates:s}=e;if(t){for(r=s[0].getUTCDay(),n=1;n<s.length&&s[n].getUTCDay()!==r;n+=1);i=Math.ceil(s.length/n)}else i=1,n=s.length;this.rowCnt=i,this.colCnt=n,this.daySeries=e,this.cells=this.buildCells(),this.headerDates=this.buildHeaderDates()}buildCells(){let e=[];for(let t=0;t<this.rowCnt;t+=1){let n=[];for(let e=0;e<this.colCnt;e+=1)n.push(this.buildCell(t,e));e.push(n)}return e}buildCell(e,t){let n=this.daySeries.dates[e*this.colCnt+t];return{key:n.toISOString(),date:n}}buildHeaderDates(){let e=[];for(let t=0;t<this.colCnt;t+=1)e.push(this.cells[0][t].date);return e}sliceRange(e){let{colCnt:t}=this,n=this.daySeries.sliceRange(e),r=[];if(n){let{firstIndex:e,lastIndex:i}=n,s=e;for(;s<=i;){let o=Math.floor(s/t),a=Math.min((o+1)*t,i+1);r.push({row:o,firstCol:s%t,lastCol:(a-1)%t,isStart:n.isStart&&s===e,isEnd:n.isEnd&&a-1===i}),s=a}}return r}}class ys{constructor(){this.sliceBusinessHours=nn(this._sliceBusinessHours),this.sliceDateSelection=nn(this._sliceDateSpan),this.sliceEventStore=nn(this._sliceEventStore),this.sliceEventDrag=nn(this._sliceInteraction),this.sliceEventResize=nn(this._sliceInteraction),this.forceDayIfListItem=!1}sliceProps(e,t,n,r,...i){let{eventUiBases:s}=e,o=this.sliceEventStore(e.eventStore,s,t,n,...i);return{dateSelectionSegs:this.sliceDateSelection(e.dateSelection,t,n,s,r,...i),businessHourSegs:this.sliceBusinessHours(e.businessHours,t,n,r,...i),fgEventSegs:o.fg,bgEventSegs:o.bg,eventDrag:this.sliceEventDrag(e.eventDrag,s,t,n,...i),eventResize:this.sliceEventResize(e.eventResize,s,t,n,...i),eventSelection:e.eventSelection}}sliceNowDate(e,t,n,r,...i){return this._sliceDateSpan({range:{start:e,end:Ht(e,1)},allDay:!1},t,n,{},r,...i)}_sliceBusinessHours(e,t,n,r,...i){return e?this._sliceEventStore(Mn(e,bs(t,Boolean(n)),r),{},t,n,...i).bg:[]}_sliceEventStore(e,t,n,r,...i){if(e){let s=ui(e,t,bs(n,Boolean(r)),r);return{bg:this.sliceEventRanges(s.bg,i),fg:this.sliceEventRanges(s.fg,i)}}return{bg:[],fg:[]}}_sliceInteraction(e,t,n,r,...i){if(!e)return null;let s=ui(e.mutatedEvents,t,bs(n,Boolean(r)),r);return{segs:this.sliceEventRanges(s.fg,i),affectedInstances:e.affectedEvents.instances,isEvent:e.isEvent}}_sliceDateSpan(e,t,n,r,i,...s){if(!e)return[];let o=bs(t,Boolean(n)),a=mr(e.range,o);if(a){let t=function(e,t,n){let r=Zn({editable:!1},n),i=$n(r.refined,r.extra,"",e.allDay,!0,n);return{def:i,ui:mi(i,t),instance:kn(i.defId,e.range),range:e.range,isStart:!0,isEnd:!0}}(e=Object.assign(Object.assign({},e),{range:a}),r,i),n=this.sliceRange(e.range,...s);for(let e of n)e.eventRange=t;return n}return[]}sliceEventRanges(e,t){let n=[];for(let r of e)n.push(...this.sliceEventRange(r,t));return n}sliceEventRange(e,t){let n=e.range;this.forceDayIfListItem&&"list-item"===e.ui.display&&(n={start:n.start,end:Pt(n.start,1)});let r=this.sliceRange(n,...t);for(let t of r)t.eventRange=e,t.isStart=e.isStart&&t.isStart,t.isEnd=e.isEnd&&t.isEnd;return r}}function bs(e,t){let n=e.activeRange;return t?n:{start:Ht(n.start,e.slotMinTime.milliseconds),end:Ht(n.end,e.slotMaxTime.milliseconds-864e5)}}function Es(e,t,n,r,i){switch(t.type){case"RECEIVE_EVENTS":return function(e,t,n,r,i,s){if(t&&n===t.latestFetchId){let n=On(Ss(i,t,s),t,s);return r&&(n=Mn(n,r,s)),Bn(ws(e,t.sourceId),n)}return e}(e,n[t.sourceId],t.fetchId,t.fetchRange,t.rawEvents,i);case"RESET_RAW_EVENTS":return function(e,t,n,r,i){const{defIdMap:s,instanceIdMap:o}=function(e){const{defs:t,instances:n}=e,r={},i={};for(let e in t){const n=t[e],{publicId:i}=n;i&&(r[i]=e)}for(let e in n){const r=n[e],s=t[r.defId],{publicId:o}=s;o&&(i[o]=e)}return{defIdMap:r,instanceIdMap:i}}(e);return Mn(On(Ss(n,t,i),t,i,!1,s,o),r,i)}(e,n[t.sourceId],t.rawEvents,r.activeRange,i);case"ADD_EVENTS":return function(e,t,n,r){n&&(t=Mn(t,n,r));return Bn(e,t)}(e,t.eventStore,r?r.activeRange:null,i);case"RESET_EVENTS":return t.eventStore;case"MERGE_EVENTS":return Bn(e,t.eventStore);case"PREV":case"NEXT":case"CHANGE_DATE":case"CHANGE_VIEW_TYPE":return r?Mn(e,r.activeRange,i):e;case"REMOVE_EVENTS":return function(e,t){let{defs:n,instances:r}=e,i={},s={};for(let e in n)t.defs[e]||(i[e]=n[e]);for(let e in r)!t.instances[e]&&i[r[e].defId]&&(s[e]=r[e]);return{defs:i,instances:s}}(e,t.eventStore);case"REMOVE_EVENT_SOURCE":return ws(e,t.sourceId);case"REMOVE_ALL_EVENT_SOURCES":return jn(e,e=>!e.sourceId);case"REMOVE_ALL_EVENTS":return{defs:{},instances:{}};default:return e}}function Ss(e,t,n){let r=n.options.eventDataTransform,i=t?t.eventDataTransform:null;return i&&(e=As(e,i)),r&&(e=As(e,r)),e}function As(e,t){let n;if(t){n=[];for(let r of e){let e=t(r);e?n.push(e):null==e&&n.push(r)}}else n=e;return n}function Ds(e,t,n){let{defs:r}=e,i=Dt(e.instances,e=>r[e.defId].allDay?e:Object.assign(Object.assign({},e),{range:{start:n.createMarker(t.toDate(e.range.start,e.forcedStartTzo)),end:n.createMarker(t.toDate(e.range.end,e.forcedEndTzo))},forcedStartTzo:n.canComputeOffset?null:e.forcedStartTzo,forcedEndTzo:n.canComputeOffset?null:e.forcedEndTzo}));return{defs:r,instances:i}}function ws(e,t){return jn(e,e=>e.sourceId!==t)}function Cs(e,t,n){let{instances:r}=e.mutatedEvents;for(let e in r)if(!br(t.validRange,r[e].range))return!1;return xs({eventDrag:e},n)}function Rs(e,t,n){return!!br(t.validRange,e.range)&&xs({dateSelection:e},n)}function xs(e,t){let n=t.getCurrentData(),r=Object.assign({businessHours:n.businessHours,dateSelection:"",eventStore:n.eventStore,eventUiBases:n.eventUiBases,eventSelection:"",eventDrag:null,eventResize:null},e);return(t.pluginHooks.isPropsValid||_s)(r,t)}function _s(e,t,n={},r){return!(e.eventDrag&&!function(e,t,n,r){let i=t.getCurrentData(),s=e.eventDrag,o=s.mutatedEvents,a=o.defs,l=o.instances,c=pi(a,s.isEvent?e.eventUiBases:{"":i.selectionConfig});r&&(c=Dt(c,r));let d=(g=e.eventStore,p=s.affectedEvents.instances,{defs:g.defs,instances:At(g.instances,e=>!p[e.instanceId])}),u=d.defs,h=d.instances,f=pi(u,e.eventUiBases);var g,p;for(let r in l){let o=l[r],g=o.range,p=c[o.defId],m=a[o.defId];if(!Ts(p.constraints,g,d,e.businessHours,t))return!1;let{eventOverlap:v}=t.options,y="function"==typeof v?v:null;for(let e in h){let n=h[e];if(yr(g,n.range)){if(!1===f[n.defId].overlap&&s.isEvent)return!1;if(!1===p.overlap)return!1;if(y&&!y(new li(t,u[n.defId],n),new li(t,m,o)))return!1}}let b=i.eventStore;for(let e of p.allows){let i,s=Object.assign(Object.assign({},n),{range:o.range,allDay:m.allDay}),a=b.defs[m.defId],l=b.instances[r];if(i=a?new li(t,a,l):new li(t,m),!e(ni(s,t),i))return!1}}return!0}(e,t,n,r))&&!(e.dateSelection&&!function(e,t,n,r){let i=e.eventStore,s=i.defs,o=i.instances,a=e.dateSelection,l=a.range,{selectionConfig:c}=t.getCurrentData();r&&(c=r(c));if(!Ts(c.constraints,l,i,e.businessHours,t))return!1;let{selectOverlap:d}=t.options,u="function"==typeof d?d:null;for(let e in o){let n=o[e];if(yr(l,n.range)){if(!1===c.overlap)return!1;if(u&&!u(new li(t,s[n.defId],n),null))return!1}}for(let e of c.allows){let r=Object.assign(Object.assign({},n),a);if(!e(ni(r,t),null))return!1}return!0}(e,t,n,r))}function Ts(e,t,n,r,i){for(let s of e)if(!Is(ks(s,t,n,r,i),t))return!1;return!0}function ks(e,t,n,r,i){return"businessHours"===e?Ms(Mn(r,t,i)):"string"==typeof e?Ms(jn(n,t=>t.groupId===e)):"object"==typeof e&&e?Ms(Mn(e,t,i)):[]}function Ms(e){let{instances:t}=e,n=[];for(let e in t)n.push(t[e].range);return n}function Is(e,t){for(let n of e)if(br(n,t))return!0;return!1}class Os extends Error{constructor(e,t){super(e),this.response=t}}function Ns(e,t,n){const r={method:e=e.toUpperCase()};return"GET"===e?t+=(-1===t.indexOf("?")?"?":"&")+new URLSearchParams(n):(r.body=new URLSearchParams(n),r.headers={"Content-Type":"application/x-www-form-urlencoded"}),fetch(t,r).then(e=>{if(e.ok)return e.json().then(t=>[t,e],()=>{throw new Os("Failure parsing JSON",e)});throw new Os("Request failed",e)})}class Ps{constructor(e){this.drainedOption=e,this.isRunning=!1,this.isDirty=!1,this.pauseDepths={},this.timeoutId=0}request(e){this.isDirty=!0,this.isPaused()||(this.clearTimeout(),null==e?this.tryDrain():this.timeoutId=setTimeout(this.tryDrain.bind(this),e))}pause(e=""){let{pauseDepths:t}=this;t[e]=(t[e]||0)+1,this.clearTimeout()}resume(e="",t){let{pauseDepths:n}=this;if(e in n){if(t)delete n[e];else{n[e]-=1,n[e]<=0&&delete n[e]}this.tryDrain()}}isPaused(){return Object.keys(this.pauseDepths).length}tryDrain(){if(!this.isRunning&&!this.isPaused()){for(this.isRunning=!0;this.isDirty;)this.isDirty=!1,this.drained();this.isRunning=!1}}clear(){this.clearTimeout(),this.isDirty=!1,this.pauseDepths={}}clearTimeout(){this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=0)}drained(){this.drainedOption&&this.drainedOption()}}const Hs=/^(visible|hidden)$/;class Bs extends Xr{constructor(){super(...arguments),this.handleEl=e=>{this.el=e,$r(this.props.elRef,e)}}render(){let{props:e}=this,{liquid:t,liquidIsAbsolute:n}=e,r=t&&n,i=["fc-scroller"];return t&&(n?i.push("fc-scroller-liquid-absolute"):i.push("fc-scroller-liquid")),p("div",{ref:this.handleEl,className:i.join(" "),style:{overflowX:e.overflowX,overflowY:e.overflowY,left:r&&-(e.overcomeLeft||0)||"",right:r&&-(e.overcomeRight||0)||"",bottom:r&&-(e.overcomeBottom||0)||"",marginLeft:!r&&-(e.overcomeLeft||0)||"",marginRight:!r&&-(e.overcomeRight||0)||"",marginBottom:!r&&-(e.overcomeBottom||0)||"",maxHeight:e.maxHeight||""}},e.children)}needsXScrolling(){if(Hs.test(this.props.overflowX))return!1;let{el:e}=this,t=this.el.getBoundingClientRect().width-this.getYScrollbarWidth(),{children:n}=e;for(let e=0;e<n.length;e+=1){if(n[e].getBoundingClientRect().width>t)return!0}return!1}needsYScrolling(){if(Hs.test(this.props.overflowY))return!1;let{el:e}=this,t=this.el.getBoundingClientRect().height-this.getXScrollbarWidth(),{children:n}=e;for(let e=0;e<n.length;e+=1){if(n[e].getBoundingClientRect().height>t)return!0}return!1}getXScrollbarWidth(){return Hs.test(this.props.overflowX)?0:this.el.offsetHeight-this.el.clientHeight}getYScrollbarWidth(){return Hs.test(this.props.overflowY)?0:this.el.offsetWidth-this.el.clientWidth}}class js{constructor(e){this.masterCallback=e,this.currentMap={},this.depths={},this.callbackMap={},this.handleValue=(e,t)=>{let{depths:n,currentMap:r}=this,i=!1,s=!1;null!==e?(i=t in r,r[t]=e,n[t]=(n[t]||0)+1,s=!0):(n[t]-=1,n[t]||(delete r[t],delete this.callbackMap[t],i=!0)),this.masterCallback&&(i&&this.masterCallback(null,String(t)),s&&this.masterCallback(e,String(t)))}}createRef(e){let t=this.callbackMap[e];return t||(t=this.callbackMap[e]=t=>{this.handleValue(t,String(e))}),t}collect(e,t,n){return Mt(this.currentMap,e,t,n)}getAll(){return Ct(this.currentMap)}}function zs(e){let t=Ne(e,".fc-scrollgrid-shrink"),n=0;for(let e of t)n=Math.max(n,ct(e));return Math.ceil(n)}function Us(e,t){return e.liquid&&t.liquid}function Ws(e,t){return null!=t.maxHeight||Us(e,t)}function Ls(e,t,n,r){let{expandRows:i}=n;return"function"==typeof t.content?t.content(n):p("table",{role:"presentation",className:[t.tableClassName,e.syncRowHeights?"fc-scrollgrid-sync-table":""].join(" "),style:{minWidth:n.tableMinWidth,width:n.clientWidth,height:i?n.clientHeight:""}},n.tableColGroupNode,p(r?"thead":"tbody",{role:"presentation"},"function"==typeof t.rowContent?t.rowContent(n):t.rowContent))}function Fs(e,t){return It(e,t,Rt)}function Vs(e,t){let n=[];for(let r of e){let e=r.span||1;for(let i=0;i<e;i+=1)n.push(p("col",{style:{width:"shrink"===r.width?Gs(t):r.width||"",minWidth:r.minWidth||""}}))}return p("colgroup",{},...n)}function Gs(e){return null==e?4:e}function Qs(e){for(let t of e)if("shrink"===t.width)return!0;return!1}function qs(e,t){let n=["fc-scrollgrid",t.theme.getClass("table")];return e&&n.push("fc-scrollgrid-liquid"),n}function Ys(e,t){let n=["fc-scrollgrid-section","fc-scrollgrid-section-"+e.type,e.className];return t&&e.liquid&&null==e.maxHeight&&n.push("fc-scrollgrid-section-liquid"),e.isSticky&&n.push("fc-scrollgrid-section-sticky"),n}function Zs(e){return p("div",{className:"fc-scrollgrid-sticky-shim",style:{width:e.clientWidth,minWidth:e.tableMinWidth}})}function Xs(e){let{stickyHeaderDates:t}=e;return null!=t&&"auto"!==t||(t="auto"===e.height||"auto"===e.viewHeight),t}function $s(e){let{stickyFooterScrollbar:t}=e;return null!=t&&"auto"!==t||(t="auto"===e.height||"auto"===e.viewHeight),t}class Js extends Xr{constructor(){super(...arguments),this.processCols=nn(e=>e,Fs),this.renderMicroColGroup=nn(Vs),this.scrollerRefs=new js,this.scrollerElRefs=new js(this._handleScrollerEl.bind(this)),this.state={shrinkWidth:null,forceYScrollbars:!1,scrollerClientWidths:{},scrollerClientHeights:{}},this.handleSizing=()=>{this.safeSetState(Object.assign({shrinkWidth:this.computeShrinkWidth()},this.computeScrollerDims()))}}render(){let{props:e,state:t,context:n}=this,r=e.sections||[],i=this.processCols(e.cols),s=this.renderMicroColGroup(i,t.shrinkWidth),o=qs(e.liquid,n);e.collapsibleWidth&&o.push("fc-scrollgrid-collapsible");let a,l=r.length,c=0,d=[],u=[],h=[];for(;c<l&&"header"===(a=r[c]).type;)d.push(this.renderSection(a,s,!0)),c+=1;for(;c<l&&"body"===(a=r[c]).type;)u.push(this.renderSection(a,s,!1)),c+=1;for(;c<l&&"footer"===(a=r[c]).type;)h.push(this.renderSection(a,s,!0)),c+=1;let f=!dr();const g={role:"rowgroup"};return p("table",{role:"grid",className:o.join(" "),style:{height:e.height}},Boolean(!f&&d.length)&&p("thead",g,...d),Boolean(!f&&u.length)&&p("tbody",g,...u),Boolean(!f&&h.length)&&p("tfoot",g,...h),f&&p("tbody",g,...d,...u,...h))}renderSection(e,t,n){return"outerContent"in e?p(y,{key:e.key},e.outerContent):p("tr",{key:e.key,role:"presentation",className:Ys(e,this.props.liquid).join(" ")},this.renderChunkTd(e,t,e.chunk,n))}renderChunkTd(e,t,n,r){if("outerContent"in n)return n.outerContent;let{props:i}=this,{forceYScrollbars:s,scrollerClientWidths:o,scrollerClientHeights:a}=this.state,l=Ws(i,e),c=Us(i,e),d=i.liquid?s?"scroll":l?"auto":"hidden":"visible",u=e.key,h=Ls(e,n,{tableColGroupNode:t,tableMinWidth:"",clientWidth:i.collapsibleWidth||void 0===o[u]?null:o[u],clientHeight:void 0!==a[u]?a[u]:null,expandRows:e.expandRows,syncRowHeights:!1,rowSyncHeights:[],reportRowHeightChange:()=>{}},r);return p(r?"th":"td",{ref:n.elRef,role:"presentation"},p("div",{className:"fc-scroller-harness"+(c?" fc-scroller-harness-liquid":"")},p(Bs,{ref:this.scrollerRefs.createRef(u),elRef:this.scrollerElRefs.createRef(u),overflowY:d,overflowX:i.liquid?"hidden":"visible",maxHeight:e.maxHeight,liquid:c,liquidIsAbsolute:!0},h)))}_handleScrollerEl(e,t){let n=function(e,t){for(let n of e)if(n.key===t)return n;return null}(this.props.sections,t);n&&$r(n.chunk.scrollerElRef,e)}componentDidMount(){this.handleSizing(),this.context.addResizeHandler(this.handleSizing)}componentDidUpdate(){this.handleSizing()}componentWillUnmount(){this.context.removeResizeHandler(this.handleSizing)}computeShrinkWidth(){return Qs(this.props.cols)?zs(this.scrollerElRefs.getAll()):0}computeScrollerDims(){let e=Tr(),{scrollerRefs:t,scrollerElRefs:n}=this,r=!1,i={},s={};for(let e in t.currentMap){let n=t.currentMap[e];if(n&&n.needsYScrolling()){r=!0;break}}for(let t of this.props.sections){let o=t.key,a=n.currentMap[o];if(a){let t=a.parentNode;i[o]=Math.floor(t.getBoundingClientRect().width-(r?e.y:0)),s[o]=Math.floor(t.getBoundingClientRect().height)}}return{forceYScrollbars:r,scrollerClientWidths:i,scrollerClientHeights:s}}}Js.addStateEquality({scrollerClientWidths:Rt,scrollerClientHeights:Rt});class Ks extends Xr{constructor(){super(...arguments),this.handleEl=e=>{this.el=e,e&&fi(e,this.props.seg)}}render(){const{props:e,context:t}=this,{options:n}=t,{seg:r}=e,{eventRange:i}=r,{ui:s}=i,o={event:new li(t,i.def,i.instance),view:t.viewApi,timeText:e.timeText,textColor:s.textColor,backgroundColor:s.backgroundColor,borderColor:s.borderColor,isDraggable:!e.disableDragging&&bi(r,t),isStartResizable:!e.disableResizing&&Ei(r,t),isEndResizable:!e.disableResizing&&Si(r),isMirror:Boolean(e.isDragging||e.isResizing||e.isDateSelecting),isStart:Boolean(r.isStart),isEnd:Boolean(r.isEnd),isPast:Boolean(e.isPast),isFuture:Boolean(e.isFuture),isToday:Boolean(e.isToday),isSelected:Boolean(e.isSelected),isDragging:Boolean(e.isDragging),isResizing:Boolean(e.isResizing)};return p(as,Object.assign({},e,{elRef:this.handleEl,elClasses:[...wi(o),...r.eventRange.ui.classNames,...e.elClasses||[]],renderProps:o,generatorName:"eventContent",customGenerator:n.eventContent,defaultGenerator:e.defaultGenerator,classNameGenerator:n.eventClassNames,didMount:n.eventDidMount,willUnmount:n.eventWillUnmount}))}componentDidUpdate(e){this.el&&this.props.seg!==e.seg&&fi(this.el,this.props.seg)}}class eo extends Xr{render(){let{props:e,context:t}=this,{options:n}=t,{seg:r}=e,{ui:i}=r.eventRange,s=Ai(r,n.eventTimeFormat||e.defaultTimeFormat,t,e.defaultDisplayEventTime,e.defaultDisplayEventEnd);return p(Ks,Object.assign({},e,{elTag:"a",elStyle:{borderColor:i.borderColor,backgroundColor:i.backgroundColor},elAttrs:Ri(r,t),defaultGenerator:to,timeText:s}),(e,t)=>p(y,null,p(e,{elTag:"div",elClasses:["fc-event-main"],elStyle:{color:t.textColor}}),Boolean(t.isStartResizable)&&p("div",{className:"fc-event-resizer fc-event-resizer-start"}),Boolean(t.isEndResizable)&&p("div",{className:"fc-event-resizer fc-event-resizer-end"})))}}function to(e){return p("div",{className:"fc-event-main-frame"},e.timeText&&p("div",{className:"fc-event-time"},e.timeText),p("div",{className:"fc-event-title-container"},p("div",{className:"fc-event-title fc-sticky"},e.event.title||p(y,null," "))))}const no=e=>p(qr.Consumer,null,t=>{let{options:n}=t,r={isAxis:e.isAxis,date:t.dateEnv.toDate(e.date),view:t.viewApi};return p(as,Object.assign({},e,{elTag:e.elTag||"div",renderProps:r,generatorName:"nowIndicatorContent",customGenerator:n.nowIndicatorContent,classNameGenerator:n.nowIndicatorClassNames,didMount:n.nowIndicatorDidMount,willUnmount:n.nowIndicatorWillUnmount}))}),ro=yn({day:"numeric"});class io extends Xr{constructor(){super(...arguments),this.refineRenderProps=rn(oo)}render(){let{props:e,context:t}=this,{options:n}=t,r=this.refineRenderProps({date:e.date,dateProfile:e.dateProfile,todayRange:e.todayRange,isMonthStart:e.isMonthStart||!1,showDayNumber:e.showDayNumber,extraRenderProps:e.extraRenderProps,viewApi:t.viewApi,dateEnv:t.dateEnv,monthStartFormat:n.monthStartFormat});return p(as,Object.assign({},e,{elClasses:[...Ar(r,t.theme),...e.elClasses||[]],elAttrs:Object.assign(Object.assign({},e.elAttrs),r.isDisabled?{}:{"data-date":Jt(e.date)}),renderProps:r,generatorName:"dayCellContent",customGenerator:n.dayCellContent,defaultGenerator:e.defaultGenerator,classNameGenerator:r.isDisabled?void 0:n.dayCellClassNames,didMount:n.dayCellDidMount,willUnmount:n.dayCellWillUnmount}))}}function so(e){return Boolean(e.dayCellContent||rs("dayCellContent",e))}function oo(e){let{date:t,dateEnv:n,dateProfile:r,isMonthStart:i}=e,s=Sr(t,e.todayRange,null,r),o=e.showDayNumber?n.format(t,i?e.monthStartFormat:ro):"";return Object.assign(Object.assign(Object.assign({date:n.toDate(t),view:e.viewApi},s),{isMonthStart:i,dayNumberText:o}),e.extraRenderProps)}class ao extends Xr{render(){let{props:e}=this,{seg:t}=e;return p(Ks,{elTag:"div",elClasses:["fc-bg-event"],elStyle:{backgroundColor:t.eventRange.ui.backgroundColor},defaultGenerator:lo,seg:t,timeText:"",isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:!1,isPast:e.isPast,isFuture:e.isFuture,isToday:e.isToday,disableDragging:!0,disableResizing:!0})}}function lo(e){let{title:t}=e.event;return t&&p("div",{className:"fc-event-title"},e.event.title)}function co(e){return p("div",{className:"fc-"+e})}const uo=e=>p(qr.Consumer,null,t=>{let{dateEnv:n,options:r}=t,{date:i}=e,s=r.weekNumberFormat||e.defaultFormat,o={num:n.computeWeekNumber(i),text:n.format(i,s),date:i};return p(as,Object.assign({},e,{renderProps:o,generatorName:"weekNumberContent",customGenerator:r.weekNumberContent,defaultGenerator:ho,classNameGenerator:r.weekNumberClassNames,didMount:r.weekNumberDidMount,willUnmount:r.weekNumberWillUnmount}))});function ho(e){return e.text}class fo extends Xr{constructor(){super(...arguments),this.state={titleId:Ue()},this.handleRootEl=e=>{this.rootEl=e,this.props.elRef&&$r(this.props.elRef,e)},this.handleDocumentMouseDown=e=>{const t=je(e);this.rootEl.contains(t)||this.handleCloseClick()},this.handleDocumentKeyDown=e=>{"Escape"===e.key&&this.handleCloseClick()},this.handleCloseClick=()=>{let{onClose:e}=this.props;e&&e()}}render(){let{theme:e,options:t}=this.context,{props:n,state:r}=this,i=["fc-popover",e.getClass("popover")].concat(n.extraClassNames||[]);return fe(p("div",Object.assign({},n.extraAttrs,{id:n.id,className:i.join(" "),"aria-labelledby":r.titleId,ref:this.handleRootEl}),p("div",{className:"fc-popover-header "+e.getClass("popoverHeader")},p("span",{className:"fc-popover-title",id:r.titleId},n.title),p("span",{className:"fc-popover-close "+e.getIconClass("close"),title:t.closeHint,onClick:this.handleCloseClick})),p("div",{className:"fc-popover-body "+e.getClass("popoverContent")},n.children)),n.parentEl)}componentDidMount(){document.addEventListener("mousedown",this.handleDocumentMouseDown),document.addEventListener("keydown",this.handleDocumentKeyDown),this.updateSize()}componentWillUnmount(){document.removeEventListener("mousedown",this.handleDocumentMouseDown),document.removeEventListener("keydown",this.handleDocumentKeyDown)}updateSize(){let{isRtl:e}=this.context,{alignmentEl:t,alignGridTop:n}=this.props,{rootEl:r}=this,i=function(e){let t=Nr(e),n=e.getBoundingClientRect();for(let e of t){let t=sr(n,e.getBoundingClientRect());if(!t)return null;n=t}return n}(t);if(i){let s=r.getBoundingClientRect(),o=n?Ie(t,".fc-scrollgrid").getBoundingClientRect().top:i.top,a=e?i.right-s.width:i.left;o=Math.max(o,10),a=Math.min(a,document.documentElement.clientWidth-10-s.width),a=Math.max(a,10);let l=r.offsetParent.getBoundingClientRect();He(r,{top:o-l.top,left:a-l.left})}}}class go extends Jr{constructor(){super(...arguments),this.handleRootEl=e=>{this.rootEl=e,e?this.context.registerInteractiveComponent(this,{el:e,useEventCenter:!1}):this.context.unregisterInteractiveComponent(this)}}render(){let{options:e,dateEnv:t}=this.context,{props:n}=this,{startDate:r,todayRange:i,dateProfile:s}=n,o=t.format(r,e.dayPopoverFormat);return p(io,{elRef:this.handleRootEl,date:r,dateProfile:s,todayRange:i},(t,r,i)=>p(fo,{elRef:i.ref,id:n.id,title:o,extraClassNames:["fc-more-popover"].concat(i.className||[]),extraAttrs:i,parentEl:n.parentEl,alignmentEl:n.alignmentEl,alignGridTop:n.alignGridTop,onClose:n.onClose},so(e)&&p(t,{elTag:"div",elClasses:["fc-more-popover-misc"]}),n.children))}queryHit(e,t,n,r){let{rootEl:i,props:s}=this;return e>=0&&e<n&&t>=0&&t<r?{dateProfile:s.dateProfile,dateSpan:Object.assign({allDay:!s.forceTimed,range:{start:s.startDate,end:s.endDate}},s.extraDateSpan),dayEl:i,rect:{left:0,top:0,right:n,bottom:r},layer:1}:null}}class po extends Xr{constructor(){super(...arguments),this.state={isPopoverOpen:!1,popoverId:Ue()},this.handleLinkEl=e=>{this.linkEl=e,this.props.elRef&&$r(this.props.elRef,e)},this.handleClick=e=>{let{props:t,context:n}=this,{moreLinkClick:r}=n.options,i=vo(t).start;function s(e){let{def:t,instance:r,range:i}=e.eventRange;return{event:new li(n,t,r),start:n.dateEnv.toDate(i.start),end:n.dateEnv.toDate(i.end),isStart:e.isStart,isEnd:e.isEnd}}"function"==typeof r&&(r=r({date:i,allDay:Boolean(t.allDayDate),allSegs:t.allSegs.map(s),hiddenSegs:t.hiddenSegs.map(s),jsEvent:e,view:n.viewApi})),r&&"popover"!==r?"string"==typeof r&&n.calendarApi.zoomTo(i,r):this.setState({isPopoverOpen:!0})},this.handlePopoverClose=()=>{this.setState({isPopoverOpen:!1})}}render(){let{props:e,state:t}=this;return p(qr.Consumer,null,n=>{let{viewApi:r,options:i,calendarApi:s}=n,{moreLinkText:o}=i,{moreCnt:a}=e,l=vo(e),c="function"==typeof o?o.call(s,a):`+${a} ${o}`,d=ot(i.moreLinkHint,[a],c),u={num:a,shortText:"+"+a,text:c,view:r};return p(y,null,Boolean(e.moreCnt)&&p(as,{elTag:e.elTag||"a",elRef:this.handleLinkEl,elClasses:[...e.elClasses||[],"fc-more-link"],elStyle:e.elStyle,elAttrs:Object.assign(Object.assign(Object.assign({},e.elAttrs),Ge(this.handleClick)),{title:d,"aria-expanded":t.isPopoverOpen,"aria-controls":t.isPopoverOpen?t.popoverId:""}),renderProps:u,generatorName:"moreLinkContent",customGenerator:i.moreLinkContent,defaultGenerator:e.defaultGenerator||mo,classNameGenerator:i.moreLinkClassNames,didMount:i.moreLinkDidMount,willUnmount:i.moreLinkWillUnmount},e.children),t.isPopoverOpen&&p(go,{id:t.popoverId,startDate:l.start,endDate:l.end,dateProfile:e.dateProfile,todayRange:e.todayRange,extraDateSpan:e.extraDateSpan,parentEl:this.parentEl,alignmentEl:e.alignmentElRef?e.alignmentElRef.current:this.linkEl,alignGridTop:e.alignGridTop,forceTimed:e.forceTimed,onClose:this.handlePopoverClose},e.popoverContent()))})}componentDidMount(){this.updateParentEl()}componentDidUpdate(){this.updateParentEl()}updateParentEl(){this.linkEl&&(this.parentEl=Ie(this.linkEl,".fc-view-harness"))}}function mo(e){return e.text}function vo(e){if(e.allDayDate)return{start:e.allDayDate,end:Pt(e.allDayDate,1)};let{hiddenSegs:t}=e;return{start:yo(t),end:(n=t,n.reduce(Eo).eventRange.range.end)};var n}function yo(e){return e.reduce(bo).eventRange.range.start}function bo(e,t){return e.eventRange.range.start<t.eventRange.range.start?e:t}function Eo(e,t){return e.eventRange.range.end>t.eventRange.range.end?e:t}class So extends Xr{render(){let{props:e,context:t}=this,{options:n}=t,r={view:t.viewApi};return p(as,Object.assign({},e,{elTag:e.elTag||"div",elClasses:[...Ao(e.viewSpec),...e.elClasses||[]],renderProps:r,classNameGenerator:n.viewClassNames,generatorName:void 0,didMount:n.viewDidMount,willUnmount:n.viewWillUnmount}),()=>e.children)}}function Ao(e){return[`fc-${e.type}-view`,"fc-view"]}const Do={id:String,defaultAllDay:Boolean,url:String,format:String,events:Tn,eventDataTransform:Tn,success:Tn,failure:Tn};function wo(e,t,n=Co(t)){let r;if("string"==typeof e?r={url:e}:"function"==typeof e||Array.isArray(e)?r={events:e}:"object"==typeof e&&e&&(r=e),r){let{refined:i,extra:s}=_n(r,n),o=function(e,t){let n=t.pluginHooks.eventSourceDefs;for(let t=n.length-1;t>=0;t-=1){let r=n[t].parseMeta(e);if(r)return{sourceDefId:t,meta:r}}return null}(i,t);if(o)return{_raw:e,isFetching:!1,latestFetchId:"",fetchRange:null,defaultAllDay:i.defaultAllDay,eventDataTransform:i.eventDataTransform,success:i.success,failure:i.failure,publicId:i.id||"",sourceId:Ye(),sourceDefId:o.sourceDefId,meta:o.meta,ui:Ln(i,t),extendedProps:s}}return null}function Co(e){return Object.assign(Object.assign(Object.assign({},Un),Do),e.pluginHooks.eventSourceRefiners)}class Ro{getCurrentData(){return this.currentDataManager.getCurrentData()}dispatch(e){this.currentDataManager.dispatch(e)}get view(){return this.getCurrentData().viewApi}batchRendering(e){e()}updateSize(){this.trigger("_resize",!0)}setOption(e,t){this.dispatch({type:"SET_OPTION",optionName:e,rawOptionValue:t})}getOption(e){return this.currentDataManager.currentCalendarOptionsInput[e]}getAvailableLocaleCodes(){return Object.keys(this.getCurrentData().availableRawLocales)}on(e,t){let{currentDataManager:n}=this;n.currentCalendarOptionsRefiners[e]?n.emitter.on(e,t):console.warn(`Unknown listener name '${e}'`)}off(e,t){this.currentDataManager.emitter.off(e,t)}trigger(e,...t){this.currentDataManager.emitter.trigger(e,...t)}changeView(e,t){this.batchRendering(()=>{if(this.unselect(),t)if(t.start&&t.end)this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e}),this.dispatch({type:"SET_OPTION",optionName:"visibleRange",rawOptionValue:t});else{let{dateEnv:n}=this.getCurrentData();this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e,dateMarker:n.createMarker(t)})}else this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e})})}zoomTo(e,t){let n;t=t||"day",n=this.getCurrentData().viewSpecs[t]||this.getUnitViewSpec(t),this.unselect(),n?this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:n.type,dateMarker:e}):this.dispatch({type:"CHANGE_DATE",dateMarker:e})}getUnitViewSpec(e){let t,n,{viewSpecs:r,toolbarConfig:i}=this.getCurrentData(),s=[].concat(i.header?i.header.viewsWithButtons:[],i.footer?i.footer.viewsWithButtons:[]);for(let e in r)s.push(e);for(t=0;t<s.length;t+=1)if(n=r[s[t]],n&&n.singleUnit===e)return n;return null}prev(){this.unselect(),this.dispatch({type:"PREV"})}next(){this.unselect(),this.dispatch({type:"NEXT"})}prevYear(){let e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:e.dateEnv.addYears(e.currentDate,-1)})}nextYear(){let e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:e.dateEnv.addYears(e.currentDate,1)})}today(){let e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:Kr(e.calendarOptions.now,e.dateEnv)})}gotoDate(e){let t=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:t.dateEnv.createMarker(e)})}incrementDate(e){let t=this.getCurrentData(),n=ht(e);n&&(this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:t.dateEnv.add(t.currentDate,n)}))}getDate(){let e=this.getCurrentData();return e.dateEnv.toDate(e.currentDate)}formatDate(e,t){let{dateEnv:n}=this.getCurrentData();return n.format(n.createMarker(e),yn(t))}formatRange(e,t,n){let{dateEnv:r}=this.getCurrentData();return r.formatRange(r.createMarker(e),r.createMarker(t),yn(n),n)}formatIso(e,t){let{dateEnv:n}=this.getCurrentData();return n.formatIso(n.createMarker(e),{omitTime:t})}select(e,t){let n;n=null==t?null!=e.start?e:{start:e,end:null}:{start:e,end:t};let r=this.getCurrentData(),i=_i(n,r.dateEnv,ht({days:1}));i&&(this.dispatch({type:"SELECT_DATES",selection:i}),ti(i,null,r))}unselect(e){let t=this.getCurrentData();t.dateSelection&&(this.dispatch({type:"UNSELECT_DATES"}),function(e,t){t.emitter.trigger("unselect",{jsEvent:e?e.origEvent:null,view:t.viewApi||t.calendarApi.view})}(e,t))}addEvent(e,t){if(e instanceof li){let t=e._def,n=e._instance;return this.getCurrentData().eventStore.defs[t.defId]||(this.dispatch({type:"ADD_EVENTS",eventStore:Nn({def:t,instance:n})}),this.triggerEventAdd(e)),e}let n,r=this.getCurrentData();if(t instanceof ai)n=t.internalEventSource;else if("boolean"==typeof t)t&&([n]=Ct(r.eventSources));else if(null!=t){let e=this.getEventSourceById(t);if(!e)return console.warn(`Could not find an event source with ID "${t}"`),null;n=e.internalEventSource}let i=Yn(e,n,r,!1);if(i){let e=new li(r,i.def,i.def.recurringDef?null:i.instance);return this.dispatch({type:"ADD_EVENTS",eventStore:Nn(i)}),this.triggerEventAdd(e),e}return null}triggerEventAdd(e){let{emitter:t}=this.getCurrentData();t.trigger("eventAdd",{event:e,relatedEvents:[],revert:()=>{this.dispatch({type:"REMOVE_EVENTS",eventStore:ci(e)})}})}getEventById(e){let t=this.getCurrentData(),{defs:n,instances:r}=t.eventStore;e=String(e);for(let i in n){let s=n[i];if(s.publicId===e){if(s.recurringDef)return new li(t,s,null);for(let e in r){let n=r[e];if(n.defId===s.defId)return new li(t,s,n)}}}return null}getEvents(){let e=this.getCurrentData();return di(e.eventStore,e)}removeAllEvents(){this.dispatch({type:"REMOVE_ALL_EVENTS"})}getEventSources(){let e=this.getCurrentData(),t=e.eventSources,n=[];for(let r in t)n.push(new ai(e,t[r]));return n}getEventSourceById(e){let t=this.getCurrentData(),n=t.eventSources;e=String(e);for(let r in n)if(n[r].publicId===e)return new ai(t,n[r]);return null}addEventSource(e){let t=this.getCurrentData();if(e instanceof ai)return t.eventSources[e.internalEventSource.sourceId]||this.dispatch({type:"ADD_EVENT_SOURCES",sources:[e.internalEventSource]}),e;let n=wo(e,t);return n?(this.dispatch({type:"ADD_EVENT_SOURCES",sources:[n]}),new ai(t,n)):null}removeAllEventSources(){this.dispatch({type:"REMOVE_ALL_EVENT_SOURCES"})}refetchEvents(){this.dispatch({type:"FETCH_EVENT_SOURCES",isRefetch:!0})}scrollToTime(e){let t=ht(e);t&&this.trigger("_scrollRequest",{time:t})}}var xo={__proto__:null,BASE_OPTION_DEFAULTS:En,BaseComponent:Xr,BgEvent:ao,CalendarImpl:Ro,CalendarRoot:Ji,ContentContainer:as,CustomRenderingStore:class extends class{constructor(){this.handlers=[]}set(e){this.currentValue=e;for(let t of this.handlers)t(e)}subscribe(e){this.handlers.push(e),void 0!==this.currentValue&&e(this.currentValue)}}{constructor(){super(...arguments),this.map=new Map}handle(e){const{map:t}=this;let n=!1;e.isActive?(t.set(e.id,e),n=!0):t.has(e.id)&&(t.delete(e.id),n=!0),n&&this.set(t)}},DateComponent:Jr,DateEnv:Bi,DateProfileGenerator:ei,DayCellContainer:io,DayHeader:gs,DaySeriesModel:ms,DayTableModel:vs,DelayedRunner:Ps,ElementDragging:Yi,ElementScrollController:Ur,Emitter:Hr,EventContainer:Ks,EventImpl:li,Interaction:Gi,MoreLinkContainer:po,NamedTimeZoneImpl:class{constructor(e){this.timeZoneName=e}},NowIndicatorContainer:no,NowTimer:hs,PositionCache:Br,RefMap:js,ScrollController:zr,ScrollResponder:Qr,Scroller:Bs,SegHierarchy:ji,SimpleScrollGrid:Js,Slicer:ys,Splitter:hr,StandardEvent:eo,TableDateCell:cs,TableDowCell:us,Theme:Lr,ViewContainer:So,ViewContextType:qr,WeekNumberContainer:uo,WindowScrollController:Wr,addDays:Pt,addDurations:gt,addMs:Ht,addWeeks:Nt,allowContextMenu:et,allowSelection:Je,applyMutationToEventStore:ii,applyStyle:He,asCleanDays:function(e){return e.years||e.months||e.milliseconds?0:e.days},asRoughMinutes:function(e){return vt(e)/6e4},asRoughMs:vt,asRoughSeconds:function(e){return vt(e)/1e3},binarySearch:Vi,buildElAttrs:is,buildEntryKey:Ui,buildEventApis:di,buildEventRangeKey:Ci,buildIsoString:$t,buildNavLinkAttrs:Cr,buildSegTimeText:Ai,collectFromHash:Mt,combineEventUis:Fn,compareByFieldSpecs:nt,compareNumbers:at,compareObjs:Tt,computeEarliestSegStart:yo,computeEdges:Mr,computeFallbackHeaderFormat:Ki,computeInnerRect:Ir,computeRect:Or,computeShrinkWidth:zs,computeVisibleDayRange:tr,config:Zi,constrainPoint:or,createDuration:ht,createEmptyEventStore:Hn,createEventInstance:kn,createEventUi:Ln,createFormatter:yn,diffDates:rr,diffDayAndTime:zt,diffDays:jt,diffPoints:lr,diffWeeks:Bt,diffWholeDays:Wt,diffWholeWeeks:Ut,disableCursor:Ze,elementClosest:Ie,elementMatches:Oe,enableCursor:Xe,eventTupleToStore:Nn,filterHash:At,findDirectChildren:function(e,t){let n=e instanceof HTMLElement?[e]:e,r=[];for(let e=0;e<n.length;e+=1){let i=n[e].children;for(let e=0;e<i.length;e+=1){let n=i[e];t&&!Oe(n,t)||r.push(n)}}return r},findElements:Ne,flexibleCompare:it,formatDayString:Jt,formatIsoMonthStr:Kt,formatIsoTimeString:en,getAllowYScrolling:Ws,getCanVGrowWithinCell:dr,getClippingParents:Nr,getDateMeta:Sr,getDayClassNames:Ar,getDefaultEventEnd:ri,getElSeg:gi,getEntrySpanEnd:zi,getEventTargetViaRoot:je,getIsRtlScrollbarOnLeft:_r,getRectCenter:ar,getRelevantEvents:Pn,getScrollGridClassNames:qs,getScrollbarWidths:Tr,getSectionClassNames:Ys,getSectionHasLiquidHeight:Us,getSegAnchorAttrs:Ri,getSegMeta:Di,getSlotClassNames:function(e,t){let n=["fc-slot","fc-slot-"+Ot[e.dow]];return e.isDisabled?n.push("fc-slot-disabled"):(e.isToday&&(n.push("fc-slot-today"),n.push(t.getClass("today"))),e.isPast&&n.push("fc-slot-past"),e.isFuture&&n.push("fc-slot-future")),n},getStickyFooterScrollbar:$s,getStickyHeaderDates:Xs,getUniqueDomId:Ue,greatestDurationDenominator:bt,groupIntersectingEntries:Wi,guid:Ye,hasBgRendering:hi,hasCustomDayCellContent:so,hasShrinkWidth:Qs,identity:Tn,injectStyles:xe,interactionSettingsStore:qi,interactionSettingsToStore:Qi,intersectRanges:mr,intersectRects:sr,intersectSpans:Li,isArraysEqual:It,isColPropsEqual:Fs,isDateSelectionValid:Rs,isDateSpansEqual:Ti,isInt:lt,isInteractionValid:Cs,isMultiDayRange:nr,isPropsEqual:Rt,isPropsValid:_s,isValidDate:Zt,mapHash:Dt,memoize:nn,memoizeArraylike:function(e,t,n){let r=[],i=[];return s=>{let o=r.length,a=s.length,l=0;for(;l<o;l+=1)if(s[l]){if(!It(r[l],s[l])){n&&n(i[l]);let r=e.apply(this,s[l]);t&&t(r,i[l])||(i[l]=r)}}else n&&n(i[l]);for(;l<a;l+=1)i[l]=e.apply(this,s[l]);return r=s,i.splice(a),i}},memoizeHashlike:function(e,t,n){let r={},i={};return s=>{let o={};for(let a in s)if(i[a])if(It(r[a],s[a]))o[a]=i[a];else{n&&n(i[a]);let r=e.apply(this,s[a]);o[a]=t&&t(r,i[a])?i[a]:r}else o[a]=e.apply(this,s[a]);return r=s,i=o,o}},memoizeObjArg:rn,mergeEventStores:Bn,multiplyDuration:pt,padStart:st,parseBusinessHours:Kn,parseClassNames:zn,parseDragMeta:$i,parseEventDef:$n,parseFieldSpecs:tt,parseMarker:Hi,pointInsideRect:ir,preventContextMenu:Ke,preventDefault:We,preventSelection:$e,rangeContainsMarker:Er,rangeContainsRange:br,rangesEqual:vr,rangesIntersect:yr,refineEventDef:Zn,refineProps:_n,removeElement:Me,removeExact:function(e,t){let n=0,r=0;for(;r<e.length;)e[r]===t?(e.splice(r,1),n+=1):r+=1;return n},renderChunkContent:Ls,renderFill:co,renderMicroColGroup:Vs,renderScrollShim:Zs,requestJson:Ns,sanitizeShrinkWidth:Gs,setRef:$r,sliceEventStore:ui,sortEventSegs:vi,startOfDay:Lt,translateRect:function(e,t,n){return{left:e.left+t,right:e.right+t,top:e.top+n,bottom:e.bottom+n}},triggerDateSelect:ti,unpromisify:Pr,whenTransitionDone:Ve,wholeDivideDurations:yt},_o={__proto__:null,createPortal:fe,createContext:Gr,flushSync:Fr,Component:D,Fragment:y,cloneElement:function(e,n,r){var i,s,o,a=f({},e.props);for(o in n)"key"==o?i=n[o]:"ref"==o?s=n[o]:a[o]=n[o];return arguments.length>2&&(a.children=arguments.length>3?t.call(arguments,2):r),m(e.type,a,i||e.key,s||e.ref,null)},createElement:p,createRef:v,h:p,hydrate:function e(t,n){U(t,n,e)},get isValidElement(){return i},get options(){return n},render:U,toChildArray:M};const To=[],ko={code:"en",week:{dow:0,doy:4},direction:"ltr",buttonText:{prev:"prev",next:"next",prevYear:"prev year",nextYear:"next year",year:"year",today:"today",month:"month",week:"week",day:"day",list:"list"},weekText:"W",weekTextLong:"Week",closeHint:"Close",timeHint:"Time",eventHint:"Event",allDayText:"all-day",moreLinkText:"more",noEventsText:"No events to display"},Mo=Object.assign(Object.assign({},ko),{buttonHints:{prev:"Previous $0",next:"Next $0",today:(e,t)=>"day"===t?"Today":"This "+e},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:e=>`Show ${e} more event${1===e?"":"s"}`});function Io(e){let t=e.length>0?e[0].code:"en",n=To.concat(e),r={en:Mo};for(let e of n)r[e.code]=e;return{map:r,defaultCode:t}}function Oo(e,t){return"object"!=typeof e||Array.isArray(e)?function(e,t){let n=[].concat(e||[]),r=function(e,t){for(let n=0;n<e.length;n+=1){let r=e[n].toLocaleLowerCase().split("-");for(let e=r.length;e>0;e-=1){let n=r.slice(0,e).join("-");if(t[n])return t[n]}}return null}(n,t)||Mo;return No(e,n,r)}(e,t):No(e.code,[e.code],e)}function No(e,t,n){let r=St([ko,n],["buttonText"]);delete r.code;let{week:i}=r;return delete r.week,{codeArg:e,codes:t,week:i,simpleNumberFormat:new Intl.NumberFormat(e),options:r}}function Po(e){return{id:Ye(),name:e.name,premiumReleaseDate:e.premiumReleaseDate?new Date(e.premiumReleaseDate):void 0,deps:e.deps||[],reducers:e.reducers||[],isLoadingFuncs:e.isLoadingFuncs||[],contextInit:[].concat(e.contextInit||[]),eventRefiners:e.eventRefiners||{},eventDefMemberAdders:e.eventDefMemberAdders||[],eventSourceRefiners:e.eventSourceRefiners||{},isDraggableTransformers:e.isDraggableTransformers||[],eventDragMutationMassagers:e.eventDragMutationMassagers||[],eventDefMutationAppliers:e.eventDefMutationAppliers||[],dateSelectionTransformers:e.dateSelectionTransformers||[],datePointTransforms:e.datePointTransforms||[],dateSpanTransforms:e.dateSpanTransforms||[],views:e.views||{},viewPropsTransformers:e.viewPropsTransformers||[],isPropsValid:e.isPropsValid||null,externalDefTransforms:e.externalDefTransforms||[],viewContainerAppends:e.viewContainerAppends||[],eventDropTransformers:e.eventDropTransformers||[],componentInteractions:e.componentInteractions||[],calendarInteractions:e.calendarInteractions||[],themeClasses:e.themeClasses||{},eventSourceDefs:e.eventSourceDefs||[],cmdFormatter:e.cmdFormatter,recurringTypes:e.recurringTypes||[],namedTimeZonedImpl:e.namedTimeZonedImpl,initialView:e.initialView||"",elementDraggingImpl:e.elementDraggingImpl,optionChangeHandlers:e.optionChangeHandlers||{},scrollGridImpl:e.scrollGridImpl||null,listenerRefiners:e.listenerRefiners||{},optionRefiners:e.optionRefiners||{},propSetHandlers:e.propSetHandlers||{}}}function Ho(){let e,t=[],n=[];return(r,i)=>(e&&It(r,t)&&It(i,n)||(e=function(e,t){let n={},r={premiumReleaseDate:void 0,reducers:[],isLoadingFuncs:[],contextInit:[],eventRefiners:{},eventDefMemberAdders:[],eventSourceRefiners:{},isDraggableTransformers:[],eventDragMutationMassagers:[],eventDefMutationAppliers:[],dateSelectionTransformers:[],datePointTransforms:[],dateSpanTransforms:[],views:{},viewPropsTransformers:[],isPropsValid:null,externalDefTransforms:[],viewContainerAppends:[],eventDropTransformers:[],componentInteractions:[],calendarInteractions:[],themeClasses:{},eventSourceDefs:[],cmdFormatter:null,recurringTypes:[],namedTimeZonedImpl:null,initialView:"",elementDraggingImpl:null,optionChangeHandlers:{},scrollGridImpl:null,listenerRefiners:{},optionRefiners:{},propSetHandlers:{}};function i(e){for(let o of e){const e=o.name,a=n[e];void 0===a?(n[e]=o.id,i(o.deps),s=o,r={premiumReleaseDate:Bo((t=r).premiumReleaseDate,s.premiumReleaseDate),reducers:t.reducers.concat(s.reducers),isLoadingFuncs:t.isLoadingFuncs.concat(s.isLoadingFuncs),contextInit:t.contextInit.concat(s.contextInit),eventRefiners:Object.assign(Object.assign({},t.eventRefiners),s.eventRefiners),eventDefMemberAdders:t.eventDefMemberAdders.concat(s.eventDefMemberAdders),eventSourceRefiners:Object.assign(Object.assign({},t.eventSourceRefiners),s.eventSourceRefiners),isDraggableTransformers:t.isDraggableTransformers.concat(s.isDraggableTransformers),eventDragMutationMassagers:t.eventDragMutationMassagers.concat(s.eventDragMutationMassagers),eventDefMutationAppliers:t.eventDefMutationAppliers.concat(s.eventDefMutationAppliers),dateSelectionTransformers:t.dateSelectionTransformers.concat(s.dateSelectionTransformers),datePointTransforms:t.datePointTransforms.concat(s.datePointTransforms),dateSpanTransforms:t.dateSpanTransforms.concat(s.dateSpanTransforms),views:Object.assign(Object.assign({},t.views),s.views),viewPropsTransformers:t.viewPropsTransformers.concat(s.viewPropsTransformers),isPropsValid:s.isPropsValid||t.isPropsValid,externalDefTransforms:t.externalDefTransforms.concat(s.externalDefTransforms),viewContainerAppends:t.viewContainerAppends.concat(s.viewContainerAppends),eventDropTransformers:t.eventDropTransformers.concat(s.eventDropTransformers),calendarInteractions:t.calendarInteractions.concat(s.calendarInteractions),componentInteractions:t.componentInteractions.concat(s.componentInteractions),themeClasses:Object.assign(Object.assign({},t.themeClasses),s.themeClasses),eventSourceDefs:t.eventSourceDefs.concat(s.eventSourceDefs),cmdFormatter:s.cmdFormatter||t.cmdFormatter,recurringTypes:t.recurringTypes.concat(s.recurringTypes),namedTimeZonedImpl:s.namedTimeZonedImpl||t.namedTimeZonedImpl,initialView:t.initialView||s.initialView,elementDraggingImpl:t.elementDraggingImpl||s.elementDraggingImpl,optionChangeHandlers:Object.assign(Object.assign({},t.optionChangeHandlers),s.optionChangeHandlers),scrollGridImpl:s.scrollGridImpl||t.scrollGridImpl,listenerRefiners:Object.assign(Object.assign({},t.listenerRefiners),s.listenerRefiners),optionRefiners:Object.assign(Object.assign({},t.optionRefiners),s.optionRefiners),propSetHandlers:Object.assign(Object.assign({},t.propSetHandlers),s.propSetHandlers)}):a!==o.id&&console.warn(`Duplicate plugin '${e}'`)}var t,s}return e&&i(e),i(t),r}(r,i)),t=r,n=i,e)}function Bo(e,t){return void 0===e?t:void 0===t?e:new Date(Math.max(e.valueOf(),t.valueOf()))}class jo extends Lr{}function zo(e,t,n,r){if(t[e])return t[e];let i=function(e,t,n,r){let i=n[e],s=r[e],o=e=>i&&null!==i[e]?i[e]:s&&null!==s[e]?s[e]:null,a=o("component"),l=o("superType"),c=null;if(l){if(l===e)throw new Error("Can't have a custom view type that references itself");c=zo(l,t,n,r)}!a&&c&&(a=c.component);if(!a)return null;return{type:e,component:a,defaults:Object.assign(Object.assign({},c?c.defaults:{}),i?i.rawOptions:{}),overrides:Object.assign(Object.assign({},c?c.overrides:{}),s?s.rawOptions:{})}}(e,t,n,r);return i&&(t[e]=i),i}function Uo(e){return Dt(e,Wo)}function Wo(e){let t="function"==typeof e?{component:e}:e,{component:n}=t;return t.content?n=Lo(t):!n||n.prototype instanceof Xr||(n=Lo(Object.assign(Object.assign({},t),{content:n}))),{superType:t.type,component:n,rawOptions:t}}function Lo(e){return t=>p(qr.Consumer,null,n=>p(as,{elTag:"div",elClasses:Ao(n.viewSpec),renderProps:Object.assign(Object.assign({},t),{nextDayThreshold:n.options.nextDayThreshold}),generatorName:void 0,customGenerator:e.content,classNameGenerator:e.classNames,didMount:e.didMount,willUnmount:e.willUnmount}))}function Fo(e,t,n,r){let i=Uo(e),s=Uo(t.views);return Dt(function(e,t){let n,r={};for(n in e)zo(n,r,e,t);for(n in t)zo(n,r,e,t);return r}(i,s),e=>function(e,t,n,r,i){let s=e.overrides.duration||e.defaults.duration||r.duration||n.duration,o=null,a="",l="",c={};if(s&&(o=function(e){let t=JSON.stringify(e),n=Vo[t];void 0===n&&(n=ht(e),Vo[t]=n);return n}(s),o)){let e=bt(o);a=e.unit,1===e.value&&(l=a,c=t[a]?t[a].rawOptions:{})}let d=t=>{let n=t.buttonText||{},r=e.defaults.buttonTextKey;return null!=r&&null!=n[r]?n[r]:null!=n[e.type]?n[e.type]:null!=n[l]?n[l]:null},u=t=>{let n=t.buttonHints||{},r=e.defaults.buttonTextKey;return null!=r&&null!=n[r]?n[r]:null!=n[e.type]?n[e.type]:null!=n[l]?n[l]:null};return{type:e.type,component:e.component,duration:o,durationUnit:a,singleUnit:l,optionDefaults:e.defaults,optionOverrides:Object.assign(Object.assign({},c),e.overrides),buttonTextOverride:d(r)||d(n)||e.overrides.buttonText,buttonTextDefault:d(i)||e.defaults.buttonText||d(En)||e.type,buttonTitleOverride:u(r)||u(n)||e.overrides.buttonHint,buttonTitleDefault:u(i)||e.defaults.buttonHint||u(En)}}(e,s,t,n,r))}jo.prototype.classes={root:"fc-theme-standard",tableCellShaded:"fc-cell-shaded",buttonGroup:"fc-button-group",button:"fc-button fc-button-primary",buttonActive:"fc-button-active"},jo.prototype.baseIconClass="fc-icon",jo.prototype.iconClasses={close:"fc-icon-x",prev:"fc-icon-chevron-left",next:"fc-icon-chevron-right",prevYear:"fc-icon-chevrons-left",nextYear:"fc-icon-chevrons-right"},jo.prototype.rtlIconClasses={prev:"fc-icon-chevron-right",next:"fc-icon-chevron-left",prevYear:"fc-icon-chevrons-right",nextYear:"fc-icon-chevrons-left"},jo.prototype.iconOverrideOption="buttonIcons",jo.prototype.iconOverrideCustomButtonOption="icon",jo.prototype.iconOverridePrefix="fc-icon-";let Vo={};function Go(e,t,n){let r=t?t.activeRange:null;return Yo({},function(e,t){let n=Co(t),r=[].concat(e.eventSources||[]),i=[];e.initialEvents&&r.unshift(e.initialEvents);e.events&&r.unshift(e.events);for(let e of r){let r=wo(e,t,n);r&&i.push(r)}return i}(e,n),r,n)}function Qo(e,t,n,r){let i=n?n.activeRange:null;switch(t.type){case"ADD_EVENT_SOURCES":return Yo(e,t.sources,i,r);case"REMOVE_EVENT_SOURCE":return s=e,o=t.sourceId,At(s,e=>e.sourceId!==o);case"PREV":case"NEXT":case"CHANGE_DATE":case"CHANGE_VIEW_TYPE":return n?Zo(e,i,r):e;case"FETCH_EVENT_SOURCES":return Xo(e,t.sourceIds?wt(t.sourceIds):Jo(e,r),i,t.isRefetch||!1,r);case"RECEIVE_EVENTS":case"RECEIVE_EVENT_ERROR":return function(e,t,n,r){let i=e[t];if(i&&n===i.latestFetchId)return Object.assign(Object.assign({},e),{[t]:Object.assign(Object.assign({},i),{isFetching:!1,fetchRange:r})});return e}(e,t.sourceId,t.fetchId,t.fetchRange);case"REMOVE_ALL_EVENT_SOURCES":return{};default:return e}var s,o}function qo(e){for(let t in e)if(e[t].isFetching)return!0;return!1}function Yo(e,t,n,r){let i={};for(let e of t)i[e.sourceId]=e;return n&&(i=Zo(i,n,r)),Object.assign(Object.assign({},e),i)}function Zo(e,t,n){return Xo(e,At(e,e=>function(e,t,n){if(!Ko(e,n))return!e.latestFetchId;return!n.options.lazyFetching||!e.fetchRange||e.isFetching||t.start<e.fetchRange.start||t.end>e.fetchRange.end}(e,t,n)),t,!1,n)}function Xo(e,t,n,r,i){let s={};for(let o in e){let a=e[o];t[o]?s[o]=$o(a,n,r,i):s[o]=a}return s}function $o(e,t,n,r){let{options:i,calendarApi:s}=r,o=r.pluginHooks.eventSourceDefs[e.sourceDefId],a=Ye();return o.fetch({eventSource:e,range:t,isRefetch:n,context:r},n=>{let{rawEvents:o}=n;i.eventSourceSuccess&&(o=i.eventSourceSuccess.call(s,o,n.response)||o),e.success&&(o=e.success.call(s,o,n.response)||o),r.dispatch({type:"RECEIVE_EVENTS",sourceId:e.sourceId,fetchId:a,fetchRange:t,rawEvents:o})},n=>{let o=!1;i.eventSourceFailure&&(i.eventSourceFailure.call(s,n),o=!0),e.failure&&(e.failure(n),o=!0),o||console.warn(n.message,n),r.dispatch({type:"RECEIVE_EVENT_ERROR",sourceId:e.sourceId,fetchId:a,fetchRange:t,error:n})}),Object.assign(Object.assign({},e),{isFetching:!0,latestFetchId:a})}function Jo(e,t){return At(e,e=>Ko(e,t))}function Ko(e,t){return!t.pluginHooks.eventSourceDefs[e.sourceDefId].ignoreRange}function ea(e,t){switch(t.type){case"UNSELECT_DATES":return null;case"SELECT_DATES":return t.selection;default:return e}}function ta(e,t){switch(t.type){case"UNSELECT_EVENT":return"";case"SELECT_EVENT":return t.eventInstanceId;default:return e}}function na(e,t){let n;switch(t.type){case"UNSET_EVENT_DRAG":return null;case"SET_EVENT_DRAG":return n=t.state,{affectedEvents:n.affectedEvents,mutatedEvents:n.mutatedEvents,isEvent:n.isEvent};default:return e}}function ra(e,t){let n;switch(t.type){case"UNSET_EVENT_RESIZE":return null;case"SET_EVENT_RESIZE":return n=t.state,{affectedEvents:n.affectedEvents,mutatedEvents:n.mutatedEvents,isEvent:n.isEvent};default:return e}}function ia(e,t,n,r,i){return{header:e.headerToolbar?sa(e.headerToolbar,e,t,n,r,i):null,footer:e.footerToolbar?sa(e.footerToolbar,e,t,n,r,i):null}}function sa(e,t,n,r,i,s){let o={},a=[],l=!1;for(let c in e){let d=oa(e[c],t,n,r,i,s);o[c]=d.widgets,a.push(...d.viewsWithButtons),l=l||d.hasTitle}return{sectionWidgets:o,viewsWithButtons:a,hasTitle:l}}function oa(e,t,n,r,i,s){let o="rtl"===t.direction,a=t.customButtons||{},l=n.buttonText||{},c=t.buttonText||{},d=n.buttonHints||{},u=t.buttonHints||{},h=e?e.split(" "):[],f=[],g=!1;return{widgets:h.map(e=>e.split(",").map(e=>{if("title"===e)return g=!0,{buttonName:e};let n,h,p,m,v,y;if(n=a[e])p=e=>{n.click&&n.click.call(e.target,e,e.target)},(m=r.getCustomButtonIconClass(n))||(m=r.getIconClass(e,o))||(v=n.text),y=n.hint||n.text;else if(h=i[e]){f.push(e),p=()=>{s.changeView(e)},(v=h.buttonTextOverride)||(m=r.getIconClass(e,o))||(v=h.buttonTextDefault);let n=h.buttonTextOverride||h.buttonTextDefault;y=ot(h.buttonTitleOverride||h.buttonTitleDefault||t.viewHint,[n,e],n)}else if(s[e])if(p=()=>{s[e]()},(v=l[e])||(m=r.getIconClass(e,o))||(v=c[e]),"prevYear"===e||"nextYear"===e){let t="prevYear"===e?"prev":"next";y=ot(d[t]||u[t],[c.year||"year","year"],c[e])}else y=t=>ot(d[e]||u[e],[c[t]||t,t],c[e]);return{buttonName:e,buttonClick:p,buttonIcon:m,buttonText:v,buttonHint:y}})),viewsWithButtons:f,hasTitle:g}}class aa{constructor(e,t,n){this.type=e,this.getCurrentData=t,this.dateEnv=n}get calendar(){return this.getCurrentData().calendarApi}get title(){return this.getCurrentData().viewTitle}get activeStart(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.start)}get activeEnd(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.end)}get currentStart(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.start)}get currentEnd(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.end)}getOption(e){return this.getCurrentData().options[e]}}function la(e,t){let n=Ct(t.getCurrentData().eventSources);if(1===n.length&&1===e.length&&Array.isArray(n[0]._raw)&&Array.isArray(e[0]))return void t.dispatch({type:"RESET_RAW_EVENTS",sourceId:n[0].sourceId,rawEvents:e[0]});let r=[];for(let t of e){let e=!1;for(let r=0;r<n.length;r+=1)if(n[r]._raw===t){n.splice(r,1),e=!0;break}e||r.push(t)}for(let e of n)t.dispatch({type:"REMOVE_EVENT_SOURCE",sourceId:e.sourceId});for(let e of r)t.calendarApi.addEventSource(e)}const ca=[Po({name:"array-event-source",eventSourceDefs:[{ignoreRange:!0,parseMeta:e=>Array.isArray(e.events)?e.events:null,fetch(e,t){t({rawEvents:e.eventSource.meta})}}]}),Po({name:"func-event-source",eventSourceDefs:[{parseMeta:e=>"function"==typeof e.events?e.events:null,fetch(e,t,n){const{dateEnv:r}=e.context;Pr(e.eventSource.meta.bind(null,ki(e.range,r)),e=>t({rawEvents:e}),n)}}]}),Po({name:"json-event-source",eventSourceRefiners:{method:String,extraParams:Tn,startParam:String,endParam:String,timeZoneParam:String},eventSourceDefs:[{parseMeta:e=>!e.url||"json"!==e.format&&e.format?null:{url:e.url,format:"json",method:(e.method||"GET").toUpperCase(),extraParams:e.extraParams,startParam:e.startParam,endParam:e.endParam,timeZoneParam:e.timeZoneParam},fetch(e,t,n){const{meta:r}=e.eventSource,i=function(e,t,n){let r,i,s,o,{dateEnv:a,options:l}=n,c={};r=e.startParam,null==r&&(r=l.startParam);i=e.endParam,null==i&&(i=l.endParam);s=e.timeZoneParam,null==s&&(s=l.timeZoneParam);o="function"==typeof e.extraParams?e.extraParams():e.extraParams||{};Object.assign(c,o),c[r]=a.formatIso(t.start),c[i]=a.formatIso(t.end),"local"!==a.timeZone&&(c[s]=a.timeZone);return c}(r,e.range,e.context);Ns(r.method,r.url,i).then(([e,n])=>{t({rawEvents:e,response:n})},n)}}]}),Po({name:"simple-recurring-event",recurringTypes:[{parse(e,t){if(e.daysOfWeek||e.startTime||e.endTime||e.startRecur||e.endRecur){let i,s={daysOfWeek:e.daysOfWeek||null,startTime:e.startTime||null,endTime:e.endTime||null,startRecur:e.startRecur?t.createMarker(e.startRecur):null,endRecur:e.endRecur?t.createMarker(e.endRecur):null};return e.duration&&(i=e.duration),!i&&e.startTime&&e.endTime&&(n=e.endTime,r=e.startTime,i={years:n.years-r.years,months:n.months-r.months,days:n.days-r.days,milliseconds:n.milliseconds-r.milliseconds}),{allDayGuess:Boolean(!e.startTime&&!e.endTime),duration:i,typeData:s}}var n,r;return null},expand(e,t,n){let r=mr(t,{start:e.startRecur,end:e.endRecur});return r?function(e,t,n,r){let i=e?wt(e):null,s=Lt(n.start),o=n.end,a=[];for(;s<o;){let e;i&&!i[s.getUTCDay()]||(e=t?r.add(s,t):s,a.push(e)),s=Pt(s,1)}return a}(e.daysOfWeek,e.startTime,r,n):[]}}],eventRefiners:{daysOfWeek:Tn,startTime:ht,endTime:ht,duration:ht,startRecur:Tn,endRecur:Tn}}),Po({name:"change-handler",optionChangeHandlers:{events(e,t){la([e],t)},eventSources:la}}),Po({name:"misc",isLoadingFuncs:[e=>qo(e.eventSources)],propSetHandlers:{dateProfile:function(e,t){t.emitter.trigger("datesSet",Object.assign(Object.assign({},ki(e.activeRange,t.dateEnv)),{view:t.viewApi}))},eventStore:function(e,t){let{emitter:n}=t;n.hasHandlers("eventsSet")&&n.trigger("eventsSet",di(e,t))}}})];class da{constructor(e,t){this.runTaskOption=e,this.drainedOption=t,this.queue=[],this.delayedRunner=new Ps(this.drain.bind(this))}request(e,t){this.queue.push(e),this.delayedRunner.request(t)}pause(e){this.delayedRunner.pause(e)}resume(e,t){this.delayedRunner.resume(e,t)}drain(){let{queue:e}=this;for(;e.length;){let t,n=[];for(;t=e.shift();)this.runTask(t),n.push(t);this.drained(n)}}runTask(e){this.runTaskOption&&this.runTaskOption(e)}drained(e){this.drainedOption&&this.drainedOption(e)}}function ua(e,t,n){let r;return r=/^(year|month)$/.test(e.currentRangeUnit)?e.currentRange:e.activeRange,n.formatRange(r.start,r.end,yn(t.titleFormat||function(e){let{currentRangeUnit:t}=e;if("year"===t)return{year:"numeric"};if("month"===t)return{year:"numeric",month:"long"};let n=Wt(e.currentRange.start,e.currentRange.end);if(null!==n&&n>1)return{year:"numeric",month:"short",day:"numeric"};return{year:"numeric",month:"long",day:"numeric"}}(e)),{isEndExclusive:e.isRangeAllDay,defaultSeparator:t.titleRangeSeparator})}class ha{constructor(e){this.computeCurrentViewData=nn(this._computeCurrentViewData),this.organizeRawLocales=nn(Io),this.buildLocale=nn(Oo),this.buildPluginHooks=Ho(),this.buildDateEnv=nn(fa),this.buildTheme=nn(ga),this.parseToolbars=nn(ia),this.buildViewSpecs=nn(Fo),this.buildDateProfileGenerator=rn(pa),this.buildViewApi=nn(ma),this.buildViewUiProps=rn(ba),this.buildEventUiBySource=nn(va,Rt),this.buildEventUiBases=nn(ya),this.parseContextBusinessHours=rn(Sa),this.buildTitle=nn(ua),this.emitter=new Hr,this.actionRunner=new da(this._handleAction.bind(this),this.updateData.bind(this)),this.currentCalendarOptionsInput={},this.currentCalendarOptionsRefined={},this.currentViewOptionsInput={},this.currentViewOptionsRefined={},this.currentCalendarOptionsRefiners={},this.optionsForRefining=[],this.optionsForHandling=[],this.getCurrentData=()=>this.data,this.dispatch=e=>{this.actionRunner.request(e)},this.props=e,this.actionRunner.pause();let t={},n=this.computeOptionsData(e.optionOverrides,t,e.calendarApi),r=n.calendarOptions.initialView||n.pluginHooks.initialView,i=this.computeCurrentViewData(r,n,e.optionOverrides,t);e.calendarApi.currentDataManager=this,this.emitter.setThisContext(e.calendarApi),this.emitter.setOptions(i.options);let s=function(e,t){let n=e.initialDate;return null!=n?t.createMarker(n):Kr(e.now,t)}(n.calendarOptions,n.dateEnv),o=i.dateProfileGenerator.build(s);Er(o.activeRange,s)||(s=o.currentRange.start);let a={dateEnv:n.dateEnv,options:n.calendarOptions,pluginHooks:n.pluginHooks,calendarApi:e.calendarApi,dispatch:this.dispatch,emitter:this.emitter,getCurrentData:this.getCurrentData};for(let e of n.pluginHooks.contextInit)e(a);let l=Go(n.calendarOptions,o,a),c={dynamicOptionOverrides:t,currentViewType:r,currentDate:s,dateProfile:o,businessHours:this.parseContextBusinessHours(a),eventSources:l,eventUiBases:{},eventStore:{defs:{},instances:{}},renderableEventStore:{defs:{},instances:{}},dateSelection:null,eventSelection:"",eventDrag:null,eventResize:null,selectionConfig:this.buildViewUiProps(a).selectionConfig},d=Object.assign(Object.assign({},a),c);for(let e of n.pluginHooks.reducers)Object.assign(c,e(null,null,d));Ea(c,a)&&this.emitter.trigger("loading",!0),this.state=c,this.updateData(),this.actionRunner.resume()}resetOptions(e,t){let{props:n}=this;void 0===t?n.optionOverrides=e:(n.optionOverrides=Object.assign(Object.assign({},n.optionOverrides||{}),e),this.optionsForRefining.push(...t)),(void 0===t||t.length)&&this.actionRunner.request({type:"NOTHING"})}_handleAction(e){let{props:t,state:n,emitter:r}=this,i=function(e,t){switch(t.type){case"SET_OPTION":return Object.assign(Object.assign({},e),{[t.optionName]:t.rawOptionValue});default:return e}}(n.dynamicOptionOverrides,e),s=this.computeOptionsData(t.optionOverrides,i,t.calendarApi),o=function(e,t){switch(t.type){case"CHANGE_VIEW_TYPE":e=t.viewType}return e}(n.currentViewType,e),a=this.computeCurrentViewData(o,s,t.optionOverrides,i);t.calendarApi.currentDataManager=this,r.setThisContext(t.calendarApi),r.setOptions(a.options);let l={dateEnv:s.dateEnv,options:s.calendarOptions,pluginHooks:s.pluginHooks,calendarApi:t.calendarApi,dispatch:this.dispatch,emitter:r,getCurrentData:this.getCurrentData},{currentDate:c,dateProfile:d}=n;this.data&&this.data.dateProfileGenerator!==a.dateProfileGenerator&&(d=a.dateProfileGenerator.build(c)),c=function(e,t){switch(t.type){case"CHANGE_DATE":return t.dateMarker;default:return e}}(c,e),d=function(e,t,n,r){let i;switch(t.type){case"CHANGE_VIEW_TYPE":return r.build(t.dateMarker||n);case"CHANGE_DATE":return r.build(t.dateMarker);case"PREV":if(i=r.buildPrev(e,n),i.isValid)return i;break;case"NEXT":if(i=r.buildNext(e,n),i.isValid)return i}return e}(d,e,c,a.dateProfileGenerator),"PREV"!==e.type&&"NEXT"!==e.type&&Er(d.currentRange,c)||(c=d.currentRange.start);let u=Qo(n.eventSources,e,d,l),h=Es(n.eventStore,e,u,d,l),f=qo(u)&&!a.options.progressiveEventRendering&&n.renderableEventStore||h,{eventUiSingleBase:g,selectionConfig:p}=this.buildViewUiProps(l),m=this.buildEventUiBySource(u),v={dynamicOptionOverrides:i,currentViewType:o,currentDate:c,dateProfile:d,eventSources:u,eventStore:h,renderableEventStore:f,selectionConfig:p,eventUiBases:this.buildEventUiBases(f.defs,g,m),businessHours:this.parseContextBusinessHours(l),dateSelection:ea(n.dateSelection,e),eventSelection:ta(n.eventSelection,e),eventDrag:na(n.eventDrag,e),eventResize:ra(n.eventResize,e)},y=Object.assign(Object.assign({},l),v);for(let t of s.pluginHooks.reducers)Object.assign(v,t(n,e,y));let b=Ea(n,l),E=Ea(v,l);!b&&E?r.trigger("loading",!0):b&&!E&&r.trigger("loading",!1),this.state=v,t.onAction&&t.onAction(e)}updateData(){let{props:e,state:t}=this,n=this.data,r=this.computeOptionsData(e.optionOverrides,t.dynamicOptionOverrides,e.calendarApi),i=this.computeCurrentViewData(t.currentViewType,r,e.optionOverrides,t.dynamicOptionOverrides),s=this.data=Object.assign(Object.assign(Object.assign({viewTitle:this.buildTitle(t.dateProfile,i.options,r.dateEnv),calendarApi:e.calendarApi,dispatch:this.dispatch,emitter:this.emitter,getCurrentData:this.getCurrentData},r),i),t),o=r.pluginHooks.optionChangeHandlers,a=n&&n.calendarOptions,l=r.calendarOptions;if(a&&a!==l){a.timeZone!==l.timeZone&&(t.eventSources=s.eventSources=function(e,t,n){let r=t?t.activeRange:null;return Xo(e,Jo(e,n),r,!0,n)}(s.eventSources,t.dateProfile,s),t.eventStore=s.eventStore=Ds(s.eventStore,n.dateEnv,s.dateEnv),t.renderableEventStore=s.renderableEventStore=Ds(s.renderableEventStore,n.dateEnv,s.dateEnv));for(let e in o)-1===this.optionsForHandling.indexOf(e)&&a[e]===l[e]||o[e](l[e],s)}this.optionsForHandling=[],e.onData&&e.onData(s)}computeOptionsData(e,t,n){if(!this.optionsForRefining.length&&e===this.stableOptionOverrides&&t===this.stableDynamicOptionOverrides)return this.stableCalendarOptionsData;let{refinedOptions:r,pluginHooks:i,localeDefaults:s,availableLocaleData:o,extra:a}=this.processRawCalendarOptions(e,t);Aa(a);let l=this.buildDateEnv(r.timeZone,r.locale,r.weekNumberCalculation,r.firstDay,r.weekText,i,o,r.defaultRangeSeparator),c=this.buildViewSpecs(i.views,this.stableOptionOverrides,this.stableDynamicOptionOverrides,s),d=this.buildTheme(r,i),u=this.parseToolbars(r,this.stableOptionOverrides,d,c,n);return this.stableCalendarOptionsData={calendarOptions:r,pluginHooks:i,dateEnv:l,viewSpecs:c,theme:d,toolbarConfig:u,localeDefaults:s,availableRawLocales:o.map}}processRawCalendarOptions(e,t){let{locales:n,locale:r}=xn([En,e,t]),i=this.organizeRawLocales(n),s=i.map,o=this.buildLocale(r||i.defaultCode,s).options,a=this.buildPluginHooks(e.plugins||[],ca),l=this.currentCalendarOptionsRefiners=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},bn),Sn),An),a.listenerRefiners),a.optionRefiners),c={},d=xn([En,o,e,t]),u={},h=this.currentCalendarOptionsInput,f=this.currentCalendarOptionsRefined,g=!1;for(let e in d)-1===this.optionsForRefining.indexOf(e)&&(d[e]===h[e]||Dn[e]&&e in h&&Dn[e](h[e],d[e]))?u[e]=f[e]:l[e]?(u[e]=l[e](d[e]),g=!0):c[e]=h[e];return g&&(this.currentCalendarOptionsInput=d,this.currentCalendarOptionsRefined=u,this.stableOptionOverrides=e,this.stableDynamicOptionOverrides=t),this.optionsForHandling.push(...this.optionsForRefining),this.optionsForRefining=[],{rawOptions:this.currentCalendarOptionsInput,refinedOptions:this.currentCalendarOptionsRefined,pluginHooks:a,availableLocaleData:i,localeDefaults:o,extra:c}}_computeCurrentViewData(e,t,n,r){let i=t.viewSpecs[e];if(!i)throw new Error(`viewType "${e}" is not available. Please make sure you've loaded all neccessary plugins`);let{refinedOptions:s,extra:o}=this.processRawViewOptions(i,t.pluginHooks,t.localeDefaults,n,r);return Aa(o),{viewSpec:i,options:s,dateProfileGenerator:this.buildDateProfileGenerator({dateProfileGeneratorClass:i.optionDefaults.dateProfileGeneratorClass,duration:i.duration,durationUnit:i.durationUnit,usesMinMaxTime:i.optionDefaults.usesMinMaxTime,dateEnv:t.dateEnv,calendarApi:this.props.calendarApi,slotMinTime:s.slotMinTime,slotMaxTime:s.slotMaxTime,showNonCurrentDates:s.showNonCurrentDates,dayCount:s.dayCount,dateAlignment:s.dateAlignment,dateIncrement:s.dateIncrement,hiddenDays:s.hiddenDays,weekends:s.weekends,nowInput:s.now,validRangeInput:s.validRange,visibleRangeInput:s.visibleRange,fixedWeekCount:s.fixedWeekCount}),viewApi:this.buildViewApi(e,this.getCurrentData,t.dateEnv)}}processRawViewOptions(e,t,n,r,i){let s=xn([En,e.optionDefaults,n,r,e.optionOverrides,i]),o=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},bn),Sn),An),Rn),t.listenerRefiners),t.optionRefiners),a={},l=this.currentViewOptionsInput,c=this.currentViewOptionsRefined,d=!1,u={};for(let e in s)s[e]===l[e]||Dn[e]&&Dn[e](s[e],l[e])?a[e]=c[e]:(s[e]===this.currentCalendarOptionsInput[e]||Dn[e]&&Dn[e](s[e],this.currentCalendarOptionsInput[e])?e in this.currentCalendarOptionsRefined&&(a[e]=this.currentCalendarOptionsRefined[e]):o[e]?a[e]=o[e](s[e]):u[e]=s[e],d=!0);return d&&(this.currentViewOptionsInput=s,this.currentViewOptionsRefined=a),{rawOptions:this.currentViewOptionsInput,refinedOptions:this.currentViewOptionsRefined,extra:u}}}function fa(e,t,n,r,i,s,o,a){let l=Oo(t||o.defaultCode,o.map);return new Bi({calendarSystem:"gregory",timeZone:e,namedTimeZoneImpl:s.namedTimeZonedImpl,locale:l,weekNumberCalculation:n,firstDay:r,weekText:i,cmdFormatter:s.cmdFormatter,defaultSeparator:a})}function ga(e,t){return new(t.themeClasses[e.themeSystem]||jo)(e)}function pa(e){return new(e.dateProfileGeneratorClass||ei)(e)}function ma(e,t,n){return new aa(e,t,n)}function va(e){return Dt(e,e=>e.ui)}function ya(e,t,n){let r={"":t};for(let t in e){let i=e[t];i.sourceId&&n[i.sourceId]&&(r[t]=n[i.sourceId])}return r}function ba(e){let{options:t}=e;return{eventUiSingleBase:Ln({display:t.eventDisplay,editable:t.editable,startEditable:t.eventStartEditable,durationEditable:t.eventDurationEditable,constraint:t.eventConstraint,overlap:"boolean"==typeof t.eventOverlap?t.eventOverlap:void 0,allow:t.eventAllow,backgroundColor:t.eventBackgroundColor,borderColor:t.eventBorderColor,textColor:t.eventTextColor,color:t.eventColor},e),selectionConfig:Ln({constraint:t.selectConstraint,overlap:"boolean"==typeof t.selectOverlap?t.selectOverlap:void 0,allow:t.selectAllow},e)}}function Ea(e,t){for(let n of t.pluginHooks.isLoadingFuncs)if(n(e))return!0;return!1}function Sa(e){return Kn(e.options.businessHours,e)}function Aa(e,t){for(let n in e)console.warn(`Unknown option '${n}'`+(t?` for view '${t}'`:""))}class Da extends Xr{render(){return p("div",{className:"fc-toolbar-chunk"},...this.props.widgetGroups.map(e=>this.renderWidgetGroup(e)))}renderWidgetGroup(e){let{props:t}=this,{theme:n}=this.context,r=[],i=!0;for(let s of e){let{buttonName:e,buttonClick:o,buttonText:a,buttonIcon:l,buttonHint:c}=s;if("title"===e)i=!1,r.push(p("h2",{className:"fc-toolbar-title",id:t.titleId},t.title));else{let i=e===t.activeButton,s=!t.isTodayEnabled&&"today"===e||!t.isPrevEnabled&&"prev"===e||!t.isNextEnabled&&"next"===e,d=[`fc-${e}-button`,n.getClass("button")];i&&d.push(n.getClass("buttonActive")),r.push(p("button",{type:"button",title:"function"==typeof c?c(t.navUnit):c,disabled:s,"aria-pressed":i,className:d.join(" "),onClick:o},a||(l?p("span",{className:l}):"")))}}if(r.length>1){return p("div",{className:i&&n.getClass("buttonGroup")||""},...r)}return r[0]}}class wa extends Xr{render(){let e,t,{model:n,extraClassName:r}=this.props,i=!1,s=n.sectionWidgets,o=s.center;return s.left?(i=!0,e=s.left):e=s.start,s.right?(i=!0,t=s.right):t=s.end,p("div",{className:[r||"","fc-toolbar",i?"fc-toolbar-ltr":""].join(" ")},this.renderSection("start",e||[]),this.renderSection("center",o||[]),this.renderSection("end",t||[]))}renderSection(e,t){let{props:n}=this;return p(Da,{key:e,widgetGroups:t,title:n.title,navUnit:n.navUnit,activeButton:n.activeButton,isTodayEnabled:n.isTodayEnabled,isPrevEnabled:n.isPrevEnabled,isNextEnabled:n.isNextEnabled,titleId:n.titleId})}}class Ca extends Xr{constructor(){super(...arguments),this.state={availableWidth:null},this.handleEl=e=>{this.el=e,$r(this.props.elRef,e),this.updateAvailableWidth()},this.handleResize=()=>{this.updateAvailableWidth()}}render(){let{props:e,state:t}=this,{aspectRatio:n}=e,r=["fc-view-harness",n||e.liquid||e.height?"fc-view-harness-active":"fc-view-harness-passive"],i="",s="";return n?null!==t.availableWidth?i=t.availableWidth/n:s=1/n*100+"%":i=e.height||"",p("div",{"aria-labelledby":e.labeledById,ref:this.handleEl,className:r.join(" "),style:{height:i,paddingBottom:s}},e.children)}componentDidMount(){this.context.addResizeHandler(this.handleResize)}componentWillUnmount(){this.context.removeResizeHandler(this.handleResize)}updateAvailableWidth(){this.el&&this.props.aspectRatio&&this.setState({availableWidth:this.el.offsetWidth})}}class Ra extends Gi{constructor(e){super(e),this.handleSegClick=(e,t)=>{let{component:n}=this,{context:r}=n,i=gi(t);if(i&&n.isValidSegDownEl(e.target)){let s=Ie(e.target,".fc-event-forced-url"),o=s?s.querySelector("a[href]").href:"";r.emitter.trigger("eventClick",{el:t,event:new li(n.context,i.eventRange.def,i.eventRange.instance),jsEvent:e,view:r.viewApi}),o&&!e.defaultPrevented&&(window.location.href=o)}},this.destroy=Le(e.el,"click",".fc-event",this.handleSegClick)}}class xa extends Gi{constructor(e){super(e),this.handleEventElRemove=e=>{e===this.currentSegEl&&this.handleSegLeave(null,this.currentSegEl)},this.handleSegEnter=(e,t)=>{gi(t)&&(this.currentSegEl=t,this.triggerEvent("eventMouseEnter",e,t))},this.handleSegLeave=(e,t)=>{this.currentSegEl&&(this.currentSegEl=null,this.triggerEvent("eventMouseLeave",e,t))},this.removeHoverListeners=function(e,t,n,r){let i;return Le(e,"mouseover",t,(e,t)=>{if(t!==i){i=t,n(e,t);let s=e=>{i=null,r(e,t),t.removeEventListener("mouseleave",s)};t.addEventListener("mouseleave",s)}})}(e.el,".fc-event",this.handleSegEnter,this.handleSegLeave)}destroy(){this.removeHoverListeners()}triggerEvent(e,t,n){let{component:r}=this,{context:i}=r,s=gi(n);t&&!r.isValidSegDownEl(t.target)||i.emitter.trigger(e,{el:n,event:new li(i,s.eventRange.def,s.eventRange.instance),jsEvent:t,view:i.viewApi})}}class _a extends Zr{constructor(){super(...arguments),this.buildViewContext=nn(Yr),this.buildViewPropTransformers=nn(ka),this.buildToolbarProps=nn(Ta),this.headerRef={current:null},this.footerRef={current:null},this.interactionsStore={},this.state={viewLabelId:Ue()},this.registerInteractiveComponent=(e,t)=>{let n=function(e,t){return{component:e,el:t.el,useEventCenter:null==t.useEventCenter||t.useEventCenter,isHitComboAllowed:t.isHitComboAllowed||null}}(e,t),r=[Ra,xa].concat(this.props.pluginHooks.componentInteractions).map(e=>new e(n));this.interactionsStore[e.uid]=r,qi[e.uid]=n},this.unregisterInteractiveComponent=e=>{let t=this.interactionsStore[e.uid];if(t){for(let e of t)e.destroy();delete this.interactionsStore[e.uid]}delete qi[e.uid]},this.resizeRunner=new Ps(()=>{this.props.emitter.trigger("_resize",!0),this.props.emitter.trigger("windowResize",{view:this.props.viewApi})}),this.handleWindowResize=e=>{let{options:t}=this.props;t.handleWindowResize&&e.target===window&&this.resizeRunner.request(t.windowResizeDelay)}}render(){let e,{props:t}=this,{toolbarConfig:n,options:r}=t,i=this.buildToolbarProps(t.viewSpec,t.dateProfile,t.dateProfileGenerator,t.currentDate,Kr(t.options.now,t.dateEnv),t.viewTitle),s=!1,o="";t.isHeightAuto||t.forPrint?o="":null!=r.height?s=!0:null!=r.contentHeight?o=r.contentHeight:e=Math.max(r.aspectRatio,.5);let a=this.buildViewContext(t.viewSpec,t.viewApi,t.options,t.dateProfileGenerator,t.dateEnv,t.theme,t.pluginHooks,t.dispatch,t.getCurrentData,t.emitter,t.calendarApi,this.registerInteractiveComponent,this.unregisterInteractiveComponent),l=n.header&&n.header.hasTitle?this.state.viewLabelId:"";return p(qr.Provider,{value:a},n.header&&p(wa,Object.assign({ref:this.headerRef,extraClassName:"fc-header-toolbar",model:n.header,titleId:l},i)),p(Ca,{liquid:s,height:o,aspectRatio:e,labeledById:l},this.renderView(t),this.buildAppendContent()),n.footer&&p(wa,Object.assign({ref:this.footerRef,extraClassName:"fc-footer-toolbar",model:n.footer,titleId:""},i)))}componentDidMount(){let{props:e}=this;this.calendarInteractions=e.pluginHooks.calendarInteractions.map(t=>new t(e)),window.addEventListener("resize",this.handleWindowResize);let{propSetHandlers:t}=e.pluginHooks;for(let n in t)t[n](e[n],e)}componentDidUpdate(e){let{props:t}=this,{propSetHandlers:n}=t.pluginHooks;for(let r in n)t[r]!==e[r]&&n[r](t[r],t)}componentWillUnmount(){window.removeEventListener("resize",this.handleWindowResize),this.resizeRunner.clear();for(let e of this.calendarInteractions)e.destroy();this.props.emitter.trigger("_unmount")}buildAppendContent(){let{props:e}=this;return p(y,{},...e.pluginHooks.viewContainerAppends.map(t=>t(e)))}renderView(e){let{pluginHooks:t}=e,{viewSpec:n}=e,r={dateProfile:e.dateProfile,businessHours:e.businessHours,eventStore:e.renderableEventStore,eventUiBases:e.eventUiBases,dateSelection:e.dateSelection,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,isHeightAuto:e.isHeightAuto,forPrint:e.forPrint},i=this.buildViewPropTransformers(t.viewPropsTransformers);for(let t of i)Object.assign(r,t.transform(r,e));return p(n.component,Object.assign({},r))}}function Ta(e,t,n,r,i,s){let o=n.build(i,void 0,!1),a=n.buildPrev(t,r,!1),l=n.buildNext(t,r,!1);return{title:s,activeButton:e.type,navUnit:e.singleUnit,isTodayEnabled:o.isValid&&!Er(t.currentRange,i),isPrevEnabled:a.isValid,isNextEnabled:l.isValid}}function ka(e){return e.map(e=>new e)}function Ma(e){let t=Oo(e.locale||"en",Io([]).map);return new Bi(Object.assign(Object.assign({timeZone:En.timeZone,calendarSystem:"gregory"},e),{locale:t}))}Zi.touchMouseIgnoreWait=500;let Ia=0,Oa=0,Na=!1;class Pa{constructor(e){this.subjectEl=null,this.selector="",this.handleSelector="",this.shouldIgnoreMove=!1,this.shouldWatchScroll=!0,this.isDragging=!1,this.isTouchDragging=!1,this.wasTouchScroll=!1,this.handleMouseDown=e=>{if(!this.shouldIgnoreMouse()&&function(e){return 0===e.button&&!e.ctrlKey}(e)&&this.tryStart(e)){let t=this.createEventFromMouse(e,!0);this.emitter.trigger("pointerdown",t),this.initScrollWatch(t),this.shouldIgnoreMove||document.addEventListener("mousemove",this.handleMouseMove),document.addEventListener("mouseup",this.handleMouseUp)}},this.handleMouseMove=e=>{let t=this.createEventFromMouse(e);this.recordCoords(t),this.emitter.trigger("pointermove",t)},this.handleMouseUp=e=>{document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("mouseup",this.handleMouseUp),this.emitter.trigger("pointerup",this.createEventFromMouse(e)),this.cleanup()},this.handleTouchStart=e=>{if(this.tryStart(e)){this.isTouchDragging=!0;let t=this.createEventFromTouch(e,!0);this.emitter.trigger("pointerdown",t),this.initScrollWatch(t);let n=e.target;this.shouldIgnoreMove||n.addEventListener("touchmove",this.handleTouchMove),n.addEventListener("touchend",this.handleTouchEnd),n.addEventListener("touchcancel",this.handleTouchEnd),window.addEventListener("scroll",this.handleTouchScroll,!0)}},this.handleTouchMove=e=>{let t=this.createEventFromTouch(e);this.recordCoords(t),this.emitter.trigger("pointermove",t)},this.handleTouchEnd=e=>{if(this.isDragging){let t=e.target;t.removeEventListener("touchmove",this.handleTouchMove),t.removeEventListener("touchend",this.handleTouchEnd),t.removeEventListener("touchcancel",this.handleTouchEnd),window.removeEventListener("scroll",this.handleTouchScroll,!0),this.emitter.trigger("pointerup",this.createEventFromTouch(e)),this.cleanup(),this.isTouchDragging=!1,Ia+=1,setTimeout(()=>{Ia-=1},Zi.touchMouseIgnoreWait)}},this.handleTouchScroll=()=>{this.wasTouchScroll=!0},this.handleScroll=e=>{if(!this.shouldIgnoreMove){let t=window.pageXOffset-this.prevScrollX+this.prevPageX,n=window.pageYOffset-this.prevScrollY+this.prevPageY;this.emitter.trigger("pointermove",{origEvent:e,isTouch:this.isTouchDragging,subjectEl:this.subjectEl,pageX:t,pageY:n,deltaX:t-this.origPageX,deltaY:n-this.origPageY})}},this.containerEl=e,this.emitter=new Hr,e.addEventListener("mousedown",this.handleMouseDown),e.addEventListener("touchstart",this.handleTouchStart,{passive:!0}),Oa+=1,1===Oa&&window.addEventListener("touchmove",Ha,{passive:!1})}destroy(){this.containerEl.removeEventListener("mousedown",this.handleMouseDown),this.containerEl.removeEventListener("touchstart",this.handleTouchStart,{passive:!0}),Oa-=1,Oa||window.removeEventListener("touchmove",Ha,{passive:!1})}tryStart(e){let t=this.querySubjectEl(e),n=e.target;return!(!t||this.handleSelector&&!Ie(n,this.handleSelector))&&(this.subjectEl=t,this.isDragging=!0,this.wasTouchScroll=!1,!0)}cleanup(){Na=!1,this.isDragging=!1,this.subjectEl=null,this.destroyScrollWatch()}querySubjectEl(e){return this.selector?Ie(e.target,this.selector):this.containerEl}shouldIgnoreMouse(){return Ia||this.isTouchDragging}cancelTouchScroll(){this.isDragging&&(Na=!0)}initScrollWatch(e){this.shouldWatchScroll&&(this.recordCoords(e),window.addEventListener("scroll",this.handleScroll,!0))}recordCoords(e){this.shouldWatchScroll&&(this.prevPageX=e.pageX,this.prevPageY=e.pageY,this.prevScrollX=window.pageXOffset,this.prevScrollY=window.pageYOffset)}destroyScrollWatch(){this.shouldWatchScroll&&window.removeEventListener("scroll",this.handleScroll,!0)}createEventFromMouse(e,t){let n=0,r=0;return t?(this.origPageX=e.pageX,this.origPageY=e.pageY):(n=e.pageX-this.origPageX,r=e.pageY-this.origPageY),{origEvent:e,isTouch:!1,subjectEl:this.subjectEl,pageX:e.pageX,pageY:e.pageY,deltaX:n,deltaY:r}}createEventFromTouch(e,t){let n,r,i=e.touches,s=0,o=0;return i&&i.length?(n=i[0].pageX,r=i[0].pageY):(n=e.pageX,r=e.pageY),t?(this.origPageX=n,this.origPageY=r):(s=n-this.origPageX,o=r-this.origPageY),{origEvent:e,isTouch:!0,subjectEl:this.subjectEl,pageX:n,pageY:r,deltaX:s,deltaY:o}}}function Ha(e){Na&&e.preventDefault()}class Ba{constructor(){this.isVisible=!1,this.sourceEl=null,this.mirrorEl=null,this.sourceElRect=null,this.parentNode=document.body,this.zIndex=9999,this.revertDuration=0}start(e,t,n){this.sourceEl=e,this.sourceElRect=this.sourceEl.getBoundingClientRect(),this.origScreenX=t-window.pageXOffset,this.origScreenY=n-window.pageYOffset,this.deltaX=0,this.deltaY=0,this.updateElPosition()}handleMove(e,t){this.deltaX=e-window.pageXOffset-this.origScreenX,this.deltaY=t-window.pageYOffset-this.origScreenY,this.updateElPosition()}setIsVisible(e){e?this.isVisible||(this.mirrorEl&&(this.mirrorEl.style.display=""),this.isVisible=e,this.updateElPosition()):this.isVisible&&(this.mirrorEl&&(this.mirrorEl.style.display="none"),this.isVisible=e)}stop(e,t){let n=()=>{this.cleanup(),t()};e&&this.mirrorEl&&this.isVisible&&this.revertDuration&&(this.deltaX||this.deltaY)?this.doRevertAnimation(n,this.revertDuration):setTimeout(n,0)}doRevertAnimation(e,t){let n=this.mirrorEl,r=this.sourceEl.getBoundingClientRect();n.style.transition="top "+t+"ms,left "+t+"ms",He(n,{left:r.left,top:r.top}),Ve(n,()=>{n.style.transition="",e()})}cleanup(){this.mirrorEl&&(Me(this.mirrorEl),this.mirrorEl=null),this.sourceEl=null}updateElPosition(){this.sourceEl&&this.isVisible&&He(this.getMirrorEl(),{left:this.sourceElRect.left+this.deltaX,top:this.sourceElRect.top+this.deltaY})}getMirrorEl(){let e=this.sourceElRect,t=this.mirrorEl;return t||(t=this.mirrorEl=this.sourceEl.cloneNode(!0),t.style.userSelect="none",t.classList.add("fc-event-dragging"),He(t,{position:"fixed",zIndex:this.zIndex,visibility:"",boxSizing:"border-box",width:e.right-e.left,height:e.bottom-e.top,right:"auto",bottom:"auto",margin:0}),this.parentNode.appendChild(t)),t}}class ja extends zr{constructor(e,t){super(),this.handleScroll=()=>{this.scrollTop=this.scrollController.getScrollTop(),this.scrollLeft=this.scrollController.getScrollLeft(),this.handleScrollChange()},this.scrollController=e,this.doesListening=t,this.scrollTop=this.origScrollTop=e.getScrollTop(),this.scrollLeft=this.origScrollLeft=e.getScrollLeft(),this.scrollWidth=e.getScrollWidth(),this.scrollHeight=e.getScrollHeight(),this.clientWidth=e.getClientWidth(),this.clientHeight=e.getClientHeight(),this.clientRect=this.computeClientRect(),this.doesListening&&this.getEventTarget().addEventListener("scroll",this.handleScroll)}destroy(){this.doesListening&&this.getEventTarget().removeEventListener("scroll",this.handleScroll)}getScrollTop(){return this.scrollTop}getScrollLeft(){return this.scrollLeft}setScrollTop(e){this.scrollController.setScrollTop(e),this.doesListening||(this.scrollTop=Math.max(Math.min(e,this.getMaxScrollTop()),0),this.handleScrollChange())}setScrollLeft(e){this.scrollController.setScrollLeft(e),this.doesListening||(this.scrollLeft=Math.max(Math.min(e,this.getMaxScrollLeft()),0),this.handleScrollChange())}getClientWidth(){return this.clientWidth}getClientHeight(){return this.clientHeight}getScrollWidth(){return this.scrollWidth}getScrollHeight(){return this.scrollHeight}handleScrollChange(){}}class za extends ja{constructor(e,t){super(new Ur(e),t)}getEventTarget(){return this.scrollController.el}computeClientRect(){return Ir(this.scrollController.el)}}class Ua extends ja{constructor(e){super(new Wr,e)}getEventTarget(){return window}computeClientRect(){return{left:this.scrollLeft,right:this.scrollLeft+this.clientWidth,top:this.scrollTop,bottom:this.scrollTop+this.clientHeight}}handleScrollChange(){this.clientRect=this.computeClientRect()}}const Wa="function"==typeof performance?performance.now:Date.now;class La{constructor(){this.isEnabled=!0,this.scrollQuery=[window,".fc-scroller"],this.edgeThreshold=50,this.maxVelocity=300,this.pointerScreenX=null,this.pointerScreenY=null,this.isAnimating=!1,this.scrollCaches=null,this.everMovedUp=!1,this.everMovedDown=!1,this.everMovedLeft=!1,this.everMovedRight=!1,this.animate=()=>{if(this.isAnimating){let e=this.computeBestEdge(this.pointerScreenX+window.pageXOffset,this.pointerScreenY+window.pageYOffset);if(e){let t=Wa();this.handleSide(e,(t-this.msSinceRequest)/1e3),this.requestAnimation(t)}else this.isAnimating=!1}}}start(e,t,n){this.isEnabled&&(this.scrollCaches=this.buildCaches(n),this.pointerScreenX=null,this.pointerScreenY=null,this.everMovedUp=!1,this.everMovedDown=!1,this.everMovedLeft=!1,this.everMovedRight=!1,this.handleMove(e,t))}handleMove(e,t){if(this.isEnabled){let n=e-window.pageXOffset,r=t-window.pageYOffset,i=null===this.pointerScreenY?0:r-this.pointerScreenY,s=null===this.pointerScreenX?0:n-this.pointerScreenX;i<0?this.everMovedUp=!0:i>0&&(this.everMovedDown=!0),s<0?this.everMovedLeft=!0:s>0&&(this.everMovedRight=!0),this.pointerScreenX=n,this.pointerScreenY=r,this.isAnimating||(this.isAnimating=!0,this.requestAnimation(Wa()))}}stop(){if(this.isEnabled){this.isAnimating=!1;for(let e of this.scrollCaches)e.destroy();this.scrollCaches=null}}requestAnimation(e){this.msSinceRequest=e,requestAnimationFrame(this.animate)}handleSide(e,t){let{scrollCache:n}=e,{edgeThreshold:r}=this,i=r-e.distance,s=i*i/(r*r)*this.maxVelocity*t,o=1;switch(e.name){case"left":o=-1;case"right":n.setScrollLeft(n.getScrollLeft()+s*o);break;case"top":o=-1;case"bottom":n.setScrollTop(n.getScrollTop()+s*o)}}computeBestEdge(e,t){let{edgeThreshold:n}=this,r=null,i=this.scrollCaches||[];for(let s of i){let i=s.clientRect,o=e-i.left,a=i.right-e,l=t-i.top,c=i.bottom-t;o>=0&&a>=0&&l>=0&&c>=0&&(l<=n&&this.everMovedUp&&s.canScrollUp()&&(!r||r.distance>l)&&(r={scrollCache:s,name:"top",distance:l}),c<=n&&this.everMovedDown&&s.canScrollDown()&&(!r||r.distance>c)&&(r={scrollCache:s,name:"bottom",distance:c}),o<=n&&this.everMovedLeft&&s.canScrollLeft()&&(!r||r.distance>o)&&(r={scrollCache:s,name:"left",distance:o}),a<=n&&this.everMovedRight&&s.canScrollRight()&&(!r||r.distance>a)&&(r={scrollCache:s,name:"right",distance:a}))}return r}buildCaches(e){return this.queryScrollEls(e).map(e=>e===window?new Ua(!1):new za(e,!1))}queryScrollEls(e){let t=[];for(let n of this.scrollQuery)"object"==typeof n?t.push(n):t.push(...Array.prototype.slice.call(e.getRootNode().querySelectorAll(n)));return t}}class Fa extends Yi{constructor(e,t){super(e),this.containerEl=e,this.delay=null,this.minDistance=0,this.touchScrollAllowed=!0,this.mirrorNeedsRevert=!1,this.isInteracting=!1,this.isDragging=!1,this.isDelayEnded=!1,this.isDistanceSurpassed=!1,this.delayTimeoutId=null,this.onPointerDown=e=>{this.isDragging||(this.isInteracting=!0,this.isDelayEnded=!1,this.isDistanceSurpassed=!1,$e(document.body),Ke(document.body),e.isTouch||e.origEvent.preventDefault(),this.emitter.trigger("pointerdown",e),this.isInteracting&&!this.pointer.shouldIgnoreMove&&(this.mirror.setIsVisible(!1),this.mirror.start(e.subjectEl,e.pageX,e.pageY),this.startDelay(e),this.minDistance||this.handleDistanceSurpassed(e)))},this.onPointerMove=e=>{if(this.isInteracting){if(this.emitter.trigger("pointermove",e),!this.isDistanceSurpassed){let t,n=this.minDistance,{deltaX:r,deltaY:i}=e;t=r*r+i*i,t>=n*n&&this.handleDistanceSurpassed(e)}this.isDragging&&("scroll"!==e.origEvent.type&&(this.mirror.handleMove(e.pageX,e.pageY),this.autoScroller.handleMove(e.pageX,e.pageY)),this.emitter.trigger("dragmove",e))}},this.onPointerUp=e=>{this.isInteracting&&(this.isInteracting=!1,Je(document.body),et(document.body),this.emitter.trigger("pointerup",e),this.isDragging&&(this.autoScroller.stop(),this.tryStopDrag(e)),this.delayTimeoutId&&(clearTimeout(this.delayTimeoutId),this.delayTimeoutId=null))};let n=this.pointer=new Pa(e);n.emitter.on("pointerdown",this.onPointerDown),n.emitter.on("pointermove",this.onPointerMove),n.emitter.on("pointerup",this.onPointerUp),t&&(n.selector=t),this.mirror=new Ba,this.autoScroller=new La}destroy(){this.pointer.destroy(),this.onPointerUp({})}startDelay(e){"number"==typeof this.delay?this.delayTimeoutId=setTimeout(()=>{this.delayTimeoutId=null,this.handleDelayEnd(e)},this.delay):this.handleDelayEnd(e)}handleDelayEnd(e){this.isDelayEnded=!0,this.tryStartDrag(e)}handleDistanceSurpassed(e){this.isDistanceSurpassed=!0,this.tryStartDrag(e)}tryStartDrag(e){this.isDelayEnded&&this.isDistanceSurpassed&&(this.pointer.wasTouchScroll&&!this.touchScrollAllowed||(this.isDragging=!0,this.mirrorNeedsRevert=!1,this.autoScroller.start(e.pageX,e.pageY,this.containerEl),this.emitter.trigger("dragstart",e),!1===this.touchScrollAllowed&&this.pointer.cancelTouchScroll()))}tryStopDrag(e){this.mirror.stop(this.mirrorNeedsRevert,this.stopDrag.bind(this,e))}stopDrag(e){this.isDragging=!1,this.emitter.trigger("dragend",e)}setIgnoreMove(e){this.pointer.shouldIgnoreMove=e}setMirrorIsVisible(e){this.mirror.setIsVisible(e)}setMirrorNeedsRevert(e){this.mirrorNeedsRevert=e}setAutoScrollEnabled(e){this.autoScroller.isEnabled=e}}class Va{constructor(e){this.origRect=Or(e),this.scrollCaches=Nr(e).map(e=>new za(e,!0))}destroy(){for(let e of this.scrollCaches)e.destroy()}computeLeft(){let e=this.origRect.left;for(let t of this.scrollCaches)e+=t.origScrollLeft-t.getScrollLeft();return e}computeTop(){let e=this.origRect.top;for(let t of this.scrollCaches)e+=t.origScrollTop-t.getScrollTop();return e}isWithinClipping(e,t){let n={left:e,top:t};for(let e of this.scrollCaches)if(!Ga(e.getEventTarget())&&!ir(n,e.clientRect))return!1;return!0}}function Ga(e){let t=e.tagName;return"HTML"===t||"BODY"===t}class Qa{constructor(e,t){this.useSubjectCenter=!1,this.requireInitial=!0,this.initialHit=null,this.movingHit=null,this.finalHit=null,this.handlePointerDown=e=>{let{dragging:t}=this;this.initialHit=null,this.movingHit=null,this.finalHit=null,this.prepareHits(),this.processFirstCoord(e),this.initialHit||!this.requireInitial?(t.setIgnoreMove(!1),this.emitter.trigger("pointerdown",e)):t.setIgnoreMove(!0)},this.handleDragStart=e=>{this.emitter.trigger("dragstart",e),this.handleMove(e,!0)},this.handleDragMove=e=>{this.emitter.trigger("dragmove",e),this.handleMove(e)},this.handlePointerUp=e=>{this.releaseHits(),this.emitter.trigger("pointerup",e)},this.handleDragEnd=e=>{this.movingHit&&this.emitter.trigger("hitupdate",null,!0,e),this.finalHit=this.movingHit,this.movingHit=null,this.emitter.trigger("dragend",e)},this.droppableStore=t,e.emitter.on("pointerdown",this.handlePointerDown),e.emitter.on("dragstart",this.handleDragStart),e.emitter.on("dragmove",this.handleDragMove),e.emitter.on("pointerup",this.handlePointerUp),e.emitter.on("dragend",this.handleDragEnd),this.dragging=e,this.emitter=new Hr}processFirstCoord(e){let t,n={left:e.pageX,top:e.pageY},r=n,i=e.subjectEl;i instanceof HTMLElement&&(t=Or(i),r=or(r,t));let s=this.initialHit=this.queryHitForOffset(r.left,r.top);if(s){if(this.useSubjectCenter&&t){let e=sr(t,s.rect);e&&(r=ar(e))}this.coordAdjust=lr(r,n)}else this.coordAdjust={left:0,top:0}}handleMove(e,t){let n=this.queryHitForOffset(e.pageX+this.coordAdjust.left,e.pageY+this.coordAdjust.top);!t&&qa(this.movingHit,n)||(this.movingHit=n,this.emitter.trigger("hitupdate",n,!1,e))}prepareHits(){this.offsetTrackers=Dt(this.droppableStore,e=>(e.component.prepareHits(),new Va(e.el)))}releaseHits(){let{offsetTrackers:e}=this;for(let t in e)e[t].destroy();this.offsetTrackers={}}queryHitForOffset(e,t){let{droppableStore:n,offsetTrackers:r}=this,i=null;for(let s in n){let o=n[s].component,a=r[s];if(a&&a.isWithinClipping(e,t)){let n=a.computeLeft(),r=a.computeTop(),l=e-n,c=t-r,{origRect:d}=a,u=d.right-d.left,h=d.bottom-d.top;if(l>=0&&l<u&&c>=0&&c<h){let e=o.queryHit(l,c,u,h);e&&br(e.dateProfile.activeRange,e.dateSpan.range)&&(!i||e.layer>i.layer)&&(e.componentId=s,e.context=o.context,e.rect.left+=n,e.rect.right+=n,e.rect.top+=r,e.rect.bottom+=r,i=e)}}}return i}}function qa(e,t){return!e&&!t||Boolean(e)===Boolean(t)&&Ti(e.dateSpan,t.dateSpan)}function Ya(e,t){let n={};for(let r of t.pluginHooks.datePointTransforms)Object.assign(n,r(e,t));var r,i;return Object.assign(n,(r=e,{date:(i=t.dateEnv).toDate(r.range.start),dateStr:i.formatIso(r.range.start,{omitTime:r.allDay}),allDay:r.allDay})),n}class Za extends Gi{constructor(e){super(e),this.subjectEl=null,this.subjectSeg=null,this.isDragging=!1,this.eventRange=null,this.relevantEvents=null,this.receivingContext=null,this.validMutation=null,this.mutatedRelevantEvents=null,this.handlePointerDown=e=>{let t=e.origEvent.target,{component:n,dragging:r}=this,{mirror:i}=r,{options:s}=n.context,o=n.context;this.subjectEl=e.subjectEl;let a=this.subjectSeg=gi(e.subjectEl),l=(this.eventRange=a.eventRange).instance.instanceId;this.relevantEvents=Pn(o.getCurrentData().eventStore,l),r.minDistance=e.isTouch?0:s.eventDragMinDistance,r.delay=e.isTouch&&l!==n.props.eventSelection?function(e){let{options:t}=e.context,n=t.eventLongPressDelay;null==n&&(n=t.longPressDelay);return n}(n):null,s.fixedMirrorParent?i.parentNode=s.fixedMirrorParent:i.parentNode=Ie(t,".fc"),i.revertDuration=s.dragRevertDuration;let c=n.isValidSegDownEl(t)&&!Ie(t,".fc-event-resizer");r.setIgnoreMove(!c),this.isDragging=c&&e.subjectEl.classList.contains("fc-event-draggable")},this.handleDragStart=e=>{let t=this.component.context,n=this.eventRange,r=n.instance.instanceId;e.isTouch?r!==this.component.props.eventSelection&&t.dispatch({type:"SELECT_EVENT",eventInstanceId:r}):t.dispatch({type:"UNSELECT_EVENT"}),this.isDragging&&(t.calendarApi.unselect(e),t.emitter.trigger("eventDragStart",{el:this.subjectEl,event:new li(t,n.def,n.instance),jsEvent:e.origEvent,view:t.viewApi}))},this.handleHitUpdate=(e,t)=>{if(!this.isDragging)return;let n=this.relevantEvents,r=this.hitDragging.initialHit,i=this.component.context,s=null,o=null,a=null,l=!1,c={affectedEvents:n,mutatedEvents:{defs:{},instances:{}},isEvent:!0};if(e){s=e.context;let t=s.options;i===s||t.editable&&t.droppable?(o=function(e,t,n){let r=e.dateSpan,i=t.dateSpan,s=r.range.start,o=i.range.start,a={};r.allDay!==i.allDay&&(a.allDay=i.allDay,a.hasEnd=t.context.options.allDayMaintainDuration,i.allDay&&(s=Lt(s)));let l=rr(s,o,e.context.dateEnv,e.componentId===t.componentId?e.largeUnit:null);l.milliseconds&&(a.allDay=!1);let c={datesDelta:l,standardProps:a};for(let r of n)r(c,e,t);return c}(r,e,s.getCurrentData().pluginHooks.eventDragMutationMassagers),o&&(a=ii(n,s.getCurrentData().eventUiBases,o,s),c.mutatedEvents=a,Cs(c,e.dateProfile,s)||(l=!0,o=null,a=null,c.mutatedEvents={defs:{},instances:{}}))):s=null}this.displayDrag(s,c),l?Ze():Xe(),t||(i===s&&qa(r,e)&&(o=null),this.dragging.setMirrorNeedsRevert(!o),this.dragging.setMirrorIsVisible(!e||!this.subjectEl.getRootNode().querySelector(".fc-event-mirror")),this.receivingContext=s,this.validMutation=o,this.mutatedRelevantEvents=a)},this.handlePointerUp=()=>{this.isDragging||this.cleanup()},this.handleDragEnd=e=>{if(this.isDragging){let t=this.component.context,n=t.viewApi,{receivingContext:r,validMutation:i}=this,s=this.eventRange.def,o=this.eventRange.instance,a=new li(t,s,o),l=this.relevantEvents,c=this.mutatedRelevantEvents,{finalHit:d}=this.hitDragging;if(this.clearDrag(),t.emitter.trigger("eventDragStop",{el:this.subjectEl,event:a,jsEvent:e.origEvent,view:n}),i){if(r===t){let r=new li(t,c.defs[s.defId],o?c.instances[o.instanceId]:null);t.dispatch({type:"MERGE_EVENTS",eventStore:c});let d={oldEvent:a,event:r,relatedEvents:di(c,t,o),revert(){t.dispatch({type:"MERGE_EVENTS",eventStore:l})}},u={};for(let e of t.getCurrentData().pluginHooks.eventDropTransformers)Object.assign(u,e(i,t));t.emitter.trigger("eventDrop",Object.assign(Object.assign(Object.assign({},d),u),{el:e.subjectEl,delta:i.datesDelta,jsEvent:e.origEvent,view:n})),t.emitter.trigger("eventChange",d)}else if(r){let i={event:a,relatedEvents:di(l,t,o),revert(){t.dispatch({type:"MERGE_EVENTS",eventStore:l})}};t.emitter.trigger("eventLeave",Object.assign(Object.assign({},i),{draggedEl:e.subjectEl,view:n})),t.dispatch({type:"REMOVE_EVENTS",eventStore:l}),t.emitter.trigger("eventRemove",i);let u=c.defs[s.defId],h=c.instances[o.instanceId],f=new li(r,u,h);r.dispatch({type:"MERGE_EVENTS",eventStore:c});let g={event:f,relatedEvents:di(c,r,h),revert(){r.dispatch({type:"REMOVE_EVENTS",eventStore:c})}};r.emitter.trigger("eventAdd",g),e.isTouch&&r.dispatch({type:"SELECT_EVENT",eventInstanceId:o.instanceId}),r.emitter.trigger("drop",Object.assign(Object.assign({},Ya(d.dateSpan,r)),{draggedEl:e.subjectEl,jsEvent:e.origEvent,view:d.context.viewApi})),r.emitter.trigger("eventReceive",Object.assign(Object.assign({},g),{draggedEl:e.subjectEl,view:d.context.viewApi}))}}else t.emitter.trigger("_noEventDrop")}this.cleanup()};let{component:t}=this,{options:n}=t.context,r=this.dragging=new Fa(e.el);r.pointer.selector=Za.SELECTOR,r.touchScrollAllowed=!1,r.autoScroller.isEnabled=n.dragScroll;let i=this.hitDragging=new Qa(this.dragging,qi);i.useSubjectCenter=e.useEventCenter,i.emitter.on("pointerdown",this.handlePointerDown),i.emitter.on("dragstart",this.handleDragStart),i.emitter.on("hitupdate",this.handleHitUpdate),i.emitter.on("pointerup",this.handlePointerUp),i.emitter.on("dragend",this.handleDragEnd)}destroy(){this.dragging.destroy()}displayDrag(e,t){let n=this.component.context,r=this.receivingContext;r&&r!==e&&(r===n?r.dispatch({type:"SET_EVENT_DRAG",state:{affectedEvents:t.affectedEvents,mutatedEvents:{defs:{},instances:{}},isEvent:!0}}):r.dispatch({type:"UNSET_EVENT_DRAG"})),e&&e.dispatch({type:"SET_EVENT_DRAG",state:t})}clearDrag(){let e=this.component.context,{receivingContext:t}=this;t&&t.dispatch({type:"UNSET_EVENT_DRAG"}),e!==t&&e.dispatch({type:"UNSET_EVENT_DRAG"})}cleanup(){this.subjectSeg=null,this.isDragging=!1,this.eventRange=null,this.relevantEvents=null,this.receivingContext=null,this.validMutation=null,this.mutatedRelevantEvents=null}}Za.SELECTOR=".fc-event-draggable, .fc-event-resizable";const Xa={fixedMirrorParent:Tn},$a={dateClick:Tn,eventDragStart:Tn,eventDragStop:Tn,eventDrop:Tn,eventResizeStart:Tn,eventResizeStop:Tn,eventResize:Tn,drop:Tn,eventReceive:Tn,eventLeave:Tn};class Ja{constructor(e,t){this.receivingContext=null,this.droppableEvent=null,this.suppliedDragMeta=null,this.dragMeta=null,this.handleDragStart=e=>{this.dragMeta=this.buildDragMeta(e.subjectEl)},this.handleHitUpdate=(e,t,n)=>{let{dragging:r}=this.hitDragging,i=null,s=null,o=!1,a={affectedEvents:{defs:{},instances:{}},mutatedEvents:{defs:{},instances:{}},isEvent:this.dragMeta.create};e&&(i=e.context,this.canDropElOnCalendar(n.subjectEl,i)&&(s=function(e,t,n){let r=Object.assign({},t.leftoverProps);for(let i of n.pluginHooks.externalDefTransforms)Object.assign(r,i(e,t));let{refined:i,extra:s}=Zn(r,n),o=$n(i,s,t.sourceId,e.allDay,n.options.forceEventDuration||Boolean(t.duration),n),a=e.range.start;e.allDay&&t.startTime&&(a=n.dateEnv.add(a,t.startTime));let l=t.duration?n.dateEnv.add(a,t.duration):ri(e.allDay,a,n),c=kn(o.defId,{start:a,end:l});return{def:o,instance:c}}(e.dateSpan,this.dragMeta,i),a.mutatedEvents=Nn(s),o=!Cs(a,e.dateProfile,i),o&&(a.mutatedEvents={defs:{},instances:{}},s=null))),this.displayDrag(i,a),r.setMirrorIsVisible(t||!s||!document.querySelector(".fc-event-mirror")),o?Ze():Xe(),t||(r.setMirrorNeedsRevert(!s),this.receivingContext=i,this.droppableEvent=s)},this.handleDragEnd=e=>{let{receivingContext:t,droppableEvent:n}=this;if(this.clearDrag(),t&&n){let r=this.hitDragging.finalHit,i=r.context.viewApi,s=this.dragMeta;if(t.emitter.trigger("drop",Object.assign(Object.assign({},Ya(r.dateSpan,t)),{draggedEl:e.subjectEl,jsEvent:e.origEvent,view:i})),s.create){let r=Nn(n);t.dispatch({type:"MERGE_EVENTS",eventStore:r}),e.isTouch&&t.dispatch({type:"SELECT_EVENT",eventInstanceId:n.instance.instanceId}),t.emitter.trigger("eventReceive",{event:new li(t,n.def,n.instance),relatedEvents:[],revert(){t.dispatch({type:"REMOVE_EVENTS",eventStore:r})},draggedEl:e.subjectEl,view:i})}}this.receivingContext=null,this.droppableEvent=null};let n=this.hitDragging=new Qa(e,qi);n.requireInitial=!1,n.emitter.on("dragstart",this.handleDragStart),n.emitter.on("hitupdate",this.handleHitUpdate),n.emitter.on("dragend",this.handleDragEnd),this.suppliedDragMeta=t}buildDragMeta(e){return"object"==typeof this.suppliedDragMeta?$i(this.suppliedDragMeta):"function"==typeof this.suppliedDragMeta?$i(this.suppliedDragMeta(e)):function(e){let t=function(e,t){let n=Zi.dataAttrPrefix,r=(n?n+"-":"")+t;return e.getAttribute("data-"+r)||""}(e,"event");return $i(t?JSON.parse(t):{create:!1})}(e)}displayDrag(e,t){let n=this.receivingContext;n&&n!==e&&n.dispatch({type:"UNSET_EVENT_DRAG"}),e&&e.dispatch({type:"SET_EVENT_DRAG",state:t})}clearDrag(){this.receivingContext&&this.receivingContext.dispatch({type:"UNSET_EVENT_DRAG"})}canDropElOnCalendar(e,t){let n=t.options.dropAccept;return"function"==typeof n?n.call(t.calendarApi,e):"string"!=typeof n||!n||Boolean(Oe(e,n))}}Zi.dataAttrPrefix="";class Ka extends Yi{constructor(e){super(e),this.shouldIgnoreMove=!1,this.mirrorSelector="",this.currentMirrorEl=null,this.handlePointerDown=e=>{this.emitter.trigger("pointerdown",e),this.shouldIgnoreMove||this.emitter.trigger("dragstart",e)},this.handlePointerMove=e=>{this.shouldIgnoreMove||this.emitter.trigger("dragmove",e)},this.handlePointerUp=e=>{this.emitter.trigger("pointerup",e),this.shouldIgnoreMove||this.emitter.trigger("dragend",e)};let t=this.pointer=new Pa(e);t.emitter.on("pointerdown",this.handlePointerDown),t.emitter.on("pointermove",this.handlePointerMove),t.emitter.on("pointerup",this.handlePointerUp)}destroy(){this.pointer.destroy()}setIgnoreMove(e){this.shouldIgnoreMove=e}setMirrorIsVisible(e){if(e)this.currentMirrorEl&&(this.currentMirrorEl.style.visibility="",this.currentMirrorEl=null);else{let e=this.mirrorSelector?document.querySelector(this.mirrorSelector):null;e&&(this.currentMirrorEl=e,e.style.visibility="hidden")}}}var el=Po({name:"@fullcalendar/interaction",componentInteractions:[class extends Gi{constructor(e){super(e),this.handlePointerDown=e=>{let{dragging:t}=this,n=e.origEvent.target;t.setIgnoreMove(!this.component.isValidDateDownEl(n))},this.handleDragEnd=e=>{let{component:t}=this,{pointer:n}=this.dragging;if(!n.wasTouchScroll){let{initialHit:n,finalHit:r}=this.hitDragging;if(n&&r&&qa(n,r)){let{context:r}=t,i=Object.assign(Object.assign({},Ya(n.dateSpan,r)),{dayEl:n.dayEl,jsEvent:e.origEvent,view:r.viewApi||r.calendarApi.view});r.emitter.trigger("dateClick",i)}}},this.dragging=new Fa(e.el),this.dragging.autoScroller.isEnabled=!1;let t=this.hitDragging=new Qa(this.dragging,Qi(e));t.emitter.on("pointerdown",this.handlePointerDown),t.emitter.on("dragend",this.handleDragEnd)}destroy(){this.dragging.destroy()}},class extends Gi{constructor(e){super(e),this.dragSelection=null,this.handlePointerDown=e=>{let{component:t,dragging:n}=this,{options:r}=t.context,i=r.selectable&&t.isValidDateDownEl(e.origEvent.target);n.setIgnoreMove(!i),n.delay=e.isTouch?function(e){let{options:t}=e.context,n=t.selectLongPressDelay;null==n&&(n=t.longPressDelay);return n}(t):null},this.handleDragStart=e=>{this.component.context.calendarApi.unselect(e)},this.handleHitUpdate=(e,t)=>{let{context:n}=this.component,r=null,i=!1;if(e){let t=this.hitDragging.initialHit;e.componentId===t.componentId&&this.isHitComboAllowed&&!this.isHitComboAllowed(t,e)||(r=function(e,t,n){let r=e.dateSpan,i=t.dateSpan,s=[r.range.start,r.range.end,i.range.start,i.range.end];s.sort(at);let o={};for(let r of n){let n=r(e,t);if(!1===n)return null;n&&Object.assign(o,n)}return o.range={start:s[0],end:s[3]},o.allDay=r.allDay,o}(t,e,n.pluginHooks.dateSelectionTransformers)),r&&Rs(r,e.dateProfile,n)||(i=!0,r=null)}r?n.dispatch({type:"SELECT_DATES",selection:r}):t||n.dispatch({type:"UNSELECT_DATES"}),i?Ze():Xe(),t||(this.dragSelection=r)},this.handlePointerUp=e=>{this.dragSelection&&(ti(this.dragSelection,e,this.component.context),this.dragSelection=null)};let{component:t}=e,{options:n}=t.context,r=this.dragging=new Fa(e.el);r.touchScrollAllowed=!1,r.minDistance=n.selectMinDistance||0,r.autoScroller.isEnabled=n.dragScroll;let i=this.hitDragging=new Qa(this.dragging,Qi(e));i.emitter.on("pointerdown",this.handlePointerDown),i.emitter.on("dragstart",this.handleDragStart),i.emitter.on("hitupdate",this.handleHitUpdate),i.emitter.on("pointerup",this.handlePointerUp)}destroy(){this.dragging.destroy()}},Za,class extends Gi{constructor(e){super(e),this.draggingSegEl=null,this.draggingSeg=null,this.eventRange=null,this.relevantEvents=null,this.validMutation=null,this.mutatedRelevantEvents=null,this.handlePointerDown=e=>{let{component:t}=this,n=gi(this.querySegEl(e)),r=this.eventRange=n.eventRange;this.dragging.minDistance=t.context.options.eventDragMinDistance,this.dragging.setIgnoreMove(!this.component.isValidSegDownEl(e.origEvent.target)||e.isTouch&&this.component.props.eventSelection!==r.instance.instanceId)},this.handleDragStart=e=>{let{context:t}=this.component,n=this.eventRange;this.relevantEvents=Pn(t.getCurrentData().eventStore,this.eventRange.instance.instanceId);let r=this.querySegEl(e);this.draggingSegEl=r,this.draggingSeg=gi(r),t.calendarApi.unselect(),t.emitter.trigger("eventResizeStart",{el:r,event:new li(t,n.def,n.instance),jsEvent:e.origEvent,view:t.viewApi})},this.handleHitUpdate=(e,t,n)=>{let{context:r}=this.component,i=this.relevantEvents,s=this.hitDragging.initialHit,o=this.eventRange.instance,a=null,l=null,c=!1,d={affectedEvents:i,mutatedEvents:{defs:{},instances:{}},isEvent:!0};if(e){e.componentId===s.componentId&&this.isHitComboAllowed&&!this.isHitComboAllowed(s,e)||(a=function(e,t,n,r){let i=e.context.dateEnv,s=e.dateSpan.range.start,o=t.dateSpan.range.start,a=rr(s,o,i,e.largeUnit);if(n){if(i.add(r.start,a)<r.end)return{startDelta:a}}else if(i.add(r.end,a)>r.start)return{endDelta:a};return null}(s,e,n.subjectEl.classList.contains("fc-event-resizer-start"),o.range))}a&&(l=ii(i,r.getCurrentData().eventUiBases,a,r),d.mutatedEvents=l,Cs(d,e.dateProfile,r)||(c=!0,a=null,l=null,d.mutatedEvents=null)),l?r.dispatch({type:"SET_EVENT_RESIZE",state:d}):r.dispatch({type:"UNSET_EVENT_RESIZE"}),c?Ze():Xe(),t||(a&&qa(s,e)&&(a=null),this.validMutation=a,this.mutatedRelevantEvents=l)},this.handleDragEnd=e=>{let{context:t}=this.component,n=this.eventRange.def,r=this.eventRange.instance,i=new li(t,n,r),s=this.relevantEvents,o=this.mutatedRelevantEvents;if(t.emitter.trigger("eventResizeStop",{el:this.draggingSegEl,event:i,jsEvent:e.origEvent,view:t.viewApi}),this.validMutation){let a=new li(t,o.defs[n.defId],r?o.instances[r.instanceId]:null);t.dispatch({type:"MERGE_EVENTS",eventStore:o});let l={oldEvent:i,event:a,relatedEvents:di(o,t,r),revert(){t.dispatch({type:"MERGE_EVENTS",eventStore:s})}};t.emitter.trigger("eventResize",Object.assign(Object.assign({},l),{el:this.draggingSegEl,startDelta:this.validMutation.startDelta||ht(0),endDelta:this.validMutation.endDelta||ht(0),jsEvent:e.origEvent,view:t.viewApi})),t.emitter.trigger("eventChange",l)}else t.emitter.trigger("_noEventResize");this.draggingSeg=null,this.relevantEvents=null,this.validMutation=null};let{component:t}=e,n=this.dragging=new Fa(e.el);n.pointer.selector=".fc-event-resizer",n.touchScrollAllowed=!1,n.autoScroller.isEnabled=t.context.options.dragScroll;let r=this.hitDragging=new Qa(this.dragging,Qi(e));r.emitter.on("pointerdown",this.handlePointerDown),r.emitter.on("dragstart",this.handleDragStart),r.emitter.on("hitupdate",this.handleHitUpdate),r.emitter.on("dragend",this.handleDragEnd)}destroy(){this.dragging.destroy()}querySegEl(e){return Ie(e.subjectEl,".fc-event")}}],calendarInteractions:[class{constructor(e){this.context=e,this.isRecentPointerDateSelect=!1,this.matchesCancel=!1,this.matchesEvent=!1,this.onSelect=e=>{e.jsEvent&&(this.isRecentPointerDateSelect=!0)},this.onDocumentPointerDown=e=>{let t=this.context.options.unselectCancel,n=je(e.origEvent);this.matchesCancel=!!Ie(n,t),this.matchesEvent=!!Ie(n,Za.SELECTOR)},this.onDocumentPointerUp=e=>{let{context:t}=this,{documentPointer:n}=this,r=t.getCurrentData();if(!n.wasTouchScroll){if(r.dateSelection&&!this.isRecentPointerDateSelect){let n=t.options.unselectAuto;!n||n&&this.matchesCancel||t.calendarApi.unselect(e)}r.eventSelection&&!this.matchesEvent&&t.dispatch({type:"UNSELECT_EVENT"})}this.isRecentPointerDateSelect=!1};let t=this.documentPointer=new Pa(document);t.shouldIgnoreMove=!0,t.shouldWatchScroll=!1,t.emitter.on("pointerdown",this.onDocumentPointerDown),t.emitter.on("pointerup",this.onDocumentPointerUp),e.emitter.on("select",this.onSelect)}destroy(){this.context.emitter.off("select",this.onSelect),this.documentPointer.destroy()}}],elementDraggingImpl:Fa,optionRefiners:Xa,listenerRefiners:$a});function tl(e,t){let n=[];for(let e=0;e<t;e+=1)n[e]=[];for(let t of e)n[t.row].push(t);return n}function nl(e,t){let n=[];for(let e=0;e<t;e+=1)n[e]=[];for(let t of e)n[t.firstCol].push(t);return n}function rl(e,t){let n=[];if(e){for(let r=0;r<t;r+=1)n[r]={affectedInstances:e.affectedInstances,isEvent:e.isEvent,segs:[]};for(let t of e.segs)n[t.row].segs.push(t)}else for(let e=0;e<t;e+=1)n[e]=null;return n}xe(':root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:"";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:0 2px}.fc .fc-daygrid-day-bottom:after,.fc .fc-daygrid-day-bottom:before{clear:both;content:"";display:table}.fc .fc-daygrid-more-link{border-radius:3px;cursor:pointer;line-height:1;margin-top:1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap;z-index:4}.fc .fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-more-link{float:left}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-more-link{float:right}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}');const il=yn({hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"narrow"});function sl(e){let{display:t}=e.eventRange.ui;return"list-item"===t||"auto"===t&&!e.eventRange.def.allDay&&e.firstCol===e.lastCol&&e.isStart&&e.isEnd}class ol extends Xr{render(){let{props:e}=this;return p(eo,Object.assign({},e,{elClasses:["fc-daygrid-event","fc-daygrid-block-event","fc-h-event"],defaultTimeFormat:il,defaultDisplayEventEnd:e.defaultDisplayEventEnd,disableResizing:!e.seg.eventRange.def.allDay}))}}class al extends Xr{render(){let{props:e,context:t}=this,{options:n}=t,{seg:r}=e,i=Ai(r,n.eventTimeFormat||il,t,!0,e.defaultDisplayEventEnd);return p(Ks,Object.assign({},e,{elTag:"a",elClasses:["fc-daygrid-event","fc-daygrid-dot-event"],elAttrs:Ri(e.seg,t),defaultGenerator:ll,timeText:i,isResizing:!1,isDateSelecting:!1}))}}function ll(e){return p(y,null,p("div",{className:"fc-daygrid-event-dot",style:{borderColor:e.borderColor||e.backgroundColor}}),e.timeText&&p("div",{className:"fc-event-time"},e.timeText),p("div",{className:"fc-event-title"},e.event.title||p(y,null," ")))}class cl extends Xr{constructor(){super(...arguments),this.compileSegs=nn(dl)}render(){let{props:e}=this,{allSegs:t,invisibleSegs:n}=this.compileSegs(e.singlePlacements);return p(po,{elClasses:["fc-daygrid-more-link"],dateProfile:e.dateProfile,todayRange:e.todayRange,allDayDate:e.allDayDate,moreCnt:e.moreCnt,allSegs:t,hiddenSegs:n,alignmentElRef:e.alignmentElRef,alignGridTop:e.alignGridTop,extraDateSpan:e.extraDateSpan,popoverContent:()=>{let n=(e.eventDrag?e.eventDrag.affectedInstances:null)||(e.eventResize?e.eventResize.affectedInstances:null)||{};return p(y,null,t.map(t=>{let r=t.eventRange.instance.instanceId;return p("div",{className:"fc-daygrid-event-harness",key:r,style:{visibility:n[r]?"hidden":""}},sl(t)?p(al,Object.assign({seg:t,isDragging:!1,isSelected:r===e.eventSelection,defaultDisplayEventEnd:!1},Di(t,e.todayRange))):p(ol,Object.assign({seg:t,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:r===e.eventSelection,defaultDisplayEventEnd:!1},Di(t,e.todayRange))))}))}})}}function dl(e){let t=[],n=[];for(let r of e)t.push(r.seg),r.isVisible||n.push(r.seg);return{allSegs:t,invisibleSegs:n}}const ul=yn({week:"narrow"});class hl extends Jr{constructor(){super(...arguments),this.rootElRef={current:null},this.state={dayNumberId:Ue()},this.handleRootEl=e=>{$r(this.rootElRef,e),$r(this.props.elRef,e)}}render(){let{context:e,props:t,state:n,rootElRef:r}=this,{options:i,dateEnv:s}=e,{date:o,dateProfile:a}=t;const l=t.showDayNumber&&function(e,t,n){const{start:r,end:i}=t,s=Ht(i,-1),o=n.getYear(r),a=n.getMonth(r),l=n.getYear(s),c=n.getMonth(s);return!(o===l&&a===c)&&Boolean(e.valueOf()===r.valueOf()||1===n.getDay(e)&&e.valueOf()<i.valueOf())}(o,a.currentRange,s);return p(io,{elTag:"td",elRef:this.handleRootEl,elClasses:["fc-daygrid-day",...t.extraClassNames||[]],elAttrs:Object.assign(Object.assign(Object.assign({},t.extraDataAttrs),t.showDayNumber?{"aria-labelledby":n.dayNumberId}:{}),{role:"gridcell"}),defaultGenerator:fl,date:o,dateProfile:a,todayRange:t.todayRange,showDayNumber:t.showDayNumber,isMonthStart:l,extraRenderProps:t.extraRenderProps},(s,a)=>p("div",{ref:t.innerElRef,className:"fc-daygrid-day-frame fc-scrollgrid-sync-inner",style:{minHeight:t.minHeight}},t.showWeekNumber&&p(uo,{elTag:"a",elClasses:["fc-daygrid-week-number"],elAttrs:Cr(e,o,"week"),date:o,defaultFormat:ul}),!a.isDisabled&&(t.showDayNumber||so(i)||t.forceDayTop)?p("div",{className:"fc-daygrid-day-top"},p(s,{elTag:"a",elClasses:["fc-daygrid-day-number",l&&"fc-daygrid-month-start"],elAttrs:Object.assign(Object.assign({},Cr(e,o)),{id:n.dayNumberId})})):t.showDayNumber?p("div",{className:"fc-daygrid-day-top",style:{visibility:"hidden"}},p("a",{className:"fc-daygrid-day-number"}," ")):void 0,p("div",{className:"fc-daygrid-day-events",ref:t.fgContentElRef},t.fgContent,p("div",{className:"fc-daygrid-day-bottom",style:{marginTop:t.moreMarginTop}},p(cl,{allDayDate:o,singlePlacements:t.singlePlacements,moreCnt:t.moreCnt,alignmentElRef:r,alignGridTop:!t.showDayNumber,extraDateSpan:t.extraDateSpan,dateProfile:t.dateProfile,eventSelection:t.eventSelection,eventDrag:t.eventDrag,eventResize:t.eventResize,todayRange:t.todayRange}))),p("div",{className:"fc-daygrid-day-bg"},t.bgContent)))}}function fl(e){return e.dayNumberText||p(y,null," ")}function gl(e,t,n,r,i,s,o){let a=new ml;a.allowReslicing=!0,a.strictOrder=r,!0===t||!0===n?(a.maxCoord=s,a.hiddenConsumes=!0):"number"==typeof t?a.maxStackCnt=t:"number"==typeof n&&(a.maxStackCnt=n,a.hiddenConsumes=!0);let l=[],c=[];for(let t=0;t<e.length;t+=1){let n=e[t],{instanceId:r}=n.eventRange.instance,s=i[r];null!=s?l.push({index:t,thickness:s,span:{start:n.firstCol,end:n.lastCol+1}}):c.push(n)}let d=a.addSegs(l),u=a.toRects(),{singleColPlacements:h,multiColPlacements:f,leftoverMargins:g}=function(e,t,n){let r=function(e,t){let n=[];for(let e=0;e<t;e+=1)n.push([]);for(let t of e)for(let e=t.span.start;e<t.span.end;e+=1)n[e].push(t);return n}(e,n.length),i=[],s=[],o=[];for(let e=0;e<n.length;e+=1){let a=r[e],l=[],c=0,d=0;for(let r of a){let i=t[r.index];l.push({seg:pl(i,e,e+1,n),isVisible:!0,isAbsolute:!1,absoluteTop:r.levelCoord,marginTop:r.levelCoord-c}),c=r.levelCoord+r.thickness}let u=[];c=0,d=0;for(let r of a){let i=t[r.index],s=r.span.end-r.span.start>1,o=r.span.start===e;d+=r.levelCoord-c,c=r.levelCoord+r.thickness,s?(d+=r.thickness,o&&u.push({seg:pl(i,r.span.start,r.span.end,n),isVisible:!0,isAbsolute:!0,absoluteTop:r.levelCoord,marginTop:0})):o&&(u.push({seg:pl(i,r.span.start,r.span.end,n),isVisible:!0,isAbsolute:!1,absoluteTop:r.levelCoord,marginTop:d}),d=0)}i.push(l),s.push(u),o.push(d)}return{singleColPlacements:i,multiColPlacements:s,leftoverMargins:o}}(u,e,o),p=[],m=[];for(let e of c){f[e.firstCol].push({seg:e,isVisible:!1,isAbsolute:!0,absoluteTop:0,marginTop:0});for(let t=e.firstCol;t<=e.lastCol;t+=1)h[t].push({seg:pl(e,t,t+1,o),isVisible:!1,isAbsolute:!1,absoluteTop:0,marginTop:0})}for(let e=0;e<o.length;e+=1)p.push(0);for(let t of d){let n=e[t.index],r=t.span;f[r.start].push({seg:pl(n,r.start,r.end,o),isVisible:!1,isAbsolute:!0,absoluteTop:0,marginTop:0});for(let e=r.start;e<r.end;e+=1)p[e]+=1,h[e].push({seg:pl(n,e,e+1,o),isVisible:!1,isAbsolute:!1,absoluteTop:0,marginTop:0})}for(let e=0;e<o.length;e+=1)m.push(g[e]);return{singleColPlacements:h,multiColPlacements:f,moreCnts:p,moreMarginTops:m}}function pl(e,t,n,r){if(e.firstCol===t&&e.lastCol===n-1)return e;let i=e.eventRange,s=i.range,o=mr(s,{start:r[t].date,end:Pt(r[n-1].date,1)});return Object.assign(Object.assign({},e),{firstCol:t,lastCol:n-1,eventRange:{def:i.def,ui:Object.assign(Object.assign({},i.ui),{durationEditable:!1}),instance:i.instance,range:o},isStart:e.isStart&&o.start.valueOf()===s.start.valueOf(),isEnd:e.isEnd&&o.end.valueOf()===s.end.valueOf()})}class ml extends ji{constructor(){super(...arguments),this.hiddenConsumes=!1,this.forceHidden={}}addSegs(e){const t=super.addSegs(e),{entriesByLevel:n}=this,r=e=>!this.forceHidden[Ui(e)];for(let e=0;e<n.length;e+=1)n[e]=n[e].filter(r);return t}handleInvalidInsertion(e,t,n){const{entriesByLevel:r,forceHidden:i}=this,{touchingEntry:s,touchingLevel:o,touchingLateral:a}=e;if(this.hiddenConsumes&&s){const e=Ui(s);if(!i[e])if(this.allowReslicing){const e=Object.assign(Object.assign({},s),{span:Li(s.span,t.span)});i[Ui(e)]=!0,r[o][a]=e,this.splitEntry(s,t,n)}else i[e]=!0,n.push(s)}return super.handleInvalidInsertion(e,t,n)}}class vl extends Jr{constructor(){super(...arguments),this.cellElRefs=new js,this.frameElRefs=new js,this.fgElRefs=new js,this.segHarnessRefs=new js,this.rootElRef={current:null},this.state={framePositions:null,maxContentHeight:null,eventInstanceHeights:{}},this.handleResize=e=>{e&&this.updateSizing(!0)}}render(){let{props:e,state:t,context:n}=this,{options:r}=n,i=e.cells.length,s=nl(e.businessHourSegs,i),o=nl(e.bgEventSegs,i),a=nl(this.getHighlightSegs(),i),l=nl(this.getMirrorSegs(),i),{singleColPlacements:c,multiColPlacements:d,moreCnts:u,moreMarginTops:h}=gl(vi(e.fgEventSegs,r.eventOrder),e.dayMaxEvents,e.dayMaxEventRows,r.eventOrderStrict,t.eventInstanceHeights,t.maxContentHeight,e.cells),f=e.eventDrag&&e.eventDrag.affectedInstances||e.eventResize&&e.eventResize.affectedInstances||{};return p("tr",{ref:this.rootElRef,role:"row"},e.renderIntro&&e.renderIntro(),e.cells.map((t,n)=>{let r=this.renderFgSegs(n,e.forPrint?c[n]:d[n],e.todayRange,f),i=this.renderFgSegs(n,function(e,t){if(!e.length)return[];let n=function(e){let t={};for(let n of e)for(let e of n)t[e.seg.eventRange.instance.instanceId]=e.absoluteTop;return t}(t);return e.map(e=>({seg:e,isVisible:!0,isAbsolute:!0,absoluteTop:n[e.eventRange.instance.instanceId],marginTop:0}))}(l[n],d),e.todayRange,{},Boolean(e.eventDrag),Boolean(e.eventResize),!1);return p(hl,{key:t.key,elRef:this.cellElRefs.createRef(t.key),innerElRef:this.frameElRefs.createRef(t.key),dateProfile:e.dateProfile,date:t.date,showDayNumber:e.showDayNumbers,showWeekNumber:e.showWeekNumbers&&0===n,forceDayTop:e.showWeekNumbers,todayRange:e.todayRange,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,extraRenderProps:t.extraRenderProps,extraDataAttrs:t.extraDataAttrs,extraClassNames:t.extraClassNames,extraDateSpan:t.extraDateSpan,moreCnt:u[n],moreMarginTop:h[n],singlePlacements:c[n],fgContentElRef:this.fgElRefs.createRef(t.key),fgContent:p(y,null,p(y,null,r),p(y,null,i)),bgContent:p(y,null,this.renderFillSegs(a[n],"highlight"),this.renderFillSegs(s[n],"non-business"),this.renderFillSegs(o[n],"bg-event")),minHeight:e.cellMinHeight})}))}componentDidMount(){this.updateSizing(!0),this.context.addResizeHandler(this.handleResize)}componentDidUpdate(e,t){let n=this.props;this.updateSizing(!Rt(e,n))}componentWillUnmount(){this.context.removeResizeHandler(this.handleResize)}getHighlightSegs(){let{props:e}=this;return e.eventDrag&&e.eventDrag.segs.length?e.eventDrag.segs:e.eventResize&&e.eventResize.segs.length?e.eventResize.segs:e.dateSelectionSegs}getMirrorSegs(){let{props:e}=this;return e.eventResize&&e.eventResize.segs.length?e.eventResize.segs:[]}renderFgSegs(e,t,n,r,i,s,o){let{context:a}=this,{eventSelection:l}=this.props,{framePositions:c}=this.state,d=1===this.props.cells.length,u=i||s||o,h=[];if(c)for(let f of t){let{seg:t}=f,{instanceId:g}=t.eventRange.instance,m=g+":"+e,v=f.isVisible&&!r[g],y=f.isAbsolute,b="",E="";y&&(a.isRtl?(E=0,b=c.lefts[t.lastCol]-c.lefts[t.firstCol]):(b=0,E=c.rights[t.firstCol]-c.rights[t.lastCol])),h.push(p("div",{className:"fc-daygrid-event-harness"+(y?" fc-daygrid-event-harness-abs":""),key:m,ref:u?null:this.segHarnessRefs.createRef(m),style:{visibility:v?"":"hidden",marginTop:y?"":f.marginTop,top:y?f.absoluteTop:"",left:b,right:E}},sl(t)?p(al,Object.assign({seg:t,isDragging:i,isSelected:g===l,defaultDisplayEventEnd:d},Di(t,n))):p(ol,Object.assign({seg:t,isDragging:i,isResizing:s,isDateSelecting:o,isSelected:g===l,defaultDisplayEventEnd:d},Di(t,n)))))}return h}renderFillSegs(e,t){let{isRtl:n}=this.context,{todayRange:r}=this.props,{framePositions:i}=this.state,s=[];if(i)for(let o of e){let e=n?{right:0,left:i.lefts[o.lastCol]-i.lefts[o.firstCol]}:{left:0,right:i.rights[o.firstCol]-i.rights[o.lastCol]};s.push(p("div",{key:Ci(o.eventRange),className:"fc-daygrid-bg-harness",style:e},"bg-event"===t?p(ao,Object.assign({seg:o},Di(o,r))):co(t)))}return p(y,{},...s)}updateSizing(e){let{props:t,state:n,frameElRefs:r}=this;if(!t.forPrint&&null!==t.clientWidth){if(e){let e=t.cells.map(e=>r.currentMap[e.key]);if(e.length){let t=this.rootElRef.current,r=new Br(t,e,!0,!1);n.framePositions&&n.framePositions.similarTo(r)||this.setState({framePositions:new Br(t,e,!0,!1)})}}const i=this.state.eventInstanceHeights,s=this.queryEventInstanceHeights(),o=!0===t.dayMaxEvents||!0===t.dayMaxEventRows;this.safeSetState({eventInstanceHeights:Object.assign(Object.assign({},i),s),maxContentHeight:o?this.computeMaxContentHeight():null})}}queryEventInstanceHeights(){let e=this.segHarnessRefs.currentMap,t={};for(let n in e){let r=Math.round(e[n].getBoundingClientRect().height),i=n.split(":")[0];t[i]=Math.max(t[i]||0,r)}return t}computeMaxContentHeight(){let e=this.props.cells[0].key,t=this.cellElRefs.currentMap[e],n=this.fgElRefs.currentMap[e];return t.getBoundingClientRect().bottom-n.getBoundingClientRect().top}getCellEls(){let e=this.cellElRefs.currentMap;return this.props.cells.map(t=>e[t.key])}}vl.addStateEquality({eventInstanceHeights:Rt});class yl extends Jr{constructor(){super(...arguments),this.splitBusinessHourSegs=nn(tl),this.splitBgEventSegs=nn(tl),this.splitFgEventSegs=nn(tl),this.splitDateSelectionSegs=nn(tl),this.splitEventDrag=nn(rl),this.splitEventResize=nn(rl),this.rowRefs=new js}render(){let{props:e,context:t}=this,n=e.cells.length,r=this.splitBusinessHourSegs(e.businessHourSegs,n),i=this.splitBgEventSegs(e.bgEventSegs,n),s=this.splitFgEventSegs(e.fgEventSegs,n),o=this.splitDateSelectionSegs(e.dateSelectionSegs,n),a=this.splitEventDrag(e.eventDrag,n),l=this.splitEventResize(e.eventResize,n),c=n>=7&&e.clientWidth?e.clientWidth/t.options.aspectRatio/6:null;return p(hs,{unit:"day"},(t,d)=>p(y,null,e.cells.map((t,u)=>p(vl,{ref:this.rowRefs.createRef(u),key:t.length?t[0].date.toISOString():u,showDayNumbers:n>1,showWeekNumbers:e.showWeekNumbers,todayRange:d,dateProfile:e.dateProfile,cells:t,renderIntro:e.renderRowIntro,businessHourSegs:r[u],eventSelection:e.eventSelection,bgEventSegs:i[u].filter(bl),fgEventSegs:s[u],dateSelectionSegs:o[u],eventDrag:a[u],eventResize:l[u],dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,clientWidth:e.clientWidth,clientHeight:e.clientHeight,cellMinHeight:c,forPrint:e.forPrint}))))}componentDidMount(){const e=this.rowRefs.currentMap[0].getCellEls()[0];this.rootEl=e?e.closest(".fc-daygrid-body"):null,this.rootEl&&this.context.registerInteractiveComponent(this,{el:this.rootEl,isHitComboAllowed:this.props.isHitComboAllowed})}componentWillUnmount(){this.rootEl&&(this.context.unregisterInteractiveComponent(this),this.rootEl=null)}prepareHits(){this.rowPositions=new Br(this.rootEl,this.rowRefs.collect().map(e=>e.getCellEls()[0]),!1,!0),this.colPositions=new Br(this.rootEl,this.rowRefs.currentMap[0].getCellEls(),!0,!1)}queryHit(e,t){let{colPositions:n,rowPositions:r}=this,i=n.leftToIndex(e),s=r.topToIndex(t);if(null!=s&&null!=i){let e=this.props.cells[s][i];return{dateProfile:this.props.dateProfile,dateSpan:Object.assign({range:this.getCellRange(s,i),allDay:!0},e.extraDateSpan),dayEl:this.getCellEl(s,i),rect:{left:n.lefts[i],right:n.rights[i],top:r.tops[s],bottom:r.bottoms[s]},layer:0}}return null}getCellEl(e,t){return this.rowRefs.currentMap[e].getCellEls()[t]}getCellRange(e,t){let n=this.props.cells[e][t].date;return{start:n,end:Pt(n,1)}}}function bl(e){return e.eventRange.def.allDay}class El extends Jr{constructor(){super(...arguments),this.elRef={current:null},this.needsScrollReset=!1}render(){let{props:e}=this,{dayMaxEventRows:t,dayMaxEvents:n,expandRows:r}=e,i=!0===n||!0===t;i&&!r&&(i=!1,t=null,n=null);let s=["fc-daygrid-body",i?"fc-daygrid-body-balanced":"fc-daygrid-body-unbalanced",r?"":"fc-daygrid-body-natural"];return p("div",{ref:this.elRef,className:s.join(" "),style:{width:e.clientWidth,minWidth:e.tableMinWidth}},p("table",{role:"presentation",className:"fc-scrollgrid-sync-table",style:{width:e.clientWidth,minWidth:e.tableMinWidth,height:r?e.clientHeight:""}},e.colGroupNode,p("tbody",{role:"presentation"},p(yl,{dateProfile:e.dateProfile,cells:e.cells,renderRowIntro:e.renderRowIntro,showWeekNumbers:e.showWeekNumbers,clientWidth:e.clientWidth,clientHeight:e.clientHeight,businessHourSegs:e.businessHourSegs,bgEventSegs:e.bgEventSegs,fgEventSegs:e.fgEventSegs,dateSelectionSegs:e.dateSelectionSegs,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,dayMaxEvents:n,dayMaxEventRows:t,forPrint:e.forPrint,isHitComboAllowed:e.isHitComboAllowed}))))}componentDidMount(){this.requestScrollReset()}componentDidUpdate(e){e.dateProfile!==this.props.dateProfile?this.requestScrollReset():this.flushScrollReset()}requestScrollReset(){this.needsScrollReset=!0,this.flushScrollReset()}flushScrollReset(){if(this.needsScrollReset&&this.props.clientWidth){const e=function(e,t){let n;t.currentRangeUnit.match(/year|month/)&&(n=e.querySelector(`[data-date="${Kt(t.currentDate)}-01"]`));n||(n=e.querySelector(`[data-date="${Jt(t.currentDate)}"]`));return n}(this.elRef.current,this.props.dateProfile);if(e){const t=e.closest(".fc-daygrid-body"),n=t.closest(".fc-scroller"),r=e.getBoundingClientRect().top-t.getBoundingClientRect().top;n.scrollTop=r?r+1:0}this.needsScrollReset=!1}}}class Sl extends ys{constructor(){super(...arguments),this.forceDayIfListItem=!0}sliceRange(e,t){return t.sliceRange(e)}}class Al extends Jr{constructor(){super(...arguments),this.slicer=new Sl,this.tableRef={current:null}}render(){let{props:e,context:t}=this;return p(El,Object.assign({ref:this.tableRef},this.slicer.sliceProps(e,e.dateProfile,e.nextDayThreshold,t,e.dayTableModel),{dateProfile:e.dateProfile,cells:e.dayTableModel.cells,colGroupNode:e.colGroupNode,tableMinWidth:e.tableMinWidth,renderRowIntro:e.renderRowIntro,dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,showWeekNumbers:e.showWeekNumbers,expandRows:e.expandRows,headerAlignElRef:e.headerAlignElRef,clientWidth:e.clientWidth,clientHeight:e.clientHeight,forPrint:e.forPrint}))}}class Dl extends ei{buildRenderRange(e,t,n){let r=super.buildRenderRange(e,t,n),{props:i}=this;return wl({currentRange:r,snapToWeek:/^(year|month)$/.test(t),fixedWeekCount:i.fixedWeekCount,dateEnv:i.dateEnv})}}function wl(e){let t,{dateEnv:n,currentRange:r}=e,{start:i,end:s}=r;if(e.snapToWeek&&(i=n.startOfWeek(i),t=n.startOfWeek(s),t.valueOf()!==s.valueOf()&&(s=Nt(t,1))),e.fixedWeekCount){let e=n.startOfWeek(n.startOfMonth(Pt(r.end,-1)));s=Nt(s,6-Math.ceil(Bt(e,s)))}return{start:i,end:s}}class Cl extends Jr{constructor(){super(...arguments),this.headerElRef={current:null}}renderSimpleLayout(e,t){let{props:n,context:r}=this,i=[],s=Xs(r.options);return e&&i.push({type:"header",key:"header",isSticky:s,chunk:{elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}}),i.push({type:"body",key:"body",liquid:!0,chunk:{content:t}}),p(So,{elClasses:["fc-daygrid"],viewSpec:r.viewSpec},p(Js,{liquid:!n.isHeightAuto&&!n.forPrint,collapsibleWidth:n.forPrint,cols:[],sections:i}))}renderHScrollLayout(e,t,n,r){let i=this.context.pluginHooks.scrollGridImpl;if(!i)throw new Error("No ScrollGrid implementation");let{props:s,context:o}=this,a=!s.forPrint&&Xs(o.options),l=!s.forPrint&&$s(o.options),c=[];return e&&c.push({type:"header",key:"header",isSticky:a,chunks:[{key:"main",elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}]}),c.push({type:"body",key:"body",liquid:!0,chunks:[{key:"main",content:t}]}),l&&c.push({type:"footer",key:"footer",isSticky:!0,chunks:[{key:"main",content:Zs}]}),p(So,{elClasses:["fc-daygrid"],viewSpec:o.viewSpec},p(i,{liquid:!s.isHeightAuto&&!s.forPrint,forPrint:s.forPrint,collapsibleWidth:s.forPrint,colGroups:[{cols:[{span:n,minWidth:r}]}],sections:c}))}}function Rl(e,t){let n=new ms(e.renderRange,t);return new vs(n,/year|month|week/.test(e.currentRangeUnit))}var xl=Po({name:"@fullcalendar/daygrid",initialView:"dayGridMonth",views:{dayGrid:{component:class extends Cl{constructor(){super(...arguments),this.buildDayTableModel=nn(Rl),this.headerRef={current:null},this.tableRef={current:null}}render(){let{options:e,dateProfileGenerator:t}=this.context,{props:n}=this,r=this.buildDayTableModel(n.dateProfile,t),i=e.dayHeaders&&p(gs,{ref:this.headerRef,dateProfile:n.dateProfile,dates:r.headerDates,datesRepDistinctDays:1===r.rowCnt}),s=t=>p(Al,{ref:this.tableRef,dateProfile:n.dateProfile,dayTableModel:r,businessHours:n.businessHours,dateSelection:n.dateSelection,eventStore:n.eventStore,eventUiBases:n.eventUiBases,eventSelection:n.eventSelection,eventDrag:n.eventDrag,eventResize:n.eventResize,nextDayThreshold:e.nextDayThreshold,colGroupNode:t.tableColGroupNode,tableMinWidth:t.tableMinWidth,dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,showWeekNumbers:e.weekNumbers,expandRows:!n.isHeightAuto,headerAlignElRef:this.headerElRef,clientWidth:t.clientWidth,clientHeight:t.clientHeight,forPrint:n.forPrint});return e.dayMinWidth?this.renderHScrollLayout(i,s,r.colCnt,e.dayMinWidth):this.renderSimpleLayout(i,s)}},dateProfileGeneratorClass:Dl},dayGridDay:{type:"dayGrid",duration:{days:1}},dayGridWeek:{type:"dayGrid",duration:{weeks:1}},dayGridMonth:{type:"dayGrid",duration:{months:1},fixedWeekCount:!0},dayGridYear:{type:"dayGrid",duration:{years:1}}}});xe('.fc-v-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-v-event .fc-event-main{color:var(--fc-event-text-color);height:100%}.fc-v-event .fc-event-main-frame{display:flex;flex-direction:column;height:100%}.fc-v-event .fc-event-time{flex-grow:0;flex-shrink:0;max-height:100%;overflow:hidden}.fc-v-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-height:0}.fc-v-event .fc-event-title{bottom:0;max-height:100%;overflow:hidden;top:0}.fc-v-event:not(.fc-event-start){border-top-left-radius:0;border-top-right-radius:0;border-top-width:0}.fc-v-event:not(.fc-event-end){border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-width:0}.fc-v-event.fc-event-selected:before{left:-10px;right:-10px}.fc-v-event .fc-event-resizer-start{cursor:n-resize}.fc-v-event .fc-event-resizer-end{cursor:s-resize}.fc-v-event:not(.fc-event-selected) .fc-event-resizer{height:var(--fc-event-resizer-thickness);left:0;right:0}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start{top:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer{left:50%;margin-left:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-start{top:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc .fc-timegrid .fc-daygrid-body{z-index:2}.fc .fc-timegrid-divider{padding:0 0 2px}.fc .fc-timegrid-body{min-height:100%;position:relative;z-index:1}.fc .fc-timegrid-axis-chunk{position:relative}.fc .fc-timegrid-axis-chunk>table,.fc .fc-timegrid-slots{position:relative;z-index:1}.fc .fc-timegrid-slot{border-bottom:0;height:1.5em}.fc .fc-timegrid-slot:empty:before{content:"\\00a0"}.fc .fc-timegrid-slot-minor{border-top-style:dotted}.fc .fc-timegrid-slot-label-cushion{display:inline-block;white-space:nowrap}.fc .fc-timegrid-slot-label{vertical-align:middle}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{padding:0 4px}.fc .fc-timegrid-axis-frame-liquid{height:100%}.fc .fc-timegrid-axis-frame{align-items:center;display:flex;justify-content:flex-end;overflow:hidden}.fc .fc-timegrid-axis-cushion{flex-shrink:0;max-width:60px}.fc-direction-ltr .fc-timegrid-slot-label-frame{text-align:right}.fc-direction-rtl .fc-timegrid-slot-label-frame{text-align:left}.fc-liquid-hack .fc-timegrid-axis-frame-liquid{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-timegrid-col-frame{min-height:100%;position:relative}.fc-media-screen.fc-liquid-hack .fc-timegrid-col-frame{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols{bottom:0;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols>table{height:100%}.fc-media-screen .fc-timegrid-col-bg,.fc-media-screen .fc-timegrid-col-events,.fc-media-screen .fc-timegrid-now-indicator-container{left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col-bg{z-index:2}.fc .fc-timegrid-col-bg .fc-non-business{z-index:1}.fc .fc-timegrid-col-bg .fc-bg-event{z-index:2}.fc .fc-timegrid-col-bg .fc-highlight{z-index:3}.fc .fc-timegrid-bg-harness{left:0;position:absolute;right:0}.fc .fc-timegrid-col-events{z-index:3}.fc .fc-timegrid-now-indicator-container{bottom:0;overflow:hidden}.fc-direction-ltr .fc-timegrid-col-events{margin:0 2.5% 0 2px}.fc-direction-rtl .fc-timegrid-col-events{margin:0 2px 0 2.5%}.fc-timegrid-event-harness{position:absolute}.fc-timegrid-event-harness>.fc-timegrid-event{bottom:0;left:0;position:absolute;right:0;top:0}.fc-timegrid-event-harness-inset .fc-timegrid-event,.fc-timegrid-event.fc-event-mirror,.fc-timegrid-more-link{box-shadow:0 0 0 1px var(--fc-page-bg-color)}.fc-timegrid-event,.fc-timegrid-more-link{border-radius:3px;font-size:var(--fc-small-font-size)}.fc-timegrid-event{margin-bottom:1px}.fc-timegrid-event .fc-event-main{padding:1px 1px 0}.fc-timegrid-event .fc-event-time{font-size:var(--fc-small-font-size);margin-bottom:1px;white-space:nowrap}.fc-timegrid-event-short .fc-event-main-frame{flex-direction:row;overflow:hidden}.fc-timegrid-event-short .fc-event-time:after{content:"\\00a0-\\00a0"}.fc-timegrid-event-short .fc-event-title{font-size:var(--fc-small-font-size)}.fc-timegrid-more-link{background:var(--fc-more-link-bg-color);color:var(--fc-more-link-text-color);cursor:pointer;margin-bottom:1px;position:absolute;z-index:9999}.fc-timegrid-more-link-inner{padding:3px 2px;top:0}.fc-direction-ltr .fc-timegrid-more-link{right:0}.fc-direction-rtl .fc-timegrid-more-link{left:0}.fc .fc-timegrid-now-indicator-line{border-color:var(--fc-now-indicator-color);border-style:solid;border-width:1px 0 0;left:0;position:absolute;right:0;z-index:4}.fc .fc-timegrid-now-indicator-arrow{border-color:var(--fc-now-indicator-color);border-style:solid;margin-top:-5px;position:absolute;z-index:4}.fc-direction-ltr .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 0 5px 6px;left:0}.fc-direction-rtl .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 6px 5px 0;right:0}');class _l extends hr{getKeyInfo(){return{allDay:{},timed:{}}}getKeysForDateSpan(e){return e.allDay?["allDay"]:["timed"]}getKeysForEventDef(e){return e.allDay?hi(e)?["timed","allDay"]:["allDay"]:["timed"]}}const Tl=yn({hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"short"});function kl(e){let t=["fc-timegrid-slot","fc-timegrid-slot-label",e.isLabeled?"fc-scrollgrid-shrink":"fc-timegrid-slot-minor"];return p(qr.Consumer,null,n=>{if(!e.isLabeled)return p("td",{className:t.join(" "),"data-time":e.isoTimeStr});let{dateEnv:r,options:i,viewApi:s}=n,o=null==i.slotLabelFormat?Tl:Array.isArray(i.slotLabelFormat)?yn(i.slotLabelFormat[0]):yn(i.slotLabelFormat),a={level:0,time:e.time,date:r.toDate(e.date),view:s,text:r.format(e.date,o)};return p(as,{elTag:"td",elClasses:t,elAttrs:{"data-time":e.isoTimeStr},renderProps:a,generatorName:"slotLabelContent",customGenerator:i.slotLabelContent,defaultGenerator:Ml,classNameGenerator:i.slotLabelClassNames,didMount:i.slotLabelDidMount,willUnmount:i.slotLabelWillUnmount},e=>p("div",{className:"fc-timegrid-slot-label-frame fc-scrollgrid-shrink-frame"},p(e,{elTag:"div",elClasses:["fc-timegrid-slot-label-cushion","fc-scrollgrid-shrink-cushion"]})))})}function Ml(e){return e.text}class Il extends Xr{render(){return this.props.slatMetas.map(e=>p("tr",{key:e.key},p(kl,Object.assign({},e))))}}const Ol=yn({week:"short"});class Nl extends Jr{constructor(){super(...arguments),this.allDaySplitter=new _l,this.headerElRef={current:null},this.rootElRef={current:null},this.scrollerElRef={current:null},this.state={slatCoords:null},this.handleScrollTopRequest=e=>{let t=this.scrollerElRef.current;t&&(t.scrollTop=e)},this.renderHeadAxis=(e,t="")=>{let{options:n}=this.context,{dateProfile:r}=this.props,i=r.renderRange,s=1===jt(i.start,i.end)?Cr(this.context,i.start,"week"):{};return n.weekNumbers&&"day"===e?p(uo,{elTag:"th",elClasses:["fc-timegrid-axis","fc-scrollgrid-shrink"],elAttrs:{"aria-hidden":!0},date:i.start,defaultFormat:Ol},e=>p("div",{className:["fc-timegrid-axis-frame","fc-scrollgrid-shrink-frame","fc-timegrid-axis-frame-liquid"].join(" "),style:{height:t}},p(e,{elTag:"a",elClasses:["fc-timegrid-axis-cushion","fc-scrollgrid-shrink-cushion","fc-scrollgrid-sync-inner"],elAttrs:s}))):p("th",{"aria-hidden":!0,className:"fc-timegrid-axis"},p("div",{className:"fc-timegrid-axis-frame",style:{height:t}}))},this.renderTableRowAxis=e=>{let{options:t,viewApi:n}=this.context,r={text:t.allDayText,view:n};return p(as,{elTag:"td",elClasses:["fc-timegrid-axis","fc-scrollgrid-shrink"],elAttrs:{"aria-hidden":!0},renderProps:r,generatorName:"allDayContent",customGenerator:t.allDayContent,defaultGenerator:Pl,classNameGenerator:t.allDayClassNames,didMount:t.allDayDidMount,willUnmount:t.allDayWillUnmount},t=>p("div",{className:["fc-timegrid-axis-frame","fc-scrollgrid-shrink-frame",null==e?" fc-timegrid-axis-frame-liquid":""].join(" "),style:{height:e}},p(t,{elTag:"span",elClasses:["fc-timegrid-axis-cushion","fc-scrollgrid-shrink-cushion","fc-scrollgrid-sync-inner"]})))},this.handleSlatCoords=e=>{this.setState({slatCoords:e})}}renderSimpleLayout(e,t,n){let{context:r,props:i}=this,s=[],o=Xs(r.options);return e&&s.push({type:"header",key:"header",isSticky:o,chunk:{elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}}),t&&(s.push({type:"body",key:"all-day",chunk:{content:t}}),s.push({type:"body",key:"all-day-divider",outerContent:p("tr",{role:"presentation",className:"fc-scrollgrid-section"},p("td",{className:"fc-timegrid-divider "+r.theme.getClass("tableCellShaded")}))})),s.push({type:"body",key:"body",liquid:!0,expandRows:Boolean(r.options.expandRows),chunk:{scrollerElRef:this.scrollerElRef,content:n}}),p(So,{elRef:this.rootElRef,elClasses:["fc-timegrid"],viewSpec:r.viewSpec},p(Js,{liquid:!i.isHeightAuto&&!i.forPrint,collapsibleWidth:i.forPrint,cols:[{width:"shrink"}],sections:s}))}renderHScrollLayout(e,t,n,r,i,s,o){let a=this.context.pluginHooks.scrollGridImpl;if(!a)throw new Error("No ScrollGrid implementation");let{context:l,props:c}=this,d=!c.forPrint&&Xs(l.options),u=!c.forPrint&&$s(l.options),h=[];e&&h.push({type:"header",key:"header",isSticky:d,syncRowHeights:!0,chunks:[{key:"axis",rowContent:e=>p("tr",{role:"presentation"},this.renderHeadAxis("day",e.rowSyncHeights[0]))},{key:"cols",elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}]}),t&&(h.push({type:"body",key:"all-day",syncRowHeights:!0,chunks:[{key:"axis",rowContent:e=>p("tr",{role:"presentation"},this.renderTableRowAxis(e.rowSyncHeights[0]))},{key:"cols",content:t}]}),h.push({key:"all-day-divider",type:"body",outerContent:p("tr",{role:"presentation",className:"fc-scrollgrid-section"},p("td",{colSpan:2,className:"fc-timegrid-divider "+l.theme.getClass("tableCellShaded")}))}));let f=l.options.nowIndicator;return h.push({type:"body",key:"body",liquid:!0,expandRows:Boolean(l.options.expandRows),chunks:[{key:"axis",content:e=>p("div",{className:"fc-timegrid-axis-chunk"},p("table",{"aria-hidden":!0,style:{height:e.expandRows?e.clientHeight:""}},e.tableColGroupNode,p("tbody",null,p(Il,{slatMetas:s}))),p("div",{className:"fc-timegrid-now-indicator-container"},p(hs,{unit:f?"minute":"day"},e=>{let t=f&&o&&o.safeComputeTop(e);return"number"==typeof t?p(no,{elClasses:["fc-timegrid-now-indicator-arrow"],elStyle:{top:t},isAxis:!0,date:e}):null})))},{key:"cols",scrollerElRef:this.scrollerElRef,content:n}]}),u&&h.push({key:"footer",type:"footer",isSticky:!0,chunks:[{key:"axis",content:Zs},{key:"cols",content:Zs}]}),p(So,{elRef:this.rootElRef,elClasses:["fc-timegrid"],viewSpec:l.viewSpec},p(a,{liquid:!c.isHeightAuto&&!c.forPrint,forPrint:c.forPrint,collapsibleWidth:!1,colGroups:[{width:"shrink",cols:[{width:"shrink"}]},{cols:[{span:r,minWidth:i}]}],sections:h}))}getAllDayMaxEventProps(){let{dayMaxEvents:e,dayMaxEventRows:t}=this.context.options;return!0!==e&&!0!==t||(e=void 0,t=5),{dayMaxEvents:e,dayMaxEventRows:t}}}function Pl(e){return e.text}class Hl{constructor(e,t,n){this.positions=e,this.dateProfile=t,this.slotDuration=n}safeComputeTop(e){let{dateProfile:t}=this;if(Er(t.currentRange,e)){let n=Lt(e),r=e.valueOf()-n.valueOf();if(r>=vt(t.slotMinTime)&&r<vt(t.slotMaxTime))return this.computeTimeTop(ht(r))}return null}computeDateTop(e,t){return t||(t=Lt(e)),this.computeTimeTop(ht(e.valueOf()-t.valueOf()))}computeTimeTop(e){let t,n,{positions:r,dateProfile:i}=this,s=r.els.length,o=(e.milliseconds-vt(i.slotMinTime))/vt(this.slotDuration);return o=Math.max(0,o),o=Math.min(s,o),t=Math.floor(o),t=Math.min(t,s-1),n=o-t,r.tops[t]+r.getHeight(t)*n}}class Bl extends Xr{render(){let{props:e,context:t}=this,{options:n}=t,{slatElRefs:r}=e;return p("tbody",null,e.slatMetas.map((i,s)=>{let o={time:i.time,date:t.dateEnv.toDate(i.date),view:t.viewApi};return p("tr",{key:i.key,ref:r.createRef(i.key)},e.axis&&p(kl,Object.assign({},i)),p(as,{elTag:"td",elClasses:["fc-timegrid-slot","fc-timegrid-slot-lane",!i.isLabeled&&"fc-timegrid-slot-minor"],elAttrs:{"data-time":i.isoTimeStr},renderProps:o,generatorName:"slotLaneContent",customGenerator:n.slotLaneContent,classNameGenerator:n.slotLaneClassNames,didMount:n.slotLaneDidMount,willUnmount:n.slotLaneWillUnmount}))}))}}class jl extends Xr{constructor(){super(...arguments),this.rootElRef={current:null},this.slatElRefs=new js}render(){let{props:e,context:t}=this;return p("div",{ref:this.rootElRef,className:"fc-timegrid-slots"},p("table",{"aria-hidden":!0,className:t.theme.getClass("table"),style:{minWidth:e.tableMinWidth,width:e.clientWidth,height:e.minHeight}},e.tableColGroupNode,p(Bl,{slatElRefs:this.slatElRefs,axis:e.axis,slatMetas:e.slatMetas})))}componentDidMount(){this.updateSizing()}componentDidUpdate(){this.updateSizing()}componentWillUnmount(){this.props.onCoords&&this.props.onCoords(null)}updateSizing(){let{context:e,props:t}=this;if(t.onCoords&&null!==t.clientWidth){this.rootElRef.current.offsetHeight&&t.onCoords(new Hl(new Br(this.rootElRef.current,(n=this.slatElRefs.currentMap,t.slatMetas.map(e=>n[e.key])),!1,!0),this.props.dateProfile,e.options.slotDuration))}var n}}function zl(e,t){let n,r=[];for(n=0;n<t;n+=1)r.push([]);if(e)for(n=0;n<e.length;n+=1)r[e[n].col].push(e[n]);return r}function Ul(e,t){let n=[];if(e){for(let r=0;r<t;r+=1)n[r]={affectedInstances:e.affectedInstances,isEvent:e.isEvent,segs:[]};for(let t of e.segs)n[t.col].segs.push(t)}else for(let e=0;e<t;e+=1)n[e]=null;return n}class Wl extends Xr{render(){let{props:e}=this;return p(po,{elClasses:["fc-timegrid-more-link"],elStyle:{top:e.top,bottom:e.bottom},allDayDate:null,moreCnt:e.hiddenSegs.length,allSegs:e.hiddenSegs,hiddenSegs:e.hiddenSegs,extraDateSpan:e.extraDateSpan,dateProfile:e.dateProfile,todayRange:e.todayRange,popoverContent:()=>Jl(e.hiddenSegs,e),defaultGenerator:Ll,forceTimed:!0},e=>p(e,{elTag:"div",elClasses:["fc-timegrid-more-link-inner","fc-sticky"]}))}}function Ll(e){return e.shortText}function Fl(e,t,n){let r=new ji;null!=t&&(r.strictOrder=t),null!=n&&(r.maxStackCnt=n);let i=Wi(r.addSegs(e)),s=function(e){const{entriesByLevel:t}=e,n=ql((e,t)=>e+":"+t,(r,i)=>{let s=Vl(function(e,t,n){let{levelCoords:r,entriesByLevel:i}=e,s=i[t][n],o=r[t]+s.thickness,a=r.length,l=t;for(;l<a&&r[l]<o;l+=1);for(;l<a;l+=1){let e,t=i[l],n=Vi(t,s.span.start,zi),r=n[0]+n[1],o=r;for(;(e=t[o])&&e.span.start<s.span.end;)o+=1;if(r<o)return{level:l,lateralStart:r,lateralEnd:o}}return null}(e,r,i),n),o=t[r][i];return[Object.assign(Object.assign({},o),{nextLevelNodes:s[0]}),o.thickness+s[1]]});return Vl(t.length?{level:0,lateralStart:0,lateralEnd:t[0].length}:null,n)[0]}(r);return s=function(e,t){const n=ql((e,t,n)=>Ui(e),(e,r,i)=>{let s,{nextLevelNodes:o,thickness:a}=e,l=a+i,c=a/l,d=[];if(o.length)for(let e of o)if(void 0===s){let t=n(e,r,l);s=t[0],d.push(t[1])}else{let t=n(e,s,0);d.push(t[1])}else s=t;let u=(s-r)*c;return[s-u,Object.assign(Object.assign({},e),{thickness:u,nextLevelNodes:d})]});return e.map(e=>n(e,0,0)[1])}(s,1),{segRects:function(e){let t=[];const n=ql((e,t,n)=>Ui(e),(e,n,i)=>{let s=Object.assign(Object.assign({},e),{levelCoord:n,stackDepth:i,stackForward:0});return t.push(s),s.stackForward=r(e.nextLevelNodes,n+e.thickness,i+1)+1});function r(e,t,r){let i=0;for(let s of e)i=Math.max(n(s,t,r),i);return i}return r(e,0,0),t}(s),hiddenGroups:i}}function Vl(e,t){if(!e)return[[],0];let{level:n,lateralStart:r,lateralEnd:i}=e,s=r,o=[];for(;s<i;)o.push(t(n,s)),s+=1;return o.sort(Gl),[o.map(Ql),o[0][1]]}function Gl(e,t){return t[1]-e[1]}function Ql(e){return e[0]}function ql(e,t){const n={};return(...r)=>{let i=e(...r);return i in n?n[i]:n[i]=t(...r)}}function Yl(e,t,n=null,r=0){let i=[];if(n)for(let s=0;s<e.length;s+=1){let o=e[s],a=n.computeDateTop(o.start,t),l=Math.max(a+(r||0),n.computeDateTop(o.end,t));i.push({start:Math.round(a),end:Math.round(l)})}return i}const Zl=yn({hour:"numeric",minute:"2-digit",meridiem:!1});class Xl extends Xr{render(){return p(eo,Object.assign({},this.props,{elClasses:["fc-timegrid-event","fc-v-event",this.props.isShort&&"fc-timegrid-event-short"],defaultTimeFormat:Zl}))}}class $l extends Xr{constructor(){super(...arguments),this.sortEventSegs=nn(vi)}render(){let{props:e,context:t}=this,{options:n}=t,r=n.selectMirror,i=e.eventDrag&&e.eventDrag.segs||e.eventResize&&e.eventResize.segs||r&&e.dateSelectionSegs||[],s=e.eventDrag&&e.eventDrag.affectedInstances||e.eventResize&&e.eventResize.affectedInstances||{},o=this.sortEventSegs(e.fgEventSegs,n.eventOrder);return p(io,{elTag:"td",elRef:e.elRef,elClasses:["fc-timegrid-col",...e.extraClassNames||[]],elAttrs:Object.assign({role:"gridcell"},e.extraDataAttrs),date:e.date,dateProfile:e.dateProfile,todayRange:e.todayRange,extraRenderProps:e.extraRenderProps},t=>p("div",{className:"fc-timegrid-col-frame"},p("div",{className:"fc-timegrid-col-bg"},this.renderFillSegs(e.businessHourSegs,"non-business"),this.renderFillSegs(e.bgEventSegs,"bg-event"),this.renderFillSegs(e.dateSelectionSegs,"highlight")),p("div",{className:"fc-timegrid-col-events"},this.renderFgSegs(o,s,!1,!1,!1)),p("div",{className:"fc-timegrid-col-events"},this.renderFgSegs(i,{},Boolean(e.eventDrag),Boolean(e.eventResize),Boolean(r),"mirror")),p("div",{className:"fc-timegrid-now-indicator-container"},this.renderNowIndicator(e.nowIndicatorSegs)),so(n)&&p(t,{elTag:"div",elClasses:["fc-timegrid-col-misc"]})))}renderFgSegs(e,t,n,r,i,s){let{props:o}=this;return o.forPrint?Jl(e,o):this.renderPositionedFgSegs(e,t,n,r,i,s)}renderPositionedFgSegs(e,t,n,r,i,s){let{eventMaxStack:o,eventShortHeight:a,eventOrderStrict:l,eventMinHeight:c}=this.context.options,{date:d,slatCoords:u,eventSelection:h,todayRange:f,nowDate:g}=this.props,m=n||r||i,v=Yl(e,d,u,c),{segPlacements:b,hiddenGroups:E}=function(e,t,n,r){let i=[],s=[];for(let n=0;n<e.length;n+=1){let r=t[n];r?i.push({index:n,thickness:1,span:r}):s.push(e[n])}let{segRects:o,hiddenGroups:a}=Fl(i,n,r),l=[];for(let t of o)l.push({seg:e[t.index],rect:t});for(let e of s)l.push({seg:e,rect:null});return{segPlacements:l,hiddenGroups:a}}(e,v,l,o);return p(y,null,this.renderHiddenGroups(E,e),b.map(e=>{let{seg:o,rect:l}=e,c=o.eventRange.instance.instanceId,d=m||Boolean(!t[c]&&l),u=Kl(l&&l.span),v=!m&&l?this.computeSegHStyle(l):{left:0,right:0},y=Boolean(l)&&l.stackForward>0,b=Boolean(l)&&l.span.end-l.span.start<a;return p("div",{className:"fc-timegrid-event-harness"+(y?" fc-timegrid-event-harness-inset":""),key:s||c,style:Object.assign(Object.assign({visibility:d?"":"hidden"},u),v)},p(Xl,Object.assign({seg:o,isDragging:n,isResizing:r,isDateSelecting:i,isSelected:c===h,isShort:b},Di(o,f,g))))}))}renderHiddenGroups(e,t){let{extraDateSpan:n,dateProfile:r,todayRange:i,nowDate:s,eventSelection:o,eventDrag:a,eventResize:l}=this.props;return p(y,null,e.map(e=>{let c=Kl(e.span),d=(u=e.entries,h=t,u.map(e=>h[e.index]));var u,h;return p(Wl,{key:$t(yo(d)),hiddenSegs:d,top:c.top,bottom:c.bottom,extraDateSpan:n,dateProfile:r,todayRange:i,nowDate:s,eventSelection:o,eventDrag:a,eventResize:l})}))}renderFillSegs(e,t){let{props:n,context:r}=this,i=Yl(e,n.date,n.slatCoords,r.options.eventMinHeight).map((r,i)=>{let s=e[i];return p("div",{key:Ci(s.eventRange),className:"fc-timegrid-bg-harness",style:Kl(r)},"bg-event"===t?p(ao,Object.assign({seg:s},Di(s,n.todayRange,n.nowDate))):co(t))});return p(y,null,i)}renderNowIndicator(e){let{slatCoords:t,date:n}=this.props;return t?e.map((e,r)=>p(no,{key:r,elClasses:["fc-timegrid-now-indicator-line"],elStyle:{top:t.computeDateTop(e.start,n)},isAxis:!1,date:n})):null}computeSegHStyle(e){let t,n,{isRtl:r,options:i}=this.context,s=i.slotEventOverlap,o=e.levelCoord,a=e.levelCoord+e.thickness;s&&(a=Math.min(1,o+2*(a-o))),r?(t=1-a,n=o):(t=o,n=1-a);let l={zIndex:e.stackDepth+1,left:100*t+"%",right:100*n+"%"};return s&&!e.stackForward&&(l[r?"marginLeft":"marginRight"]=20),l}}function Jl(e,{todayRange:t,nowDate:n,eventSelection:r,eventDrag:i,eventResize:s}){let o=(i?i.affectedInstances:null)||(s?s.affectedInstances:null)||{};return p(y,null,e.map(e=>{let i=e.eventRange.instance.instanceId;return p("div",{key:i,style:{visibility:o[i]?"hidden":""}},p(Xl,Object.assign({seg:e,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:i===r,isShort:!1},Di(e,t,n))))}))}function Kl(e){return e?{top:e.start,bottom:-e.end}:{top:"",bottom:""}}class ec extends Xr{constructor(){super(...arguments),this.splitFgEventSegs=nn(zl),this.splitBgEventSegs=nn(zl),this.splitBusinessHourSegs=nn(zl),this.splitNowIndicatorSegs=nn(zl),this.splitDateSelectionSegs=nn(zl),this.splitEventDrag=nn(Ul),this.splitEventResize=nn(Ul),this.rootElRef={current:null},this.cellElRefs=new js}render(){let{props:e,context:t}=this,n=t.options.nowIndicator&&e.slatCoords&&e.slatCoords.safeComputeTop(e.nowDate),r=e.cells.length,i=this.splitFgEventSegs(e.fgEventSegs,r),s=this.splitBgEventSegs(e.bgEventSegs,r),o=this.splitBusinessHourSegs(e.businessHourSegs,r),a=this.splitNowIndicatorSegs(e.nowIndicatorSegs,r),l=this.splitDateSelectionSegs(e.dateSelectionSegs,r),c=this.splitEventDrag(e.eventDrag,r),d=this.splitEventResize(e.eventResize,r);return p("div",{className:"fc-timegrid-cols",ref:this.rootElRef},p("table",{role:"presentation",style:{minWidth:e.tableMinWidth,width:e.clientWidth}},e.tableColGroupNode,p("tbody",{role:"presentation"},p("tr",{role:"row"},e.axis&&p("td",{"aria-hidden":!0,className:"fc-timegrid-col fc-timegrid-axis"},p("div",{className:"fc-timegrid-col-frame"},p("div",{className:"fc-timegrid-now-indicator-container"},"number"==typeof n&&p(no,{elClasses:["fc-timegrid-now-indicator-arrow"],elStyle:{top:n},isAxis:!0,date:e.nowDate})))),e.cells.map((t,n)=>p($l,{key:t.key,elRef:this.cellElRefs.createRef(t.key),dateProfile:e.dateProfile,date:t.date,nowDate:e.nowDate,todayRange:e.todayRange,extraRenderProps:t.extraRenderProps,extraDataAttrs:t.extraDataAttrs,extraClassNames:t.extraClassNames,extraDateSpan:t.extraDateSpan,fgEventSegs:i[n],bgEventSegs:s[n],businessHourSegs:o[n],nowIndicatorSegs:a[n],dateSelectionSegs:l[n],eventDrag:c[n],eventResize:d[n],slatCoords:e.slatCoords,eventSelection:e.eventSelection,forPrint:e.forPrint}))))))}componentDidMount(){this.updateCoords()}componentDidUpdate(){this.updateCoords()}updateCoords(){let{props:e}=this;var t;e.onColCoords&&null!==e.clientWidth&&e.onColCoords(new Br(this.rootElRef.current,(t=this.cellElRefs.currentMap,e.cells.map(e=>t[e.key])),!0,!1))}}class tc extends Jr{constructor(){super(...arguments),this.processSlotOptions=nn(nc),this.state={slatCoords:null},this.handleRootEl=e=>{e?this.context.registerInteractiveComponent(this,{el:e,isHitComboAllowed:this.props.isHitComboAllowed}):this.context.unregisterInteractiveComponent(this)},this.handleScrollRequest=e=>{let{onScrollTopRequest:t}=this.props,{slatCoords:n}=this.state;if(t&&n){if(e.time){let r=n.computeTimeTop(e.time);r=Math.ceil(r),r&&(r+=1),t(r)}return!0}return!1},this.handleColCoords=e=>{this.colCoords=e},this.handleSlatCoords=e=>{this.setState({slatCoords:e}),this.props.onSlatCoords&&this.props.onSlatCoords(e)}}render(){let{props:e,state:t}=this;return p("div",{className:"fc-timegrid-body",ref:this.handleRootEl,style:{width:e.clientWidth,minWidth:e.tableMinWidth}},p(jl,{axis:e.axis,dateProfile:e.dateProfile,slatMetas:e.slatMetas,clientWidth:e.clientWidth,minHeight:e.expandRows?e.clientHeight:"",tableMinWidth:e.tableMinWidth,tableColGroupNode:e.axis?e.tableColGroupNode:null,onCoords:this.handleSlatCoords}),p(ec,{cells:e.cells,axis:e.axis,dateProfile:e.dateProfile,businessHourSegs:e.businessHourSegs,bgEventSegs:e.bgEventSegs,fgEventSegs:e.fgEventSegs,dateSelectionSegs:e.dateSelectionSegs,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,todayRange:e.todayRange,nowDate:e.nowDate,nowIndicatorSegs:e.nowIndicatorSegs,clientWidth:e.clientWidth,tableMinWidth:e.tableMinWidth,tableColGroupNode:e.tableColGroupNode,slatCoords:t.slatCoords,onColCoords:this.handleColCoords,forPrint:e.forPrint}))}componentDidMount(){this.scrollResponder=this.context.createScrollResponder(this.handleScrollRequest)}componentDidUpdate(e){this.scrollResponder.update(e.dateProfile!==this.props.dateProfile)}componentWillUnmount(){this.scrollResponder.detach()}queryHit(e,t){let{dateEnv:n,options:r}=this.context,{colCoords:i}=this,{dateProfile:s}=this.props,{slatCoords:o}=this.state,{snapDuration:a,snapsPerSlot:l}=this.processSlotOptions(this.props.slotDuration,r.snapDuration),c=i.leftToIndex(e),d=o.positions.topToIndex(t);if(null!=c&&null!=d){let e=this.props.cells[c],r=o.positions.tops[d],u=o.positions.getHeight(d),h=(t-r)/u,f=d*l+Math.floor(h*l),g=this.props.cells[c].date,p=gt(s.slotMinTime,pt(a,f)),m=n.add(g,p),v=n.add(m,a);return{dateProfile:s,dateSpan:Object.assign({range:{start:m,end:v},allDay:!1},e.extraDateSpan),dayEl:i.els[c],rect:{left:i.lefts[c],right:i.rights[c],top:r,bottom:r+u},layer:0}}return null}}function nc(e,t){let n=t||e,r=yt(e,n);return null===r&&(n=e,r=1),{snapDuration:n,snapsPerSlot:r}}class rc extends ys{sliceRange(e,t){let n=[];for(let r=0;r<t.length;r+=1){let i=mr(e,t[r]);i&&n.push({start:i.start,end:i.end,isStart:i.start.valueOf()===e.start.valueOf(),isEnd:i.end.valueOf()===e.end.valueOf(),col:r})}return n}}class ic extends Jr{constructor(){super(...arguments),this.buildDayRanges=nn(sc),this.slicer=new rc,this.timeColsRef={current:null}}render(){let{props:e,context:t}=this,{dateProfile:n,dayTableModel:r}=e,{nowIndicator:i,nextDayThreshold:s}=t.options,o=this.buildDayRanges(r,n,t.dateEnv);return p(hs,{unit:i?"minute":"day"},(a,l)=>p(tc,Object.assign({ref:this.timeColsRef},this.slicer.sliceProps(e,n,null,t,o),{forPrint:e.forPrint,axis:e.axis,dateProfile:n,slatMetas:e.slatMetas,slotDuration:e.slotDuration,cells:r.cells[0],tableColGroupNode:e.tableColGroupNode,tableMinWidth:e.tableMinWidth,clientWidth:e.clientWidth,clientHeight:e.clientHeight,expandRows:e.expandRows,nowDate:a,nowIndicatorSegs:i&&this.slicer.sliceNowDate(a,n,s,t,o),todayRange:l,onScrollTopRequest:e.onScrollTopRequest,onSlatCoords:e.onSlatCoords})))}}function sc(e,t,n){let r=[];for(let i of e.headerDates)r.push({start:n.add(i,t.slotMinTime),end:n.add(i,t.slotMaxTime)});return r}const oc=[{hours:1},{minutes:30},{minutes:15},{seconds:30},{seconds:15}];function ac(e,t,n,r,i){let s=new Date(0),o=e,a=ht(0),l=n||function(e){let t,n,r;for(t=oc.length-1;t>=0;t-=1)if(n=ht(oc[t]),r=yt(n,e),null!==r&&r>1)return n;return e}(r),c=[];for(;vt(o)<vt(t);){let e=i.add(s,o),t=null!==yt(a,l);c.push({date:e,time:o,key:e.toISOString(),isoTimeStr:en(e),isLabeled:t}),o=gt(o,r),a=gt(a,r)}return c}function lc(e,t){let n=new ms(e.renderRange,t);return new vs(n,!1)}var cc=Po({name:"@fullcalendar/timegrid",initialView:"timeGridWeek",optionRefiners:{allDaySlot:Boolean},views:{timeGrid:{component:class extends Nl{constructor(){super(...arguments),this.buildTimeColsModel=nn(lc),this.buildSlatMetas=nn(ac)}render(){let{options:e,dateEnv:t,dateProfileGenerator:n}=this.context,{props:r}=this,{dateProfile:i}=r,s=this.buildTimeColsModel(i,n),o=this.allDaySplitter.splitProps(r),a=this.buildSlatMetas(i.slotMinTime,i.slotMaxTime,e.slotLabelInterval,e.slotDuration,t),{dayMinWidth:l}=e,c=!l,d=l,u=e.dayHeaders&&p(gs,{dates:s.headerDates,dateProfile:i,datesRepDistinctDays:!0,renderIntro:c?this.renderHeadAxis:null}),h=!1!==e.allDaySlot&&(t=>p(Al,Object.assign({},o.allDay,{dateProfile:i,dayTableModel:s,nextDayThreshold:e.nextDayThreshold,tableMinWidth:t.tableMinWidth,colGroupNode:t.tableColGroupNode,renderRowIntro:c?this.renderTableRowAxis:null,showWeekNumbers:!1,expandRows:!1,headerAlignElRef:this.headerElRef,clientWidth:t.clientWidth,clientHeight:t.clientHeight,forPrint:r.forPrint},this.getAllDayMaxEventProps()))),f=t=>p(ic,Object.assign({},o.timed,{dayTableModel:s,dateProfile:i,axis:c,slotDuration:e.slotDuration,slatMetas:a,forPrint:r.forPrint,tableColGroupNode:t.tableColGroupNode,tableMinWidth:t.tableMinWidth,clientWidth:t.clientWidth,clientHeight:t.clientHeight,onSlatCoords:this.handleSlatCoords,expandRows:t.expandRows,onScrollTopRequest:this.handleScrollTopRequest}));return d?this.renderHScrollLayout(u,h,f,s.colCnt,l,a,this.state.slatCoords):this.renderSimpleLayout(u,h,f)}},usesMinMaxTime:!0,allDaySlot:!0,slotDuration:"00:30:00",slotEventOverlap:!0},timeGridDay:{type:"timeGrid",duration:{days:1}},timeGridWeek:{type:"timeGrid",duration:{weeks:1}}}});xe(':root{--fc-list-event-dot-width:10px;--fc-list-event-hover-bg-color:#f5f5f5}.fc-theme-standard .fc-list{border:1px solid var(--fc-border-color)}.fc .fc-list-empty{align-items:center;background-color:var(--fc-neutral-bg-color);display:flex;height:100%;justify-content:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{border-style:hidden;width:100%}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{background:var(--fc-page-bg-color);position:sticky;top:0}.fc .fc-list-table thead{left:-10000px;position:absolute}.fc .fc-list-table tbody>tr:first-child th{border-top:0}.fc .fc-list-table th{padding:0}.fc .fc-list-day-cushion,.fc .fc-list-table td{padding:8px 14px}.fc .fc-list-day-cushion:after{clear:both;content:"";display:table}.fc-theme-standard .fc-list-day-cushion{background-color:var(--fc-neutral-bg-color)}.fc-direction-ltr .fc-list-day-text,.fc-direction-rtl .fc-list-day-side-text{float:left}.fc-direction-ltr .fc-list-day-side-text,.fc-direction-rtl .fc-list-day-text{float:right}.fc-direction-ltr .fc-list-table .fc-list-event-graphic{padding-right:0}.fc-direction-rtl .fc-list-table .fc-list-event-graphic{padding-left:0}.fc .fc-list-event.fc-event-forced-url{cursor:pointer}.fc .fc-list-event:hover td{background-color:var(--fc-list-event-hover-bg-color)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{border:calc(var(--fc-list-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-list-event-dot-width)/2);box-sizing:content-box;display:inline-block;height:0;width:0}.fc .fc-list-event-title a{color:inherit;text-decoration:none}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline}');class dc extends Xr{constructor(){super(...arguments),this.state={textId:Ue()}}render(){let{theme:e,dateEnv:t,options:n,viewApi:r}=this.context,{cellId:i,dayDate:s,todayRange:o}=this.props,{textId:a}=this.state,l=Sr(s,o),c=n.listDayFormat?t.format(s,n.listDayFormat):"",d=n.listDaySideFormat?t.format(s,n.listDaySideFormat):"",u=Object.assign({date:t.toDate(s),view:r,textId:a,text:c,sideText:d,navLinkAttrs:Cr(this.context,s),sideNavLinkAttrs:Cr(this.context,s,"day",!1)},l);return p(as,{elTag:"tr",elClasses:["fc-list-day",...Ar(l,e)],elAttrs:{"data-date":Jt(s)},renderProps:u,generatorName:"dayHeaderContent",customGenerator:n.dayHeaderContent,defaultGenerator:uc,classNameGenerator:n.dayHeaderClassNames,didMount:n.dayHeaderDidMount,willUnmount:n.dayHeaderWillUnmount},t=>p("th",{scope:"colgroup",colSpan:3,id:i,"aria-labelledby":a},p(t,{elTag:"div",elClasses:["fc-list-day-cushion",e.getClass("tableCellShaded")]})))}}function uc(e){return p(y,null,e.text&&p("a",Object.assign({id:e.textId,className:"fc-list-day-text"},e.navLinkAttrs),e.text),e.sideText&&p("a",Object.assign({"aria-hidden":!0,className:"fc-list-day-side-text"},e.sideNavLinkAttrs),e.sideText))}const hc=yn({hour:"numeric",minute:"2-digit",meridiem:"short"});class fc extends Xr{render(){let{props:e,context:t}=this,{options:n}=t,{seg:r,timeHeaderId:i,eventHeaderId:s,dateHeaderId:o}=e,a=n.eventTimeFormat||hc;return p(Ks,Object.assign({},e,{elTag:"tr",elClasses:["fc-list-event",r.eventRange.def.url&&"fc-event-forced-url"],defaultGenerator:()=>function(e,t){let n=Ri(e,t);return p("a",Object.assign({},n),e.eventRange.def.title)}(r,t),seg:r,timeText:"",disableDragging:!0,disableResizing:!0}),(e,n)=>p(y,null,function(e,t,n,r,i){let{options:s}=n;if(!1!==s.displayEventTime){let o,a=e.eventRange.def,l=e.eventRange.instance,c=!1;if(a.allDay?c=!0:nr(e.eventRange.range)?e.isStart?o=Ai(e,t,n,null,null,l.range.start,e.end):e.isEnd?o=Ai(e,t,n,null,null,e.start,l.range.end):c=!0:o=Ai(e,t,n),c){let e={text:n.options.allDayText,view:n.viewApi};return p(as,{elTag:"td",elClasses:["fc-list-event-time"],elAttrs:{headers:`${r} ${i}`},renderProps:e,generatorName:"allDayContent",customGenerator:s.allDayContent,defaultGenerator:gc,classNameGenerator:s.allDayClassNames,didMount:s.allDayDidMount,willUnmount:s.allDayWillUnmount})}return p("td",{className:"fc-list-event-time"},o)}return null}(r,a,t,i,o),p("td",{"aria-hidden":!0,className:"fc-list-event-graphic"},p("span",{className:"fc-list-event-dot",style:{borderColor:n.borderColor||n.backgroundColor}})),p(e,{elTag:"td",elClasses:["fc-list-event-title"],elAttrs:{headers:`${s} ${o}`}})))}}function gc(e){return e.text}function pc(e){return e.text}function mc(e){let t=Lt(e.renderRange.start),n=e.renderRange.end,r=[],i=[];for(;t<n;)r.push(t),i.push({start:t,end:Pt(t,1)}),t=Pt(t,1);return{dayDates:r,dayRanges:i}}function vc(e){return!1===e?null:yn(e)}var yc=Po({name:"@fullcalendar/list",optionRefiners:{listDayFormat:vc,listDaySideFormat:vc,noEventsClassNames:Tn,noEventsContent:Tn,noEventsDidMount:Tn,noEventsWillUnmount:Tn},views:{list:{component:class extends Jr{constructor(){super(...arguments),this.computeDateVars=nn(mc),this.eventStoreToSegs=nn(this._eventStoreToSegs),this.state={timeHeaderId:Ue(),eventHeaderId:Ue(),dateHeaderIdRoot:Ue()},this.setRootEl=e=>{e?this.context.registerInteractiveComponent(this,{el:e}):this.context.unregisterInteractiveComponent(this)}}render(){let{props:e,context:t}=this,{dayDates:n,dayRanges:r}=this.computeDateVars(e.dateProfile),i=this.eventStoreToSegs(e.eventStore,e.eventUiBases,r);return p(So,{elRef:this.setRootEl,elClasses:["fc-list",t.theme.getClass("table"),!1!==t.options.stickyHeaderDates?"fc-list-sticky":""],viewSpec:t.viewSpec},p(Bs,{liquid:!e.isHeightAuto,overflowX:e.isHeightAuto?"visible":"hidden",overflowY:e.isHeightAuto?"visible":"auto"},i.length>0?this.renderSegList(i,n):this.renderEmptyMessage()))}renderEmptyMessage(){let{options:e,viewApi:t}=this.context,n={text:e.noEventsText,view:t};return p(as,{elTag:"div",elClasses:["fc-list-empty"],renderProps:n,generatorName:"noEventsContent",customGenerator:e.noEventsContent,defaultGenerator:pc,classNameGenerator:e.noEventsClassNames,didMount:e.noEventsDidMount,willUnmount:e.noEventsWillUnmount},e=>p(e,{elTag:"div",elClasses:["fc-list-empty-cushion"]}))}renderSegList(e,t){let{theme:n,options:r}=this.context,{timeHeaderId:i,eventHeaderId:s,dateHeaderIdRoot:o}=this.state,a=function(e){let t,n,r=[];for(t=0;t<e.length;t+=1)n=e[t],(r[n.dayIndex]||(r[n.dayIndex]=[])).push(n);return r}(e);return p(hs,{unit:"day"},(e,l)=>{let c=[];for(let n=0;n<a.length;n+=1){let d=a[n];if(d){let a=Jt(t[n]),u=o+"-"+a;c.push(p(dc,{key:a,cellId:u,dayDate:t[n],todayRange:l})),d=vi(d,r.eventOrder);for(let t of d)c.push(p(fc,Object.assign({key:a+":"+t.eventRange.instance.instanceId,seg:t,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:!1,timeHeaderId:i,eventHeaderId:s,dateHeaderId:u},Di(t,l,e))))}}return p("table",{className:"fc-list-table "+n.getClass("table")},p("thead",null,p("tr",null,p("th",{scope:"col",id:i},r.timeHint),p("th",{scope:"col","aria-hidden":!0}),p("th",{scope:"col",id:s},r.eventHint))),p("tbody",null,c))})}_eventStoreToSegs(e,t,n){return this.eventRangesToSegs(ui(e,t,this.props.dateProfile.activeRange,this.context.options.nextDayThreshold).fg,n)}eventRangesToSegs(e,t){let n=[];for(let r of e)n.push(...this.eventRangeToSegs(r,t));return n}eventRangeToSegs(e,t){let n,r,i,{dateEnv:s}=this.context,{nextDayThreshold:o}=this.context.options,a=e.range,l=e.def.allDay,c=[];for(n=0;n<t.length;n+=1)if(r=mr(a,t[n]),r&&(i={component:this,eventRange:e,start:r.start,end:r.end,isStart:e.isStart&&r.start.valueOf()===a.start.valueOf(),isEnd:e.isEnd&&r.end.valueOf()===a.end.valueOf(),dayIndex:n},c.push(i),!i.isEnd&&!l&&n+1<t.length&&a.end<s.add(t[n+1].start,o))){i.end=a.end,i.isEnd=!0;break}return c}},buttonTextKey:"list",listDayFormat:{month:"long",day:"numeric",year:"numeric"}},listDay:{type:"list",duration:{days:1},listDayFormat:{weekday:"long"}},listWeek:{type:"list",duration:{weeks:1},listDayFormat:{weekday:"long"},listDaySideFormat:{month:"long",day:"numeric",year:"numeric"}},listMonth:{type:"list",duration:{month:1},listDaySideFormat:{weekday:"long"}},listYear:{type:"list",duration:{year:1},listDaySideFormat:{weekday:"long"}}}});class bc extends Jr{constructor(){super(...arguments),this.buildDayTableModel=nn(Rl),this.slicer=new Sl,this.state={labelId:Ue()}}render(){const{props:e,state:t,context:n}=this,{dateProfile:r,forPrint:i}=e,{options:s}=n,o=this.buildDayTableModel(r,n.dateProfileGenerator),a=this.slicer.sliceProps(e,r,s.nextDayThreshold,n,o),l=null!=e.tableWidth?e.tableWidth/s.aspectRatio:null,c=o.cells.length,d=null!=l?l/c:null;return p("div",{ref:e.elRef,"data-date":e.isoDateStr,className:"fc-multimonth-month",style:{width:e.width},role:"grid","aria-labelledby":t.labelId},p("div",{className:"fc-multimonth-header",style:{marginBottom:d},role:"presentation"},p("div",{className:"fc-multimonth-title",id:t.labelId},n.dateEnv.format(e.dateProfile.currentRange.start,e.titleFormat)),p("table",{className:["fc-multimonth-header-table",n.theme.getClass("table")].join(" "),role:"presentation"},p("thead",{role:"rowgroup"},p(gs,{dateProfile:e.dateProfile,dates:o.headerDates,datesRepDistinctDays:!1})))),p("div",{className:["fc-multimonth-daygrid","fc-daygrid","fc-daygrid-body",!i&&"fc-daygrid-body-balanced",i&&"fc-daygrid-body-unbalanced",i&&"fc-daygrid-body-natural"].join(" "),style:{marginTop:-d}},p("table",{className:["fc-multimonth-daygrid-table",n.theme.getClass("table")].join(" "),style:{height:i?"":l},role:"presentation"},p("tbody",{role:"rowgroup"},p(yl,Object.assign({},a,{dateProfile:r,cells:o.cells,eventSelection:e.eventSelection,dayMaxEvents:!i,dayMaxEventRows:!i,showWeekNumbers:s.weekNumbers,clientWidth:e.clientWidth,clientHeight:e.clientHeight,forPrint:i}))))))}}const Ec=ht(1,"month");function Sc(e,t,n,r,i){const{start:s,end:o}=t.currentRange;let a=s;const l=[];for(;a.valueOf()<o.valueOf();){const s=n.add(a,Ec),o={start:e.skipHiddenDays(a),end:e.skipHiddenDays(s,-1,!0)};let c=wl({currentRange:o,snapToWeek:!0,fixedWeekCount:r,dateEnv:n});c={start:e.skipHiddenDays(c.start),end:e.skipHiddenDays(c.end,-1,!0)};const d=t.activeRange?mr(t.activeRange,i?c:o):null;l.push({currentDate:t.currentDate,isValid:t.isValid,validRange:t.validRange,renderRange:c,activeRange:d,currentRange:o,currentRangeUnit:"month",isRangeAllDay:!0,dateIncrement:t.dateIncrement,slotMinTime:t.slotMaxTime,slotMaxTime:t.slotMinTime}),a=s}return l}const Ac=yn({year:"numeric",month:"long"}),Dc=yn({month:"long"});function wc(e,t){return e||(t[0].currentRange.start.getUTCFullYear()!==t[t.length-1].currentRange.start.getUTCFullYear()?Ac:Dc)}const Cc={multiMonthTitleFormat:yn,multiMonthMaxColumns:Number,multiMonthMinWidth:Number};xe(".fc .fc-multimonth{border:1px solid var(--fc-border-color);display:flex;flex-wrap:wrap;overflow-x:hidden;overflow-y:auto}.fc .fc-multimonth-title{font-size:1.2em;font-weight:700;padding:1em 0;text-align:center}.fc .fc-multimonth-daygrid{background:var(--fc-page-bg-color)}.fc .fc-multimonth-daygrid-table,.fc .fc-multimonth-header-table{table-layout:fixed;width:100%}.fc .fc-multimonth-daygrid-table{border-top-style:hidden!important}.fc .fc-multimonth-singlecol .fc-multimonth{position:relative}.fc .fc-multimonth-singlecol .fc-multimonth-header{background:var(--fc-page-bg-color);position:relative;top:0;z-index:2}.fc .fc-multimonth-singlecol .fc-multimonth-daygrid{position:relative;z-index:1}.fc .fc-multimonth-singlecol .fc-multimonth-daygrid-table,.fc .fc-multimonth-singlecol .fc-multimonth-header-table{border-left-style:hidden;border-right-style:hidden}.fc .fc-multimonth-singlecol .fc-multimonth-month:last-child .fc-multimonth-daygrid-table{border-bottom-style:hidden}.fc .fc-multimonth-multicol{line-height:1}.fc .fc-multimonth-multicol .fc-multimonth-month{padding:0 1.2em 1.2em}.fc .fc-multimonth-multicol .fc-daygrid-more-link{border:1px solid var(--fc-event-border-color);display:block;float:none;padding:1px}.fc .fc-multimonth-compact{line-height:1}.fc .fc-multimonth-compact .fc-multimonth-daygrid-table,.fc .fc-multimonth-compact .fc-multimonth-header-table{font-size:.9em}.fc-media-screen .fc-multimonth-singlecol .fc-multimonth-header{position:sticky}.fc-media-print .fc-multimonth{overflow:visible}");var Rc=Po({name:"@fullcalendar/multimonth",initialView:"multiMonthYear",optionRefiners:Cc,views:{multiMonth:{component:class extends Jr{constructor(){super(...arguments),this.splitDateProfileByMonth=nn(Sc),this.buildMonthFormat=nn(wc),this.scrollElRef={current:null},this.firstMonthElRef={current:null},this.needsScrollReset=!1,this.handleSizing=e=>{e&&this.updateSize()}}render(){const{context:e,props:t,state:n}=this,{options:r}=e,{clientWidth:i,clientHeight:s}=n,o=n.monthHPadding||0,a=Math.min(null!=i?Math.floor(i/(r.multiMonthMinWidth+o)):1,r.multiMonthMaxColumns)||1,l=100/a+"%",c=null==i?null:i/a-o,d=null!=i&&1===a,u=this.splitDateProfileByMonth(e.dateProfileGenerator,t.dateProfile,e.dateEnv,!d&&r.fixedWeekCount,r.showNonCurrentDates),h=this.buildMonthFormat(r.multiMonthTitleFormat,u),f=["fc-multimonth",d?"fc-multimonth-singlecol":"fc-multimonth-multicol",null!=c&&c<400?"fc-multimonth-compact":""];return p(So,{elRef:this.scrollElRef,elClasses:f,viewSpec:e.viewSpec},u.map((e,n)=>{const r=Kt(e.currentRange.start);return p(bc,Object.assign({},t,{key:r,isoDateStr:r,elRef:0===n?this.firstMonthElRef:void 0,titleFormat:h,dateProfile:e,width:l,tableWidth:c,clientWidth:i,clientHeight:s}))}))}componentDidMount(){this.updateSize(),this.context.addResizeHandler(this.handleSizing),this.requestScrollReset()}componentDidUpdate(e){Rt(e,this.props)||this.handleSizing(!1),e.dateProfile!==this.props.dateProfile?this.requestScrollReset():this.flushScrollReset()}componentWillUnmount(){this.context.removeResizeHandler(this.handleSizing)}updateSize(){const e=this.scrollElRef.current,t=this.firstMonthElRef.current;e&&this.setState({clientWidth:e.clientWidth,clientHeight:e.clientHeight}),t&&e&&null==this.state.monthHPadding&&this.setState({monthHPadding:e.clientWidth-t.firstChild.offsetWidth})}requestScrollReset(){this.needsScrollReset=!0,this.flushScrollReset()}flushScrollReset(){if(this.needsScrollReset&&null!=this.state.monthHPadding){const{currentDate:e}=this.props.dateProfile,t=this.scrollElRef.current,n=t.querySelector(`[data-date="${Kt(e)}"]`);t.scrollTop=n.getBoundingClientRect().top-this.firstMonthElRef.current.getBoundingClientRect().top,this.needsScrollReset=!1}}shouldComponentUpdate(){return!0}},dateProfileGeneratorClass:Dl,multiMonthMinWidth:350,multiMonthMaxColumns:3},multiMonthYear:{type:"multiMonth",duration:{years:1},fixedWeekCount:!0,showNonCurrentDates:!1}}});return ca.push(el,xl,cc,yc,Rc),e.Calendar=class extends Ro{constructor(e,t={}){super(),this.isRendering=!1,this.isRendered=!1,this.currentClassNames=[],this.customContentRenderId=0,this.handleAction=e=>{switch(e.type){case"SET_EVENT_DRAG":case"SET_EVENT_RESIZE":this.renderRunner.tryDrain()}},this.handleData=e=>{this.currentData=e,this.renderRunner.request(e.calendarOptions.rerenderDelay)},this.handleRenderRequest=()=>{if(this.isRendering){this.isRendered=!0;let{currentData:e}=this;Fr(()=>{U(p(Ji,{options:e.calendarOptions,theme:e.theme,emitter:e.emitter},(t,n,r,i)=>(this.setClassNames(t),this.setHeight(n),p(os.Provider,{value:this.customContentRenderId},p(_a,Object.assign({isHeightAuto:r,forPrint:i},e))))),this.el)})}else this.isRendered&&(this.isRendered=!1,U(null,this.el),this.setClassNames([]),this.setHeight(""))},function(e){e.isConnected&&_e(e.getRootNode())}(e),this.el=e,this.renderRunner=new Ps(this.handleRenderRequest),new ha({optionOverrides:t,calendarApi:this,onAction:this.handleAction,onData:this.handleData})}render(){let e=this.isRendering;e?this.customContentRenderId+=1:this.isRendering=!0,this.renderRunner.request(),e&&this.updateSize()}destroy(){this.isRendering&&(this.isRendering=!1,this.renderRunner.request())}updateSize(){Fr(()=>{super.updateSize()})}batchRendering(e){this.renderRunner.pause("batchRendering"),e(),this.renderRunner.resume("batchRendering")}pauseRendering(){this.renderRunner.pause("pauseRendering")}resumeRendering(){this.renderRunner.resume("pauseRendering",!0)}resetOptions(e,t){this.currentDataManager.resetOptions(e,t)}setClassNames(e){if(!It(e,this.currentClassNames)){let{classList:t}=this.el;for(let e of this.currentClassNames)t.remove(e);for(let n of e)t.add(n);this.currentClassNames=e}}setHeight(e){Be(this.el,"height",e)}},e.Draggable=class{constructor(e,t={}){this.handlePointerDown=e=>{let{dragging:t}=this,{minDistance:n,longPressDelay:r}=this.settings;t.minDistance=null!=n?n:e.isTouch?0:En.eventDragMinDistance,t.delay=e.isTouch?null!=r?r:En.longPressDelay:0},this.handleDragStart=e=>{e.isTouch&&this.dragging.delay&&e.subjectEl.classList.contains("fc-event")&&this.dragging.mirror.getMirrorEl().classList.add("fc-event-selected")},this.settings=t;let n=this.dragging=new Fa(e);n.touchScrollAllowed=!1,null!=t.itemSelector&&(n.pointer.selector=t.itemSelector),null!=t.appendTo&&(n.mirror.parentNode=t.appendTo),n.emitter.on("pointerdown",this.handlePointerDown),n.emitter.on("dragstart",this.handleDragStart),new Ja(n,t.eventData)}destroy(){this.dragging.destroy()}},e.Internal=xo,e.JsonRequestError=Os,e.Preact=_o,e.ThirdPartyDraggable=class{constructor(e,t){let n=document;e===document||e instanceof Element?(n=e,t=t||{}):t=e||{};let r=this.dragging=new Ka(n);"string"==typeof t.itemSelector?r.pointer.selector=t.itemSelector:n===document&&(r.pointer.selector="[data-event]"),"string"==typeof t.mirrorSelector&&(r.mirrorSelector=t.mirrorSelector),new Ja(r,t.eventData)}destroy(){this.dragging.destroy()}},e.createPlugin=Po,e.formatDate=function(e,t={}){let n=Ma(t),r=yn(t),i=n.createMarkerMeta(e);return i?n.format(i.marker,r,{forcedTzo:i.forcedTzo}):""},e.formatRange=function(e,t,n){let r=Ma("object"==typeof n&&n?n:{}),i=yn(n),s=r.createMarkerMeta(e),o=r.createMarkerMeta(t);return s&&o?r.formatRange(s.marker,o.marker,i,{forcedStartTzo:s.forcedTzo,forcedEndTzo:o.forcedTzo,isEndExclusive:n.isEndExclusive,defaultSeparator:En.defaultRangeSeparator}):""},e.globalLocales=To,e.globalPlugins=ca,e.sliceEvents=function(e,t){return ui(e.eventStore,e.eventUiBases,e.dateProfile.activeRange,t?e.nextDayThreshold:null).fg},e.version="6.1.8",Object.defineProperty(e,"__esModule",{value:!0}),e}({}); \ No newline at end of file
diff --git a/library/fullcalendar/examples/background-events.html b/library/fullcalendar/examples/background-events.html
index fd36fde4c..911e0b3b6 100644
--- a/library/fullcalendar/examples/background-events.html
+++ b/library/fullcalendar/examples/background-events.html
@@ -14,7 +14,7 @@
center: 'title',
right: 'dayGridMonth,timeGridWeek,timeGridDay,listMonth'
},
- initialDate: '2020-09-12',
+ initialDate: '2023-01-12',
navLinks: true, // can click day/week names to navigate views
businessHours: true, // display business hours
editable: true,
@@ -22,50 +22,50 @@
events: [
{
title: 'Business Lunch',
- start: '2020-09-03T13:00:00',
+ start: '2023-01-03T13:00:00',
constraint: 'businessHours'
},
{
title: 'Meeting',
- start: '2020-09-13T11:00:00',
+ start: '2023-01-13T11:00:00',
constraint: 'availableForMeeting', // defined below
color: '#257e4a'
},
{
title: 'Conference',
- start: '2020-09-18',
- end: '2020-09-20'
+ start: '2023-01-18',
+ end: '2023-01-20'
},
{
title: 'Party',
- start: '2020-09-29T20:00:00'
+ start: '2023-01-29T20:00:00'
},
// areas where "Meeting" must be dropped
{
groupId: 'availableForMeeting',
- start: '2020-09-11T10:00:00',
- end: '2020-09-11T16:00:00',
+ start: '2023-01-11T10:00:00',
+ end: '2023-01-11T16:00:00',
display: 'background'
},
{
groupId: 'availableForMeeting',
- start: '2020-09-13T10:00:00',
- end: '2020-09-13T16:00:00',
+ start: '2023-01-13T10:00:00',
+ end: '2023-01-13T16:00:00',
display: 'background'
},
// red areas where no events can be dropped
{
- start: '2020-09-24',
- end: '2020-09-28',
+ start: '2023-01-24',
+ end: '2023-01-28',
overlap: false,
display: 'background',
color: '#ff9f89'
},
{
- start: '2020-09-06',
- end: '2020-09-08',
+ start: '2023-01-06',
+ end: '2023-01-08',
overlap: false,
display: 'background',
color: '#ff9f89'
diff --git a/library/fullcalendar/examples/daygrid-views.html b/library/fullcalendar/examples/daygrid-views.html
index 9c20c5f0f..9dafe439d 100644
--- a/library/fullcalendar/examples/daygrid-views.html
+++ b/library/fullcalendar/examples/daygrid-views.html
@@ -14,64 +14,64 @@
center: 'title',
right: 'dayGridMonth,dayGridWeek,dayGridDay'
},
- initialDate: '2020-09-12',
+ initialDate: '2023-01-12',
navLinks: true, // can click day/week names to navigate views
editable: true,
dayMaxEvents: true, // allow "more" link when too many events
events: [
{
title: 'All Day Event',
- start: '2020-09-01'
+ start: '2023-01-01'
},
{
title: 'Long Event',
- start: '2020-09-07',
- end: '2020-09-10'
+ start: '2023-01-07',
+ end: '2023-01-10'
},
{
groupId: 999,
title: 'Repeating Event',
- start: '2020-09-09T16:00:00'
+ start: '2023-01-09T16:00:00'
},
{
groupId: 999,
title: 'Repeating Event',
- start: '2020-09-16T16:00:00'
+ start: '2023-01-16T16:00:00'
},
{
title: 'Conference',
- start: '2020-09-11',
- end: '2020-09-13'
+ start: '2023-01-11',
+ end: '2023-01-13'
},
{
title: 'Meeting',
- start: '2020-09-12T10:30:00',
- end: '2020-09-12T12:30:00'
+ start: '2023-01-12T10:30:00',
+ end: '2023-01-12T12:30:00'
},
{
title: 'Lunch',
- start: '2020-09-12T12:00:00'
+ start: '2023-01-12T12:00:00'
},
{
title: 'Meeting',
- start: '2020-09-12T14:30:00'
+ start: '2023-01-12T14:30:00'
},
{
title: 'Happy Hour',
- start: '2020-09-12T17:30:00'
+ start: '2023-01-12T17:30:00'
},
{
title: 'Dinner',
- start: '2020-09-12T20:00:00'
+ start: '2023-01-12T20:00:00'
},
{
title: 'Birthday Party',
- start: '2020-09-13T07:00:00'
+ start: '2023-01-13T07:00:00'
},
{
title: 'Click for Google',
url: 'http://google.com/',
- start: '2020-09-28'
+ start: '2023-01-28'
}
]
});
diff --git a/library/fullcalendar/examples/external-dragging-2cals.html b/library/fullcalendar/examples/external-dragging-2cals.html
index a0744b24c..066685d47 100644
--- a/library/fullcalendar/examples/external-dragging-2cals.html
+++ b/library/fullcalendar/examples/external-dragging-2cals.html
@@ -11,17 +11,17 @@
var srcCalendar = new FullCalendar.Calendar(srcCalendarEl, {
editable: true,
- initialDate: '2020-09-12',
+ initialDate: '2023-01-12',
events: [
{
title: 'event1',
- start: '2020-09-11T10:00:00',
- end: '2020-09-11T16:00:00'
+ start: '2023-01-11T10:00:00',
+ end: '2023-01-11T16:00:00'
},
{
title: 'event2',
- start: '2020-09-13T10:00:00',
- end: '2020-09-13T16:00:00'
+ start: '2023-01-13T10:00:00',
+ end: '2023-01-13T16:00:00'
}
],
eventLeave: function(info) {
@@ -30,7 +30,7 @@
});
var destCalendar = new FullCalendar.Calendar(destCalendarEl, {
- initialDate: '2020-09-12',
+ initialDate: '2023-01-12',
editable: true,
droppable: true, // will let it receive events!
eventReceive: function(info) {
diff --git a/library/fullcalendar/examples/full-height.html b/library/fullcalendar/examples/full-height.html
index 89b8f7a60..18b55f8c4 100644
--- a/library/fullcalendar/examples/full-height.html
+++ b/library/fullcalendar/examples/full-height.html
@@ -19,7 +19,7 @@
right: 'dayGridMonth,timeGridWeek,timeGridDay,listWeek'
},
initialView: 'dayGridMonth',
- initialDate: '2020-09-12',
+ initialDate: '2023-01-12',
navLinks: true, // can click day/week names to navigate views
editable: true,
selectable: true,
@@ -28,57 +28,57 @@
events: [
{
title: 'All Day Event',
- start: '2020-09-01',
+ start: '2023-01-01',
},
{
title: 'Long Event',
- start: '2020-09-07',
- end: '2020-09-10'
+ start: '2023-01-07',
+ end: '2023-01-10'
},
{
groupId: 999,
title: 'Repeating Event',
- start: '2020-09-09T16:00:00'
+ start: '2023-01-09T16:00:00'
},
{
groupId: 999,
title: 'Repeating Event',
- start: '2020-09-16T16:00:00'
+ start: '2023-01-16T16:00:00'
},
{
title: 'Conference',
- start: '2020-09-11',
- end: '2020-09-13'
+ start: '2023-01-11',
+ end: '2023-01-13'
},
{
title: 'Meeting',
- start: '2020-09-12T10:30:00',
- end: '2020-09-12T12:30:00'
+ start: '2023-01-12T10:30:00',
+ end: '2023-01-12T12:30:00'
},
{
title: 'Lunch',
- start: '2020-09-12T12:00:00'
+ start: '2023-01-12T12:00:00'
},
{
title: 'Meeting',
- start: '2020-09-12T14:30:00'
+ start: '2023-01-12T14:30:00'
},
{
title: 'Happy Hour',
- start: '2020-09-12T17:30:00'
+ start: '2023-01-12T17:30:00'
},
{
title: 'Dinner',
- start: '2020-09-12T20:00:00'
+ start: '2023-01-12T20:00:00'
},
{
title: 'Birthday Party',
- start: '2020-09-13T07:00:00'
+ start: '2023-01-13T07:00:00'
},
{
title: 'Click for Google',
url: 'http://google.com/',
- start: '2020-09-28'
+ start: '2023-01-28'
}
]
});
diff --git a/library/fullcalendar/examples/list-sticky-header.html b/library/fullcalendar/examples/list-sticky-header.html
index dacd93b01..487af317e 100644
--- a/library/fullcalendar/examples/list-sticky-header.html
+++ b/library/fullcalendar/examples/list-sticky-header.html
@@ -26,7 +26,7 @@
},
initialView: 'listYear',
- initialDate: '2020-09-12',
+ initialDate: '2023-01-12',
navLinks: true, // can click day/week names to navigate views
editable: true,
events: [
diff --git a/library/fullcalendar/examples/list-views.html b/library/fullcalendar/examples/list-views.html
index 43094334d..cb219d03a 100644
--- a/library/fullcalendar/examples/list-views.html
+++ b/library/fullcalendar/examples/list-views.html
@@ -24,64 +24,64 @@
},
initialView: 'listWeek',
- initialDate: '2020-09-12',
+ initialDate: '2023-01-12',
navLinks: true, // can click day/week names to navigate views
editable: true,
dayMaxEvents: true, // allow "more" link when too many events
events: [
{
title: 'All Day Event',
- start: '2020-09-01'
+ start: '2023-01-01'
},
{
title: 'Long Event',
- start: '2020-09-07',
- end: '2020-09-10'
+ start: '2023-01-07',
+ end: '2023-01-10'
},
{
groupId: 999,
title: 'Repeating Event',
- start: '2020-09-09T16:00:00'
+ start: '2023-01-09T16:00:00'
},
{
groupId: 999,
title: 'Repeating Event',
- start: '2020-09-16T16:00:00'
+ start: '2023-01-16T16:00:00'
},
{
title: 'Conference',
- start: '2020-09-11',
- end: '2020-09-13'
+ start: '2023-01-11',
+ end: '2023-01-13'
},
{
title: 'Meeting',
- start: '2020-09-12T10:30:00',
- end: '2020-09-12T12:30:00'
+ start: '2023-01-12T10:30:00',
+ end: '2023-01-12T12:30:00'
},
{
title: 'Lunch',
- start: '2020-09-12T12:00:00'
+ start: '2023-01-12T12:00:00'
},
{
title: 'Meeting',
- start: '2020-09-12T14:30:00'
+ start: '2023-01-12T14:30:00'
},
{
title: 'Happy Hour',
- start: '2020-09-12T17:30:00'
+ start: '2023-01-12T17:30:00'
},
{
title: 'Dinner',
- start: '2020-09-12T20:00:00'
+ start: '2023-01-12T20:00:00'
},
{
title: 'Birthday Party',
- start: '2020-09-13T07:00:00'
+ start: '2023-01-13T07:00:00'
},
{
title: 'Click for Google',
url: 'http://google.com/',
- start: '2020-09-28'
+ start: '2023-01-28'
}
]
});
diff --git a/library/fullcalendar/examples/month-view.html b/library/fullcalendar/examples/month-view.html
index a285ff949..dbd886122 100644
--- a/library/fullcalendar/examples/month-view.html
+++ b/library/fullcalendar/examples/month-view.html
@@ -9,7 +9,7 @@
var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
- initialDate: '2020-09-12',
+ initialDate: '2023-01-12',
editable: true,
selectable: true,
businessHours: true,
@@ -17,57 +17,57 @@
events: [
{
title: 'All Day Event',
- start: '2020-09-01'
+ start: '2023-01-01'
},
{
title: 'Long Event',
- start: '2020-09-07',
- end: '2020-09-10'
+ start: '2023-01-07',
+ end: '2023-01-10'
},
{
groupId: 999,
title: 'Repeating Event',
- start: '2020-09-09T16:00:00'
+ start: '2023-01-09T16:00:00'
},
{
groupId: 999,
title: 'Repeating Event',
- start: '2020-09-16T16:00:00'
+ start: '2023-01-16T16:00:00'
},
{
title: 'Conference',
- start: '2020-09-11',
- end: '2020-09-13'
+ start: '2023-01-11',
+ end: '2023-01-13'
},
{
title: 'Meeting',
- start: '2020-09-12T10:30:00',
- end: '2020-09-12T12:30:00'
+ start: '2023-01-12T10:30:00',
+ end: '2023-01-12T12:30:00'
},
{
title: 'Lunch',
- start: '2020-09-12T12:00:00'
+ start: '2023-01-12T12:00:00'
},
{
title: 'Meeting',
- start: '2020-09-12T14:30:00'
+ start: '2023-01-12T14:30:00'
},
{
title: 'Happy Hour',
- start: '2020-09-12T17:30:00'
+ start: '2023-01-12T17:30:00'
},
{
title: 'Dinner',
- start: '2020-09-12T20:00:00'
+ start: '2023-01-12T20:00:00'
},
{
title: 'Birthday Party',
- start: '2020-09-13T07:00:00'
+ start: '2023-01-13T07:00:00'
},
{
title: 'Click for Google',
url: 'http://google.com/',
- start: '2020-09-28'
+ start: '2023-01-28'
}
]
});
diff --git a/library/fullcalendar/examples/multimonth-view.html b/library/fullcalendar/examples/multimonth-view.html
new file mode 100644
index 000000000..feb9d23f5
--- /dev/null
+++ b/library/fullcalendar/examples/multimonth-view.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset='utf-8' />
+<script src='../dist/index.global.js'></script>
+<script>
+
+ document.addEventListener('DOMContentLoaded', function() {
+ var calendarEl = document.getElementById('calendar');
+
+ var calendar = new FullCalendar.Calendar(calendarEl, {
+ headerToolbar: {
+ left: 'prev,next today',
+ center: 'title',
+ right: 'multiMonthYear,dayGridMonth,timeGridWeek'
+ },
+ initialView: 'multiMonthYear',
+ initialDate: '2023-01-12',
+ editable: true,
+ selectable: true,
+ dayMaxEvents: true, // allow "more" link when too many events
+ // multiMonthMaxColumns: 1, // guarantee single column
+ // showNonCurrentDates: true,
+ // fixedWeekCount: false,
+ // businessHours: true,
+ // weekends: false,
+ events: [
+ {
+ title: 'All Day Event',
+ start: '2023-01-01'
+ },
+ {
+ title: 'Long Event',
+ start: '2023-01-07',
+ end: '2023-01-10'
+ },
+ {
+ groupId: 999,
+ title: 'Repeating Event',
+ start: '2023-01-09T16:00:00'
+ },
+ {
+ groupId: 999,
+ title: 'Repeating Event',
+ start: '2023-01-16T16:00:00'
+ },
+ {
+ title: 'Conference',
+ start: '2023-01-11',
+ end: '2023-01-13'
+ },
+ {
+ title: 'Meeting',
+ start: '2023-01-12T10:30:00',
+ end: '2023-01-12T12:30:00'
+ },
+ {
+ title: 'Lunch',
+ start: '2023-01-12T12:00:00'
+ },
+ {
+ title: 'Meeting',
+ start: '2023-01-12T14:30:00'
+ },
+ {
+ title: 'Happy Hour',
+ start: '2023-01-12T17:30:00'
+ },
+ {
+ title: 'Dinner',
+ start: '2023-01-12T20:00:00'
+ },
+ {
+ title: 'Birthday Party',
+ start: '2023-01-13T07:00:00'
+ },
+ {
+ title: 'Click for Google',
+ url: 'http://google.com/',
+ start: '2023-01-28'
+ }
+ ]
+ });
+
+ calendar.render();
+ });
+
+</script>
+<style>
+
+ body {
+ margin: 40px 10px;
+ padding: 0;
+ font-family: Arial, Helvetica Neue, Helvetica, sans-serif;
+ font-size: 14px;
+ }
+
+ #calendar {
+ max-width: 1200px;
+ margin: 0 auto;
+ }
+
+</style>
+</head>
+<body>
+
+ <div id='calendar'></div>
+
+</body>
+</html>
diff --git a/library/fullcalendar/examples/multiweek-view.html b/library/fullcalendar/examples/multiweek-view.html
new file mode 100644
index 000000000..5a175fbb9
--- /dev/null
+++ b/library/fullcalendar/examples/multiweek-view.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset='utf-8' />
+<script src='../dist/index.global.js'></script>
+<script>
+
+ document.addEventListener('DOMContentLoaded', function() {
+ var calendarEl = document.getElementById('calendar');
+
+ var calendar = new FullCalendar.Calendar(calendarEl, {
+ headerToolbar: {
+ left: 'prev,next today',
+ center: 'title',
+ right: 'dayGridYear,dayGridMonth,timeGridWeek'
+ },
+ initialView: 'dayGridYear',
+ initialDate: '2023-01-12',
+ editable: true,
+ selectable: true,
+ dayMaxEvents: true, // allow "more" link when too many events
+ // businessHours: true,
+ // weekends: false,
+ events: [
+ {
+ title: 'All Day Event',
+ start: '2023-01-01'
+ },
+ {
+ title: 'Long Event',
+ start: '2023-01-07',
+ end: '2023-01-10'
+ },
+ {
+ groupId: 999,
+ title: 'Repeating Event',
+ start: '2023-01-09T16:00:00'
+ },
+ {
+ groupId: 999,
+ title: 'Repeating Event',
+ start: '2023-01-16T16:00:00'
+ },
+ {
+ title: 'Conference',
+ start: '2023-01-11',
+ end: '2023-01-13'
+ },
+ {
+ title: 'Meeting',
+ start: '2023-01-12T10:30:00',
+ end: '2023-01-12T12:30:00'
+ },
+ {
+ title: 'Lunch',
+ start: '2023-01-12T12:00:00'
+ },
+ {
+ title: 'Meeting',
+ start: '2023-01-12T14:30:00'
+ },
+ {
+ title: 'Happy Hour',
+ start: '2023-01-12T17:30:00'
+ },
+ {
+ title: 'Dinner',
+ start: '2023-01-12T20:00:00'
+ },
+ {
+ title: 'Birthday Party',
+ start: '2023-01-13T07:00:00'
+ },
+ {
+ title: 'Click for Google',
+ url: 'http://google.com/',
+ start: '2023-01-28'
+ }
+ ]
+ });
+
+ calendar.render();
+ });
+
+</script>
+<style>
+
+ body {
+ margin: 40px 10px;
+ padding: 0;
+ font-family: Arial, Helvetica Neue, Helvetica, sans-serif;
+ font-size: 14px;
+ }
+
+ #calendar {
+ max-width: 1200px;
+ margin: 0 auto;
+ }
+
+</style>
+</head>
+<body>
+
+ <div id='calendar'></div>
+
+</body>
+</html>
diff --git a/library/fullcalendar/examples/natural-height.html b/library/fullcalendar/examples/natural-height.html
index 215067522..b62c41d68 100644
--- a/library/fullcalendar/examples/natural-height.html
+++ b/library/fullcalendar/examples/natural-height.html
@@ -9,7 +9,7 @@
var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
- initialDate: '2020-09-12',
+ initialDate: '2023-01-12',
initialView: 'timeGridWeek',
headerToolbar: {
left: 'prev,next today',
@@ -25,57 +25,57 @@
events: [
{
title: 'All Day Event',
- start: '2020-09-01',
+ start: '2023-01-01',
},
{
title: 'Long Event',
- start: '2020-09-07',
- end: '2020-09-10'
+ start: '2023-01-07',
+ end: '2023-01-10'
},
{
groupId: 999,
title: 'Repeating Event',
- start: '2020-09-09T16:00:00'
+ start: '2023-01-09T16:00:00'
},
{
groupId: 999,
title: 'Repeating Event',
- start: '2020-09-16T16:00:00'
+ start: '2023-01-16T16:00:00'
},
{
title: 'Conference',
- start: '2020-09-11',
- end: '2020-09-13'
+ start: '2023-01-11',
+ end: '2023-01-13'
},
{
title: 'Meeting',
- start: '2020-09-12T10:30:00',
- end: '2020-09-12T12:30:00'
+ start: '2023-01-12T10:30:00',
+ end: '2023-01-12T12:30:00'
},
{
title: 'Lunch',
- start: '2020-09-12T12:00:00'
+ start: '2023-01-12T12:00:00'
},
{
title: 'Meeting',
- start: '2020-09-12T14:30:00'
+ start: '2023-01-12T14:30:00'
},
{
title: 'Happy Hour',
- start: '2020-09-12T17:30:00'
+ start: '2023-01-12T17:30:00'
},
{
title: 'Dinner',
- start: '2020-09-12T20:00:00'
+ start: '2023-01-12T20:00:00'
},
{
title: 'Birthday Party',
- start: '2020-09-13T07:00:00'
+ start: '2023-01-13T07:00:00'
},
{
title: 'Click for Google',
url: 'http://google.com/',
- start: '2020-09-28'
+ start: '2023-01-28'
}
]
});
diff --git a/library/fullcalendar/examples/selectable.html b/library/fullcalendar/examples/selectable.html
index 09d384498..785e90efa 100644
--- a/library/fullcalendar/examples/selectable.html
+++ b/library/fullcalendar/examples/selectable.html
@@ -14,7 +14,7 @@
center: 'title',
right: 'dayGridMonth,timeGridWeek,timeGridDay'
},
- initialDate: '2020-09-12',
+ initialDate: '2023-01-12',
navLinks: true, // can click day/week names to navigate views
selectable: true,
selectMirror: true,
@@ -40,57 +40,57 @@
events: [
{
title: 'All Day Event',
- start: '2020-09-01'
+ start: '2023-01-01'
},
{
title: 'Long Event',
- start: '2020-09-07',
- end: '2020-09-10'
+ start: '2023-01-07',
+ end: '2023-01-10'
},
{
groupId: 999,
title: 'Repeating Event',
- start: '2020-09-09T16:00:00'
+ start: '2023-01-09T16:00:00'
},
{
groupId: 999,
title: 'Repeating Event',
- start: '2020-09-16T16:00:00'
+ start: '2023-01-16T16:00:00'
},
{
title: 'Conference',
- start: '2020-09-11',
- end: '2020-09-13'
+ start: '2023-01-11',
+ end: '2023-01-13'
},
{
title: 'Meeting',
- start: '2020-09-12T10:30:00',
- end: '2020-09-12T12:30:00'
+ start: '2023-01-12T10:30:00',
+ end: '2023-01-12T12:30:00'
},
{
title: 'Lunch',
- start: '2020-09-12T12:00:00'
+ start: '2023-01-12T12:00:00'
},
{
title: 'Meeting',
- start: '2020-09-12T14:30:00'
+ start: '2023-01-12T14:30:00'
},
{
title: 'Happy Hour',
- start: '2020-09-12T17:30:00'
+ start: '2023-01-12T17:30:00'
},
{
title: 'Dinner',
- start: '2020-09-12T20:00:00'
+ start: '2023-01-12T20:00:00'
},
{
title: 'Birthday Party',
- start: '2020-09-13T07:00:00'
+ start: '2023-01-13T07:00:00'
},
{
title: 'Click for Google',
url: 'http://google.com/',
- start: '2020-09-28'
+ start: '2023-01-28'
}
]
});
diff --git a/library/fullcalendar/examples/timegrid-views.html b/library/fullcalendar/examples/timegrid-views.html
index c197b1ae5..9cd2527e2 100644
--- a/library/fullcalendar/examples/timegrid-views.html
+++ b/library/fullcalendar/examples/timegrid-views.html
@@ -9,7 +9,7 @@
var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
- initialDate: '2020-09-12',
+ initialDate: '2023-01-12',
initialView: 'timeGridWeek',
nowIndicator: true,
headerToolbar: {
@@ -25,57 +25,57 @@
events: [
{
title: 'All Day Event',
- start: '2020-09-01',
+ start: '2023-01-01',
},
{
title: 'Long Event',
- start: '2020-09-07',
- end: '2020-09-10'
+ start: '2023-01-07',
+ end: '2023-01-10'
},
{
groupId: 999,
title: 'Repeating Event',
- start: '2020-09-09T16:00:00'
+ start: '2023-01-09T16:00:00'
},
{
groupId: 999,
title: 'Repeating Event',
- start: '2020-09-16T16:00:00'
+ start: '2023-01-16T16:00:00'
},
{
title: 'Conference',
- start: '2020-09-11',
- end: '2020-09-13'
+ start: '2023-01-11',
+ end: '2023-01-13'
},
{
title: 'Meeting',
- start: '2020-09-12T10:30:00',
- end: '2020-09-12T12:30:00'
+ start: '2023-01-12T10:30:00',
+ end: '2023-01-12T12:30:00'
},
{
title: 'Lunch',
- start: '2020-09-12T12:00:00'
+ start: '2023-01-12T12:00:00'
},
{
title: 'Meeting',
- start: '2020-09-12T14:30:00'
+ start: '2023-01-12T14:30:00'
},
{
title: 'Happy Hour',
- start: '2020-09-12T17:30:00'
+ start: '2023-01-12T17:30:00'
},
{
title: 'Dinner',
- start: '2020-09-12T20:00:00'
+ start: '2023-01-12T20:00:00'
},
{
title: 'Birthday Party',
- start: '2020-09-13T07:00:00'
+ start: '2023-01-13T07:00:00'
},
{
title: 'Click for Google',
url: 'http://google.com/',
- start: '2020-09-28'
+ start: '2023-01-28'
}
]
});
diff --git a/library/fullcalendar/packages/bootstrap4/index.global.js b/library/fullcalendar/packages/bootstrap4/index.global.js
index 90d3aedf8..20b3510d9 100644
--- a/library/fullcalendar/packages/bootstrap4/index.global.js
+++ b/library/fullcalendar/packages/bootstrap4/index.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Bootstrap 4 Plugin v6.0.3
+FullCalendar Bootstrap 4 Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/bootstrap4
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
FullCalendar.Bootstrap = (function (exports, core, internal$1) {
'use strict';
@@ -37,7 +37,7 @@ FullCalendar.Bootstrap = (function (exports, core, internal$1) {
BootstrapTheme.prototype.iconOverrideCustomButtonOption = 'bootstrapFontAwesome';
BootstrapTheme.prototype.iconOverridePrefix = 'fa-';
- var css_248z = ".fc-theme-bootstrap a:not([href]){color:inherit}";
+ var css_248z = ".fc-theme-bootstrap a:not([href]){color:inherit}.fc-theme-bootstrap .fc-more-link:hover{text-decoration:none}";
internal$1.injectStyles(css_248z);
var plugin = core.createPlugin({
diff --git a/library/fullcalendar/packages/bootstrap4/index.global.min.js b/library/fullcalendar/packages/bootstrap4/index.global.min.js
index 64a7ceade..92aa8415e 100644
--- a/library/fullcalendar/packages/bootstrap4/index.global.min.js
+++ b/library/fullcalendar/packages/bootstrap4/index.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Bootstrap 4 Plugin v6.0.3
+FullCalendar Bootstrap 4 Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/bootstrap4
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-FullCalendar.Bootstrap=function(e,t,o){"use strict";class r extends o.Theme{}r.prototype.classes={root:"fc-theme-bootstrap",table:"table-bordered",tableCellShaded:"table-active",buttonGroup:"btn-group",button:"btn btn-primary",buttonActive:"active",popover:"popover",popoverHeader:"popover-header",popoverContent:"popover-body"},r.prototype.baseIconClass="fa",r.prototype.iconClasses={close:"fa-times",prev:"fa-chevron-left",next:"fa-chevron-right",prevYear:"fa-angle-double-left",nextYear:"fa-angle-double-right"},r.prototype.rtlIconClasses={prev:"fa-chevron-right",next:"fa-chevron-left",prevYear:"fa-angle-double-right",nextYear:"fa-angle-double-left"},r.prototype.iconOverrideOption="bootstrapFontAwesome",r.prototype.iconOverrideCustomButtonOption="bootstrapFontAwesome",r.prototype.iconOverridePrefix="fa-";o.injectStyles(".fc-theme-bootstrap a:not([href]){color:inherit}");var a=t.createPlugin({name:"@fullcalendar/bootstrap",themeClasses:{bootstrap:r}}),l={__proto__:null,BootstrapTheme:r};return t.globalPlugins.push(a),e.Internal=l,e.default=a,Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar,FullCalendar.Internal); \ No newline at end of file
+FullCalendar.Bootstrap=function(e,t,o){"use strict";class r extends o.Theme{}r.prototype.classes={root:"fc-theme-bootstrap",table:"table-bordered",tableCellShaded:"table-active",buttonGroup:"btn-group",button:"btn btn-primary",buttonActive:"active",popover:"popover",popoverHeader:"popover-header",popoverContent:"popover-body"},r.prototype.baseIconClass="fa",r.prototype.iconClasses={close:"fa-times",prev:"fa-chevron-left",next:"fa-chevron-right",prevYear:"fa-angle-double-left",nextYear:"fa-angle-double-right"},r.prototype.rtlIconClasses={prev:"fa-chevron-right",next:"fa-chevron-left",prevYear:"fa-angle-double-right",nextYear:"fa-angle-double-left"},r.prototype.iconOverrideOption="bootstrapFontAwesome",r.prototype.iconOverrideCustomButtonOption="bootstrapFontAwesome",r.prototype.iconOverridePrefix="fa-";o.injectStyles(".fc-theme-bootstrap a:not([href]){color:inherit}.fc-theme-bootstrap .fc-more-link:hover{text-decoration:none}");var a=t.createPlugin({name:"@fullcalendar/bootstrap",themeClasses:{bootstrap:r}}),n={__proto__:null,BootstrapTheme:r};return t.globalPlugins.push(a),e.Internal=n,e.default=a,Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar,FullCalendar.Internal); \ No newline at end of file
diff --git a/library/fullcalendar/packages/bootstrap5/index.global.js b/library/fullcalendar/packages/bootstrap5/index.global.js
index eee322a49..47ff25497 100644
--- a/library/fullcalendar/packages/bootstrap5/index.global.js
+++ b/library/fullcalendar/packages/bootstrap5/index.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Bootstrap 5 Plugin v6.0.3
+FullCalendar Bootstrap 5 Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/bootstrap5
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
FullCalendar.Bootstrap5 = (function (exports, core, internal$1) {
'use strict';
diff --git a/library/fullcalendar/packages/bootstrap5/index.global.min.js b/library/fullcalendar/packages/bootstrap5/index.global.min.js
index 8f17785f8..9478bbacc 100644
--- a/library/fullcalendar/packages/bootstrap5/index.global.min.js
+++ b/library/fullcalendar/packages/bootstrap5/index.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Bootstrap 5 Plugin v6.0.3
+FullCalendar Bootstrap 5 Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/bootstrap5
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
FullCalendar.Bootstrap5=function(e,t,o){"use strict";class r extends o.Theme{}r.prototype.classes={root:"fc-theme-bootstrap5",tableCellShaded:"fc-theme-bootstrap5-shaded",buttonGroup:"btn-group",button:"btn btn-primary",buttonActive:"active",popover:"popover",popoverHeader:"popover-header",popoverContent:"popover-body"},r.prototype.baseIconClass="bi",r.prototype.iconClasses={close:"bi-x-lg",prev:"bi-chevron-left",next:"bi-chevron-right",prevYear:"bi-chevron-double-left",nextYear:"bi-chevron-double-right"},r.prototype.rtlIconClasses={prev:"bi-chevron-right",next:"bi-chevron-left",prevYear:"bi-chevron-double-right",nextYear:"bi-chevron-double-left"},r.prototype.iconOverrideOption="buttonIcons",r.prototype.iconOverrideCustomButtonOption="icon",r.prototype.iconOverridePrefix="bi-";o.injectStyles(".fc-theme-bootstrap5 a:not([href]){color:inherit;text-decoration:inherit}.fc-theme-bootstrap5 .fc-list,.fc-theme-bootstrap5 .fc-scrollgrid,.fc-theme-bootstrap5 td,.fc-theme-bootstrap5 th{border:1px solid var(--bs-gray-400)}.fc-theme-bootstrap5 .fc-scrollgrid{border-bottom-width:0;border-right-width:0}.fc-theme-bootstrap5-shaded{background-color:var(--bs-gray-200)}");var a=t.createPlugin({name:"@fullcalendar/bootstrap5",themeClasses:{bootstrap5:r}}),n={__proto__:null,BootstrapTheme:r};return t.globalPlugins.push(a),e.Internal=n,e.default=a,Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar,FullCalendar.Internal); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/index.global.js b/library/fullcalendar/packages/core/index.global.js
index 6f2696bae..b7eebab97 100644
--- a/library/fullcalendar/packages/core/index.global.js
+++ b/library/fullcalendar/packages/core/index.global.js
@@ -1,11 +1,92 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
var FullCalendar = (function (exports) {
'use strict';
+ const styleTexts = [];
+ const styleEls = new Map();
+ function injectStyles(styleText) {
+ styleTexts.push(styleText);
+ styleEls.forEach((styleEl) => {
+ appendStylesTo(styleEl, styleText);
+ });
+ }
+ function ensureElHasStyles(el) {
+ if (el.isConnected) {
+ registerStylesRoot(el.getRootNode());
+ }
+ }
+ function registerStylesRoot(rootNode) {
+ let styleEl = styleEls.get(rootNode);
+ if (!styleEl || !styleEl.isConnected) {
+ styleEl = rootNode.querySelector('style[data-fullcalendar]');
+ if (!styleEl) {
+ styleEl = document.createElement('style');
+ styleEl.setAttribute('data-fullcalendar', '');
+ const nonce = getNonceValue();
+ if (nonce) {
+ styleEl.nonce = nonce;
+ }
+ const parentEl = rootNode === document ? document.head : rootNode;
+ const insertBefore = rootNode === document
+ ? parentEl.querySelector('script,link[rel=stylesheet],link[as=style],style')
+ : parentEl.firstChild;
+ parentEl.insertBefore(styleEl, insertBefore);
+ }
+ styleEls.set(rootNode, styleEl);
+ hydrateStylesRoot(styleEl);
+ }
+ }
+ function hydrateStylesRoot(styleEl) {
+ for (const styleText of styleTexts) {
+ appendStylesTo(styleEl, styleText);
+ }
+ }
+ function appendStylesTo(styleEl, styleText) {
+ const { sheet } = styleEl;
+ const ruleCnt = sheet.cssRules.length;
+ styleText.split('}').forEach((styleStr, i) => {
+ styleStr = styleStr.trim();
+ if (styleStr) {
+ sheet.insertRule(styleStr + '}', ruleCnt + i);
+ }
+ });
+ }
+ // nonce
+ // -------------------------------------------------------------------------------------------------
+ let queriedNonceValue;
+ function getNonceValue() {
+ if (queriedNonceValue === undefined) {
+ queriedNonceValue = queryNonceValue();
+ }
+ return queriedNonceValue;
+ }
+ /*
+ TODO: discourage meta tag and instead put nonce attribute on placeholder <style> tag
+ */
+ function queryNonceValue() {
+ const metaWithNonce = document.querySelector('meta[name="csp-nonce"]');
+ if (metaWithNonce && metaWithNonce.hasAttribute('content')) {
+ return metaWithNonce.getAttribute('content');
+ }
+ const elWithNonce = document.querySelector('script[nonce]');
+ if (elWithNonce) {
+ return elWithNonce.nonce || '';
+ }
+ return '';
+ }
+ // main
+ // -------------------------------------------------------------------------------------------------
+ if (typeof document !== 'undefined') {
+ registerStylesRoot(document);
+ }
+
+ 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{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{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)}";
+ injectStyles(css_248z);
+
function removeElement(el) {
if (el.parentNode) {
el.parentNode.removeChild(el);
@@ -92,11 +173,6 @@ var FullCalendar = (function (exports) {
var _a, _b;
return (_b = (_a = ev.composedPath) === null || _a === void 0 ? void 0 : _a.call(ev)[0]) !== null && _b !== void 0 ? _b : ev.target;
}
- // Shadow DOM consuderations
- // ----------------------------------------------------------------------------------------------------------------
- function getElRoot(el) {
- return el.getRootNode ? el.getRootNode() : document;
- }
// Unique ID for DOM attribute
let guid$1 = 0;
function getUniqueDomId() {
@@ -197,11 +273,11 @@ var FullCalendar = (function (exports) {
/* Selection
----------------------------------------------------------------------------------------------------------------------*/
function preventSelection(el) {
- el.classList.add('fc-unselectable');
+ el.style.userSelect = 'none';
el.addEventListener('selectstart', preventDefault);
}
function allowSelection(el) {
- el.classList.remove('fc-unselectable');
+ el.style.userSelect = '';
el.removeEventListener('selectstart', preventDefault);
}
/* Context Menu
@@ -477,22 +553,24 @@ var FullCalendar = (function (exports) {
let dest = {};
if (complexPropsMap) {
for (let name in complexPropsMap) {
- let complexObjs = [];
- // collect the trailing object values, stopping when a non-object is discovered
- for (let i = propObjs.length - 1; i >= 0; i -= 1) {
- let val = propObjs[i][name];
- if (typeof val === 'object' && val) { // non-null object
- complexObjs.unshift(val);
+ if (complexPropsMap[name] === isMaybeObjectsEqual) { // implies that it's object-mergeable
+ let complexObjs = [];
+ // collect the trailing object values, stopping when a non-object is discovered
+ for (let i = propObjs.length - 1; i >= 0; i -= 1) {
+ let val = propObjs[i][name];
+ if (typeof val === 'object' && val) { // non-null object
+ complexObjs.unshift(val);
+ }
+ else if (val !== undefined) {
+ dest[name] = val; // if there were no objects, this value will be used
+ break;
+ }
}
- else if (val !== undefined) {
- dest[name] = val; // if there were no objects, this value will be used
- break;
+ // if the trailing values were objects, use the merged value
+ if (complexObjs.length) {
+ dest[name] = mergeProps(complexObjs);
}
}
- // if the trailing values were objects, use the merged value
- if (complexObjs.length) {
- dest[name] = mergeProps(complexObjs);
- }
}
}
// copy values into the destination, going from last to first
@@ -630,6 +708,38 @@ var FullCalendar = (function (exports) {
return res;
}
+ // TODO: new util arrayify?
+ function removeExact(array, exactVal) {
+ let removeCnt = 0;
+ let i = 0;
+ while (i < array.length) {
+ if (array[i] === exactVal) {
+ array.splice(i, 1);
+ removeCnt += 1;
+ }
+ else {
+ i += 1;
+ }
+ }
+ return removeCnt;
+ }
+ function isArraysEqual(a0, a1, equalityFunc) {
+ if (a0 === a1) {
+ return true;
+ }
+ let len = a0.length;
+ let i;
+ if (len !== a1.length) { // not array? or not same length?
+ return false;
+ }
+ for (i = 0; i < len; i += 1) {
+ if (!(equalityFunc ? equalityFunc(a0[i], a1[i]) : a0[i] === a1[i])) {
+ return false;
+ }
+ }
+ return true;
+ }
+
const DAY_IDS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
// Adding
function addWeeks(m, n) {
@@ -820,6 +930,9 @@ var FullCalendar = (function (exports) {
function formatDayString(marker) {
return marker.toISOString().replace(/T.*$/, '');
}
+ function formatIsoMonthStr(marker) {
+ return marker.toISOString().match(/^\d{4}-\d{2}/)[0];
+ }
// TODO: use Date::toISOString and use everything after the T?
function formatIsoTimeString(marker) {
return padStart(marker.getUTCHours(), 2) + ':' +
@@ -837,38 +950,6 @@ var FullCalendar = (function (exports) {
return `GMT${sign}${hours}${mins ? `:${padStart(mins, 2)}` : ''}`;
}
- // TODO: new util arrayify?
- function removeExact(array, exactVal) {
- let removeCnt = 0;
- let i = 0;
- while (i < array.length) {
- if (array[i] === exactVal) {
- array.splice(i, 1);
- removeCnt += 1;
- }
- else {
- i += 1;
- }
- }
- return removeCnt;
- }
- function isArraysEqual(a0, a1, equalityFunc) {
- if (a0 === a1) {
- return true;
- }
- let len = a0.length;
- let i;
- if (len !== a1.length) { // not array? or not same length?
- return false;
- }
- for (i = 0; i < len; i += 1) {
- if (!(equalityFunc ? equalityFunc(a0[i], a1[i]) : a0[i] === a1[i])) {
- return false;
- }
- }
- return true;
- }
-
function memoize(workerFunc, resEquality, teardownFunc) {
let currentArgs;
let currentRes;
@@ -1462,7 +1543,6 @@ var FullCalendar = (function (exports) {
dateAlignment: String,
dateIncrement: createDuration,
hiddenDays: identity,
- monthMode: Boolean,
fixedWeekCount: Boolean,
validRange: identity,
visibleRange: identity,
@@ -1480,6 +1560,7 @@ var FullCalendar = (function (exports) {
moreLinkContent: identity,
moreLinkDidMount: identity,
moreLinkWillUnmount: identity,
+ monthStartFormat: createFormatter,
// for connectors
// (can't be part of plugin system b/c must be provided at runtime)
handleCustomRendering: identity,
@@ -1539,6 +1620,7 @@ var FullCalendar = (function (exports) {
eventMinHeight: 15,
eventMinWidth: 30,
eventShortHeight: 30,
+ monthStartFormat: { month: 'long', day: 'numeric' },
};
// calendar listeners
// ------------------
@@ -1582,6 +1664,10 @@ var FullCalendar = (function (exports) {
buttonHints: isMaybeObjectsEqual,
buttonIcons: isMaybeObjectsEqual,
dateIncrement: isMaybeObjectsEqual,
+ plugins: isMaybeArraysEqual,
+ events: isMaybeArraysEqual,
+ eventSources: isMaybeArraysEqual,
+ ['resources']: isMaybeArraysEqual,
};
function isMaybeObjectsEqual(a, b) {
if (typeof a === 'object' && typeof b === 'object' && a && b) { // both non-null objects
@@ -1589,6 +1675,12 @@ var FullCalendar = (function (exports) {
}
return a === b;
}
+ function isMaybeArraysEqual(a, b) {
+ if (Array.isArray(a) && Array.isArray(b)) {
+ return isArraysEqual(a, b);
+ }
+ return a === b;
+ }
// view-specific options
// ---------------------
const VIEW_OPTION_REFINERS = {
@@ -1704,11 +1796,11 @@ var FullCalendar = (function (exports) {
return markers;
}
- function parseEvents(rawEvents, eventSource, context, allowOpenRange) {
+ function parseEvents(rawEvents, eventSource, context, allowOpenRange, defIdMap, instanceIdMap) {
let eventStore = createEmptyEventStore();
let eventRefiners = buildEventRefiners(context);
for (let rawEvent of rawEvents) {
- let tuple = parseEvent(rawEvent, eventSource, context, allowOpenRange, eventRefiners);
+ let tuple = parseEvent(rawEvent, eventSource, context, allowOpenRange, eventRefiners, defIdMap, instanceIdMap);
if (tuple) {
eventTupleToStore(tuple, eventStore);
}
@@ -1880,12 +1972,12 @@ var FullCalendar = (function (exports) {
allDay: Boolean,
};
const EVENT_REFINERS = Object.assign(Object.assign(Object.assign({}, EVENT_NON_DATE_REFINERS), EVENT_DATE_REFINERS), { extendedProps: identity });
- function parseEvent(raw, eventSource, context, allowOpenRange, refiners = buildEventRefiners(context)) {
+ function parseEvent(raw, eventSource, context, allowOpenRange, refiners = buildEventRefiners(context), defIdMap, instanceIdMap) {
let { refined, extra } = refineEventDef(raw, context, refiners);
let defaultAllDay = computeIsDefaultAllDay(eventSource, context);
let recurringRes = parseRecurring(refined, defaultAllDay, context.dateEnv, context.pluginHooks.recurringTypes);
if (recurringRes) {
- let def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', recurringRes.allDay, Boolean(recurringRes.duration), context);
+ let def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', recurringRes.allDay, Boolean(recurringRes.duration), context, defIdMap);
def.recurringDef = {
typeId: recurringRes.typeId,
typeData: recurringRes.typeData,
@@ -1895,8 +1987,11 @@ var FullCalendar = (function (exports) {
}
let singleRes = parseSingle(refined, defaultAllDay, context, allowOpenRange);
if (singleRes) {
- let def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', singleRes.allDay, singleRes.hasEnd, context);
+ let def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', singleRes.allDay, singleRes.hasEnd, context, defIdMap);
let instance = createEventInstance(def.defId, singleRes.range, singleRes.forcedStartTzo, singleRes.forcedEndTzo);
+ if (instanceIdMap && def.publicId && instanceIdMap[def.publicId]) {
+ instance.instanceId = instanceIdMap[def.publicId];
+ }
return { def, instance };
}
return null;
@@ -1911,14 +2006,14 @@ var FullCalendar = (function (exports) {
Will NOT populate extendedProps with the leftover properties.
Will NOT populate date-related props.
*/
- function parseEventDef(refined, extra, sourceId, allDay, hasEnd, context) {
+ function parseEventDef(refined, extra, sourceId, allDay, hasEnd, context, defIdMap) {
let def = {
title: refined.title || '',
groupId: refined.groupId || '',
publicId: refined.id || '',
url: refined.url || '',
recurringDef: null,
- defId: guid(),
+ defId: ((defIdMap && refined.id) ? defIdMap[refined.id] : '') || guid(),
sourceId,
allDay,
hasEnd,
@@ -2925,11 +3020,11 @@ var FullCalendar = (function (exports) {
Theme.prototype.baseIconClass = '';
Theme.prototype.iconOverridePrefix = '';
- var n,l$1,u$1,i$1,t,o,r$1,f$1={},e$1=[],c$1=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function s(n,l){for(var u in l)n[u]=l[u];return n}function a$1(n){var l=n.parentNode;l&&l.removeChild(n);}function h(l,u,i){var t,o,r,f={};for(r in u)"key"==r?t=u[r]:"ref"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),"function"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return v$1(l,f,t,o,null)}function v$1(n,i,t,o,r){var f={type:n,props:i,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++u$1:r};return null==r&&null!=l$1.vnode&&l$1.vnode(f),f}function y(){return {current:null}}function p(n){return n.children}function d(n,l){this.props=n,this.context=l;}function _(n,l){if(null==l)return n.__?_(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return "function"==typeof n.type?_(n):null}function k$1(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return k$1(n)}}function b$1(n){(!n.__d&&(n.__d=!0)&&t.push(n)&&!g$2.__r++||o!==l$1.debounceRendering)&&((o=l$1.debounceRendering)||setTimeout)(g$2);}function g$2(){for(var n;g$2.__r=t.length;)n=t.sort(function(n,l){return n.__v.__b-l.__v.__b}),t=[],n.some(function(n){var l,u,i,t,o,r;n.__d&&(o=(t=(l=n).__v).__e,(r=l.__P)&&(u=[],(i=s({},t)).__v=t.__v+1,j$2(r,t,i,l.__n,void 0!==r.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?_(t):o,t.__h),z$1(u,t),t.__e!=o&&k$1(t)));});}function w$2(n,l,u,i,t,o,r,c,s,a){var h,y,d,k,b,g,w,x=i&&i.__k||e$1,C=x.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(k=u.__k[h]=null==(k=l[h])||"boolean"==typeof k?null:"string"==typeof k||"number"==typeof k||"bigint"==typeof k?v$1(null,k,null,null,k):Array.isArray(k)?v$1(p,{children:k},null,null,null):k.__b>0?v$1(k.type,k.props,k.key,k.ref?k.ref:null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(d=x[h])||d&&k.key==d.key&&k.type===d.type)x[h]=void 0;else for(y=0;y<C;y++){if((d=x[y])&&k.key==d.key&&k.type===d.type){x[y]=void 0;break}d=null;}j$2(n,k,d=d||f$1,t,o,r,c,s,a),b=k.__e,(y=k.ref)&&d.ref!=y&&(w||(w=[]),d.ref&&w.push(d.ref,null,k),w.push(y,k.__c||b,k)),null!=b?(null==g&&(g=b),"function"==typeof k.type&&k.__k===d.__k?k.__d=s=m$1(k,s,n):s=A(n,k,d,x,b,s),"function"==typeof u.type&&(u.__d=s)):s&&d.__e==s&&s.parentNode!=n&&(s=_(d));}for(u.__e=g,h=C;h--;)null!=x[h]&&N(x[h],x[h]);if(w)for(h=0;h<w.length;h++)M(w[h],w[++h],w[++h]);}function m$1(n,l,u){for(var i,t=n.__k,o=0;t&&o<t.length;o++)(i=t[o])&&(i.__=n,l="function"==typeof i.type?m$1(i,l,u):A(u,i,i,t,i.__e,l));return l}function x$1(n,l){return l=l||[],null==n||"boolean"==typeof n||(Array.isArray(n)?n.some(function(n){x$1(n,l);}):l.push(n)),l}function A(n,l,u,i,t,o){var r,f,e;if(void 0!==l.__d)r=l.__d,l.__d=void 0;else if(null==u||t!=o||null==t.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(t),r=null;else {for(f=o,e=0;(f=f.nextSibling)&&e<i.length;e+=1)if(f==t)break n;n.insertBefore(t,o),r=o;}return void 0!==r?r:t.nextSibling}function C$1(n,l,u,i,t){var o;for(o in u)"children"===o||"key"===o||o in l||H$1(n,o,null,u[o],i);for(o in l)t&&"function"!=typeof l[o]||"children"===o||"key"===o||"value"===o||"checked"===o||u[o]===l[o]||H$1(n,o,l[o],u[o],i);}function $$1(n,l,u){"-"===l[0]?n.setProperty(l,u):n[l]=null==u?"":"number"!=typeof u||c$1.test(l)?u:u+"px";}function H$1(n,l,u,i,t){var o;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else {if("string"==typeof i&&(n.style.cssText=i=""),i)for(l in i)u&&l in u||$$1(n.style,l,"");if(u)for(l in u)i&&u[l]===i[l]||$$1(n.style,l,u[l]);}else if("o"===l[0]&&"n"===l[1])o=l!==(l=l.replace(/Capture$/,"")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?i||n.addEventListener(l,o?T$1:I$1,o):n.removeEventListener(l,o?T$1:I$1,o);else if("dangerouslySetInnerHTML"!==l){if(t)l=l.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("href"!==l&&"list"!==l&&"form"!==l&&"tabIndex"!==l&&"download"!==l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null==u||!1===u&&-1==l.indexOf("-")?n.removeAttribute(l):n.setAttribute(l,u));}}function I$1(n){this.l[n.type+!1](l$1.event?l$1.event(n):n);}function T$1(n){this.l[n.type+!0](l$1.event?l$1.event(n):n);}function j$2(n,u,i,t,o,r,f,e,c){var a,h,v,y,_,k,b,g,m,x,A,C,$,H,I,T=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(a=l$1.__b)&&a(u);try{n:if("function"==typeof T){if(g=u.props,m=(a=T.contextType)&&t[a.__c],x=a?m?m.props.value:a.__:t,i.__c?b=(h=u.__c=i.__c).__=h.__E:("prototype"in T&&T.prototype.render?u.__c=h=new T(g,x):(u.__c=h=new d(g,x),h.constructor=T,h.render=O),m&&m.sub(h),h.props=g,h.state||(h.state={}),h.context=x,h.__n=t,v=h.__d=!0,h.__h=[],h._sb=[]),null==h.__s&&(h.__s=h.state),null!=T.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=s({},h.__s)),s(h.__s,T.getDerivedStateFromProps(g,h.__s))),y=h.props,_=h.state,v)null==T.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else {if(null==T.getDerivedStateFromProps&&g!==y&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(g,x),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(g,h.__s,x)||u.__v===i.__v){for(h.props=g,h.state=h.__s,u.__v!==i.__v&&(h.__d=!1),h.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u);}),A=0;A<h._sb.length;A++)h.__h.push(h._sb[A]);h._sb=[],h.__h.length&&f.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(g,h.__s,x),null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(y,_,k);});}if(h.context=x,h.props=g,h.__v=u,h.__P=n,C=l$1.__r,$=0,"prototype"in T&&T.prototype.render){for(h.state=h.__s,h.__d=!1,C&&C(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[];}else do{h.__d=!1,C&&C(u),a=h.render(h.props,h.state,h.context),h.state=h.__s;}while(h.__d&&++$<25);h.state=h.__s,null!=h.getChildContext&&(t=s(s({},t),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(k=h.getSnapshotBeforeUpdate(y,_)),I=null!=a&&a.type===p&&null==a.key?a.props.children:a,w$2(n,Array.isArray(I)?I:[I],u,i,t,o,r,f,e,c),h.base=u.__e,u.__h=null,h.__h.length&&f.push(h),b&&(h.__E=h.__=null),h.__e=!1;}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=L$1(i.__e,u,i,t,o,r,f,c);(a=l$1.diffed)&&a(u);}catch(n){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),l$1.__e(n,u,i);}}function z$1(n,u){l$1.__c&&l$1.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u);});}catch(n){l$1.__e(n,u.__v);}});}function L$1(l,u,i,t,o,r,e,c){var s,h,v,y=i.props,p=u.props,d=u.type,k=0;if("svg"===d&&(o=!0),null!=r)for(;k<r.length;k++)if((s=r[k])&&"setAttribute"in s==!!d&&(d?s.localName===d:3===s.nodeType)){l=s,r[k]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=o?document.createElementNS("http://www.w3.org/2000/svg",d):document.createElement(d,p.is&&p),r=null,c=!1;}if(null===d)y===p||c&&l.data===p||(l.data=p);else {if(r=r&&n.call(l.childNodes),h=(y=i.props||f$1).dangerouslySetInnerHTML,v=p.dangerouslySetInnerHTML,!c){if(null!=r)for(y={},k=0;k<l.attributes.length;k++)y[l.attributes[k].name]=l.attributes[k].value;(v||h)&&(v&&(h&&v.__html==h.__html||v.__html===l.innerHTML)||(l.innerHTML=v&&v.__html||""));}if(C$1(l,p,y,o,c),v)u.__k=[];else if(k=u.props.children,w$2(l,Array.isArray(k)?k:[k],u,i,t,o&&"foreignObject"!==d,r,e,r?r[0]:i.__k&&_(i,0),c),null!=r)for(k=r.length;k--;)null!=r[k]&&a$1(r[k]);c||("value"in p&&void 0!==(k=p.value)&&(k!==l.value||"progress"===d&&!k||"option"===d&&k!==y.value)&&H$1(l,"value",k,y.value,!1),"checked"in p&&void 0!==(k=p.checked)&&k!==l.checked&&H$1(l,"checked",k,y.checked,!1));}return l}function M(n,u,i){try{"function"==typeof n?n(u):n.current=u;}catch(n){l$1.__e(n,i);}}function N(n,u,i){var t,o;if(l$1.unmount&&l$1.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||M(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount();}catch(n){l$1.__e(n,u);}t.base=t.__P=null,n.__c=void 0;}if(t=n.__k)for(o=0;o<t.length;o++)t[o]&&N(t[o],u,i||"function"!=typeof n.type);i||null==n.__e||a$1(n.__e),n.__=n.__e=n.__d=void 0;}function O(n,l,u){return this.constructor(n,u)}function P$1(u,i,t){var o,r,e;l$1.__&&l$1.__(u,i),r=(o="function"==typeof t)?null:t&&t.__k||i.__k,e=[],j$2(i,u=(!o&&t||i).__k=h(p,null,[u]),r||f$1,f$1,void 0!==i.ownerSVGElement,!o&&t?[t]:r?null:i.firstChild?n.call(i.childNodes):null,e,!o&&t?t:r?r.__e:i.firstChild,o),z$1(e,u);}function S(n,l){P$1(n,l,S);}function q(l,u,i){var t,o,r,f=s({},l.props);for(r in u)"key"==r?t=u[r]:"ref"==r?o=u[r]:f[r]=u[r];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),v$1(l.type,f,t||l.key,o||l.ref,null)}function B$1(n,l){var u={__c:l="__cC"+r$1++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(b$1);},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n);};}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=e$1.slice,l$1={__e:function(n,l,u,i){for(var t,o,r;l=l.__;)if((t=l.__c)&&!t.__)try{if((o=t.constructor)&&null!=o.getDerivedStateFromError&&(t.setState(o.getDerivedStateFromError(n)),r=t.__d),null!=t.componentDidCatch&&(t.componentDidCatch(n,i||{}),r=t.__d),r)return t.__E=t}catch(l){n=l;}throw n}},u$1=0,i$1=function(n){return null!=n&&void 0===n.constructor},d.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=s({},this.state),"function"==typeof n&&(n=n(s({},u),this.props)),n&&s(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),b$1(this));},d.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),b$1(this));},d.prototype.render=p,t=[],g$2.__r=0,r$1=0;
+ var n,l$1,u$1,i$1,t,r$1,o,f$1,e$1,c$1={},s=[],a$1=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function h(n,l){for(var u in l)n[u]=l[u];return n}function v$1(n){var l=n.parentNode;l&&l.removeChild(n);}function y(l,u,i){var t,r,o,f={};for(o in u)"key"==o?t=u[o]:"ref"==o?r=u[o]:f[o]=u[o];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),"function"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===f[o]&&(f[o]=l.defaultProps[o]);return p(l,f,t,r,null)}function p(n,i,t,r,o){var f={type:n,props:i,key:t,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++u$1:o};return null==o&&null!=l$1.vnode&&l$1.vnode(f),f}function d(){return {current:null}}function _(n){return n.children}function k$1(n,l,u,i,t){var r;for(r in u)"children"===r||"key"===r||r in l||g$2(n,r,null,u[r],i);for(r in l)t&&"function"!=typeof l[r]||"children"===r||"key"===r||"value"===r||"checked"===r||u[r]===l[r]||g$2(n,r,l[r],u[r],i);}function b$1(n,l,u){"-"===l[0]?n.setProperty(l,null==u?"":u):n[l]=null==u?"":"number"!=typeof u||a$1.test(l)?u:u+"px";}function g$2(n,l,u,i,t){var r;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else {if("string"==typeof i&&(n.style.cssText=i=""),i)for(l in i)u&&l in u||b$1(n.style,l,"");if(u)for(l in u)i&&u[l]===i[l]||b$1(n.style,l,u[l]);}else if("o"===l[0]&&"n"===l[1])r=l!==(l=l.replace(/Capture$/,"")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?i||n.addEventListener(l,r?w$2:m$1,r):n.removeEventListener(l,r?w$2:m$1,r);else if("dangerouslySetInnerHTML"!==l){if(t)l=l.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!==l&&"height"!==l&&"href"!==l&&"list"!==l&&"form"!==l&&"tabIndex"!==l&&"download"!==l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null==u||!1===u&&-1==l.indexOf("-")?n.removeAttribute(l):n.setAttribute(l,u));}}function m$1(n){t=!0;try{return this.l[n.type+!1](l$1.event?l$1.event(n):n)}finally{t=!1;}}function w$2(n){t=!0;try{return this.l[n.type+!0](l$1.event?l$1.event(n):n)}finally{t=!1;}}function x$1(n,l){this.props=n,this.context=l;}function A(n,l){if(null==l)return n.__?A(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return "function"==typeof n.type?A(n):null}function P$1(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return P$1(n)}}function C$1(n){t?setTimeout(n):f$1(n);}function T$1(n){(!n.__d&&(n.__d=!0)&&r$1.push(n)&&!$$1.__r++||o!==l$1.debounceRendering)&&((o=l$1.debounceRendering)||C$1)($$1);}function $$1(){var n,l,u,i,t,o,f,e;for(r$1.sort(function(n,l){return n.__v.__b-l.__v.__b});n=r$1.shift();)n.__d&&(l=r$1.length,i=void 0,t=void 0,f=(o=(u=n).__v).__e,(e=u.__P)&&(i=[],(t=h({},o)).__v=o.__v+1,M(e,o,t,u.__n,void 0!==e.ownerSVGElement,null!=o.__h?[f]:null,i,null==f?A(o):f,o.__h),N(i,o),o.__e!=f&&P$1(o)),r$1.length>l&&r$1.sort(function(n,l){return n.__v.__b-l.__v.__b}));$$1.__r=0;}function H$1(n,l,u,i,t,r,o,f,e,a){var h,v,y,d,k,b,g,m=i&&i.__k||s,w=m.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(d=u.__k[h]=null==(d=l[h])||"boolean"==typeof d?null:"string"==typeof d||"number"==typeof d||"bigint"==typeof d?p(null,d,null,null,d):Array.isArray(d)?p(_,{children:d},null,null,null):d.__b>0?p(d.type,d.props,d.key,d.ref?d.ref:null,d.__v):d)){if(d.__=u,d.__b=u.__b+1,null===(y=m[h])||y&&d.key==y.key&&d.type===y.type)m[h]=void 0;else for(v=0;v<w;v++){if((y=m[v])&&d.key==y.key&&d.type===y.type){m[v]=void 0;break}y=null;}M(n,d,y=y||c$1,t,r,o,f,e,a),k=d.__e,(v=d.ref)&&y.ref!=v&&(g||(g=[]),y.ref&&g.push(y.ref,null,d),g.push(v,d.__c||k,d)),null!=k?(null==b&&(b=k),"function"==typeof d.type&&d.__k===y.__k?d.__d=e=I$1(d,e,n):e=z$1(n,d,y,m,k,e),"function"==typeof u.type&&(u.__d=e)):e&&y.__e==e&&e.parentNode!=n&&(e=A(y));}for(u.__e=b,h=w;h--;)null!=m[h]&&("function"==typeof u.type&&null!=m[h].__e&&m[h].__e==u.__d&&(u.__d=L$1(i).nextSibling),q(m[h],m[h]));if(g)for(h=0;h<g.length;h++)S(g[h],g[++h],g[++h]);}function I$1(n,l,u){for(var i,t=n.__k,r=0;t&&r<t.length;r++)(i=t[r])&&(i.__=n,l="function"==typeof i.type?I$1(i,l,u):z$1(u,i,i,t,i.__e,l));return l}function j$2(n,l){return l=l||[],null==n||"boolean"==typeof n||(Array.isArray(n)?n.some(function(n){j$2(n,l);}):l.push(n)),l}function z$1(n,l,u,i,t,r){var o,f,e;if(void 0!==l.__d)o=l.__d,l.__d=void 0;else if(null==u||t!=r||null==t.parentNode)n:if(null==r||r.parentNode!==n)n.appendChild(t),o=null;else {for(f=r,e=0;(f=f.nextSibling)&&e<i.length;e+=1)if(f==t)break n;n.insertBefore(t,r),o=r;}return void 0!==o?o:t.nextSibling}function L$1(n){var l,u,i;if(null==n.type||"string"==typeof n.type)return n.__e;if(n.__k)for(l=n.__k.length-1;l>=0;l--)if((u=n.__k[l])&&(i=L$1(u)))return i;return null}function M(n,u,i,t,r,o,f,e,c){var s,a,v,y,p,d,k,b,g,m,w,A,P,C,T,$=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,o=[e]),(s=l$1.__b)&&s(u);try{n:if("function"==typeof $){if(b=u.props,g=(s=$.contextType)&&t[s.__c],m=s?g?g.props.value:s.__:t,i.__c?k=(a=u.__c=i.__c).__=a.__E:("prototype"in $&&$.prototype.render?u.__c=a=new $(b,m):(u.__c=a=new x$1(b,m),a.constructor=$,a.render=B$1),g&&g.sub(a),a.props=b,a.state||(a.state={}),a.context=m,a.__n=t,v=a.__d=!0,a.__h=[],a._sb=[]),null==a.__s&&(a.__s=a.state),null!=$.getDerivedStateFromProps&&(a.__s==a.state&&(a.__s=h({},a.__s)),h(a.__s,$.getDerivedStateFromProps(b,a.__s))),y=a.props,p=a.state,a.__v=u,v)null==$.getDerivedStateFromProps&&null!=a.componentWillMount&&a.componentWillMount(),null!=a.componentDidMount&&a.__h.push(a.componentDidMount);else {if(null==$.getDerivedStateFromProps&&b!==y&&null!=a.componentWillReceiveProps&&a.componentWillReceiveProps(b,m),!a.__e&&null!=a.shouldComponentUpdate&&!1===a.shouldComponentUpdate(b,a.__s,m)||u.__v===i.__v){for(u.__v!==i.__v&&(a.props=b,a.state=a.__s,a.__d=!1),u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u);}),w=0;w<a._sb.length;w++)a.__h.push(a._sb[w]);a._sb=[],a.__h.length&&f.push(a);break n}null!=a.componentWillUpdate&&a.componentWillUpdate(b,a.__s,m),null!=a.componentDidUpdate&&a.__h.push(function(){a.componentDidUpdate(y,p,d);});}if(a.context=m,a.props=b,a.__P=n,A=l$1.__r,P=0,"prototype"in $&&$.prototype.render){for(a.state=a.__s,a.__d=!1,A&&A(u),s=a.render(a.props,a.state,a.context),C=0;C<a._sb.length;C++)a.__h.push(a._sb[C]);a._sb=[];}else do{a.__d=!1,A&&A(u),s=a.render(a.props,a.state,a.context),a.state=a.__s;}while(a.__d&&++P<25);a.state=a.__s,null!=a.getChildContext&&(t=h(h({},t),a.getChildContext())),v||null==a.getSnapshotBeforeUpdate||(d=a.getSnapshotBeforeUpdate(y,p)),T=null!=s&&s.type===_&&null==s.key?s.props.children:s,H$1(n,Array.isArray(T)?T:[T],u,i,t,r,o,f,e,c),a.base=u.__e,u.__h=null,a.__h.length&&f.push(a),k&&(a.__E=a.__=null),a.__e=!1;}else null==o&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=O(i.__e,u,i,t,r,o,f,c);(s=l$1.diffed)&&s(u);}catch(n){u.__v=null,(c||null!=o)&&(u.__e=e,u.__h=!!c,o[o.indexOf(e)]=null),l$1.__e(n,u,i);}}function N(n,u){l$1.__c&&l$1.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u);});}catch(n){l$1.__e(n,u.__v);}});}function O(l,u,i,t,r,o,f,e){var s,a,h,y=i.props,p=u.props,d=u.type,_=0;if("svg"===d&&(r=!0),null!=o)for(;_<o.length;_++)if((s=o[_])&&"setAttribute"in s==!!d&&(d?s.localName===d:3===s.nodeType)){l=s,o[_]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=r?document.createElementNS("http://www.w3.org/2000/svg",d):document.createElement(d,p.is&&p),o=null,e=!1;}if(null===d)y===p||e&&l.data===p||(l.data=p);else {if(o=o&&n.call(l.childNodes),a=(y=i.props||c$1).dangerouslySetInnerHTML,h=p.dangerouslySetInnerHTML,!e){if(null!=o)for(y={},_=0;_<l.attributes.length;_++)y[l.attributes[_].name]=l.attributes[_].value;(h||a)&&(h&&(a&&h.__html==a.__html||h.__html===l.innerHTML)||(l.innerHTML=h&&h.__html||""));}if(k$1(l,p,y,r,e),h)u.__k=[];else if(_=u.props.children,H$1(l,Array.isArray(_)?_:[_],u,i,t,r&&"foreignObject"!==d,o,f,o?o[0]:i.__k&&A(i,0),e),null!=o)for(_=o.length;_--;)null!=o[_]&&v$1(o[_]);e||("value"in p&&void 0!==(_=p.value)&&(_!==l.value||"progress"===d&&!_||"option"===d&&_!==y.value)&&g$2(l,"value",_,y.value,!1),"checked"in p&&void 0!==(_=p.checked)&&_!==l.checked&&g$2(l,"checked",_,y.checked,!1));}return l}function S(n,u,i){try{"function"==typeof n?n(u):n.current=u;}catch(n){l$1.__e(n,i);}}function q(n,u,i){var t,r;if(l$1.unmount&&l$1.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||S(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount();}catch(n){l$1.__e(n,u);}t.base=t.__P=null,n.__c=void 0;}if(t=n.__k)for(r=0;r<t.length;r++)t[r]&&q(t[r],u,i||"function"!=typeof n.type);i||null==n.__e||v$1(n.__e),n.__=n.__e=n.__d=void 0;}function B$1(n,l,u){return this.constructor(n,u)}function D$1(u,i,t){var r,o,f;l$1.__&&l$1.__(u,i),o=(r="function"==typeof t)?null:t&&t.__k||i.__k,f=[],M(i,u=(!r&&t||i).__k=y(_,null,[u]),o||c$1,c$1,void 0!==i.ownerSVGElement,!r&&t?[t]:o?null:i.firstChild?n.call(i.childNodes):null,f,!r&&t?t:o?o.__e:i.firstChild,r),N(f,u);}function E(n,l){D$1(n,l,E);}function F$1(l,u,i){var t,r,o,f=h({},l.props);for(o in u)"key"==o?t=u[o]:"ref"==o?r=u[o]:f[o]=u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),p(l.type,f,t||l.key,r||l.ref,null)}function G$1(n,l){var u={__c:l="__cC"+e$1++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(function(n){n.__e=!0,T$1(n);});},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n);};}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=s.slice,l$1={__e:function(n,l,u,i){for(var t,r,o;l=l.__;)if((t=l.__c)&&!t.__)try{if((r=t.constructor)&&null!=r.getDerivedStateFromError&&(t.setState(r.getDerivedStateFromError(n)),o=t.__d),null!=t.componentDidCatch&&(t.componentDidCatch(n,i||{}),o=t.__d),o)return t.__E=t}catch(l){n=l;}throw n}},u$1=0,i$1=function(n){return null!=n&&void 0===n.constructor},t=!1,x$1.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=h({},this.state),"function"==typeof n&&(n=n(h({},u),this.props)),n&&h(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),T$1(this));},x$1.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),T$1(this));},x$1.prototype.render=_,r$1=[],f$1="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,$$1.__r=0,e$1=0;
var r,u,i,f=[],c=[],e=l$1.__b,a=l$1.__r,v=l$1.diffed,l=l$1.__c,m=l$1.unmount;function b(){for(var t;t=f.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(k),t.__H.__h.forEach(w$1),t.__H.__h=[];}catch(r){t.__H.__h=[],l$1.__e(r,t.__v);}}l$1.__b=function(n){r=null,e&&e(n);},l$1.__r=function(n){a&&a(n);var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.__V=c,n.__N=n.i=void 0;})):(i.__h.forEach(k),i.__h.forEach(w$1),i.__h=[])),u=r;},l$1.diffed=function(t){v&&v(t);var o=t.__c;o&&o.__H&&(o.__H.__h.length&&(1!==f.push(o)&&i===l$1.requestAnimationFrame||((i=l$1.requestAnimationFrame)||j$1)(b)),o.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.__V!==c&&(n.__=n.__V),n.i=void 0,n.__V=c;})),u=r=null;},l$1.__c=function(t,r){r.some(function(t){try{t.__h.forEach(k),t.__h=t.__h.filter(function(n){return !n.__||w$1(n)});}catch(u){r.some(function(n){n.__h&&(n.__h=[]);}),r=[],l$1.__e(u,t.__v);}}),l&&l(t,r);},l$1.unmount=function(t){m&&m(t);var r,u=t.__c;u&&u.__H&&(u.__H.__.forEach(function(n){try{k(n);}catch(n){r=n;}}),u.__H=void 0,r&&l$1.__e(r,u.__v));};var g$1="function"==typeof requestAnimationFrame;function j$1(n){var t,r=function(){clearTimeout(u),g$1&&cancelAnimationFrame(t),setTimeout(n);},u=setTimeout(r,100);g$1&&(t=requestAnimationFrame(r));}function k(n){var t=r,u=n.__c;"function"==typeof u&&(n.__c=void 0,u()),r=t;}function w$1(n){var t=r;n.__c=n.__(),r=t;}
- function g(n,t){for(var e in t)n[e]=t[e];return n}function C(n,t){for(var e in n)if("__source"!==e&&!(e in t))return !0;for(var r in t)if("__source"!==r&&n[r]!==t[r])return !0;return !1}function w(n){this.props=n;}(w.prototype=new d).isPureReactComponent=!0,w.prototype.shouldComponentUpdate=function(n,t){return C(this.props,n)||C(this.state,t)};var x=l$1.__b;l$1.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),x&&x(n);};var T=l$1.__e;l$1.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);T(n,t,e,r);};var I=l$1.unmount;function L(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){"function"==typeof n.__c&&n.__c();}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return L(n,t,e)})),n}function U(n,t,e){return n&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return U(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.insertBefore(n.__e,n.__d),n.__c.__e=!0,n.__c.__P=e)),n}function D(){this.__u=0,this.t=null,this.__b=null;}function F(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function V(){this.u=null,this.o=null;}l$1.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),I&&I(n);},(D.prototype=new d).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=F(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l());};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=U(n,n.__c.__P,n.__c.__O);}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate();}},c=!0===t.__h;r.__u++||c||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i);},D.prototype.componentWillUnmount=function(){this.t=[];},D.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),o=this.__v.__k[0].__c;this.__v.__k[0]=L(this.__b,r,o.__O=o.__P);}this.__b=null;}var i=e.__a&&h(p,null,n.fallback);return i&&(i.__h=null),[h(p,null,e.__a?null:n.children),i]};var W=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&("t"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2];}};function P(n){return this.getChildContext=function(){return n.context},n.children}function $(n){var e=this,r=n.i;e.componentWillUnmount=function(){P$1(null,e.l),e.l=null,e.i=null;},e.i&&e.i!==r&&e.componentWillUnmount(),n.__v?(e.l||(e.i=r,e.l={nodeType:1,parentNode:r,childNodes:[],appendChild:function(n){this.childNodes.push(n),e.i.appendChild(n);},insertBefore:function(n,t){this.childNodes.push(n),e.i.appendChild(n);},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.i.removeChild(n);}}),P$1(h(P,{context:e.context},n.__v),e.l)):e.l&&e.componentWillUnmount();}function j(n,e){var r=h($,{__v:n,i:e});return r.containerInfo=e,r}(V.prototype=new d).__a=function(n){var t=this,e=F(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),W(t,n,r)):u();};e?e(o):o();}},V.prototype.render=function(n){this.u=null,this.o=new Map;var t=x$1(n.children);n.revealOrder&&"b"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},V.prototype.componentDidUpdate=V.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){W(n,e,t);});};var z="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,B=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,H="undefined"!=typeof document,Z=function(n){return ("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};d.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t){Object.defineProperty(d.prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n});}});});var G=l$1.event;function J(){}function K(){return this.cancelBubble}function Q(){return this.defaultPrevented}l$1.event=function(n){return G&&(n=G(n)),n.persist=J,n.isPropagationStopped=K,n.isDefaultPrevented=Q,n.nativeEvent=n};var nn={configurable:!0,get:function(){return this.class}},tn=l$1.vnode;l$1.vnode=function(n){var t=n.type,e=n.props,u=e;if("string"==typeof t){var o=-1===t.indexOf("-");for(var i in u={},e){var l=e[i];H&&"children"===i&&"noscript"===t||"value"===i&&"defaultValue"in e&&null==l||("defaultValue"===i&&"value"in e&&null==e.value?i="value":"download"===i&&!0===l?l="":/ondoubleclick/i.test(i)?i="ondblclick":/^onchange(textarea|input)/i.test(i+t)&&!Z(e.type)?i="oninput":/^onfocus$/i.test(i)?i="onfocusin":/^onblur$/i.test(i)?i="onfocusout":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i)?i=i.toLowerCase():o&&B.test(i)?i=i.replace(/[A-Z0-9]/g,"-$&").toLowerCase():null===l&&(l=void 0),/^oninput$/i.test(i)&&(i=i.toLowerCase(),u[i]&&(i="oninputCapture")),u[i]=l);}"select"==t&&u.multiple&&Array.isArray(u.value)&&(u.value=x$1(e.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value);})),"select"==t&&null!=u.defaultValue&&(u.value=x$1(e.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value;})),n.props=u,e.class!=e.className&&(nn.enumerable="className"in e,null!=e.className&&(u.class=e.className),Object.defineProperty(u,"className",nn));}n.$$typeof=z,tn&&tn(n);};var en=l$1.__r;l$1.__r=function(n){en&&en(n),n.__c;};
+ function g(n,t){for(var e in t)n[e]=t[e];return n}function C(n,t){for(var e in n)if("__source"!==e&&!(e in t))return !0;for(var r in t)if("__source"!==r&&n[r]!==t[r])return !0;return !1}function w(n){this.props=n;}(w.prototype=new x$1).isPureReactComponent=!0,w.prototype.shouldComponentUpdate=function(n,t){return C(this.props,n)||C(this.state,t)};var x=l$1.__b;l$1.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),x&&x(n);};var T=l$1.__e;l$1.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);T(n,t,e,r);};var I=l$1.unmount;function L(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){"function"==typeof n.__c&&n.__c();}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return L(n,t,e)})),n}function U(n,t,e){return n&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return U(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.insertBefore(n.__e,n.__d),n.__c.__e=!0,n.__c.__P=e)),n}function D(){this.__u=0,this.t=null,this.__b=null;}function F(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function V(){this.u=null,this.o=null;}l$1.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),I&&I(n);},(D.prototype=new x$1).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=F(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l());};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=U(n,n.__c.__P,n.__c.__O);}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate();}},c=!0===t.__h;r.__u++||c||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i);},D.prototype.componentWillUnmount=function(){this.t=[];},D.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),o=this.__v.__k[0].__c;this.__v.__k[0]=L(this.__b,r,o.__O=o.__P);}this.__b=null;}var i=e.__a&&y(_,null,n.fallback);return i&&(i.__h=null),[y(_,null,e.__a?null:n.children),i]};var W=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&("t"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2];}};function P(n){return this.getChildContext=function(){return n.context},n.children}function $(n){var e=this,r=n.i;e.componentWillUnmount=function(){D$1(null,e.l),e.l=null,e.i=null;},e.i&&e.i!==r&&e.componentWillUnmount(),n.__v?(e.l||(e.i=r,e.l={nodeType:1,parentNode:r,childNodes:[],appendChild:function(n){this.childNodes.push(n),e.i.appendChild(n);},insertBefore:function(n,t){this.childNodes.push(n),e.i.appendChild(n);},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.i.removeChild(n);}}),D$1(y(P,{context:e.context},n.__v),e.l)):e.l&&e.componentWillUnmount();}function j(n,e){var r=y($,{__v:n,i:e});return r.containerInfo=e,r}(V.prototype=new x$1).__a=function(n){var t=this,e=F(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),W(t,n,r)):u();};e?e(o):o();}},V.prototype.render=function(n){this.u=null,this.o=new Map;var t=j$2(n.children);n.revealOrder&&"b"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},V.prototype.componentDidUpdate=V.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){W(n,e,t);});};var z="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,B=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,H="undefined"!=typeof document,Z=function(n){return ("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};x$1.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t){Object.defineProperty(x$1.prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n});}});});var G=l$1.event;function J(){}function K(){return this.cancelBubble}function Q(){return this.defaultPrevented}l$1.event=function(n){return G&&(n=G(n)),n.persist=J,n.isPropagationStopped=K,n.isDefaultPrevented=Q,n.nativeEvent=n};var nn={configurable:!0,get:function(){return this.class}},tn=l$1.vnode;l$1.vnode=function(n){var t=n.type,e=n.props,u=e;if("string"==typeof t){var o=-1===t.indexOf("-");for(var i in u={},e){var l=e[i];H&&"children"===i&&"noscript"===t||"value"===i&&"defaultValue"in e&&null==l||("defaultValue"===i&&"value"in e&&null==e.value?i="value":"download"===i&&!0===l?l="":/ondoubleclick/i.test(i)?i="ondblclick":/^onchange(textarea|input)/i.test(i+t)&&!Z(e.type)?i="oninput":/^onfocus$/i.test(i)?i="onfocusin":/^onblur$/i.test(i)?i="onfocusout":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i)?i=i.toLowerCase():o&&B.test(i)?i=i.replace(/[A-Z0-9]/g,"-$&").toLowerCase():null===l&&(l=void 0),/^oninput$/i.test(i)&&(i=i.toLowerCase(),u[i]&&(i="oninputCapture")),u[i]=l);}"select"==t&&u.multiple&&Array.isArray(u.value)&&(u.value=j$2(e.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value);})),"select"==t&&null!=u.defaultValue&&(u.value=j$2(e.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value;})),n.props=u,e.class!=e.className&&(nn.enumerable="className"in e,null!=e.className&&(u.class=e.className),Object.defineProperty(u,"className",nn));}n.$$typeof=z,tn&&tn(n);};var en=l$1.__r;l$1.__r=function(n){en&&en(n),n.__c;};
/*
NOTE: this can be a public API, especially createElement for hooks.
@@ -2943,19 +3038,19 @@ var FullCalendar = (function (exports) {
callbackQ.push(callback);
}
l$1.debounceRendering = execCallbackSync;
- P$1(h(FakeComponent, {}), document.createElement('div'));
+ D$1(y(FakeComponent, {}), document.createElement('div'));
while (callbackQ.length) {
callbackQ.shift()();
}
l$1.debounceRendering = oldDebounceRendering;
}
- class FakeComponent extends d {
- render() { return h('div', {}); }
+ class FakeComponent extends x$1 {
+ render() { return y('div', {}); }
componentDidMount() { this.setState({}); }
}
// TODO: use preact/compat instead?
function createContext(defaultValue) {
- let ContextType = B$1(defaultValue);
+ let ContextType = G$1(defaultValue);
let origProvider = ContextType.Provider;
ContextType.Provider = function () {
let isNew = !this.getChildContext;
@@ -2989,17 +3084,17 @@ var FullCalendar = (function (exports) {
flushSync: flushSync,
createContext: createContext,
createPortal: j,
- Component: d,
- Fragment: p,
- cloneElement: q,
- createElement: h,
- createRef: y,
- h: h,
- hydrate: S,
+ Component: x$1,
+ Fragment: _,
+ cloneElement: F$1,
+ createElement: y,
+ createRef: d,
+ h: y,
+ hydrate: E,
get isValidElement () { return i$1; },
get options () { return l$1; },
- render: P$1,
- toChildArray: x$1
+ render: D$1,
+ toChildArray: j$2
};
class ScrollResponder {
@@ -3068,7 +3163,7 @@ var FullCalendar = (function (exports) {
}
/* eslint max-classes-per-file: off */
- class PureComponent extends d {
+ class PureComponent extends x$1 {
shouldComponentUpdate(nextProps, nextState) {
if (this.debug) {
// eslint-disable-next-line no-console
@@ -3224,7 +3319,12 @@ var FullCalendar = (function (exports) {
// it's invalid if the originally requested date is not contained,
// or if the range is completely outside of the valid range.
isValid = rangesIntersect(currentInfo.range, validRange);
+ // HACK: constrain to render-range so `currentDate` is more useful to view rendering
+ if (!rangeContainsMarker(renderRange, currentDate)) {
+ currentDate = renderRange.start;
+ }
return {
+ currentDate,
// constraint for where prev/next operations can go and where events can be dragged/resized to.
// an object with optional start and end properties.
validRange,
@@ -3910,7 +4010,9 @@ var FullCalendar = (function (exports) {
let def = this._def;
let { ui } = def;
let { startStr, endStr } = this;
- let res = {};
+ let res = {
+ allDay: def.allDay,
+ };
if (def.title) {
res.title = def.title;
}
@@ -4472,6 +4574,9 @@ var FullCalendar = (function (exports) {
getMonth(marker) {
return this.calendarSystem.getMarkerMonth(marker);
}
+ getDay(marker) {
+ return this.calendarSystem.getMarkerDay(marker);
+ }
// Adding / Subtracting
add(marker, dur) {
let a = this.calendarSystem.markerToArray(marker);
@@ -5085,8 +5190,8 @@ var FullCalendar = (function (exports) {
constructor() {
super(...arguments);
this.id = guid();
- this.currentDomNodes = [];
this.queuedDomNodes = [];
+ this.currentDomNodes = [];
this.handleEl = (el) => {
if (this.props.elRef) {
setRef(this.props.elRef, el);
@@ -5096,35 +5201,46 @@ var FullCalendar = (function (exports) {
render() {
const { props, context } = this;
const { options } = context;
- const { generator, renderProps } = props;
+ const { customGenerator, defaultGenerator, renderProps } = props;
const attrs = buildElAttrs(props);
+ let useDefault = false;
let innerContent;
let queuedDomNodes = [];
- if (hasCustomRenderingHandler(props.generatorName, options)) {
- if (options.customRenderingReplacesEl) {
- delete attrs.elRef; // because handleEl will be used
+ let currentGeneratorMeta;
+ if (customGenerator != null) {
+ const customGeneratorRes = typeof customGenerator === 'function' ?
+ customGenerator(renderProps, y) :
+ customGenerator;
+ if (customGeneratorRes === true) {
+ useDefault = true;
}
- }
- else {
- const customContent = typeof generator === 'function' ?
- generator(renderProps, h) :
- generator;
- if (typeof customContent === 'string' ||
- i$1(customContent) ||
- Array.isArray(customContent)) {
- innerContent = customContent;
- }
- else if (typeof customContent === 'object') {
- if ('html' in customContent) {
- attrs.dangerouslySetInnerHTML = { __html: customContent.html };
+ else {
+ const isObject = customGeneratorRes && typeof customGeneratorRes === 'object'; // non-null
+ if (isObject && ('html' in customGeneratorRes)) {
+ attrs.dangerouslySetInnerHTML = { __html: customGeneratorRes.html };
+ }
+ else if (isObject && ('domNodes' in customGeneratorRes)) {
+ queuedDomNodes = Array.prototype.slice.call(customGeneratorRes.domNodes);
}
- else if ('domNodes' in customContent) {
- queuedDomNodes = Array.prototype.slice.call(customContent.domNodes);
+ else if (!isObject && typeof customGeneratorRes !== 'function') {
+ // primitive value (like string or number)
+ innerContent = customGeneratorRes;
+ }
+ else {
+ // an exotic object for handleCustomRendering
+ currentGeneratorMeta = customGeneratorRes;
}
}
}
+ else {
+ useDefault = !hasCustomRenderingHandler(props.generatorName, options);
+ }
+ if (useDefault && defaultGenerator) {
+ innerContent = defaultGenerator(renderProps);
+ }
this.queuedDomNodes = queuedDomNodes;
- return h(props.elTag, attrs, innerContent);
+ this.currentGeneratorMeta = currentGeneratorMeta;
+ return y(props.elTag, attrs, innerContent);
}
componentDidMount() {
this.applyQueueudDomNodes();
@@ -5138,12 +5254,14 @@ var FullCalendar = (function (exports) {
this.triggerCustomRendering(false); // TODO: different API for removal?
}
triggerCustomRendering(isActive) {
+ var _a;
const { props, context } = this;
const { handleCustomRendering, customRenderingMetaMap } = context.options;
if (handleCustomRendering) {
- const customRenderingMeta = customRenderingMetaMap === null || customRenderingMetaMap === void 0 ? void 0 : customRenderingMetaMap[props.generatorName];
- if (customRenderingMeta) {
- handleCustomRendering(Object.assign({ id: this.id, isActive, containerEl: this.base, reportNewContainerEl: this.handleEl, generatorMeta: customRenderingMeta }, props));
+ const generatorMeta = (_a = this.currentGeneratorMeta) !== null && _a !== void 0 ? _a : customRenderingMetaMap === null || customRenderingMetaMap === void 0 ? void 0 : customRenderingMetaMap[props.generatorName];
+ if (generatorMeta) {
+ handleCustomRendering(Object.assign(Object.assign({ id: this.id, isActive, containerEl: this.base, reportNewContainerEl: this.handleEl, // for customRenderingReplacesEl
+ generatorMeta }, props), { elClasses: (props.elClasses || []).filter(isTruthy) }));
}
}
}
@@ -5166,6 +5284,9 @@ var FullCalendar = (function (exports) {
renderProps: isPropsEqual,
});
// Util
+ /*
+ Does UI-framework provide custom way of rendering?
+ */
function hasCustomRenderingHandler(generatorName, options) {
var _a;
return Boolean(options.handleCustomRendering &&
@@ -5186,13 +5307,22 @@ var FullCalendar = (function (exports) {
}
return attrs;
}
+ function isTruthy(val) {
+ return Boolean(val);
+ }
const RenderId = createContext(0);
- class ContentContainer extends d {
+ class ContentContainer extends x$1 {
constructor() {
super(...arguments);
this.InnerContent = InnerContentInjector.bind(undefined, this);
+ this.handleRootEl = (el) => {
+ this.rootEl = el;
+ if (this.props.elRef) {
+ setRef(this.props.elRef, el);
+ }
+ };
}
render() {
const { props } = this;
@@ -5201,29 +5331,29 @@ var FullCalendar = (function (exports) {
const elAttrs = buildElAttrs(props, generatedClassNames);
const children = props.children(this.InnerContent, props.renderProps, elAttrs);
if (props.elTag) {
- return h(props.elTag, elAttrs, children);
+ return y(props.elTag, elAttrs, children);
}
else {
return children;
}
}
else {
- return h((ContentInjector), Object.assign(Object.assign({}, props), { elTag: props.elTag || 'div', elClasses: (props.elClasses || []).concat(generatedClassNames), renderId: this.context }));
+ return y((ContentInjector), Object.assign(Object.assign({}, props), { elRef: this.handleRootEl, elTag: props.elTag || 'div', elClasses: (props.elClasses || []).concat(generatedClassNames), renderId: this.context }));
}
}
componentDidMount() {
var _a, _b;
- (_b = (_a = this.props).didMount) === null || _b === void 0 ? void 0 : _b.call(_a, Object.assign(Object.assign({}, this.props.renderProps), { el: this.base }));
+ (_b = (_a = this.props).didMount) === null || _b === void 0 ? void 0 : _b.call(_a, Object.assign(Object.assign({}, this.props.renderProps), { el: this.rootEl || this.base }));
}
componentWillUnmount() {
var _a, _b;
- (_b = (_a = this.props).willUnmount) === null || _b === void 0 ? void 0 : _b.call(_a, Object.assign(Object.assign({}, this.props.renderProps), { el: this.base }));
+ (_b = (_a = this.props).willUnmount) === null || _b === void 0 ? void 0 : _b.call(_a, Object.assign(Object.assign({}, this.props.renderProps), { el: this.rootEl || this.base }));
}
}
ContentContainer.contextType = RenderId;
function InnerContentInjector(containerComponent, props) {
const parentProps = containerComponent.props;
- return h((ContentInjector), Object.assign({ renderProps: parentProps.renderProps, generatorName: parentProps.generatorName, generator: parentProps.generator, renderId: containerComponent.context }, props));
+ return y((ContentInjector), Object.assign({ renderProps: parentProps.renderProps, generatorName: parentProps.generatorName, customGenerator: parentProps.customGenerator, defaultGenerator: parentProps.defaultGenerator, renderId: containerComponent.context }, props));
}
// Utils
function generateClassNames(classNameGenerator, renderProps) {
@@ -5247,7 +5377,7 @@ var FullCalendar = (function (exports) {
? buildNavLinkAttrs(this.context, date)
: {};
let renderProps = Object.assign(Object.assign(Object.assign({ date: dateEnv.toDate(date), view: viewApi }, props.extraRenderProps), { text }), dayMeta);
- return (h(ContentContainer, { elTag: "th", elClasses: classNames, elAttrs: Object.assign({ role: 'columnheader', colSpan: props.colSpan, 'data-date': !dayMeta.isDisabled ? formatDayString(date) : undefined }, props.extraDataAttrs), renderProps: renderProps, generatorName: "dayHeaderContent", generator: options.dayHeaderContent || renderInner$1, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContainer) => (h("div", { className: "fc-scrollgrid-sync-inner" }, !dayMeta.isDisabled && (h(InnerContainer, { elTag: "a", elAttrs: navLinkAttrs, elClasses: [
+ return (y(ContentContainer, { elTag: "th", elClasses: classNames, elAttrs: Object.assign({ role: 'columnheader', colSpan: props.colSpan, 'data-date': !dayMeta.isDisabled ? formatDayString(date) : undefined }, props.extraDataAttrs), renderProps: renderProps, generatorName: "dayHeaderContent", customGenerator: options.dayHeaderContent, defaultGenerator: renderInner$1, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContainer) => (y("div", { className: "fc-scrollgrid-sync-inner" }, !dayMeta.isDisabled && (y(InnerContainer, { elTag: "a", elAttrs: navLinkAttrs, elClasses: [
'fc-col-header-cell-cushion',
props.isSticky && 'fc-sticky',
] }))))));
@@ -5271,12 +5401,12 @@ var FullCalendar = (function (exports) {
let text = dateEnv.format(date, props.dayHeaderFormat);
let renderProps = Object.assign(Object.assign(Object.assign(Object.assign({ // TODO: make this public?
date }, dateMeta), { view: viewApi }), props.extraRenderProps), { text });
- return (h(ContentContainer, { elTag: "th", elClasses: [
+ return (y(ContentContainer, { elTag: "th", elClasses: [
CLASS_NAME,
...getDayClassNames(dateMeta, theme),
...(props.extraClassNames || []),
- ], elAttrs: Object.assign({ role: 'columnheader', colSpan: props.colSpan }, props.extraDataAttrs), renderProps: renderProps, generatorName: "dayHeaderContent", generator: options.dayHeaderContent || renderInner$1, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContent) => (h("div", { className: "fc-scrollgrid-sync-inner" },
- h(InnerContent, { elTag: "a", elClasses: [
+ ], elAttrs: Object.assign({ role: 'columnheader', colSpan: props.colSpan }, props.extraDataAttrs), renderProps: renderProps, generatorName: "dayHeaderContent", customGenerator: options.dayHeaderContent, defaultGenerator: renderInner$1, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContent) => (y("div", { className: "fc-scrollgrid-sync-inner" },
+ y(InnerContent, { elTag: "a", elClasses: [
'fc-col-header-cell-cushion',
props.isSticky && 'fc-sticky',
], elAttrs: {
@@ -5285,7 +5415,7 @@ var FullCalendar = (function (exports) {
}
}
- class NowTimer extends d {
+ class NowTimer extends x$1 {
constructor(props, context) {
super(props, context);
this.initialNowDate = getNow(context.options.now, context.dateEnv);
@@ -5353,9 +5483,9 @@ var FullCalendar = (function (exports) {
let { context } = this;
let { dates, dateProfile, datesRepDistinctDays, renderIntro } = this.props;
let dayHeaderFormat = this.createDayHeaderFormatter(context.options.dayHeaderFormat, datesRepDistinctDays, dates.length);
- return (h(NowTimer, { unit: "day" }, (nowDate, todayRange) => (h("tr", { role: "row" },
+ return (y(NowTimer, { unit: "day" }, (nowDate, todayRange) => (y("tr", { role: "row" },
renderIntro && renderIntro('day'),
- dates.map((date) => (datesRepDistinctDays ? (h(TableDateCell, { key: date.toISOString(), date: date, dateProfile: dateProfile, todayRange: todayRange, colCnt: dates.length, dayHeaderFormat: dayHeaderFormat })) : (h(TableDowCell, { key: date.getUTCDay(), dow: date.getUTCDay(), dayHeaderFormat: dayHeaderFormat }))))))));
+ dates.map((date) => (datesRepDistinctDays ? (y(TableDateCell, { key: date.toISOString(), date: date, dateProfile: dateProfile, todayRange: todayRange, colCnt: dates.length, dayHeaderFormat: dayHeaderFormat })) : (y(TableDowCell, { key: date.getUTCDay(), dow: date.getUTCDay(), dayHeaderFormat: dayHeaderFormat }))))))));
}
}
function createDayHeaderFormatter(explicitFormat, datesRepDistinctDays, dateCnt) {
@@ -5508,7 +5638,7 @@ var FullCalendar = (function (exports) {
let { eventUiBases } = props;
let eventSegs = this.sliceEventStore(props.eventStore, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs);
return {
- dateSelectionSegs: this.sliceDateSelection(props.dateSelection, eventUiBases, context, ...extraArgs),
+ dateSelectionSegs: this.sliceDateSelection(props.dateSelection, dateProfile, nextDayThreshold, eventUiBases, context, ...extraArgs),
businessHourSegs: this.sliceBusinessHours(props.businessHours, dateProfile, nextDayThreshold, context, ...extraArgs),
fgEventSegs: eventSegs.fg,
bgEventSegs: eventSegs.bg,
@@ -5518,9 +5648,9 @@ var FullCalendar = (function (exports) {
}; // TODO: give interactionSegs?
}
sliceNowDate(// does not memoize
- date, context, ...extraArgs) {
+ date, dateProfile, nextDayThreshold, context, ...extraArgs) {
return this._sliceDateSpan({ range: { start: date, end: addMs(date, 1) }, allDay: false }, // add 1 ms, protect against null range
- {}, context, ...extraArgs);
+ dateProfile, nextDayThreshold, {}, context, ...extraArgs);
}
_sliceBusinessHours(businessHours, dateProfile, nextDayThreshold, context, ...extraArgs) {
if (!businessHours) {
@@ -5549,16 +5679,22 @@ var FullCalendar = (function (exports) {
isEvent: interaction.isEvent,
};
}
- _sliceDateSpan(dateSpan, eventUiBases, context, ...extraArgs) {
+ _sliceDateSpan(dateSpan, dateProfile, nextDayThreshold, eventUiBases, context, ...extraArgs) {
if (!dateSpan) {
return [];
}
- let eventRange = fabricateEventRange(dateSpan, eventUiBases, context);
- let segs = this.sliceRange(dateSpan.range, ...extraArgs);
- for (let seg of segs) {
- seg.eventRange = eventRange;
+ let activeRange = computeActiveRange(dateProfile, Boolean(nextDayThreshold));
+ let activeDateSpanRange = intersectRanges(dateSpan.range, activeRange);
+ if (activeDateSpanRange) {
+ dateSpan = Object.assign(Object.assign({}, dateSpan), { range: activeDateSpanRange });
+ let eventRange = fabricateEventRange(dateSpan, eventUiBases, context);
+ let segs = this.sliceRange(dateSpan.range, ...extraArgs);
+ for (let seg of segs) {
+ seg.eventRange = eventRange;
+ }
+ return segs;
}
- return segs;
+ return [];
}
/*
"complete" seg means it has component and eventRange
@@ -5611,6 +5747,8 @@ var FullCalendar = (function (exports) {
switch (action.type) {
case 'RECEIVE_EVENTS': // raw
return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, context);
+ case 'RESET_RAW_EVENTS':
+ return resetRawEvents(eventStore, eventSources[action.sourceId], action.rawEvents, dateProfile.activeRange, context);
case 'ADD_EVENTS': // already parsed, but not expanded
return addEvent(eventStore, action.eventStore, // new ones
dateProfile ? dateProfile.activeRange : null, context);
@@ -5651,6 +5789,11 @@ var FullCalendar = (function (exports) {
}
return eventStore;
}
+ function resetRawEvents(existingEventStore, eventSource, rawEvents, activeRange, context) {
+ const { defIdMap, instanceIdMap } = buildPublicIdMaps(existingEventStore);
+ let newEventStore = parseEvents(transformRawEvents(rawEvents, eventSource, context), eventSource, context, false, defIdMap, instanceIdMap);
+ return expandRecurring(newEventStore, activeRange, context);
+ }
function transformRawEvents(rawEvents, eventSource, context) {
let calEachTransform = context.options.eventDataTransform;
let sourceEachTransform = eventSource ? eventSource.eventDataTransform : null;
@@ -5691,7 +5834,7 @@ var FullCalendar = (function (exports) {
let { defs } = eventStore;
let instances = mapHash(eventStore.instances, (instance) => {
let def = defs[instance.defId];
- if (def.allDay || def.recurringDef) {
+ if (def.allDay) {
return instance; // isn't dependent on timezone
}
return Object.assign(Object.assign({}, instance), { range: {
@@ -5711,6 +5854,27 @@ var FullCalendar = (function (exports) {
instances: filterHash(eventStore.instances, (instance) => !removals[instance.instanceId]),
};
}
+ function buildPublicIdMaps(eventStore) {
+ const { defs, instances } = eventStore;
+ const defIdMap = {};
+ const instanceIdMap = {};
+ for (let defId in defs) {
+ const def = defs[defId];
+ const { publicId } = def;
+ if (publicId) {
+ defIdMap[publicId] = defId;
+ }
+ }
+ for (let instanceId in instances) {
+ const instance = instances[instanceId];
+ const def = defs[instance.defId];
+ const { publicId } = def;
+ if (publicId) {
+ instanceIdMap[publicId] = instanceId;
+ }
+ }
+ return { defIdMap, instanceIdMap };
+ }
// high-level segmenting-aware tester functions
// ------------------------------------------------------------------------------------------------------------------------
@@ -6026,7 +6190,7 @@ var FullCalendar = (function (exports) {
className.push('fc-scroller-liquid');
}
}
- return (h("div", { ref: this.handleEl, className: className.join(' '), style: {
+ return (y("div", { ref: this.handleEl, className: className.join(' '), style: {
overflowX: props.overflowX,
overflowY: props.overflowY,
left: (isAbsolute && -(props.overcomeLeft || 0)) || '',
@@ -6167,7 +6331,7 @@ var FullCalendar = (function (exports) {
let { expandRows } = arg;
let content = typeof chunkConfig.content === 'function' ?
chunkConfig.content(arg) :
- h('table', {
+ y('table', {
role: 'presentation',
className: [
chunkConfig.tableClassName,
@@ -6178,7 +6342,7 @@ var FullCalendar = (function (exports) {
width: arg.clientWidth,
height: expandRows ? arg.clientHeight : '', // css `height` on a <table> serves as a min-height
},
- }, arg.tableColGroupNode, h(isHeader ? 'thead' : 'tbody', {
+ }, arg.tableColGroupNode, y(isHeader ? 'thead' : 'tbody', {
role: 'presentation',
}, typeof chunkConfig.rowContent === 'function'
? chunkConfig.rowContent(arg)
@@ -6198,13 +6362,13 @@ var FullCalendar = (function (exports) {
for (let colProps of cols) {
let span = colProps.span || 1;
for (let i = 0; i < span; i += 1) {
- colNodes.push(h("col", { style: {
+ colNodes.push(y("col", { style: {
width: colProps.width === 'shrink' ? sanitizeShrinkWidth(shrinkWidth) : (colProps.width || ''),
minWidth: colProps.minWidth || '',
} }));
}
}
- return h('colgroup', {}, ...colNodes);
+ return y('colgroup', {}, ...colNodes);
}
function sanitizeShrinkWidth(shrinkWidth) {
/* why 4? if we do 0, it will kill any border, which are needed for computeSmallestCellWidth
@@ -6244,7 +6408,7 @@ var FullCalendar = (function (exports) {
return classNames;
}
function renderScrollShim(arg) {
- return (h("div", { className: "fc-scrollgrid-sticky-shim", style: {
+ return (y("div", { className: "fc-scrollgrid-sticky-shim", style: {
width: arg.clientWidth,
minWidth: arg.tableMinWidth,
} }));
@@ -6317,17 +6481,17 @@ var FullCalendar = (function (exports) {
// if so, use a simpler dom structure, jam everything into a lone tbody.
let isBuggy = !getCanVGrowWithinCell();
const roleAttrs = { role: 'rowgroup' };
- return h('table', {
+ return y('table', {
role: 'grid',
className: classNames.join(' '),
style: { height: props.height },
- }, Boolean(!isBuggy && headSectionNodes.length) && h('thead', roleAttrs, ...headSectionNodes), Boolean(!isBuggy && bodySectionNodes.length) && h('tbody', roleAttrs, ...bodySectionNodes), Boolean(!isBuggy && footSectionNodes.length) && h('tfoot', roleAttrs, ...footSectionNodes), isBuggy && h('tbody', roleAttrs, ...headSectionNodes, ...bodySectionNodes, ...footSectionNodes));
+ }, Boolean(!isBuggy && headSectionNodes.length) && y('thead', roleAttrs, ...headSectionNodes), Boolean(!isBuggy && bodySectionNodes.length) && y('tbody', roleAttrs, ...bodySectionNodes), Boolean(!isBuggy && footSectionNodes.length) && y('tfoot', roleAttrs, ...footSectionNodes), isBuggy && y('tbody', roleAttrs, ...headSectionNodes, ...bodySectionNodes, ...footSectionNodes));
}
renderSection(sectionConfig, microColGroupNode, isHeader) {
if ('outerContent' in sectionConfig) {
- return (h(p, { key: sectionConfig.key }, sectionConfig.outerContent));
+ return (y(_, { key: sectionConfig.key }, sectionConfig.outerContent));
}
- return (h("tr", { key: sectionConfig.key, role: "presentation", className: getSectionClassNames(sectionConfig, this.props.liquid).join(' ') }, this.renderChunkTd(sectionConfig, microColGroupNode, sectionConfig.chunk, isHeader)));
+ return (y("tr", { key: sectionConfig.key, role: "presentation", className: getSectionClassNames(sectionConfig, this.props.liquid).join(' ') }, this.renderChunkTd(sectionConfig, microColGroupNode, sectionConfig.chunk, isHeader)));
}
renderChunkTd(sectionConfig, microColGroupNode, chunkConfig, isHeader) {
if ('outerContent' in chunkConfig) {
@@ -6354,11 +6518,11 @@ var FullCalendar = (function (exports) {
rowSyncHeights: [],
reportRowHeightChange: () => { },
}, isHeader);
- return h(isHeader ? 'th' : 'td', {
+ return y(isHeader ? 'th' : 'td', {
ref: chunkConfig.elRef,
role: 'presentation',
- }, h("div", { className: `fc-scroller-harness${isLiquid ? ' fc-scroller-harness-liquid' : ''}` },
- h(Scroller, { ref: this.scrollerRefs.createRef(sectionKey), elRef: this.scrollerElRefs.createRef(sectionKey), overflowY: overflowY, overflowX: !props.liquid ? 'visible' : 'hidden' /* natural height? */, maxHeight: sectionConfig.maxHeight, liquid: isLiquid, liquidIsAbsolute // because its within a harness
+ }, y("div", { className: `fc-scroller-harness${isLiquid ? ' fc-scroller-harness-liquid' : ''}` },
+ y(Scroller, { ref: this.scrollerRefs.createRef(sectionKey), elRef: this.scrollerElRefs.createRef(sectionKey), overflowY: overflowY, overflowX: !props.liquid ? 'visible' : 'hidden' /* natural height? */, maxHeight: sectionConfig.maxHeight, liquid: isLiquid, liquidIsAbsolute // because its within a harness
: true }, content)));
}
_handleScrollerEl(scrollerEl, key) {
@@ -6459,11 +6623,11 @@ var FullCalendar = (function (exports) {
isDragging: Boolean(props.isDragging),
isResizing: Boolean(props.isResizing),
};
- return (h(ContentContainer, Object.assign({}, props /* contains children */, { elRef: this.handleEl, elClasses: [
+ return (y(ContentContainer, Object.assign({}, props /* contains children */, { elRef: this.handleEl, elClasses: [
...getEventClassNames(renderProps),
...seg.eventRange.ui.classNames,
...(props.elClasses || []),
- ], renderProps: renderProps, generatorName: "eventContent", generator: options.eventContent || props.defaultGenerator, classNameGenerator: options.eventClassNames, didMount: options.eventDidMount, willUnmount: options.eventWillUnmount })));
+ ], renderProps: renderProps, generatorName: "eventContent", customGenerator: options.eventContent, defaultGenerator: props.defaultGenerator, classNameGenerator: options.eventClassNames, didMount: options.eventDidMount, willUnmount: options.eventWillUnmount })));
}
componentDidUpdate(prevProps) {
if (this.el && this.props.seg !== prevProps.seg) {
@@ -6481,30 +6645,30 @@ var FullCalendar = (function (exports) {
let { ui } = seg.eventRange;
let timeFormat = options.eventTimeFormat || props.defaultTimeFormat;
let timeText = buildSegTimeText(seg, timeFormat, context, props.defaultDisplayEventTime, props.defaultDisplayEventEnd);
- return (h(EventContainer, Object.assign({}, props /* includes elRef */, { elTag: "a", elStyle: {
+ return (y(EventContainer, Object.assign({}, props /* includes elRef */, { elTag: "a", elStyle: {
borderColor: ui.borderColor,
backgroundColor: ui.backgroundColor,
- }, elAttrs: getSegAnchorAttrs(seg, context), defaultGenerator: renderInnerContent$1, timeText: timeText }), (InnerContent, eventContentArg) => (h(p, null,
- h(InnerContent, { elTag: "div", elClasses: ['fc-event-main'], elStyle: { color: eventContentArg.textColor } }),
- Boolean(eventContentArg.isStartResizable) && (h("div", { className: "fc-event-resizer fc-event-resizer-start" })),
- Boolean(eventContentArg.isEndResizable) && (h("div", { className: "fc-event-resizer fc-event-resizer-end" }))))));
+ }, elAttrs: getSegAnchorAttrs(seg, context), defaultGenerator: renderInnerContent$1, timeText: timeText }), (InnerContent, eventContentArg) => (y(_, null,
+ y(InnerContent, { elTag: "div", elClasses: ['fc-event-main'], elStyle: { color: eventContentArg.textColor } }),
+ Boolean(eventContentArg.isStartResizable) && (y("div", { className: "fc-event-resizer fc-event-resizer-start" })),
+ Boolean(eventContentArg.isEndResizable) && (y("div", { className: "fc-event-resizer fc-event-resizer-end" }))))));
}
}
function renderInnerContent$1(innerProps) {
- return (h("div", { className: "fc-event-main-frame" },
- innerProps.timeText && (h("div", { className: "fc-event-time" }, innerProps.timeText)),
- h("div", { className: "fc-event-title-container" },
- h("div", { className: "fc-event-title fc-sticky" }, innerProps.event.title || h(p, null, "\u00A0")))));
+ return (y("div", { className: "fc-event-main-frame" },
+ innerProps.timeText && (y("div", { className: "fc-event-time" }, innerProps.timeText)),
+ y("div", { className: "fc-event-title-container" },
+ y("div", { className: "fc-event-title fc-sticky" }, innerProps.event.title || y(_, null, "\u00A0")))));
}
- const NowIndicatorContainer = (props) => (h(ViewContextType.Consumer, null, (context) => {
+ const NowIndicatorContainer = (props) => (y(ViewContextType.Consumer, null, (context) => {
let { options } = context;
let renderProps = {
isAxis: props.isAxis,
date: context.dateEnv.toDate(props.date),
view: context.viewApi,
};
- return (h(ContentContainer, Object.assign({}, props /* includes children */, { elTag: props.elTag || 'div', renderProps: renderProps, generatorName: "nowIndicatorContent", generator: options.nowIndicatorContent, classNameGenerator: options.nowIndicatorClassNames, didMount: options.nowIndicatorDidMount, willUnmount: options.nowIndicatorWillUnmount })));
+ return (y(ContentContainer, Object.assign({}, props /* includes children */, { elTag: props.elTag || 'div', renderProps: renderProps, generatorName: "nowIndicatorContent", customGenerator: options.nowIndicatorContent, classNameGenerator: options.nowIndicatorClassNames, didMount: options.nowIndicatorDidMount, willUnmount: options.nowIndicatorWillUnmount })));
}));
const DAY_NUM_FORMAT = createFormatter({ day: 'numeric' });
@@ -6520,15 +6684,17 @@ var FullCalendar = (function (exports) {
date: props.date,
dateProfile: props.dateProfile,
todayRange: props.todayRange,
+ isMonthStart: props.isMonthStart || false,
showDayNumber: props.showDayNumber,
extraRenderProps: props.extraRenderProps,
viewApi: context.viewApi,
dateEnv: context.dateEnv,
+ monthStartFormat: options.monthStartFormat,
});
- return (h(ContentContainer, Object.assign({}, props /* includes children */, { elClasses: [
+ return (y(ContentContainer, Object.assign({}, props /* includes children */, { elClasses: [
...getDayClassNames(renderProps, context.theme),
...(props.elClasses || []),
- ], elAttrs: Object.assign(Object.assign({}, props.elAttrs), (renderProps.isDisabled ? {} : { 'data-date': formatDayString(props.date) })), renderProps: renderProps, generatorName: "dayCellContent", generator: options.dayCellContent || props.defaultGenerator, classNameGenerator:
+ ], elAttrs: Object.assign(Object.assign({}, props.elAttrs), (renderProps.isDisabled ? {} : { 'data-date': formatDayString(props.date) })), renderProps: renderProps, generatorName: "dayCellContent", customGenerator: options.dayCellContent, defaultGenerator: props.defaultGenerator, classNameGenerator:
// don't use custom classNames if disabled
renderProps.isDisabled ? undefined : options.dayCellClassNames, didMount: options.dayCellDidMount, willUnmount: options.dayCellWillUnmount })));
}
@@ -6537,35 +6703,37 @@ var FullCalendar = (function (exports) {
return Boolean(options.dayCellContent || hasCustomRenderingHandler('dayCellContent', options));
}
function refineRenderProps(raw) {
- let { date, dateEnv } = raw;
- let dayMeta = getDateMeta(date, raw.todayRange, null, raw.dateProfile);
- return Object.assign(Object.assign(Object.assign({ date: dateEnv.toDate(date), view: raw.viewApi }, dayMeta), { dayNumberText: raw.showDayNumber ? dateEnv.format(date, DAY_NUM_FORMAT) : '' }), raw.extraRenderProps);
+ let { date, dateEnv, dateProfile, isMonthStart } = raw;
+ let dayMeta = getDateMeta(date, raw.todayRange, null, dateProfile);
+ let dayNumberText = raw.showDayNumber ? (dateEnv.format(date, isMonthStart ? raw.monthStartFormat : DAY_NUM_FORMAT)) : '';
+ return Object.assign(Object.assign(Object.assign({ date: dateEnv.toDate(date), view: raw.viewApi }, dayMeta), { isMonthStart,
+ dayNumberText }), raw.extraRenderProps);
}
class BgEvent extends BaseComponent {
render() {
let { props } = this;
let { seg } = props;
- return (h(EventContainer, { elTag: "div", elClasses: ['fc-bg-event'], elStyle: { backgroundColor: seg.eventRange.ui.backgroundColor }, defaultGenerator: renderInnerContent, seg: seg, timeText: "", isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday, disableDragging: true, disableResizing: true }));
+ return (y(EventContainer, { elTag: "div", elClasses: ['fc-bg-event'], elStyle: { backgroundColor: seg.eventRange.ui.backgroundColor }, defaultGenerator: renderInnerContent, seg: seg, timeText: "", isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday, disableDragging: true, disableResizing: true }));
}
}
function renderInnerContent(props) {
let { title } = props.event;
- return title && (h("div", { className: "fc-event-title" }, props.event.title));
+ return title && (y("div", { className: "fc-event-title" }, props.event.title));
}
function renderFill(fillType) {
- return (h("div", { className: `fc-${fillType}` }));
+ return (y("div", { className: `fc-${fillType}` }));
}
- const WeekNumberContainer = (props) => (h(ViewContextType.Consumer, null, (context) => {
+ const WeekNumberContainer = (props) => (y(ViewContextType.Consumer, null, (context) => {
let { dateEnv, options } = context;
let { date } = props;
let format = options.weekNumberFormat || props.defaultFormat;
let num = dateEnv.computeWeekNumber(date); // TODO: somehow use for formatting as well?
let text = dateEnv.format(date, format);
let renderProps = { num, text, date };
- return (h(ContentContainer // why isn't WeekNumberContentArg being auto-detected?
- , Object.assign({}, props /* includes children */, { renderProps: renderProps, generatorName: "weekNumberContent", generator: options.weekNumberContent || renderInner, classNameGenerator: options.weekNumberClassNames, didMount: options.weekNumberDidMount, willUnmount: options.weekNumberWillUnmount })));
+ return (y(ContentContainer // why isn't WeekNumberContentArg being auto-detected?
+ , Object.assign({}, props /* includes children */, { renderProps: renderProps, generatorName: "weekNumberContent", customGenerator: options.weekNumberContent, defaultGenerator: renderInner, classNameGenerator: options.weekNumberClassNames, didMount: options.weekNumberDidMount, willUnmount: options.weekNumberWillUnmount })));
}));
function renderInner(innerProps) {
return innerProps.text;
@@ -6611,11 +6779,11 @@ var FullCalendar = (function (exports) {
'fc-popover',
theme.getClass('popover'),
].concat(props.extraClassNames || []);
- return j(h("div", Object.assign({}, props.extraAttrs, { id: props.id, className: classNames.join(' '), "aria-labelledby": state.titleId, ref: this.handleRootEl }),
- h("div", { className: 'fc-popover-header ' + theme.getClass('popoverHeader') },
- h("span", { className: "fc-popover-title", id: state.titleId }, props.title),
- h("span", { className: 'fc-popover-close ' + theme.getIconClass('close'), title: options.closeHint, onClick: this.handleCloseClick })),
- h("div", { className: 'fc-popover-body ' + theme.getClass('popoverContent') }, props.children)), props.parentEl);
+ return j(y("div", Object.assign({}, props.extraAttrs, { id: props.id, className: classNames.join(' '), "aria-labelledby": state.titleId, ref: this.handleRootEl }),
+ y("div", { className: 'fc-popover-header ' + theme.getClass('popoverHeader') },
+ y("span", { className: "fc-popover-title", id: state.titleId }, props.title),
+ y("span", { className: 'fc-popover-close ' + theme.getIconClass('close'), title: options.closeHint, onClick: this.handleCloseClick })),
+ y("div", { className: 'fc-popover-body ' + theme.getClass('popoverContent') }, props.children)), props.parentEl);
}
componentDidMount() {
document.addEventListener('mousedown', this.handleDocumentMouseDown);
@@ -6672,8 +6840,8 @@ var FullCalendar = (function (exports) {
let { props } = this;
let { startDate, todayRange, dateProfile } = props;
let title = dateEnv.format(startDate, options.dayPopoverFormat);
- return (h(DayCellContainer, { elRef: this.handleRootEl, date: startDate, dateProfile: dateProfile, todayRange: todayRange }, (InnerContent, renderProps, elAttrs) => (h(Popover, { elRef: elAttrs.ref, id: props.id, title: title, extraClassNames: ['fc-more-popover'].concat(elAttrs.className || []), extraAttrs: elAttrs /* TODO: make these time-based when not whole-day? */, parentEl: props.parentEl, alignmentEl: props.alignmentEl, alignGridTop: props.alignGridTop, onClose: props.onClose },
- hasCustomDayCellContent(options) && (h(InnerContent, { elTag: "div", elClasses: ['fc-more-popover-misc'] })),
+ return (y(DayCellContainer, { elRef: this.handleRootEl, date: startDate, dateProfile: dateProfile, todayRange: todayRange }, (InnerContent, renderProps, elAttrs) => (y(Popover, { elRef: elAttrs.ref, id: props.id, title: title, extraClassNames: ['fc-more-popover'].concat(elAttrs.className || []), extraAttrs: elAttrs /* TODO: make these time-based when not whole-day? */, parentEl: props.parentEl, alignmentEl: props.alignmentEl, alignGridTop: props.alignGridTop, onClose: props.onClose },
+ hasCustomDayCellContent(options) && (y(InnerContent, { elTag: "div", elClasses: ['fc-more-popover-misc'] })),
props.children))));
}
queryHit(positionLeft, positionTop, elWidth, elHeight) {
@@ -6682,7 +6850,7 @@ var FullCalendar = (function (exports) {
positionTop >= 0 && positionTop < elHeight) {
return {
dateProfile: props.dateProfile,
- dateSpan: Object.assign({ allDay: true, range: {
+ dateSpan: Object.assign({ allDay: !props.forceTimed, range: {
start: props.startDate,
end: props.endDate,
} }, props.extraDateSpan),
@@ -6750,7 +6918,7 @@ var FullCalendar = (function (exports) {
}
render() {
let { props, state } = this;
- return (h(ViewContextType.Consumer, null, (context) => {
+ return (y(ViewContextType.Consumer, null, (context) => {
let { viewApi, options, calendarApi } = context;
let { moreLinkText } = options;
let { moreCnt } = props;
@@ -6765,14 +6933,14 @@ var FullCalendar = (function (exports) {
text,
view: viewApi,
};
- return (h(p, null,
- Boolean(props.moreCnt) && (h(ContentContainer, { elTag: props.elTag || 'a', elRef: this.handleLinkEl, elClasses: [
+ return (y(_, null,
+ Boolean(props.moreCnt) && (y(ContentContainer, { elTag: props.elTag || 'a', elRef: this.handleLinkEl, elClasses: [
...(props.elClasses || []),
'fc-more-link',
- ], elStyle: props.elStyle, elAttrs: Object.assign(Object.assign(Object.assign({}, props.elAttrs), createAriaClickAttrs(this.handleClick)), { title: hint, 'aria-expanded': state.isPopoverOpen, 'aria-controls': state.isPopoverOpen ? state.popoverId : '' }), renderProps: renderProps, generatorName: "moreLinkContent", generator: options.moreLinkContent || props.defaultGenerator || renderMoreLinkInner, classNameGenerator: options.moreLinkClassNames, didMount: options.moreLinkDidMount, willUnmount: options.moreLinkWillUnmount }, props.children)),
- state.isPopoverOpen && (h(MorePopover, { id: state.popoverId, startDate: range.start, endDate: range.end, dateProfile: props.dateProfile, todayRange: props.todayRange, extraDateSpan: props.extraDateSpan, parentEl: this.parentEl, alignmentEl: props.alignmentElRef ?
+ ], elStyle: props.elStyle, elAttrs: Object.assign(Object.assign(Object.assign({}, props.elAttrs), createAriaClickAttrs(this.handleClick)), { title: hint, 'aria-expanded': state.isPopoverOpen, 'aria-controls': state.isPopoverOpen ? state.popoverId : '' }), renderProps: renderProps, generatorName: "moreLinkContent", customGenerator: options.moreLinkContent, defaultGenerator: props.defaultGenerator || renderMoreLinkInner, classNameGenerator: options.moreLinkClassNames, didMount: options.moreLinkDidMount, willUnmount: options.moreLinkWillUnmount }, props.children)),
+ state.isPopoverOpen && (y(MorePopover, { id: state.popoverId, startDate: range.start, endDate: range.end, dateProfile: props.dateProfile, todayRange: props.todayRange, extraDateSpan: props.extraDateSpan, parentEl: this.parentEl, alignmentEl: props.alignmentElRef ?
props.alignmentElRef.current :
- this.linkEl, alignGridTop: props.alignGridTop, onClose: this.handlePopoverClose }, props.popoverContent()))));
+ this.linkEl, alignGridTop: props.alignGridTop, forceTimed: props.forceTimed, onClose: this.handlePopoverClose }, props.popoverContent()))));
}));
}
componentDidMount() {
@@ -6816,15 +6984,15 @@ var FullCalendar = (function (exports) {
return seg0.eventRange.range.end > seg1.eventRange.range.end ? seg0 : seg1;
}
- class ViewContainer$1 extends BaseComponent {
+ class ViewContainer extends BaseComponent {
render() {
let { props, context } = this;
let { options } = context;
let renderProps = { view: context.viewApi };
- return (h(ContentContainer, Object.assign({}, props, { elTag: props.elTag || 'div', elClasses: [
+ return (y(ContentContainer, Object.assign({}, props, { elTag: props.elTag || 'div', elClasses: [
...buildViewClassNames(props.viewSpec),
...(props.elClasses || []),
- ], renderProps: renderProps, classNameGenerator: options.viewClassNames, generatorName: undefined, generator: undefined, didMount: options.viewDidMount, willUnmount: options.viewWillUnmount }), () => props.children));
+ ], renderProps: renderProps, classNameGenerator: options.viewClassNames, generatorName: undefined, didMount: options.viewDidMount, willUnmount: options.viewWillUnmount }), () => props.children));
}
}
function buildViewClassNames(viewSpec) {
@@ -6834,22 +7002,6 @@ var FullCalendar = (function (exports) {
];
}
- function injectStyles(css) {
- if (!css || typeof document === 'undefined') {
- return;
- }
- const head = document.head || document.getElementsByTagName('head')[0];
- const style = document.createElement('style');
- style.type = 'text/css';
- head.appendChild(style);
- if (style.styleSheet) {
- style.styleSheet.cssText = css;
- }
- else {
- style.appendChild(document.createTextNode(css));
- }
- }
-
const EVENT_SOURCE_REFINERS = {
id: String,
defaultAllDay: Boolean,
@@ -7379,7 +7531,6 @@ var FullCalendar = (function (exports) {
applyStyle: applyStyle,
elementMatches: elementMatches,
elementClosest: elementClosest,
- getElRoot: getElRoot,
getEventTargetViaRoot: getEventTargetViaRoot,
getUniqueDomId: getUniqueDomId,
parseClassNames: parseClassNames,
@@ -7441,6 +7592,7 @@ var FullCalendar = (function (exports) {
formatIsoTimeString: formatIsoTimeString,
formatDayString: formatDayString,
buildIsoString: buildIsoString,
+ formatIsoMonthStr: formatIsoMonthStr,
NamedTimeZoneImpl: NamedTimeZoneImpl,
parseMarker: parse,
SegHierarchy: SegHierarchy,
@@ -7509,7 +7661,7 @@ var FullCalendar = (function (exports) {
WeekNumberContainer: WeekNumberContainer,
MoreLinkContainer: MoreLinkContainer,
computeEarliestSegStart: computeEarliestSegStart,
- ViewContainer: ViewContainer$1,
+ ViewContainer: ViewContainer,
triggerDateSelect: triggerDateSelect,
getDefaultEventEnd: getDefaultEventEnd,
injectStyles: injectStyles,
@@ -7521,9 +7673,6 @@ var FullCalendar = (function (exports) {
CustomRenderingStore: CustomRenderingStore
};
- 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)}";
- injectStyles(css_248z);
-
const globalLocales = [];
const MINIMAL_RAW_EN_LOCALE = {
@@ -7863,8 +8012,13 @@ var FullCalendar = (function (exports) {
input;
let { component } = rawOptions;
if (rawOptions.content) {
- component = createViewHookComponent(rawOptions);
// TODO: remove content/classNames/didMount/etc from options?
+ component = createViewHookComponent(rawOptions);
+ }
+ else if (component && !(component.prototype instanceof BaseComponent)) {
+ // WHY?: people were using `component` property for `content`
+ // TODO: converge on one setting name
+ component = createViewHookComponent(Object.assign(Object.assign({}, rawOptions), { content: component }));
}
return {
superType: rawOptions.type,
@@ -7873,7 +8027,7 @@ var FullCalendar = (function (exports) {
};
}
function createViewHookComponent(options) {
- return (viewProps) => (h(ViewContextType.Consumer, null, (context) => (h(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 }))));
+ return (viewProps) => (y(ViewContextType.Consumer, null, (context) => (y(ContentContainer, { elTag: "div", elClasses: buildViewClassNames(context.viewSpec), renderProps: Object.assign(Object.assign({}, viewProps), { nextDayThreshold: context.options.nextDayThreshold }), generatorName: undefined, customGenerator: options.content, classNameGenerator: options.classNames, didMount: options.didMount, willUnmount: options.willUnmount }))));
}
function buildViewSpecs(defaultInputs, optionOverrides, dynamicOptionOverrides, localeDefaults) {
@@ -8549,6 +8703,17 @@ var FullCalendar = (function (exports) {
*/
function handleEventSources(inputs, context) {
let unfoundSources = hashValuesToArray(context.getCurrentData().eventSources);
+ if (unfoundSources.length === 1 &&
+ inputs.length === 1 &&
+ Array.isArray(unfoundSources[0]._raw) &&
+ Array.isArray(inputs[0])) {
+ context.dispatch({
+ type: 'RESET_RAW_EVENTS',
+ sourceId: unfoundSources[0].sourceId,
+ rawEvents: inputs[0],
+ });
+ return;
+ }
let newInputs = [];
for (let input of inputs) {
let inputFound = false;
@@ -8686,7 +8851,6 @@ var FullCalendar = (function (exports) {
// also, whatever is happening in constructor, have it happen in action queue too
class CalendarDataManager {
constructor(props) {
- this.computeOptionsData = memoize(this._computeOptionsData);
this.computeCurrentViewData = memoize(this._computeCurrentViewData);
this.organizeRawLocales = memoize(organizeRawLocales);
this.buildLocale = memoize(buildLocale);
@@ -8709,6 +8873,8 @@ var FullCalendar = (function (exports) {
this.currentViewOptionsInput = {};
this.currentViewOptionsRefined = {};
this.currentCalendarOptionsRefiners = {};
+ this.optionsForRefining = [];
+ this.optionsForHandling = [];
this.getCurrentData = () => this.data;
this.dispatch = (action) => {
this.actionRunner.request(action); // protects against recursive calls to _handleAction
@@ -8771,13 +8937,20 @@ var FullCalendar = (function (exports) {
this.updateData();
this.actionRunner.resume();
}
- resetOptions(optionOverrides, append) {
+ resetOptions(optionOverrides, changedOptionNames) {
let { props } = this;
- props.optionOverrides = append
- ? Object.assign(Object.assign({}, props.optionOverrides), optionOverrides) : optionOverrides;
- this.actionRunner.request({
- type: 'NOTHING',
- });
+ if (changedOptionNames === undefined) {
+ props.optionOverrides = optionOverrides;
+ }
+ else {
+ props.optionOverrides = Object.assign(Object.assign({}, (props.optionOverrides || {})), optionOverrides);
+ this.optionsForRefining.push(...changedOptionNames);
+ }
+ if (changedOptionNames === undefined || changedOptionNames.length) {
+ this.actionRunner.request({
+ type: 'NOTHING',
+ });
+ }
}
_handleAction(action) {
let { props, state, emitter } = this;
@@ -8867,26 +9040,34 @@ var FullCalendar = (function (exports) {
// hack
state.eventSources = data.eventSources = reduceEventSourcesNewTimeZone(data.eventSources, state.dateProfile, data);
state.eventStore = data.eventStore = rezoneEventStoreDates(data.eventStore, oldData.dateEnv, data.dateEnv);
+ state.renderableEventStore = data.renderableEventStore = rezoneEventStoreDates(data.renderableEventStore, oldData.dateEnv, data.dateEnv);
}
for (let optionName in changeHandlers) {
- if (oldCalendarOptions[optionName] !== newCalendarOptions[optionName]) {
+ if (this.optionsForHandling.indexOf(optionName) !== -1 ||
+ oldCalendarOptions[optionName] !== newCalendarOptions[optionName]) {
changeHandlers[optionName](newCalendarOptions[optionName], data);
}
}
}
+ this.optionsForHandling = [];
if (props.onData) {
props.onData(data);
}
}
- _computeOptionsData(optionOverrides, dynamicOptionOverrides, calendarApi) {
+ computeOptionsData(optionOverrides, dynamicOptionOverrides, calendarApi) {
// TODO: blacklist options that are handled by optionChangeHandlers
+ if (!this.optionsForRefining.length &&
+ optionOverrides === this.stableOptionOverrides &&
+ dynamicOptionOverrides === this.stableDynamicOptionOverrides) {
+ return this.stableCalendarOptionsData;
+ }
let { refinedOptions, pluginHooks, localeDefaults, availableLocaleData, extra, } = this.processRawCalendarOptions(optionOverrides, dynamicOptionOverrides);
warnUnknownOptions(extra);
let dateEnv = this.buildDateEnv(refinedOptions.timeZone, refinedOptions.locale, refinedOptions.weekNumberCalculation, refinedOptions.firstDay, refinedOptions.weekText, pluginHooks, availableLocaleData, refinedOptions.defaultRangeSeparator);
- let viewSpecs = this.buildViewSpecs(pluginHooks.views, optionOverrides, dynamicOptionOverrides, localeDefaults);
+ let viewSpecs = this.buildViewSpecs(pluginHooks.views, this.stableOptionOverrides, this.stableDynamicOptionOverrides, localeDefaults);
let theme = this.buildTheme(refinedOptions, pluginHooks);
- let toolbarConfig = this.parseToolbars(refinedOptions, optionOverrides, theme, viewSpecs, calendarApi);
- return {
+ let toolbarConfig = this.parseToolbars(refinedOptions, this.stableOptionOverrides, theme, viewSpecs, calendarApi);
+ return this.stableCalendarOptionsData = {
calendarOptions: refinedOptions,
pluginHooks,
dateEnv,
@@ -8921,26 +9102,27 @@ var FullCalendar = (function (exports) {
let currentRefined = this.currentCalendarOptionsRefined;
let anyChanges = false;
for (let optionName in raw) {
- if (optionName !== 'plugins') { // because plugins is special-cased
- if (raw[optionName] === currentRaw[optionName] ||
- (COMPLEX_OPTION_COMPARATORS[optionName] &&
- (optionName in currentRaw) &&
- COMPLEX_OPTION_COMPARATORS[optionName](currentRaw[optionName], raw[optionName]))) {
- refined[optionName] = currentRefined[optionName];
- }
- else if (refiners[optionName]) {
- refined[optionName] = refiners[optionName](raw[optionName]);
- anyChanges = true;
- }
- else {
- extra[optionName] = currentRaw[optionName];
- }
+ if (this.optionsForRefining.indexOf(optionName) === -1 && (raw[optionName] === currentRaw[optionName] || (COMPLEX_OPTION_COMPARATORS[optionName] &&
+ (optionName in currentRaw) &&
+ COMPLEX_OPTION_COMPARATORS[optionName](currentRaw[optionName], raw[optionName])))) {
+ refined[optionName] = currentRefined[optionName];
+ }
+ else if (refiners[optionName]) {
+ refined[optionName] = refiners[optionName](raw[optionName]);
+ anyChanges = true;
+ }
+ else {
+ extra[optionName] = currentRaw[optionName];
}
}
if (anyChanges) {
this.currentCalendarOptionsInput = raw;
this.currentCalendarOptionsRefined = refined;
+ this.stableOptionOverrides = optionOverrides;
+ this.stableDynamicOptionOverrides = dynamicOptionOverrides;
}
+ this.optionsForHandling.push(...this.optionsForRefining);
+ this.optionsForRefining = [];
return {
rawOptions: this.currentCalendarOptionsInput,
refinedOptions: this.currentCalendarOptionsRefined,
@@ -8975,7 +9157,6 @@ var FullCalendar = (function (exports) {
nowInput: refinedOptions.now,
validRangeInput: refinedOptions.validRange,
visibleRangeInput: refinedOptions.visibleRange,
- monthMode: refinedOptions.monthMode,
fixedWeekCount: refinedOptions.fixedWeekCount,
});
let viewApi = this.buildViewApi(viewType, this.getCurrentData, optionsData.dateEnv);
@@ -9113,7 +9294,7 @@ var FullCalendar = (function (exports) {
class ToolbarSection extends BaseComponent {
render() {
let children = this.props.widgetGroups.map((widgetGroup) => this.renderWidgetGroup(widgetGroup));
- return h('div', { className: 'fc-toolbar-chunk' }, ...children);
+ return y('div', { className: 'fc-toolbar-chunk' }, ...children);
}
renderWidgetGroup(widgetGroup) {
let { props } = this;
@@ -9124,7 +9305,7 @@ var FullCalendar = (function (exports) {
let { buttonName, buttonClick, buttonText, buttonIcon, buttonHint } = widget;
if (buttonName === 'title') {
isOnlyButtons = false;
- children.push(h("h2", { className: "fc-toolbar-title", id: props.titleId }, props.title));
+ children.push(y("h2", { className: "fc-toolbar-title", id: props.titleId }, props.title));
}
else {
let isPressed = buttonName === props.activeButton;
@@ -9135,12 +9316,12 @@ var FullCalendar = (function (exports) {
if (isPressed) {
buttonClasses.push(theme.getClass('buttonActive'));
}
- children.push(h("button", { type: "button", title: typeof buttonHint === 'function' ? buttonHint(props.navUnit) : buttonHint, disabled: isDisabled, "aria-pressed": isPressed, className: buttonClasses.join(' '), onClick: buttonClick }, buttonText || (buttonIcon ? h("span", { className: buttonIcon }) : '')));
+ children.push(y("button", { type: "button", title: typeof buttonHint === 'function' ? buttonHint(props.navUnit) : buttonHint, disabled: isDisabled, "aria-pressed": isPressed, className: buttonClasses.join(' '), onClick: buttonClick }, buttonText || (buttonIcon ? y("span", { className: buttonIcon }) : '')));
}
}
if (children.length > 1) {
let groupClassName = (isOnlyButtons && theme.getClass('buttonGroup')) || '';
- return h('div', { className: groupClassName }, ...children);
+ return y('div', { className: groupClassName }, ...children);
}
return children[0];
}
@@ -9173,19 +9354,18 @@ var FullCalendar = (function (exports) {
'fc-toolbar',
forceLtr ? 'fc-toolbar-ltr' : '',
];
- return (h("div", { className: classNames.join(' ') },
+ return (y("div", { className: classNames.join(' ') },
this.renderSection('start', startContent || []),
this.renderSection('center', centerContent || []),
this.renderSection('end', endContent || [])));
}
renderSection(key, widgetGroups) {
let { props } = this;
- return (h(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 }));
+ return (y(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 }));
}
}
- // TODO: do function component?
- class ViewContainer extends BaseComponent {
+ class ViewHarness extends BaseComponent {
constructor() {
super(...arguments);
this.state = {
@@ -9226,7 +9406,7 @@ var FullCalendar = (function (exports) {
else {
height = props.height || '';
}
- return (h("div", { "aria-labelledby": props.labeledById, ref: this.handleEl, className: classNames.join(' '), style: { height, paddingBottom } }, props.children));
+ return (y("div", { "aria-labelledby": props.labeledById, ref: this.handleEl, className: classNames.join(' '), style: { height, paddingBottom } }, props.children));
}
componentDidMount() {
this.context.addResizeHandler(this.handleResize);
@@ -9327,8 +9507,8 @@ var FullCalendar = (function (exports) {
this.buildViewContext = memoize(buildViewContext);
this.buildViewPropTransformers = memoize(buildViewPropTransformers);
this.buildToolbarProps = memoize(buildToolbarProps);
- this.headerRef = y();
- this.footerRef = y();
+ this.headerRef = d();
+ this.footerRef = d();
this.interactionsStore = {};
// eslint-disable-next-line
this.state = {
@@ -9399,12 +9579,12 @@ var FullCalendar = (function (exports) {
let viewLabelId = (toolbarConfig.header && toolbarConfig.header.hasTitle)
? this.state.viewLabelId
: '';
- return (h(ViewContextType.Provider, { value: viewContext },
- toolbarConfig.header && (h(Toolbar, Object.assign({ ref: this.headerRef, extraClassName: "fc-header-toolbar", model: toolbarConfig.header, titleId: viewLabelId }, toolbarProps))),
- h(ViewContainer, { liquid: viewVGrow, height: viewHeight, aspectRatio: viewAspectRatio, labeledById: viewLabelId },
+ return (y(ViewContextType.Provider, { value: viewContext },
+ toolbarConfig.header && (y(Toolbar, Object.assign({ ref: this.headerRef, extraClassName: "fc-header-toolbar", model: toolbarConfig.header, titleId: viewLabelId }, toolbarProps))),
+ y(ViewHarness, { liquid: viewVGrow, height: viewHeight, aspectRatio: viewAspectRatio, labeledById: viewLabelId },
this.renderView(props),
this.buildAppendContent()),
- toolbarConfig.footer && (h(Toolbar, Object.assign({ ref: this.footerRef, extraClassName: "fc-footer-toolbar", model: toolbarConfig.footer, titleId: "" }, toolbarProps)))));
+ toolbarConfig.footer && (y(Toolbar, Object.assign({ ref: this.footerRef, extraClassName: "fc-footer-toolbar", model: toolbarConfig.footer, titleId: "" }, toolbarProps)))));
}
componentDidMount() {
let { props } = this;
@@ -9436,7 +9616,7 @@ var FullCalendar = (function (exports) {
buildAppendContent() {
let { props } = this;
let children = props.pluginHooks.viewContainerAppends.map((buildAppendContent) => buildAppendContent(props));
- return h(p, {}, ...children);
+ return y(_, {}, ...children);
}
renderView(props) {
let { pluginHooks } = props;
@@ -9458,7 +9638,7 @@ var FullCalendar = (function (exports) {
Object.assign(viewProps, transformer.transform(viewProps, props));
}
let ViewComponent = viewSpec.component;
- return (h(ViewComponent, Object.assign({}, viewProps)));
+ return (y(ViewComponent, Object.assign({}, viewProps)));
}
}
function buildToolbarProps(viewSpec, dateProfile, dateProfileGenerator, currentDate, now, title) {
@@ -9505,21 +9685,22 @@ var FullCalendar = (function (exports) {
this.isRendered = true;
let { currentData } = this;
flushSync(() => {
- P$1(h(CalendarRoot, { options: currentData.calendarOptions, theme: currentData.theme, emitter: currentData.emitter }, (classNames, height, isHeightAuto, forPrint) => {
+ D$1(y(CalendarRoot, { options: currentData.calendarOptions, theme: currentData.theme, emitter: currentData.emitter }, (classNames, height, isHeightAuto, forPrint) => {
this.setClassNames(classNames);
this.setHeight(height);
- return (h(RenderId.Provider, { value: this.customContentRenderId },
- h(CalendarContent, Object.assign({ isHeightAuto: isHeightAuto, forPrint: forPrint }, currentData))));
+ return (y(RenderId.Provider, { value: this.customContentRenderId },
+ y(CalendarContent, Object.assign({ isHeightAuto: isHeightAuto, forPrint: forPrint }, currentData))));
}), this.el);
});
}
else if (this.isRendered) {
this.isRendered = false;
- P$1(null, this.el);
+ D$1(null, this.el);
this.setClassNames([]);
this.setHeight('');
}
};
+ ensureElHasStyles(el);
this.el = el;
this.renderRunner = new DelayedRunner(this.handleRenderRequest);
new CalendarDataManager({
@@ -9564,8 +9745,8 @@ var FullCalendar = (function (exports) {
resumeRendering() {
this.renderRunner.resume('pauseRendering', true);
}
- resetOptions(optionOverrides, append) {
- this.currentDataManager.resetOptions(optionOverrides, append);
+ resetOptions(optionOverrides, changedOptionNames) {
+ this.currentDataManager.resetOptions(optionOverrides, changedOptionNames);
}
setClassNames(classNames) {
if (!isArraysEqual(classNames, this.currentClassNames)) {
@@ -9625,7 +9806,7 @@ var FullCalendar = (function (exports) {
return sliceEventStore(props.eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? props.nextDayThreshold : null).fg;
}
- const version = '6.0.3';
+ const version = '6.1.8';
exports.Calendar = Calendar;
exports.Internal = internal;
diff --git a/library/fullcalendar/packages/core/index.global.min.js b/library/fullcalendar/packages/core/index.global.min.js
index 8b7f621e9..85a4aa7fe 100644
--- a/library/fullcalendar/packages/core/index.global.min.js
+++ b/library/fullcalendar/packages/core/index.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-var FullCalendar=function(e){"use strict";function t(e){e.parentNode&&e.parentNode.removeChild(e)}function n(e,t){if(e.closest)return e.closest(t);if(!document.documentElement.contains(e))return null;do{if(r(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null}function r(e,t){return(e.matches||e.matchesSelector||e.msMatchesSelector).call(e,t)}function i(e,t){let n=e instanceof HTMLElement?[e]:e,r=[];for(let e=0;e<n.length;e+=1){let i=n[e].querySelectorAll(t);for(let e=0;e<i.length;e+=1)r.push(i[e])}return r}const o=/(top|left|right|bottom|width|height)$/i;function s(e,t){for(let n in t)a(e,n,t[n])}function a(e,t,n){null==n?e.style[t]="":"number"==typeof n&&o.test(t)?e.style[t]=n+"px":e.style[t]=n}function l(e){var t,n;return null!==(n=null===(t=e.composedPath)||void 0===t?void 0:t.call(e)[0])&&void 0!==n?n:e.target}let c=0;function u(){return c+=1,"fc-dom-"+c}function d(e){e.preventDefault()}function f(e,t,r,i){let o=function(e,t){return r=>{let i=n(r.target,e);i&&t.call(i,r,i)}}(r,i);return e.addEventListener(t,o),()=>{e.removeEventListener(t,o)}}const h=["webkitTransitionEnd","otransitionend","oTransitionEnd","msTransitionEnd","transitionend"];function p(e){return Object.assign({onClick:e},g(e))}function g(e){return{tabIndex:0,onKeyDown(t){"Enter"!==t.key&&" "!==t.key||(e(t),t.preventDefault())}}}let m=0;function v(){return m+=1,String(m)}function A(e){let t,n,r=[],i=[];for("string"==typeof e?i=e.split(/\s*,\s*/):"function"==typeof e?i=[e]:Array.isArray(e)&&(i=e),t=0;t<i.length;t+=1)n=i[t],"string"==typeof n?r.push("-"===n.charAt(0)?{field:n.substring(1),order:-1}:{field:n,order:1}):"function"==typeof n&&r.push({func:n});return r}function b(e,t,n){let r,i;for(r=0;r<n.length;r+=1)if(i=y(e,t,n[r]),i)return i;return 0}function y(e,t,n){return n.func?n.func(e,t):_(e[n.field],t[n.field])*(n.order||1)}function _(e,t){return e||t?null==t?-1:null==e?1:"string"==typeof e||"string"==typeof t?String(e).localeCompare(String(t)):e-t:0}function E(e,t){let n=String(e);return"000".substr(0,t-n.length)+n}function D(e,t,n){return"function"==typeof e?e(...t):"string"==typeof e?t.reduce((e,t,n)=>e.replace("$"+n,t||""),e):n}function C(e){return e%1==0}function w(e){let t=e.querySelector(".fc-scrollgrid-shrink-frame"),n=e.querySelector(".fc-scrollgrid-shrink-cushion");if(!t)throw new Error("needs fc-scrollgrid-shrink-frame className");if(!n)throw new Error("needs fc-scrollgrid-shrink-cushion className");return e.getBoundingClientRect().width-t.getBoundingClientRect().width+n.getBoundingClientRect().width}const S=["years","months","days","milliseconds"],T=/^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/;function k(e,t){return"string"==typeof e?function(e){let t=T.exec(e);if(t){let e=t[1]?-1:1;return{years:0,months:0,days:e*(t[2]?parseInt(t[2],10):0),milliseconds:e*(60*(t[3]?parseInt(t[3],10):0)*60*1e3+60*(t[4]?parseInt(t[4],10):0)*1e3+1e3*(t[5]?parseInt(t[5],10):0)+(t[6]?parseInt(t[6],10):0))}}return null}(e):"object"==typeof e&&e?R(e):"number"==typeof e?R({[t||"milliseconds"]:e}):null}function R(e){let t={years:e.years||e.year||0,months:e.months||e.month||0,days:e.days||e.day||0,milliseconds:60*(e.hours||e.hour||0)*60*1e3+60*(e.minutes||e.minute||0)*1e3+1e3*(e.seconds||e.second||0)+(e.milliseconds||e.millisecond||e.ms||0)},n=e.weeks||e.week;return n&&(t.days+=7*n,t.specifiedWeeks=!0),t}function x(e){return O(e)/864e5}function O(e){return 31536e6*e.years+2592e6*e.months+864e5*e.days+e.milliseconds}function I(e){let t=e.milliseconds;if(t){if(t%1e3!=0)return{unit:"millisecond",value:t};if(t%6e4!=0)return{unit:"second",value:t/1e3};if(t%36e5!=0)return{unit:"minute",value:t/6e4};if(t)return{unit:"hour",value:t/36e5}}return e.days?e.specifiedWeeks&&e.days%7==0?{unit:"week",value:e.days/7}:{unit:"day",value:e.days}:e.months?{unit:"month",value:e.months}:e.years?{unit:"year",value:e.years}:{unit:"millisecond",value:0}}const{hasOwnProperty:M}=Object.prototype;function N(e,t){let n={};if(t)for(let r in t){let t=[];for(let i=e.length-1;i>=0;i-=1){let o=e[i][r];if("object"==typeof o&&o)t.unshift(o);else if(void 0!==o){n[r]=o;break}}t.length&&(n[r]=N(t))}for(let t=e.length-1;t>=0;t-=1){let r=e[t];for(let e in r)e in n||(n[e]=r[e])}return n}function B(e,t){let n={};for(let r in e)t(e[r],r)&&(n[r]=e[r]);return n}function H(e,t){let n={};for(let r in e)n[r]=t(e[r],r);return n}function P(e){let t={};for(let n of e)t[n]=!0;return t}function U(e){let t=[];for(let n in e)t.push(e[n]);return t}function j(e,t){if(e===t)return!0;for(let n in e)if(M.call(e,n)&&!(n in t))return!1;for(let n in t)if(M.call(t,n)&&e[n]!==t[n])return!1;return!0}const z=/^on[A-Z]/;function L(e,t){let n=[];for(let r in e)M.call(e,r)&&(r in t||n.push(r));for(let r in t)M.call(t,r)&&e[r]!==t[r]&&n.push(r);return n}function F(e,t,n={}){if(e===t)return!0;for(let r in t)if(!(r in e)||!V(e[r],t[r],n[r]))return!1;for(let n in e)if(!(n in t))return!1;return!0}function V(e,t,n){return e===t||!0===n||!!n&&n(e,t)}function W(e,t=0,n,r=1){let i=[];null==n&&(n=Object.keys(e).length);for(let o=t;o<n;o+=r){let t=e[o];void 0!==t&&i.push(t)}return i}const Q=["sun","mon","tue","wed","thu","fri","sat"];function G(e,t){let n=re(e);return n[2]+=t,ie(n)}function Z(e,t){let n=re(e);return n[6]+=t,ie(n)}function Y(e,t){return(t.valueOf()-e.valueOf())/864e5}function q(e,t){let n=X(e),r=X(t);return{years:0,months:0,days:Math.round(Y(n,r)),milliseconds:t.valueOf()-r.valueOf()-(e.valueOf()-n.valueOf())}}function J(e,t){let n=$(e,t);return null!==n&&n%7==0?n/7:null}function $(e,t){return se(e)===se(t)?Math.round(Y(e,t)):null}function X(e){return ie([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()])}function K(e,t,n,r){let i=ie([t,0,1+ee(t,n,r)]),o=X(e),s=Math.round(Y(i,o));return Math.floor(s/7)+1}function ee(e,t,n){let r=7+t-n;return-((7+ie([e,0,r]).getUTCDay()-t)%7)+r-1}function te(e){return[e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()]}function ne(e){return new Date(e[0],e[1]||0,null==e[2]?1:e[2],e[3]||0,e[4]||0,e[5]||0)}function re(e){return[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()]}function ie(e){return 1===e.length&&(e=e.concat([0])),new Date(Date.UTC(...e))}function oe(e){return!isNaN(e.valueOf())}function se(e){return 1e3*e.getUTCHours()*60*60+1e3*e.getUTCMinutes()*60+1e3*e.getUTCSeconds()+e.getUTCMilliseconds()}function ae(e,t,n=!1){let r=e.toISOString();return r=r.replace(".000",""),n&&(r=r.replace("T00:00:00Z","")),r.length>10&&(null==t?r=r.replace("Z",""):0!==t&&(r=r.replace("Z",ce(t,!0)))),r}function le(e){return e.toISOString().replace(/T.*$/,"")}function ce(e,t=!1){let n=e<0?"-":"+",r=Math.abs(e),i=Math.floor(r/60),o=Math.round(r%60);return t?`${n+E(i,2)}:${E(o,2)}`:`GMT${n}${i}${o?":"+E(o,2):""}`}function ue(e,t,n){if(e===t)return!0;let r,i=e.length;if(i!==t.length)return!1;for(r=0;r<i;r+=1)if(!(n?n(e[r],t[r]):e[r]===t[r]))return!1;return!0}function de(e,t,n){let r,i;return function(...o){if(r){if(!ue(r,o)){n&&n(i);let r=e.apply(this,o);t&&t(r,i)||(i=r)}}else i=e.apply(this,o);return r=o,i}}function fe(e,t,n){let r,i;return o=>{if(r){if(!j(r,o)){n&&n(i);let r=e.call(this,o);t&&t(r,i)||(i=r)}}else i=e.call(this,o);return r=o,i}}const he={week:3,separator:0,omitZeroMinute:0,meridiem:0,omitCommas:0},pe={timeZoneName:7,era:6,year:5,month:4,day:2,weekday:2,hour:1,minute:1,second:1},ge=/\s*([ap])\.?m\.?/i,me=/,/g,ve=/\s+/g,Ae=/\u200e/g,be=/UTC|GMT/;class ye{constructor(e){let t={},n={},r=0;for(let i in e)i in he?(n[i]=e[i],r=Math.max(he[i],r)):(t[i]=e[i],i in pe&&(r=Math.max(pe[i],r)));this.standardDateProps=t,this.extendedSettings=n,this.severity=r,this.buildFormattingFunc=de(_e)}format(e,t){return this.buildFormattingFunc(this.standardDateProps,this.extendedSettings,t)(e)}formatRange(e,t,n,r){let{standardDateProps:i,extendedSettings:o}=this,s=function(e,t,n){if(n.getMarkerYear(e)!==n.getMarkerYear(t))return 5;if(n.getMarkerMonth(e)!==n.getMarkerMonth(t))return 4;if(n.getMarkerDay(e)!==n.getMarkerDay(t))return 2;if(se(e)!==se(t))return 1;return 0}(e.marker,t.marker,n.calendarSystem);if(!s)return this.format(e,n);let a=s;!(a>1)||"numeric"!==i.year&&"2-digit"!==i.year||"numeric"!==i.month&&"2-digit"!==i.month||"numeric"!==i.day&&"2-digit"!==i.day||(a=1);let l=this.format(e,n),c=this.format(t,n);if(l===c)return l;let u=_e(function(e,t){let n={};for(let r in e)(!(r in pe)||pe[r]<=t)&&(n[r]=e[r]);return n}(i,a),o,n),d=u(e),f=u(t),h=function(e,t,n,r){let i=0;for(;i<e.length;){let o=e.indexOf(t,i);if(-1===o)break;let s=e.substr(0,o);i=o+t.length;let a=e.substr(i),l=0;for(;l<n.length;){let e=n.indexOf(r,l);if(-1===e)break;let t=n.substr(0,e);l=e+r.length;let i=n.substr(l);if(s===t&&a===i)return{before:s,after:a}}}return null}(l,d,c,f),p=o.separator||r||n.defaultSeparator||"";return h?h.before+d+p+f+h.after:l+p+c}getLargestUnit(){switch(this.severity){case 7:case 6:case 5:return"year";case 4:return"month";case 3:return"week";case 2:return"day";default:return"time"}}}function _e(e,t,n){let r=Object.keys(e).length;return 1===r&&"short"===e.timeZoneName?e=>ce(e.timeZoneOffset):0===r&&t.week?e=>function(e,t,n,r,i){let o=[];"long"===i?o.push(n):"short"!==i&&"narrow"!==i||o.push(t);"long"!==i&&"short"!==i||o.push(" ");o.push(r.simpleNumberFormat.format(e)),"rtl"===r.options.direction&&o.reverse();return o.join("")}(n.computeWeekNumber(e.marker),n.weekText,n.weekTextLong,n.locale,t.week):function(e,t,n){e=Object.assign({},e),t=Object.assign({},t),function(e,t){e.timeZoneName&&(e.hour||(e.hour="2-digit"),e.minute||(e.minute="2-digit"));"long"===e.timeZoneName&&(e.timeZoneName="short");t.omitZeroMinute&&(e.second||e.millisecond)&&delete t.omitZeroMinute}(e,t),e.timeZone="UTC";let r,i=new Intl.DateTimeFormat(n.locale.codes,e);if(t.omitZeroMinute){let t=Object.assign({},e);delete t.minute,r=new Intl.DateTimeFormat(n.locale.codes,t)}return o=>{let s,{marker:a}=o;return s=r&&!a.getUTCMinutes()?r:i,function(e,t,n,r,i){e=e.replace(Ae,""),"short"===n.timeZoneName&&(e=function(e,t){let n=!1;e=e.replace(be,()=>(n=!0,t)),n||(e+=" "+t);return e}(e,"UTC"===i.timeZone||null==t.timeZoneOffset?"UTC":ce(t.timeZoneOffset)));r.omitCommas&&(e=e.replace(me,"").trim());r.omitZeroMinute&&(e=e.replace(":00",""));!1===r.meridiem?e=e.replace(ge,"").trim():"narrow"===r.meridiem?e=e.replace(ge,(e,t)=>t.toLocaleLowerCase()):"short"===r.meridiem?e=e.replace(ge,(e,t)=>t.toLocaleLowerCase()+"m"):"lowercase"===r.meridiem&&(e=e.replace(ge,e=>e.toLocaleLowerCase()));return e=(e=e.replace(ve," ")).trim()}(s.format(a),o,e,t,n)}}(e,t,n)}function Ee(e,t){let n=t.markerToArray(e.marker);return{marker:e.marker,timeZoneOffset:e.timeZoneOffset,array:n,year:n[0],month:n[1],day:n[2],hour:n[3],minute:n[4],second:n[5],millisecond:n[6]}}function De(e,t,n,r){let i=Ee(e,n.calendarSystem);return{date:i,start:i,end:t?Ee(t,n.calendarSystem):null,timeZone:n.timeZone,localeCodes:n.locale.codes,defaultSeparator:r||n.defaultSeparator}}class Ce{constructor(e){this.cmdStr=e}format(e,t,n){return t.cmdFormatter(this.cmdStr,De(e,null,t,n))}formatRange(e,t,n,r){return n.cmdFormatter(this.cmdStr,De(e,t,n,r))}}class we{constructor(e){this.func=e}format(e,t,n){return this.func(De(e,null,t,n))}formatRange(e,t,n,r){return this.func(De(e,t,n,r))}}function Se(e){return"object"==typeof e&&e?new ye(e):"string"==typeof e?new Ce(e):"function"==typeof e?new we(e):null}const Te={navLinkDayClick:He,navLinkWeekClick:He,duration:k,bootstrapFontAwesome:He,buttonIcons:He,customButtons:He,defaultAllDayEventDuration:k,defaultTimedEventDuration:k,nextDayThreshold:k,scrollTime:k,scrollTimeReset:Boolean,slotMinTime:k,slotMaxTime:k,dayPopoverFormat:Se,slotDuration:k,snapDuration:k,headerToolbar:He,footerToolbar:He,defaultRangeSeparator:String,titleRangeSeparator:String,forceEventDuration:Boolean,dayHeaders:Boolean,dayHeaderFormat:Se,dayHeaderClassNames:He,dayHeaderContent:He,dayHeaderDidMount:He,dayHeaderWillUnmount:He,dayCellClassNames:He,dayCellContent:He,dayCellDidMount:He,dayCellWillUnmount:He,initialView:String,aspectRatio:Number,weekends:Boolean,weekNumberCalculation:He,weekNumbers:Boolean,weekNumberClassNames:He,weekNumberContent:He,weekNumberDidMount:He,weekNumberWillUnmount:He,editable:Boolean,viewClassNames:He,viewDidMount:He,viewWillUnmount:He,nowIndicator:Boolean,nowIndicatorClassNames:He,nowIndicatorContent:He,nowIndicatorDidMount:He,nowIndicatorWillUnmount:He,showNonCurrentDates:Boolean,lazyFetching:Boolean,startParam:String,endParam:String,timeZoneParam:String,timeZone:String,locales:He,locale:He,themeSystem:String,dragRevertDuration:Number,dragScroll:Boolean,allDayMaintainDuration:Boolean,unselectAuto:Boolean,dropAccept:He,eventOrder:A,eventOrderStrict:Boolean,handleWindowResize:Boolean,windowResizeDelay:Number,longPressDelay:Number,eventDragMinDistance:Number,expandRows:Boolean,height:He,contentHeight:He,direction:String,weekNumberFormat:Se,eventResizableFromStart:Boolean,displayEventTime:Boolean,displayEventEnd:Boolean,weekText:String,weekTextLong:String,progressiveEventRendering:Boolean,businessHours:He,initialDate:He,now:He,eventDataTransform:He,stickyHeaderDates:He,stickyFooterScrollbar:He,viewHeight:He,defaultAllDay:Boolean,eventSourceFailure:He,eventSourceSuccess:He,eventDisplay:String,eventStartEditable:Boolean,eventDurationEditable:Boolean,eventOverlap:He,eventConstraint:He,eventAllow:He,eventBackgroundColor:String,eventBorderColor:String,eventTextColor:String,eventColor:String,eventClassNames:He,eventContent:He,eventDidMount:He,eventWillUnmount:He,selectConstraint:He,selectOverlap:He,selectAllow:He,droppable:Boolean,unselectCancel:String,slotLabelFormat:He,slotLaneClassNames:He,slotLaneContent:He,slotLaneDidMount:He,slotLaneWillUnmount:He,slotLabelClassNames:He,slotLabelContent:He,slotLabelDidMount:He,slotLabelWillUnmount:He,dayMaxEvents:He,dayMaxEventRows:He,dayMinWidth:Number,slotLabelInterval:k,allDayText:String,allDayClassNames:He,allDayContent:He,allDayDidMount:He,allDayWillUnmount:He,slotMinWidth:Number,navLinks:Boolean,eventTimeFormat:Se,rerenderDelay:Number,moreLinkText:He,moreLinkHint:He,selectMinDistance:Number,selectable:Boolean,selectLongPressDelay:Number,eventLongPressDelay:Number,selectMirror:Boolean,eventMaxStack:Number,eventMinHeight:Number,eventMinWidth:Number,eventShortHeight:Number,slotEventOverlap:Boolean,plugins:He,firstDay:Number,dayCount:Number,dateAlignment:String,dateIncrement:k,hiddenDays:He,monthMode:Boolean,fixedWeekCount:Boolean,validRange:He,visibleRange:He,titleFormat:He,eventInteractive:Boolean,noEventsText:String,viewHint:He,navLinkHint:He,closeHint:String,timeHint:String,eventHint:String,moreLinkClick:He,moreLinkClassNames:He,moreLinkContent:He,moreLinkDidMount:He,moreLinkWillUnmount:He,handleCustomRendering:He,customRenderingMetaMap:He,customRenderingReplacesEl:Boolean},ke={eventDisplay:"auto",defaultRangeSeparator:" - ",titleRangeSeparator:" – ",defaultTimedEventDuration:"01:00:00",defaultAllDayEventDuration:{day:1},forceEventDuration:!1,nextDayThreshold:"00:00:00",dayHeaders:!0,initialView:"",aspectRatio:1.35,headerToolbar:{start:"title",center:"",end:"today prev,next"},weekends:!0,weekNumbers:!1,weekNumberCalculation:"local",editable:!1,nowIndicator:!1,scrollTime:"06:00:00",scrollTimeReset:!0,slotMinTime:"00:00:00",slotMaxTime:"24:00:00",showNonCurrentDates:!0,lazyFetching:!0,startParam:"start",endParam:"end",timeZoneParam:"timeZone",timeZone:"local",locales:[],locale:"",themeSystem:"standard",dragRevertDuration:500,dragScroll:!0,allDayMaintainDuration:!1,unselectAuto:!0,dropAccept:"*",eventOrder:"start,-duration,allDay,title",dayPopoverFormat:{month:"long",day:"numeric",year:"numeric"},handleWindowResize:!0,windowResizeDelay:100,longPressDelay:1e3,eventDragMinDistance:5,expandRows:!1,navLinks:!1,selectable:!1,eventMinHeight:15,eventMinWidth:30,eventShortHeight:30},Re={datesSet:He,eventsSet:He,eventAdd:He,eventChange:He,eventRemove:He,windowResize:He,eventClick:He,eventMouseEnter:He,eventMouseLeave:He,select:He,unselect:He,loading:He,_unmount:He,_beforeprint:He,_afterprint:He,_noEventDrop:He,_noEventResize:He,_resize:He,_scrollRequest:He},xe={buttonText:He,buttonHints:He,views:He,plugins:He,initialEvents:He,events:He,eventSources:He},Oe={headerToolbar:Ie,footerToolbar:Ie,buttonText:Ie,buttonHints:Ie,buttonIcons:Ie,dateIncrement:Ie};function Ie(e,t){return"object"==typeof e&&"object"==typeof t&&e&&t?j(e,t):e===t}const Me={type:String,component:He,buttonText:String,buttonTextKey:String,dateProfileGeneratorClass:He,usesMinMaxTime:Boolean,classNames:He,content:He,didMount:He,willUnmount:He};function Ne(e){return N(e,Oe)}function Be(e,t){let n={},r={};for(let r in t)r in e&&(n[r]=t[r](e[r]));for(let n in e)n in t||(r[n]=e[n]);return{refined:n,extra:r}}function He(e){return e}function Pe(e,t,n,r){return{instanceId:v(),defId:e,range:t,forcedStartTzo:null==n?null:n,forcedEndTzo:null==r?null:r}}function Ue(e,t,n){let{dateEnv:r,pluginHooks:i,options:o}=n,{defs:s,instances:a}=e;a=B(a,e=>!s[e.defId].recurringDef);for(let e in s){let n=s[e];if(n.recurringDef){let{duration:s}=n.recurringDef;s||(s=n.allDay?o.defaultAllDayEventDuration:o.defaultTimedEventDuration);let l=je(n,s,t,r,i.recurringTypes);for(let t of l){let n=Pe(e,{start:t,end:r.add(t,s)});a[n.instanceId]=n}}}return{defs:s,instances:a}}function je(e,t,n,r,i){let o=i[e.recurringDef.typeId].expand(e.recurringDef.typeData,{start:r.subtract(n.start,t),end:n.end},r);return e.allDay&&(o=o.map(X)),o}function ze(e,t,n,r){let i={defs:{},instances:{}},o=rt(n);for(let s of e){let e=tt(s,t,n,r,o);e&&Le(e,i)}return i}function Le(e,t={defs:{},instances:{}}){return t.defs[e.def.defId]=e.def,e.instance&&(t.instances[e.instance.instanceId]=e.instance),t}function Fe(e,t){let n=e.instances[t];if(n){let t=e.defs[n.defId],r=Qe(e,e=>{return n=t,r=e,Boolean(n.groupId&&n.groupId===r.groupId);var n,r});return r.defs[t.defId]=t,r.instances[n.instanceId]=n,r}return{defs:{},instances:{}}}function Ve(){return{defs:{},instances:{}}}function We(e,t){return{defs:Object.assign(Object.assign({},e.defs),t.defs),instances:Object.assign(Object.assign({},e.instances),t.instances)}}function Qe(e,t){let n=B(e.defs,t),r=B(e.instances,e=>n[e.defId]);return{defs:n,instances:r}}function Ge(e){return Array.isArray(e)?e:"string"==typeof e?e.split(/\s+/):[]}const Ze={display:String,editable:Boolean,startEditable:Boolean,durationEditable:Boolean,constraint:He,overlap:He,allow:He,className:Ge,classNames:Ge,color:String,backgroundColor:String,borderColor:String,textColor:String},Ye={display:null,startEditable:null,durationEditable:null,constraints:[],overlap:null,allows:[],backgroundColor:"",borderColor:"",textColor:"",classNames:[]};function qe(e,t){let n=function(e,t){return Array.isArray(e)?ze(e,null,t,!0):"object"==typeof e&&e?ze([e],null,t,!0):null!=e?String(e):null}(e.constraint,t);return{display:e.display||null,startEditable:null!=e.startEditable?e.startEditable:e.editable,durationEditable:null!=e.durationEditable?e.durationEditable:e.editable,constraints:null!=n?[n]:[],overlap:null!=e.overlap?e.overlap:null,allows:null!=e.allow?[e.allow]:[],backgroundColor:e.backgroundColor||e.color||"",borderColor:e.borderColor||e.color||"",textColor:e.textColor||"",classNames:(e.className||[]).concat(e.classNames||[])}}function Je(e){return e.reduce($e,Ye)}function $e(e,t){return{display:null!=t.display?t.display:e.display,startEditable:null!=t.startEditable?t.startEditable:e.startEditable,durationEditable:null!=t.durationEditable?t.durationEditable:e.durationEditable,constraints:e.constraints.concat(t.constraints),overlap:"boolean"==typeof t.overlap?t.overlap:e.overlap,allows:e.allows.concat(t.allows),backgroundColor:t.backgroundColor||e.backgroundColor,borderColor:t.borderColor||e.borderColor,textColor:t.textColor||e.textColor,classNames:e.classNames.concat(t.classNames)}}const Xe={id:String,groupId:String,title:String,url:String,interactive:Boolean},Ke={start:He,end:He,date:He,allDay:Boolean},et=Object.assign(Object.assign(Object.assign({},Xe),Ke),{extendedProps:He});function tt(e,t,n,r,i=rt(n)){let{refined:o,extra:s}=nt(e,n,i),a=function(e,t){let n=null;e&&(n=e.defaultAllDay);null==n&&(n=t.options.defaultAllDay);return n}(t,n),l=function(e,t,n,r){for(let i=0;i<r.length;i+=1){let o=r[i].parse(e,n);if(o){let{allDay:n}=e;return null==n&&(n=t,null==n&&(n=o.allDayGuess,null==n&&(n=!1))),{allDay:n,duration:o.duration,typeData:o.typeData,typeId:i}}}return null}(o,a,n.dateEnv,n.pluginHooks.recurringTypes);if(l){let e=it(o,s,t?t.sourceId:"",l.allDay,Boolean(l.duration),n);return e.recurringDef={typeId:l.typeId,typeData:l.typeData,duration:l.duration},{def:e,instance:null}}let c=function(e,t,n,r){let i,o,{allDay:s}=e,a=null,l=!1,c=null,u=null!=e.start?e.start:e.date;if(i=n.dateEnv.createMarkerMeta(u),i)a=i.marker;else if(!r)return null;null!=e.end&&(o=n.dateEnv.createMarkerMeta(e.end));null==s&&(s=null!=t?t:(!i||i.isTimeUnspecified)&&(!o||o.isTimeUnspecified));s&&a&&(a=X(a));o&&(c=o.marker,s&&(c=X(c)),a&&c<=a&&(c=null));c?l=!0:r||(l=n.options.forceEventDuration||!1,c=n.dateEnv.add(a,s?n.options.defaultAllDayEventDuration:n.options.defaultTimedEventDuration));return{allDay:s,hasEnd:l,range:{start:a,end:c},forcedStartTzo:i?i.forcedTzo:null,forcedEndTzo:o?o.forcedTzo:null}}(o,a,n,r);if(c){let e=it(o,s,t?t.sourceId:"",c.allDay,c.hasEnd,n);return{def:e,instance:Pe(e.defId,c.range,c.forcedStartTzo,c.forcedEndTzo)}}return null}function nt(e,t,n=rt(t)){return Be(e,n)}function rt(e){return Object.assign(Object.assign(Object.assign({},Ze),et),e.pluginHooks.eventRefiners)}function it(e,t,n,r,i,o){let s={title:e.title||"",groupId:e.groupId||"",publicId:e.id||"",url:e.url||"",recurringDef:null,defId:v(),sourceId:n,allDay:r,hasEnd:i,interactive:e.interactive,ui:qe(e,o),extendedProps:Object.assign(Object.assign({},e.extendedProps||{}),t)};for(let t of o.pluginHooks.eventDefMemberAdders)Object.assign(s,t(e));return Object.freeze(s.ui.classNames),Object.freeze(s.extendedProps),s}const ot={startTime:"09:00",endTime:"17:00",daysOfWeek:[1,2,3,4,5],display:"inverse-background",classNames:"fc-non-business",groupId:"_businessHours"};function st(e,t){return ze(function(e){let t;t=!0===e?[{}]:Array.isArray(e)?e.filter(e=>e.daysOfWeek):"object"==typeof e&&e?[e]:[];return t=t.map(e=>Object.assign(Object.assign({},ot),e)),t}(e),null,t)}function at(e){let t=Math.floor(Y(e.start,e.end))||1,n=X(e.start);return{start:n,end:G(n,t)}}function lt(e,t=k(0)){let n=null,r=null;if(e.end){r=X(e.end);let n=e.end.valueOf()-r.valueOf();n&&n>=O(t)&&(r=G(r,1))}return e.start&&(n=X(e.start),r&&r<=n&&(r=G(n,1))),{start:n,end:r}}function ct(e,t,n,r){return"year"===r?k(n.diffWholeYears(e,t),"year"):"month"===r?k(n.diffWholeMonths(e,t),"month"):q(e,t)}function ut(e,t){let n={left:Math.max(e.left,t.left),right:Math.min(e.right,t.right),top:Math.max(e.top,t.top),bottom:Math.min(e.bottom,t.bottom)};return n.left<n.right&&n.top<n.bottom&&n}let dt;function ft(){return null==dt&&(dt=function(){if("undefined"==typeof document)return!0;let e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.innerHTML="<table><tr><td><div></div></td></tr></table>",e.querySelector("table").style.height="100px",e.querySelector("div").style.height="100%",document.body.appendChild(e);let t=e.querySelector("div").offsetHeight>0;return document.body.removeChild(e),t}()),dt}const ht={defs:{},instances:{}};function pt(e,t,n){let r=[];e&&r.push(e),t&&r.push(t);let i={"":Je(r)};return n&&Object.assign(i,n),i}function gt(e,t){let n,r,i=[],{start:o}=t;for(e.sort(mt),n=0;n<e.length;n+=1)r=e[n],r.start>o&&i.push({start:o,end:r.start}),r.end>o&&(o=r.end);return o<t.end&&i.push({start:o,end:t.end}),i}function mt(e,t){return e.start.valueOf()-t.start.valueOf()}function vt(e,t){let{start:n,end:r}=e,i=null;return null!==t.start&&(n=null===n?t.start:new Date(Math.max(n.valueOf(),t.start.valueOf()))),null!=t.end&&(r=null===r?t.end:new Date(Math.min(r.valueOf(),t.end.valueOf()))),(null===n||null===r||n<r)&&(i={start:n,end:r}),i}function At(e,t){return(null===e.start?null:e.start.valueOf())===(null===t.start?null:t.start.valueOf())&&(null===e.end?null:e.end.valueOf())===(null===t.end?null:t.end.valueOf())}function bt(e,t){return(null===e.end||null===t.start||e.end>t.start)&&(null===e.start||null===t.end||e.start<t.end)}function yt(e,t){return(null===e.start||null!==t.start&&t.start>=e.start)&&(null===e.end||null!==t.end&&t.end<=e.end)}function _t(e,t){return(null===e.start||t>=e.start)&&(null===e.end||t<e.end)}function Et(e,t,n,r){return{dow:e.getUTCDay(),isDisabled:Boolean(r&&!_t(r.activeRange,e)),isOther:Boolean(r&&!_t(r.currentRange,e)),isToday:Boolean(t&&_t(t,e)),isPast:Boolean(n?e<n:!!t&&e<t.start),isFuture:Boolean(n?e>n:!!t&&e>=t.end)}}function Dt(e,t){let n=["fc-day","fc-day-"+Q[e.dow]];return e.isDisabled?n.push("fc-day-disabled"):(e.isToday&&(n.push("fc-day-today"),n.push(t.getClass("today"))),e.isPast&&n.push("fc-day-past"),e.isFuture&&n.push("fc-day-future"),e.isOther&&n.push("fc-day-other")),n}const Ct=Se({year:"numeric",month:"long",day:"numeric"}),wt=Se({week:"long"});function St(e,t,n="day",r=!0){const{dateEnv:i,options:o,calendarApi:s}=e;let a=i.format(t,"week"===n?wt:Ct);if(o.navLinks){let e=i.toDate(t);const l=e=>{let r="day"===n?o.navLinkDayClick:"week"===n?o.navLinkWeekClick:null;"function"==typeof r?r.call(s,i.toDate(t),e):("string"==typeof r&&(n=r),s.zoomTo(t,n))};return Object.assign({title:D(o.navLinkHint,[a,e],a),"data-navlink":""},r?p(l):{onClick:l})}return{"aria-label":a}}let Tt,kt=null;function Rt(){return null===kt&&(kt=function(){let e=document.createElement("div");s(e,{position:"absolute",top:-1e3,left:0,border:0,padding:0,overflow:"scroll",direction:"rtl"}),e.innerHTML="<div></div>",document.body.appendChild(e);let n=e.firstChild.getBoundingClientRect().left>e.getBoundingClientRect().left;return t(e),n}()),kt}function xt(){return Tt||(Tt=function(){let e=document.createElement("div");e.style.overflow="scroll",e.style.position="absolute",e.style.top="-9999px",e.style.left="-9999px",document.body.appendChild(e);let t=Ot(e);return document.body.removeChild(e),t}()),Tt}function Ot(e){return{x:e.offsetHeight-e.clientHeight,y:e.offsetWidth-e.clientWidth}}function It(e,t=!1){let n=window.getComputedStyle(e),r=parseInt(n.borderLeftWidth,10)||0,i=parseInt(n.borderRightWidth,10)||0,o=parseInt(n.borderTopWidth,10)||0,s=parseInt(n.borderBottomWidth,10)||0,a=Ot(e),l=a.y-r-i,c={borderLeft:r,borderRight:i,borderTop:o,borderBottom:s,scrollbarBottom:a.x-o-s,scrollbarLeft:0,scrollbarRight:0};return Rt()&&"rtl"===n.direction?c.scrollbarLeft=l:c.scrollbarRight=l,t&&(c.paddingLeft=parseInt(n.paddingLeft,10)||0,c.paddingRight=parseInt(n.paddingRight,10)||0,c.paddingTop=parseInt(n.paddingTop,10)||0,c.paddingBottom=parseInt(n.paddingBottom,10)||0),c}function Mt(e){let t=e.getBoundingClientRect();return{left:t.left+window.pageXOffset,top:t.top+window.pageYOffset,right:t.right+window.pageXOffset,bottom:t.bottom+window.pageYOffset}}function Nt(e){let t=[];for(;e instanceof HTMLElement;){let n=window.getComputedStyle(e);if("fixed"===n.position)break;/(auto|scroll)/.test(n.overflow+n.overflowY+n.overflowX)&&t.push(e),e=e.parentNode}return t}function Bt(e,t,n){let r=!1,i=function(e){r||(r=!0,t(e))},o=function(e){r||(r=!0,n(e))},s=e(i,o);s&&"function"==typeof s.then&&s.then(i,o)}class Ht{constructor(){this.handlers={},this.thisContext=null}setThisContext(e){this.thisContext=e}setOptions(e){this.options=e}on(e,t){!function(e,t,n){(e[t]||(e[t]=[])).push(n)}(this.handlers,e,t)}off(e,t){!function(e,t,n){n?e[t]&&(e[t]=e[t].filter(e=>e!==n)):delete e[t]}(this.handlers,e,t)}trigger(e,...t){let n=this.handlers[e]||[],r=this.options&&this.options[e],i=[].concat(r||[],n);for(let e of i)e.apply(this.thisContext,t)}hasHandlers(e){return Boolean(this.handlers[e]&&this.handlers[e].length||this.options&&this.options[e])}}function Pt(e,t){const n=e.length;if(n!==t.length)return!1;for(let r=0;r<n;r++)if(Math.round(e[r])!==Math.round(t[r]))return!1;return!0}class Ut{getMaxScrollTop(){return this.getScrollHeight()-this.getClientHeight()}getMaxScrollLeft(){return this.getScrollWidth()-this.getClientWidth()}canScrollVertically(){return this.getMaxScrollTop()>0}canScrollHorizontally(){return this.getMaxScrollLeft()>0}canScrollUp(){return this.getScrollTop()>0}canScrollDown(){return this.getScrollTop()<this.getMaxScrollTop()}canScrollLeft(){return this.getScrollLeft()>0}canScrollRight(){return this.getScrollLeft()<this.getMaxScrollLeft()}}class jt{constructor(e){this.iconOverrideOption&&this.setIconOverride(e[this.iconOverrideOption])}setIconOverride(e){let t,n;if("object"==typeof e&&e){for(n in t=Object.assign({},this.iconClasses),e)t[n]=this.applyIconOverridePrefix(e[n]);this.iconClasses=t}else!1===e&&(this.iconClasses={})}applyIconOverridePrefix(e){let t=this.iconOverridePrefix;return t&&0!==e.indexOf(t)&&(e=t+e),e}getClass(e){return this.classes[e]||""}getIconClass(e,t){let n;return n=t&&this.rtlIconClasses&&this.rtlIconClasses[e]||this.iconClasses[e],n?`${this.baseIconClass} ${n}`:""}getCustomButtonIconClass(e){let t;return this.iconOverrideCustomButtonOption&&(t=e[this.iconOverrideCustomButtonOption],t)?`${this.baseIconClass} ${this.applyIconOverridePrefix(t)}`:""}}jt.prototype.classes={},jt.prototype.iconClasses={},jt.prototype.baseIconClass="",jt.prototype.iconOverridePrefix="";var zt,Lt,Ft,Vt,Wt,Qt,Gt,Zt={},Yt=[],qt=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function Jt(e,t){for(var n in t)e[n]=t[n];return e}function $t(e){var t=e.parentNode;t&&t.removeChild(e)}function Xt(e,t,n){var r,i,o,s={};for(o in t)"key"==o?r=t[o]:"ref"==o?i=t[o]:s[o]=t[o];if(arguments.length>2&&(s.children=arguments.length>3?zt.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(o in e.defaultProps)void 0===s[o]&&(s[o]=e.defaultProps[o]);return Kt(e,s,r,i,null)}function Kt(e,t,n,r,i){var o={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==i?++Ft:i};return null==i&&null!=Lt.vnode&&Lt.vnode(o),o}function en(){return{current:null}}function tn(e){return e.children}function nn(e,t){this.props=e,this.context=t}function rn(e,t){if(null==t)return e.__?rn(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?rn(e):null}function on(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return on(e)}}function sn(e){(!e.__d&&(e.__d=!0)&&Wt.push(e)&&!an.__r++||Qt!==Lt.debounceRendering)&&((Qt=Lt.debounceRendering)||setTimeout)(an)}function an(){for(var e;an.__r=Wt.length;)e=Wt.sort((function(e,t){return e.__v.__b-t.__v.__b})),Wt=[],e.some((function(e){var t,n,r,i,o,s;e.__d&&(o=(i=(t=e).__v).__e,(s=t.__P)&&(n=[],(r=Jt({},i)).__v=i.__v+1,mn(s,i,r,t.__n,void 0!==s.ownerSVGElement,null!=i.__h?[o]:null,n,null==o?rn(i):o,i.__h),vn(n,i),i.__e!=o&&on(i)))}))}function ln(e,t,n,r,i,o,s,a,l,c){var u,d,f,h,p,g,m,v=r&&r.__k||Yt,A=v.length;for(n.__k=[],u=0;u<t.length;u++)if(null!=(h=n.__k[u]=null==(h=t[u])||"boolean"==typeof h?null:"string"==typeof h||"number"==typeof h||"bigint"==typeof h?Kt(null,h,null,null,h):Array.isArray(h)?Kt(tn,{children:h},null,null,null):h.__b>0?Kt(h.type,h.props,h.key,h.ref?h.ref:null,h.__v):h)){if(h.__=n,h.__b=n.__b+1,null===(f=v[u])||f&&h.key==f.key&&h.type===f.type)v[u]=void 0;else for(d=0;d<A;d++){if((f=v[d])&&h.key==f.key&&h.type===f.type){v[d]=void 0;break}f=null}mn(e,h,f=f||Zt,i,o,s,a,l,c),p=h.__e,(d=h.ref)&&f.ref!=d&&(m||(m=[]),f.ref&&m.push(f.ref,null,h),m.push(d,h.__c||p,h)),null!=p?(null==g&&(g=p),"function"==typeof h.type&&h.__k===f.__k?h.__d=l=cn(h,l,e):l=dn(e,h,f,v,p,l),"function"==typeof n.type&&(n.__d=l)):l&&f.__e==l&&l.parentNode!=e&&(l=rn(f))}for(n.__e=g,u=A;u--;)null!=v[u]&&yn(v[u],v[u]);if(m)for(u=0;u<m.length;u++)bn(m[u],m[++u],m[++u])}function cn(e,t,n){for(var r,i=e.__k,o=0;i&&o<i.length;o++)(r=i[o])&&(r.__=e,t="function"==typeof r.type?cn(r,t,n):dn(n,r,r,i,r.__e,t));return t}function un(e,t){return t=t||[],null==e||"boolean"==typeof e||(Array.isArray(e)?e.some((function(e){un(e,t)})):t.push(e)),t}function dn(e,t,n,r,i,o){var s,a,l;if(void 0!==t.__d)s=t.__d,t.__d=void 0;else if(null==n||i!=o||null==i.parentNode)e:if(null==o||o.parentNode!==e)e.appendChild(i),s=null;else{for(a=o,l=0;(a=a.nextSibling)&&l<r.length;l+=1)if(a==i)break e;e.insertBefore(i,o),s=o}return void 0!==s?s:i.nextSibling}function fn(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||qt.test(t)?n:n+"px"}function hn(e,t,n,r,i){var o;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||fn(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||fn(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])o=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+o]=n,n?r||e.addEventListener(t,o?gn:pn,o):e.removeEventListener(t,o?gn:pn,o);else if("dangerouslySetInnerHTML"!==t){if(i)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null==n||!1===n&&-1==t.indexOf("-")?e.removeAttribute(t):e.setAttribute(t,n))}}function pn(e){this.l[e.type+!1](Lt.event?Lt.event(e):e)}function gn(e){this.l[e.type+!0](Lt.event?Lt.event(e):e)}function mn(e,t,n,r,i,o,s,a,l){var c,u,d,f,h,p,g,m,v,A,b,y,_,E,D,C=t.type;if(void 0!==t.constructor)return null;null!=n.__h&&(l=n.__h,a=t.__e=n.__e,t.__h=null,o=[a]),(c=Lt.__b)&&c(t);try{e:if("function"==typeof C){if(m=t.props,v=(c=C.contextType)&&r[c.__c],A=c?v?v.props.value:c.__:r,n.__c?g=(u=t.__c=n.__c).__=u.__E:("prototype"in C&&C.prototype.render?t.__c=u=new C(m,A):(t.__c=u=new nn(m,A),u.constructor=C,u.render=_n),v&&v.sub(u),u.props=m,u.state||(u.state={}),u.context=A,u.__n=r,d=u.__d=!0,u.__h=[],u._sb=[]),null==u.__s&&(u.__s=u.state),null!=C.getDerivedStateFromProps&&(u.__s==u.state&&(u.__s=Jt({},u.__s)),Jt(u.__s,C.getDerivedStateFromProps(m,u.__s))),f=u.props,h=u.state,d)null==C.getDerivedStateFromProps&&null!=u.componentWillMount&&u.componentWillMount(),null!=u.componentDidMount&&u.__h.push(u.componentDidMount);else{if(null==C.getDerivedStateFromProps&&m!==f&&null!=u.componentWillReceiveProps&&u.componentWillReceiveProps(m,A),!u.__e&&null!=u.shouldComponentUpdate&&!1===u.shouldComponentUpdate(m,u.__s,A)||t.__v===n.__v){for(u.props=m,u.state=u.__s,t.__v!==n.__v&&(u.__d=!1),u.__v=t,t.__e=n.__e,t.__k=n.__k,t.__k.forEach((function(e){e&&(e.__=t)})),b=0;b<u._sb.length;b++)u.__h.push(u._sb[b]);u._sb=[],u.__h.length&&s.push(u);break e}null!=u.componentWillUpdate&&u.componentWillUpdate(m,u.__s,A),null!=u.componentDidUpdate&&u.__h.push((function(){u.componentDidUpdate(f,h,p)}))}if(u.context=A,u.props=m,u.__v=t,u.__P=e,y=Lt.__r,_=0,"prototype"in C&&C.prototype.render){for(u.state=u.__s,u.__d=!1,y&&y(t),c=u.render(u.props,u.state,u.context),E=0;E<u._sb.length;E++)u.__h.push(u._sb[E]);u._sb=[]}else do{u.__d=!1,y&&y(t),c=u.render(u.props,u.state,u.context),u.state=u.__s}while(u.__d&&++_<25);u.state=u.__s,null!=u.getChildContext&&(r=Jt(Jt({},r),u.getChildContext())),d||null==u.getSnapshotBeforeUpdate||(p=u.getSnapshotBeforeUpdate(f,h)),D=null!=c&&c.type===tn&&null==c.key?c.props.children:c,ln(e,Array.isArray(D)?D:[D],t,n,r,i,o,s,a,l),u.base=t.__e,t.__h=null,u.__h.length&&s.push(u),g&&(u.__E=u.__=null),u.__e=!1}else null==o&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=An(n.__e,t,n,r,i,o,s,l);(c=Lt.diffed)&&c(t)}catch(e){t.__v=null,(l||null!=o)&&(t.__e=a,t.__h=!!l,o[o.indexOf(a)]=null),Lt.__e(e,t,n)}}function vn(e,t){Lt.__c&&Lt.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){Lt.__e(e,t.__v)}}))}function An(e,t,n,r,i,o,s,a){var l,c,u,d=n.props,f=t.props,h=t.type,p=0;if("svg"===h&&(i=!0),null!=o)for(;p<o.length;p++)if((l=o[p])&&"setAttribute"in l==!!h&&(h?l.localName===h:3===l.nodeType)){e=l,o[p]=null;break}if(null==e){if(null===h)return document.createTextNode(f);e=i?document.createElementNS("http://www.w3.org/2000/svg",h):document.createElement(h,f.is&&f),o=null,a=!1}if(null===h)d===f||a&&e.data===f||(e.data=f);else{if(o=o&&zt.call(e.childNodes),c=(d=n.props||Zt).dangerouslySetInnerHTML,u=f.dangerouslySetInnerHTML,!a){if(null!=o)for(d={},p=0;p<e.attributes.length;p++)d[e.attributes[p].name]=e.attributes[p].value;(u||c)&&(u&&(c&&u.__html==c.__html||u.__html===e.innerHTML)||(e.innerHTML=u&&u.__html||""))}if(function(e,t,n,r,i){var o;for(o in n)"children"===o||"key"===o||o in t||hn(e,o,null,n[o],r);for(o in t)i&&"function"!=typeof t[o]||"children"===o||"key"===o||"value"===o||"checked"===o||n[o]===t[o]||hn(e,o,t[o],n[o],r)}(e,f,d,i,a),u)t.__k=[];else if(p=t.props.children,ln(e,Array.isArray(p)?p:[p],t,n,r,i&&"foreignObject"!==h,o,s,o?o[0]:n.__k&&rn(n,0),a),null!=o)for(p=o.length;p--;)null!=o[p]&&$t(o[p]);a||("value"in f&&void 0!==(p=f.value)&&(p!==e.value||"progress"===h&&!p||"option"===h&&p!==d.value)&&hn(e,"value",p,d.value,!1),"checked"in f&&void 0!==(p=f.checked)&&p!==e.checked&&hn(e,"checked",p,d.checked,!1))}return e}function bn(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){Lt.__e(e,n)}}function yn(e,t,n){var r,i;if(Lt.unmount&&Lt.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||bn(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){Lt.__e(e,t)}r.base=r.__P=null,e.__c=void 0}if(r=e.__k)for(i=0;i<r.length;i++)r[i]&&yn(r[i],t,n||"function"!=typeof e.type);n||null==e.__e||$t(e.__e),e.__=e.__e=e.__d=void 0}function _n(e,t,n){return this.constructor(e,n)}function En(e,t,n){var r,i,o;Lt.__&&Lt.__(e,t),i=(r="function"==typeof n)?null:n&&n.__k||t.__k,o=[],mn(t,e=(!r&&n||t).__k=Xt(tn,null,[e]),i||Zt,Zt,void 0!==t.ownerSVGElement,!r&&n?[n]:i?null:t.firstChild?zt.call(t.childNodes):null,o,!r&&n?n:i?i.__e:t.firstChild,r),vn(o,e)}zt=Yt.slice,Lt={__e:function(e,t,n,r){for(var i,o,s;t=t.__;)if((i=t.__c)&&!i.__)try{if((o=i.constructor)&&null!=o.getDerivedStateFromError&&(i.setState(o.getDerivedStateFromError(e)),s=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(e,r||{}),s=i.__d),s)return i.__E=i}catch(t){e=t}throw e}},Ft=0,Vt=function(e){return null!=e&&void 0===e.constructor},nn.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=Jt({},this.state),"function"==typeof e&&(e=e(Jt({},n),this.props)),e&&Jt(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),sn(this))},nn.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),sn(this))},nn.prototype.render=tn,Wt=[],an.__r=0,Gt=0;var Dn,Cn,wn,Sn=[],Tn=[],kn=Lt.__b,Rn=Lt.__r,xn=Lt.diffed,On=Lt.__c,In=Lt.unmount;function Mn(){for(var e;e=Sn.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(Hn),e.__H.__h.forEach(Pn),e.__H.__h=[]}catch(t){e.__H.__h=[],Lt.__e(t,e.__v)}}Lt.__b=function(e){Dn=null,kn&&kn(e)},Lt.__r=function(e){Rn&&Rn(e);var t=(Dn=e.__c).__H;t&&(Cn===Dn?(t.__h=[],Dn.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=Tn,e.__N=e.i=void 0}))):(t.__h.forEach(Hn),t.__h.forEach(Pn),t.__h=[])),Cn=Dn},Lt.diffed=function(e){xn&&xn(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==Sn.push(t)&&wn===Lt.requestAnimationFrame||((wn=Lt.requestAnimationFrame)||Bn)(Mn)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==Tn&&(e.__=e.__V),e.i=void 0,e.__V=Tn}))),Cn=Dn=null},Lt.__c=function(e,t){t.some((function(e){try{e.__h.forEach(Hn),e.__h=e.__h.filter((function(e){return!e.__||Pn(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],Lt.__e(n,e.__v)}})),On&&On(e,t)},Lt.unmount=function(e){In&&In(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach((function(e){try{Hn(e)}catch(e){t=e}})),n.__H=void 0,t&&Lt.__e(t,n.__v))};var Nn="function"==typeof requestAnimationFrame;function Bn(e){var t,n=function(){clearTimeout(r),Nn&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);Nn&&(t=requestAnimationFrame(n))}function Hn(e){var t=Dn,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Dn=t}function Pn(e){var t=Dn;e.__c=e.__(),Dn=t}function Un(e,t){for(var n in e)if("__source"!==n&&!(n in t))return!0;for(var r in t)if("__source"!==r&&e[r]!==t[r])return!0;return!1}function jn(e){this.props=e}(jn.prototype=new nn).isPureReactComponent=!0,jn.prototype.shouldComponentUpdate=function(e,t){return Un(this.props,e)||Un(this.state,t)};var zn=Lt.__b;Lt.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),zn&&zn(e)};var Ln=Lt.__e;Lt.__e=function(e,t,n,r){if(e.then)for(var i,o=t;o=o.__;)if((i=o.__c)&&i.__c)return null==t.__e&&(t.__e=n.__e,t.__k=n.__k),i.__c(e,t);Ln(e,t,n,r)};var Fn=Lt.unmount;function Vn(){this.__u=0,this.t=null,this.__b=null}function Wn(e){var t=e.__.__c;return t&&t.__a&&t.__a(e)}function Qn(){this.u=null,this.o=null}Lt.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&!0===e.__h&&(e.type=null),Fn&&Fn(e)},(Vn.prototype=new nn).__c=function(e,t){var n=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(n);var i=Wn(r.__v),o=!1,s=function(){o||(o=!0,n.__R=null,i?i(a):a())};n.__R=s;var a=function(){if(!--r.__u){if(r.state.__a){var e=r.state.__a;r.__v.__k[0]=function e(t,n,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map((function(t){return e(t,n,r)})),t.__c&&t.__c.__P===n&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(e,e.__c.__P,e.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate()}},l=!0===t.__h;r.__u++||l||r.setState({__a:r.__b=r.__v.__k[0]}),e.then(s,s)},Vn.prototype.componentWillUnmount=function(){this.t=[]},Vn.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var n=document.createElement("div"),r=this.__v.__k[0].__c;this.__v.__k[0]=function e(t,n,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach((function(e){"function"==typeof e.__c&&e.__c()})),t.__c.__H=null),null!=(t=function(e,t){for(var n in t)e[n]=t[n];return e}({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=n),t.__c=null),t.__k=t.__k&&t.__k.map((function(t){return e(t,n,r)}))),t}(this.__b,n,r.__O=r.__P)}this.__b=null}var i=t.__a&&Xt(tn,null,e.fallback);return i&&(i.__h=null),[Xt(tn,null,t.__a?null:e.children),i]};var Gn=function(e,t,n){if(++n[1]===n[0]&&e.o.delete(t),e.props.revealOrder&&("t"!==e.props.revealOrder[0]||!e.o.size))for(n=e.u;n;){for(;n.length>3;)n.pop()();if(n[1]<n[0])break;e.u=n=n[2]}};function Zn(e){return this.getChildContext=function(){return e.context},e.children}function Yn(e){var t=this,n=e.i;t.componentWillUnmount=function(){En(null,t.l),t.l=null,t.i=null},t.i&&t.i!==n&&t.componentWillUnmount(),e.__v?(t.l||(t.i=n,t.l={nodeType:1,parentNode:n,childNodes:[],appendChild:function(e){this.childNodes.push(e),t.i.appendChild(e)},insertBefore:function(e,n){this.childNodes.push(e),t.i.appendChild(e)},removeChild:function(e){this.childNodes.splice(this.childNodes.indexOf(e)>>>1,1),t.i.removeChild(e)}}),En(Xt(Zn,{context:t.context},e.__v),t.l)):t.l&&t.componentWillUnmount()}function qn(e,t){var n=Xt(Yn,{__v:e,i:t});return n.containerInfo=t,n}(Qn.prototype=new nn).__a=function(e){var t=this,n=Wn(t.__v),r=t.o.get(e);return r[0]++,function(i){var o=function(){t.props.revealOrder?(r.push(i),Gn(t,e,r)):i()};n?n(o):o()}},Qn.prototype.render=function(e){this.u=null,this.o=new Map;var t=un(e.children);e.revealOrder&&"b"===e.revealOrder[0]&&t.reverse();for(var n=t.length;n--;)this.o.set(t[n],this.u=[1,0,this.u]);return e.children},Qn.prototype.componentDidUpdate=Qn.prototype.componentDidMount=function(){var e=this;this.o.forEach((function(t,n){Gn(e,n,t)}))};var Jn="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,$n=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,Xn="undefined"!=typeof document,Kn=function(e){return("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(e)};nn.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach((function(e){Object.defineProperty(nn.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})}));var er=Lt.event;function tr(){}function nr(){return this.cancelBubble}function rr(){return this.defaultPrevented}Lt.event=function(e){return er&&(e=er(e)),e.persist=tr,e.isPropagationStopped=nr,e.isDefaultPrevented=rr,e.nativeEvent=e};var ir={configurable:!0,get:function(){return this.class}},or=Lt.vnode;Lt.vnode=function(e){var t=e.type,n=e.props,r=n;if("string"==typeof t){var i=-1===t.indexOf("-");for(var o in r={},n){var s=n[o];Xn&&"children"===o&&"noscript"===t||"value"===o&&"defaultValue"in n&&null==s||("defaultValue"===o&&"value"in n&&null==n.value?o="value":"download"===o&&!0===s?s="":/ondoubleclick/i.test(o)?o="ondblclick":/^onchange(textarea|input)/i.test(o+t)&&!Kn(n.type)?o="oninput":/^onfocus$/i.test(o)?o="onfocusin":/^onblur$/i.test(o)?o="onfocusout":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(o)?o=o.toLowerCase():i&&$n.test(o)?o=o.replace(/[A-Z0-9]/g,"-$&").toLowerCase():null===s&&(s=void 0),/^oninput$/i.test(o)&&(o=o.toLowerCase(),r[o]&&(o="oninputCapture")),r[o]=s)}"select"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=un(n.children).forEach((function(e){e.props.selected=-1!=r.value.indexOf(e.props.value)}))),"select"==t&&null!=r.defaultValue&&(r.value=un(n.children).forEach((function(e){e.props.selected=r.multiple?-1!=r.defaultValue.indexOf(e.props.value):r.defaultValue==e.props.value}))),e.props=r,n.class!=n.className&&(ir.enumerable="className"in n,null!=n.className&&(r.class=n.className),Object.defineProperty(r,"className",ir))}e.$$typeof=Jn,or&&or(e)};var sr=Lt.__r;function ar(e){e();let t=Lt.debounceRendering,n=[];for(Lt.debounceRendering=function(e){n.push(e)},En(Xt(lr,{}),document.createElement("div"));n.length;)n.shift()();Lt.debounceRendering=t}Lt.__r=function(e){sr&&sr(e),e.__c};class lr extends nn{render(){return Xt("div",{})}componentDidMount(){this.setState({})}}function cr(e){let t=function(e,t){var n={__c:t="__cC"+Gt++,__:e,Consumer:function(e,t){return e.children(t)},Provider:function(e){var n,r;return this.getChildContext||(n=[],(r={})[t]=this,this.getChildContext=function(){return r},this.shouldComponentUpdate=function(e){this.props.value!==e.value&&n.some(sn)},this.sub=function(e){n.push(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){n.splice(n.indexOf(e),1),t&&t.call(e)}}),e.children}};return n.Provider.__=n.Consumer.contextType=n}(e),n=t.Provider;return t.Provider=function(){let e=!this.getChildContext,t=n.apply(this,arguments);if(e){let e=[];this.shouldComponentUpdate=t=>{this.props.value!==t.value&&e.forEach(e=>{e.context=t.value,e.forceUpdate()})},this.sub=t=>{e.push(t);let n=t.componentWillUnmount;t.componentWillUnmount=()=>{e.splice(e.indexOf(t),1),n&&n.call(t)}}}return t},t}var ur={__proto__:null,flushSync:ar,createContext:cr,createPortal:qn,Component:nn,Fragment:tn,cloneElement:function(e,t,n){var r,i,o,s=Jt({},e.props);for(o in t)"key"==o?r=t[o]:"ref"==o?i=t[o]:s[o]=t[o];return arguments.length>2&&(s.children=arguments.length>3?zt.call(arguments,2):n),Kt(e.type,s,r||e.key,i||e.ref,null)},createElement:Xt,createRef:en,h:Xt,hydrate:function e(t,n){En(t,n,e)},get isValidElement(){return Vt},get options(){return Lt},render:En,toChildArray:un};class dr{constructor(e,t,n,r){this.execFunc=e,this.emitter=t,this.scrollTime=n,this.scrollTimeReset=r,this.handleScrollRequest=e=>{this.queuedRequest=Object.assign({},this.queuedRequest||{},e),this.drain()},t.on("_scrollRequest",this.handleScrollRequest),this.fireInitialScroll()}detach(){this.emitter.off("_scrollRequest",this.handleScrollRequest)}update(e){e&&this.scrollTimeReset?this.fireInitialScroll():this.drain()}fireInitialScroll(){this.handleScrollRequest({time:this.scrollTime})}drain(){this.queuedRequest&&this.execFunc(this.queuedRequest)&&(this.queuedRequest=null)}}const fr=cr({});function hr(e,t,n,r,i,o,s,a,l,c,u,d,f){return{dateEnv:i,options:n,pluginHooks:s,emitter:c,dispatch:a,getCurrentData:l,calendarApi:u,viewSpec:e,viewApi:t,dateProfileGenerator:r,theme:o,isRtl:"rtl"===n.direction,addResizeHandler(e){c.on("_resize",e)},removeResizeHandler(e){c.off("_resize",e)},createScrollResponder:e=>new dr(e,c,k(n.scrollTime),n.scrollTimeReset),registerInteractiveComponent:d,unregisterInteractiveComponent:f}}class pr extends nn{shouldComponentUpdate(e,t){return this.debug&&console.log(L(e,this.props),L(t,this.state)),!F(this.props,e,this.propEquality)||!F(this.state,t,this.stateEquality)}safeSetState(e){F(this.state,Object.assign(Object.assign({},this.state),e),this.stateEquality)||this.setState(e)}}pr.addPropsEquality=function(e){let t=Object.create(this.prototype.propEquality);Object.assign(t,e),this.prototype.propEquality=t},pr.addStateEquality=function(e){let t=Object.create(this.prototype.stateEquality);Object.assign(t,e),this.prototype.stateEquality=t},pr.contextType=fr,pr.prototype.propEquality={},pr.prototype.stateEquality={};class gr extends pr{}function mr(e,t){"function"==typeof e?e(t):e&&(e.current=t)}gr.contextType=fr;class vr extends gr{constructor(){super(...arguments),this.uid=v()}prepareHits(){}queryHit(e,t,n,r){return null}isValidSegDownEl(e){return!this.props.eventDrag&&!this.props.eventResize&&!n(e,".fc-event-mirror")}isValidDateDownEl(e){return!(n(e,".fc-event:not(.fc-bg-event)")||n(e,".fc-more-link")||n(e,"a[data-navlink]")||n(e,".fc-popover"))}}function Ar(e,t){return"function"==typeof e&&(e=e()),null==e?t.createNowMarker():t.createMarker(e)}class br{constructor(e){this.props=e,this.nowDate=Ar(e.nowInput,e.dateEnv),this.initHiddenDays()}buildPrev(e,t,n){let{dateEnv:r}=this.props,i=r.subtract(r.startOf(t,e.currentRangeUnit),e.dateIncrement);return this.build(i,-1,n)}buildNext(e,t,n){let{dateEnv:r}=this.props,i=r.add(r.startOf(t,e.currentRangeUnit),e.dateIncrement);return this.build(i,1,n)}build(e,t,n=!0){let r,i,o,s,a,l,{props:c}=this;var u,d;return r=this.buildValidRange(),r=this.trimHiddenDays(r),n&&(u=e,e=null!=(d=r).start&&u<d.start?d.start:null!=d.end&&u>=d.end?new Date(d.end.valueOf()-1):u),i=this.buildCurrentRangeInfo(e,t),o=/^(year|month|week|day)$/.test(i.unit),s=this.buildRenderRange(this.trimHiddenDays(i.range),i.unit,o),s=this.trimHiddenDays(s),a=s,c.showNonCurrentDates||(a=vt(a,i.range)),a=this.adjustActiveRange(a),a=vt(a,r),l=bt(i.range,r),{validRange:r,currentRange:i.range,currentRangeUnit:i.unit,isRangeAllDay:o,activeRange:a,renderRange:s,slotMinTime:c.slotMinTime,slotMaxTime:c.slotMaxTime,isValid:l,dateIncrement:this.buildDateIncrement(i.duration)}}buildValidRange(){let e=this.props.validRangeInput,t="function"==typeof e?e.call(this.props.calendarApi,this.nowDate):e;return this.refineRange(t)||{start:null,end:null}}buildCurrentRangeInfo(e,t){let n,{props:r}=this,i=null,o=null,s=null;return r.duration?(i=r.duration,o=r.durationUnit,s=this.buildRangeFromDuration(e,t,i,o)):(n=this.props.dayCount)?(o="day",s=this.buildRangeFromDayCount(e,t,n)):(s=this.buildCustomVisibleRange(e))?o=r.dateEnv.greatestWholeUnit(s.start,s.end).unit:(i=this.getFallbackDuration(),o=I(i).unit,s=this.buildRangeFromDuration(e,t,i,o)),{duration:i,unit:o,range:s}}getFallbackDuration(){return k({day:1})}adjustActiveRange(e){let{dateEnv:t,usesMinMaxTime:n,slotMinTime:r,slotMaxTime:i}=this.props,{start:o,end:s}=e;return n&&(x(r)<0&&(o=X(o),o=t.add(o,r)),x(i)>1&&(s=X(s),s=G(s,-1),s=t.add(s,i))),{start:o,end:s}}buildRangeFromDuration(e,t,n,r){let i,o,s,{dateEnv:a,dateAlignment:l}=this.props;if(!l){let{dateIncrement:e}=this.props;l=e&&O(e)<O(n)?I(e).unit:r}function c(){i=a.startOf(e,l),o=a.add(i,n),s={start:i,end:o}}return x(n)<=1&&this.isHiddenDay(i)&&(i=this.skipHiddenDays(i,t),i=X(i)),c(),this.trimHiddenDays(s)||(e=this.skipHiddenDays(e,t),c()),s}buildRangeFromDayCount(e,t,n){let r,{dateEnv:i,dateAlignment:o}=this.props,s=0,a=e;o&&(a=i.startOf(a,o)),a=X(a),a=this.skipHiddenDays(a,t),r=a;do{r=G(r,1),this.isHiddenDay(r)||(s+=1)}while(s<n);return{start:a,end:r}}buildCustomVisibleRange(e){let{props:t}=this,n=t.visibleRangeInput,r="function"==typeof n?n.call(t.calendarApi,t.dateEnv.toDate(e)):n,i=this.refineRange(r);return!i||null!=i.start&&null!=i.end?i:null}buildRenderRange(e,t,n){return e}buildDateIncrement(e){let t,{dateIncrement:n}=this.props;return n||((t=this.props.dateAlignment)?k(1,t):e||k({days:1}))}refineRange(e){if(e){let t=function(e,t){let n=null,r=null;return e.start&&(n=t.createMarker(e.start)),e.end&&(r=t.createMarker(e.end)),n||r?n&&r&&r<n?null:{start:n,end:r}:null}(e,this.props.dateEnv);return t&&(t=lt(t)),t}return null}initHiddenDays(){let e,t=this.props.hiddenDays||[],n=[],r=0;for(!1===this.props.weekends&&t.push(0,6),e=0;e<7;e+=1)(n[e]=-1!==t.indexOf(e))||(r+=1);if(!r)throw new Error("invalid hiddenDays");this.isHiddenDayHash=n}trimHiddenDays(e){let{start:t,end:n}=e;return t&&(t=this.skipHiddenDays(t)),n&&(n=this.skipHiddenDays(n,-1,!0)),null==t||null==n||t<n?{start:t,end:n}:null}isHiddenDay(e){return e instanceof Date&&(e=e.getUTCDay()),this.isHiddenDayHash[e]}skipHiddenDays(e,t=1,n=!1){for(;this.isHiddenDayHash[(e.getUTCDay()+(n?t:0)+7)%7];)e=G(e,t);return e}}function yr(e,t,n){n.emitter.trigger("select",Object.assign(Object.assign({},_r(e,n)),{jsEvent:t?t.origEvent:null,view:n.viewApi||n.calendarApi.view}))}function _r(e,t){let n={};for(let r of t.pluginHooks.dateSpanTransforms)Object.assign(n,r(e,t));var r,i;return Object.assign(n,(r=e,i=t.dateEnv,Object.assign(Object.assign({},Qr(r.range,i,r.allDay)),{allDay:r.allDay}))),n}function Er(e,t,n){let{dateEnv:r,options:i}=n,o=t;return e?(o=X(o),o=r.add(o,i.defaultAllDayEventDuration)):o=r.add(o,i.defaultTimedEventDuration),o}function Dr(e,t,n,r){let i=Mr(e.defs,t),o={defs:{},instances:{}};for(let t in e.defs){let s=e.defs[t];o.defs[t]=Cr(s,i[t],n,r)}for(let t in e.instances){let s=e.instances[t],a=o.defs[s.defId];o.instances[t]=wr(s,a,i[s.defId],n,r)}return o}function Cr(e,t,n,r){let i=n.standardProps||{};null==i.hasEnd&&t.durationEditable&&(n.startDelta||n.endDelta)&&(i.hasEnd=!0);let o=Object.assign(Object.assign(Object.assign({},e),i),{ui:Object.assign(Object.assign({},e.ui),i.ui)});n.extendedProps&&(o.extendedProps=Object.assign(Object.assign({},o.extendedProps),n.extendedProps));for(let e of r.pluginHooks.eventDefMutationAppliers)e(o,n,r);return!o.hasEnd&&r.options.forceEventDuration&&(o.hasEnd=!0),o}function wr(e,t,n,r,i){let{dateEnv:o}=i,s=r.standardProps&&!0===r.standardProps.allDay,a=r.standardProps&&!1===r.standardProps.hasEnd,l=Object.assign({},e);return s&&(l.range=at(l.range)),r.datesDelta&&n.startEditable&&(l.range={start:o.add(l.range.start,r.datesDelta),end:o.add(l.range.end,r.datesDelta)}),r.startDelta&&n.durationEditable&&(l.range={start:o.add(l.range.start,r.startDelta),end:l.range.end}),r.endDelta&&n.durationEditable&&(l.range={start:l.range.start,end:o.add(l.range.end,r.endDelta)}),a&&(l.range={start:l.range.start,end:Er(t.allDay,l.range.start,i)}),t.allDay&&(l.range={start:X(l.range.start),end:X(l.range.end)}),l.range.end<l.range.start&&(l.range.end=Er(t.allDay,l.range.start,i)),l}class Sr{constructor(e,t){this.context=e,this.internalEventSource=t}remove(){this.context.dispatch({type:"REMOVE_EVENT_SOURCE",sourceId:this.internalEventSource.sourceId})}refetch(){this.context.dispatch({type:"FETCH_EVENT_SOURCES",sourceIds:[this.internalEventSource.sourceId],isRefetch:!0})}get id(){return this.internalEventSource.publicId}get url(){return this.internalEventSource.meta.url}get format(){return this.internalEventSource.meta.format}}class Tr{constructor(e,t,n){this._context=e,this._def=t,this._instance=n||null}setProp(e,t){if(e in Ke)console.warn("Could not set date-related prop 'name'. Use one of the date-related methods instead.");else if("id"===e)t=Xe[e](t),this.mutate({standardProps:{publicId:t}});else if(e in Xe)t=Xe[e](t),this.mutate({standardProps:{[e]:t}});else if(e in Ze){let n=Ze[e](t);n="color"===e?{backgroundColor:t,borderColor:t}:"editable"===e?{startEditable:t,durationEditable:t}:{[e]:t},this.mutate({standardProps:{ui:n}})}else console.warn(`Could not set prop '${e}'. Use setExtendedProp instead.`)}setExtendedProp(e,t){this.mutate({extendedProps:{[e]:t}})}setStart(e,t={}){let{dateEnv:n}=this._context,r=n.createMarker(e);if(r&&this._instance){let e=ct(this._instance.range.start,r,n,t.granularity);t.maintainDuration?this.mutate({datesDelta:e}):this.mutate({startDelta:e})}}setEnd(e,t={}){let n,{dateEnv:r}=this._context;if((null==e||(n=r.createMarker(e),n))&&this._instance)if(n){let e=ct(this._instance.range.end,n,r,t.granularity);this.mutate({endDelta:e})}else this.mutate({standardProps:{hasEnd:!1}})}setDates(e,t,n={}){let r,{dateEnv:i}=this._context,o={allDay:n.allDay},s=i.createMarker(e);var a,l;if(s&&((null==t||(r=i.createMarker(t),r))&&this._instance)){let e=this._instance.range;!0===n.allDay&&(e=at(e));let t=ct(e.start,s,i,n.granularity);if(r){let s=ct(e.end,r,i,n.granularity);l=s,(a=t).years===l.years&&a.months===l.months&&a.days===l.days&&a.milliseconds===l.milliseconds?this.mutate({datesDelta:t,standardProps:o}):this.mutate({startDelta:t,endDelta:s,standardProps:o})}else o.hasEnd=!1,this.mutate({datesDelta:t,standardProps:o})}}moveStart(e){let t=k(e);t&&this.mutate({startDelta:t})}moveEnd(e){let t=k(e);t&&this.mutate({endDelta:t})}moveDates(e){let t=k(e);t&&this.mutate({datesDelta:t})}setAllDay(e,t={}){let n={allDay:e},{maintainDuration:r}=t;null==r&&(r=this._context.options.allDayMaintainDuration),this._def.allDay!==e&&(n.hasEnd=r),this.mutate({standardProps:n})}formatRange(e){let{dateEnv:t}=this._context,n=this._instance,r=Se(e);return this._def.hasEnd?t.formatRange(n.range.start,n.range.end,r,{forcedStartTzo:n.forcedStartTzo,forcedEndTzo:n.forcedEndTzo}):t.format(n.range.start,r,{forcedTzo:n.forcedStartTzo})}mutate(e){let t=this._instance;if(t){let n=this._def,r=this._context,{eventStore:i}=r.getCurrentData(),o=Fe(i,t.instanceId);o=Dr(o,{"":{display:"",startEditable:!0,durationEditable:!0,constraints:[],overlap:null,allows:[],backgroundColor:"",borderColor:"",textColor:"",classNames:[]}},e,r);let s=new Tr(r,n,t);this._def=o.defs[n.defId],this._instance=o.instances[t.instanceId],r.dispatch({type:"MERGE_EVENTS",eventStore:o}),r.emitter.trigger("eventChange",{oldEvent:s,event:this,relatedEvents:Rr(o,r,t),revert(){r.dispatch({type:"RESET_EVENTS",eventStore:i})}})}}remove(){let e=this._context,t=kr(this);e.dispatch({type:"REMOVE_EVENTS",eventStore:t}),e.emitter.trigger("eventRemove",{event:this,relatedEvents:[],revert(){e.dispatch({type:"MERGE_EVENTS",eventStore:t})}})}get source(){let{sourceId:e}=this._def;return e?new Sr(this._context,this._context.getCurrentData().eventSources[e]):null}get start(){return this._instance?this._context.dateEnv.toDate(this._instance.range.start):null}get end(){return this._instance&&this._def.hasEnd?this._context.dateEnv.toDate(this._instance.range.end):null}get startStr(){let e=this._instance;return e?this._context.dateEnv.formatIso(e.range.start,{omitTime:this._def.allDay,forcedTzo:e.forcedStartTzo}):""}get endStr(){let e=this._instance;return e&&this._def.hasEnd?this._context.dateEnv.formatIso(e.range.end,{omitTime:this._def.allDay,forcedTzo:e.forcedEndTzo}):""}get id(){return this._def.publicId}get groupId(){return this._def.groupId}get allDay(){return this._def.allDay}get title(){return this._def.title}get url(){return this._def.url}get display(){return this._def.ui.display||"auto"}get startEditable(){return this._def.ui.startEditable}get durationEditable(){return this._def.ui.durationEditable}get constraint(){return this._def.ui.constraints[0]||null}get overlap(){return this._def.ui.overlap}get allow(){return this._def.ui.allows[0]||null}get backgroundColor(){return this._def.ui.backgroundColor}get borderColor(){return this._def.ui.borderColor}get textColor(){return this._def.ui.textColor}get classNames(){return this._def.ui.classNames}get extendedProps(){return this._def.extendedProps}toPlainObject(e={}){let t=this._def,{ui:n}=t,{startStr:r,endStr:i}=this,o={};return t.title&&(o.title=t.title),r&&(o.start=r),i&&(o.end=i),t.publicId&&(o.id=t.publicId),t.groupId&&(o.groupId=t.groupId),t.url&&(o.url=t.url),n.display&&"auto"!==n.display&&(o.display=n.display),e.collapseColor&&n.backgroundColor&&n.backgroundColor===n.borderColor?o.color=n.backgroundColor:(n.backgroundColor&&(o.backgroundColor=n.backgroundColor),n.borderColor&&(o.borderColor=n.borderColor)),n.textColor&&(o.textColor=n.textColor),n.classNames.length&&(o.classNames=n.classNames),Object.keys(t.extendedProps).length&&(e.collapseExtendedProps?Object.assign(o,t.extendedProps):o.extendedProps=t.extendedProps),o}toJSON(){return this.toPlainObject()}}function kr(e){let t=e._def,n=e._instance;return{defs:{[t.defId]:t},instances:n?{[n.instanceId]:n}:{}}}function Rr(e,t,n){let{defs:r,instances:i}=e,o=[],s=n?n.instanceId:"";for(let e in i){let n=i[e],a=r[n.defId];n.instanceId!==s&&o.push(new Tr(t,a,n))}return o}function xr(e,t,n,r){let i={},o={},s={},a=[],l=[],c=Mr(e.defs,t);for(let t in e.defs){let n=e.defs[t];"inverse-background"===c[n.defId].display&&(n.groupId?(i[n.groupId]=[],s[n.groupId]||(s[n.groupId]=n)):o[t]=[])}for(let t in e.instances){let s=e.instances[t],u=e.defs[s.defId],d=c[u.defId],f=s.range,h=!u.allDay&&r?lt(f,r):f,p=vt(h,n);p&&("inverse-background"===d.display?u.groupId?i[u.groupId].push(p):o[s.defId].push(p):"none"!==d.display&&("background"===d.display?a:l).push({def:u,ui:d,instance:s,range:p,isStart:h.start&&h.start.valueOf()===p.start.valueOf(),isEnd:h.end&&h.end.valueOf()===p.end.valueOf()}))}for(let e in i){let t=gt(i[e],n);for(let n of t){let t=s[e],r=c[t.defId];a.push({def:t,ui:r,instance:null,range:n,isStart:!1,isEnd:!1})}}for(let t in o){let r=gt(o[t],n);for(let n of r)a.push({def:e.defs[t],ui:c[t],instance:null,range:n,isStart:!1,isEnd:!1})}return{bg:a,fg:l}}function Or(e,t){e.fcSeg=t}function Ir(e){return e.fcSeg||e.parentNode.fcSeg||null}function Mr(e,t){return H(e,e=>Nr(e,t))}function Nr(e,t){let n=[];return t[""]&&n.push(t[""]),t[e.defId]&&n.push(t[e.defId]),n.push(e.ui),Je(n)}function Br(e){let{eventRange:t}=e,n=t.def,r=t.instance?t.instance.range:t.range,i=r.start?r.start.valueOf():0,o=r.end?r.end.valueOf():0;return Object.assign(Object.assign(Object.assign({},n.extendedProps),n),{id:n.publicId,start:i,end:o,duration:o-i,allDay:Number(n.allDay),_seg:e})}function Hr(e,t){let{pluginHooks:n}=t,r=n.isDraggableTransformers,{def:i,ui:o}=e.eventRange,s=o.startEditable;for(let e of r)s=e(s,i,o,t);return s}function Pr(e,t){return e.isStart&&e.eventRange.ui.durationEditable&&t.options.eventResizableFromStart}function Ur(e,t){return e.isEnd&&e.eventRange.ui.durationEditable}function jr(e,t,n,r,i,o,s){let{dateEnv:a,options:l}=n,{displayEventTime:c,displayEventEnd:u}=l,d=e.eventRange.def,f=e.eventRange.instance;null==c&&(c=!1!==r),null==u&&(u=!1!==i);let h=f.range.start,p=f.range.end,g=o||e.start||e.eventRange.range.start,m=s||e.end||e.eventRange.range.end,v=X(h).valueOf()===X(g).valueOf(),A=X(Z(p,-1)).valueOf()===X(Z(m,-1)).valueOf();return c&&!d.allDay&&(v||A)?(g=v?h:g,m=A?p:m,u&&d.hasEnd?a.formatRange(g,m,t,{forcedStartTzo:o?null:f.forcedStartTzo,forcedEndTzo:s?null:f.forcedEndTzo}):a.format(g,t,{forcedTzo:o?null:f.forcedStartTzo})):""}function zr(e){let t=["fc-event"];return e.isMirror&&t.push("fc-event-mirror"),e.isDraggable&&t.push("fc-event-draggable"),(e.isStartResizable||e.isEndResizable)&&t.push("fc-event-resizable"),e.isDragging&&t.push("fc-event-dragging"),e.isResizing&&t.push("fc-event-resizing"),e.isSelected&&t.push("fc-event-selected"),e.isStart&&t.push("fc-event-start"),e.isEnd&&t.push("fc-event-end"),e.isPast&&t.push("fc-event-past"),e.isToday&&t.push("fc-event-today"),e.isFuture&&t.push("fc-event-future"),t}function Lr(e,t){let{def:n,instance:r}=e.eventRange,{url:i}=n;if(i)return{href:i};let{emitter:o,options:s}=t,{eventInteractive:a}=s;return null==a&&(a=n.interactive,null==a&&(a=Boolean(o.hasHandlers("eventClick")))),a?g(e=>{o.trigger("eventClick",{el:e.target,event:new Tr(t,n,r),jsEvent:e,view:t.viewApi})}):{}}const Fr={start:He,end:He,allDay:Boolean};function Vr(e,t,n){let r=function(e,t){let{refined:n,extra:r}=Be(e,Fr),i=n.start?t.createMarkerMeta(n.start):null,o=n.end?t.createMarkerMeta(n.end):null,{allDay:s}=n;null==s&&(s=i&&i.isTimeUnspecified&&(!o||o.isTimeUnspecified));return Object.assign({range:{start:i?i.marker:null,end:o?o.marker:null},allDay:s},r)}(e,t),{range:i}=r;if(!i.start)return null;if(!i.end){if(null==n)return null;i.end=t.add(i.start,n)}return r}function Wr(e,t,n){return Object.assign(Object.assign({},Qr(e,t,n)),{timeZone:t.timeZone})}function Qr(e,t,n){return{start:t.toDate(e.start),end:t.toDate(e.end),startStr:t.formatIso(e.start,{omitTime:n}),endStr:t.formatIso(e.end,{omitTime:n})}}let Gr={};var Zr,Yr;Zr="gregory",Yr=class{getMarkerYear(e){return e.getUTCFullYear()}getMarkerMonth(e){return e.getUTCMonth()}getMarkerDay(e){return e.getUTCDate()}arrayToMarker(e){return ie(e)}markerToArray(e){return re(e)}},Gr[Zr]=Yr;const qr=/^\s*(\d{4})(-?(\d{2})(-?(\d{2})([T ](\d{2}):?(\d{2})(:?(\d{2})(\.(\d+))?)?(Z|(([-+])(\d{2})(:?(\d{2}))?))?)?)?)?$/;function Jr(e){let t=qr.exec(e);if(t){let e=new Date(Date.UTC(Number(t[1]),t[3]?Number(t[3])-1:0,Number(t[5]||1),Number(t[7]||0),Number(t[8]||0),Number(t[10]||0),t[12]?1e3*Number("0."+t[12]):0));if(oe(e)){let n=null;return t[13]&&(n=("-"===t[15]?-1:1)*(60*Number(t[16]||0)+Number(t[18]||0))),{marker:e,isTimeUnspecified:!t[6],timeZoneOffset:n}}}return null}class $r{constructor(e){let t=this.timeZone=e.timeZone,n="local"!==t&&"UTC"!==t;e.namedTimeZoneImpl&&n&&(this.namedTimeZoneImpl=new e.namedTimeZoneImpl(t)),this.canComputeOffset=Boolean(!n||this.namedTimeZoneImpl),this.calendarSystem=function(e){return new Gr[e]}(e.calendarSystem),this.locale=e.locale,this.weekDow=e.locale.week.dow,this.weekDoy=e.locale.week.doy,"ISO"===e.weekNumberCalculation&&(this.weekDow=1,this.weekDoy=4),"number"==typeof e.firstDay&&(this.weekDow=e.firstDay),"function"==typeof e.weekNumberCalculation&&(this.weekNumberFunc=e.weekNumberCalculation),this.weekText=null!=e.weekText?e.weekText:e.locale.options.weekText,this.weekTextLong=(null!=e.weekTextLong?e.weekTextLong:e.locale.options.weekTextLong)||this.weekText,this.cmdFormatter=e.cmdFormatter,this.defaultSeparator=e.defaultSeparator}createMarker(e){let t=this.createMarkerMeta(e);return null===t?null:t.marker}createNowMarker(){return this.canComputeOffset?this.timestampToMarker((new Date).valueOf()):ie(te(new Date))}createMarkerMeta(e){if("string"==typeof e)return this.parse(e);let t=null;return"number"==typeof e?t=this.timestampToMarker(e):e instanceof Date?(e=e.valueOf(),isNaN(e)||(t=this.timestampToMarker(e))):Array.isArray(e)&&(t=ie(e)),null!==t&&oe(t)?{marker:t,isTimeUnspecified:!1,forcedTzo:null}:null}parse(e){let t=Jr(e);if(null===t)return null;let{marker:n}=t,r=null;return null!==t.timeZoneOffset&&(this.canComputeOffset?n=this.timestampToMarker(n.valueOf()-60*t.timeZoneOffset*1e3):r=t.timeZoneOffset),{marker:n,isTimeUnspecified:t.isTimeUnspecified,forcedTzo:r}}getYear(e){return this.calendarSystem.getMarkerYear(e)}getMonth(e){return this.calendarSystem.getMarkerMonth(e)}add(e,t){let n=this.calendarSystem.markerToArray(e);return n[0]+=t.years,n[1]+=t.months,n[2]+=t.days,n[6]+=t.milliseconds,this.calendarSystem.arrayToMarker(n)}subtract(e,t){let n=this.calendarSystem.markerToArray(e);return n[0]-=t.years,n[1]-=t.months,n[2]-=t.days,n[6]-=t.milliseconds,this.calendarSystem.arrayToMarker(n)}addYears(e,t){let n=this.calendarSystem.markerToArray(e);return n[0]+=t,this.calendarSystem.arrayToMarker(n)}addMonths(e,t){let n=this.calendarSystem.markerToArray(e);return n[1]+=t,this.calendarSystem.arrayToMarker(n)}diffWholeYears(e,t){let{calendarSystem:n}=this;return se(e)===se(t)&&n.getMarkerDay(e)===n.getMarkerDay(t)&&n.getMarkerMonth(e)===n.getMarkerMonth(t)?n.getMarkerYear(t)-n.getMarkerYear(e):null}diffWholeMonths(e,t){let{calendarSystem:n}=this;return se(e)===se(t)&&n.getMarkerDay(e)===n.getMarkerDay(t)?n.getMarkerMonth(t)-n.getMarkerMonth(e)+12*(n.getMarkerYear(t)-n.getMarkerYear(e)):null}greatestWholeUnit(e,t){let n=this.diffWholeYears(e,t);return null!==n?{unit:"year",value:n}:(n=this.diffWholeMonths(e,t),null!==n?{unit:"month",value:n}:(n=J(e,t),null!==n?{unit:"week",value:n}:(n=$(e,t),null!==n?{unit:"day",value:n}:(n=function(e,t){return(t.valueOf()-e.valueOf())/36e5}(e,t),C(n)?{unit:"hour",value:n}:(n=function(e,t){return(t.valueOf()-e.valueOf())/6e4}(e,t),C(n)?{unit:"minute",value:n}:(n=function(e,t){return(t.valueOf()-e.valueOf())/1e3}(e,t),C(n)?{unit:"second",value:n}:{unit:"millisecond",value:t.valueOf()-e.valueOf()}))))))}countDurationsBetween(e,t,n){let r;return n.years&&(r=this.diffWholeYears(e,t),null!==r)?r/(x(n)/365):n.months&&(r=this.diffWholeMonths(e,t),null!==r)?r/function(e){return x(e)/30}(n):n.days&&(r=$(e,t),null!==r)?r/x(n):(t.valueOf()-e.valueOf())/O(n)}startOf(e,t){return"year"===t?this.startOfYear(e):"month"===t?this.startOfMonth(e):"week"===t?this.startOfWeek(e):"day"===t?X(e):"hour"===t?function(e){return ie([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours()])}(e):"minute"===t?function(e){return ie([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes()])}(e):"second"===t?function(e){return ie([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds()])}(e):null}startOfYear(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e)])}startOfMonth(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e),this.calendarSystem.getMarkerMonth(e)])}startOfWeek(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e),this.calendarSystem.getMarkerMonth(e),e.getUTCDate()-(e.getUTCDay()-this.weekDow+7)%7])}computeWeekNumber(e){return this.weekNumberFunc?this.weekNumberFunc(this.toDate(e)):function(e,t,n){let r=e.getUTCFullYear(),i=K(e,r,t,n);if(i<1)return K(e,r-1,t,n);let o=K(e,r+1,t,n);return o>=1?Math.min(i,o):i}(e,this.weekDow,this.weekDoy)}format(e,t,n={}){return t.format({marker:e,timeZoneOffset:null!=n.forcedTzo?n.forcedTzo:this.offsetForMarker(e)},this)}formatRange(e,t,n,r={}){return r.isEndExclusive&&(t=Z(t,-1)),n.formatRange({marker:e,timeZoneOffset:null!=r.forcedStartTzo?r.forcedStartTzo:this.offsetForMarker(e)},{marker:t,timeZoneOffset:null!=r.forcedEndTzo?r.forcedEndTzo:this.offsetForMarker(t)},this,r.defaultSeparator)}formatIso(e,t={}){let n=null;return t.omitTimeZoneOffset||(n=null!=t.forcedTzo?t.forcedTzo:this.offsetForMarker(e)),ae(e,n,t.omitTime)}timestampToMarker(e){return"local"===this.timeZone?ie(te(new Date(e))):"UTC"!==this.timeZone&&this.namedTimeZoneImpl?ie(this.namedTimeZoneImpl.timestampToArray(e)):new Date(e)}offsetForMarker(e){return"local"===this.timeZone?-ne(re(e)).getTimezoneOffset():"UTC"===this.timeZone?0:this.namedTimeZoneImpl?this.namedTimeZoneImpl.offsetForArray(re(e)):null}toDate(e,t){return"local"===this.timeZone?ne(re(e)):"UTC"===this.timeZone?new Date(e.valueOf()):this.namedTimeZoneImpl?new Date(e.valueOf()-1e3*this.namedTimeZoneImpl.offsetForArray(re(e))*60):new Date(e.valueOf()-(t||0))}}function Xr(e){return e.span.end}function Kr(e){return e.index+":"+e.span.start}function ei(e,t){let n=Math.max(e.start,t.start),r=Math.min(e.end,t.end);return n<r?{start:n,end:r}:null}function ti(e,t,n){e.splice(t,0,n)}function ni(e,t,n){let r=0,i=e.length;if(!i||t<n(e[r]))return[0,0];if(t>n(e[i-1]))return[i,0];for(;r<i;){let o=Math.floor(r+(i-r)/2),s=n(e[o]);if(t<s)i=o;else{if(!(t>s))return[o,1];r=o+1}}return[r,0]}class ri{constructor(e){this.component=e.component,this.isHitComboAllowed=e.isHitComboAllowed||null}destroy(){}}const ii={};const oi={startTime:k,duration:k,create:Boolean,sourceId:String};class si extends gr{constructor(){super(...arguments),this.state={forPrint:!1},this.handleBeforePrint=()=>{this.setState({forPrint:!0})},this.handleAfterPrint=()=>{this.setState({forPrint:!1})}}render(){let{props:e}=this,{options:t}=e,{forPrint:n}=this.state,r=n||"auto"===t.height||"auto"===t.contentHeight,i=r||null==t.height?"":t.height,o=["fc",n?"fc-media-print":"fc-media-screen","fc-direction-"+t.direction,e.theme.getClass("root")];return ft()||o.push("fc-liquid-hack"),e.children(o,i,r,n)}componentDidMount(){let{emitter:e}=this.props;e.on("_beforeprint",this.handleBeforePrint),e.on("_afterprint",this.handleAfterPrint)}componentWillUnmount(){let{emitter:e}=this.props;e.off("_beforeprint",this.handleBeforePrint),e.off("_afterprint",this.handleAfterPrint)}}function ai(e,t){return Se(!e||t>10?{weekday:"short"}:t>1?{weekday:"short",month:"numeric",day:"numeric",omitCommas:!0}:{weekday:"long"})}const li="fc-col-header-cell";function ci(e){return e.text}class ui extends gr{constructor(){super(...arguments),this.id=v(),this.currentDomNodes=[],this.queuedDomNodes=[],this.handleEl=e=>{this.props.elRef&&mr(this.props.elRef,e)}}render(){const{props:e,context:t}=this,{options:n}=t,{generator:r,renderProps:i}=e,o=fi(e);let s,a=[];if(di(e.generatorName,n))n.customRenderingReplacesEl&&delete o.elRef;else{const e="function"==typeof r?r(i,Xt):r;"string"==typeof e||Vt(e)||Array.isArray(e)?s=e:"object"==typeof e&&("html"in e?o.dangerouslySetInnerHTML={__html:e.html}:"domNodes"in e&&(a=Array.prototype.slice.call(e.domNodes)))}return this.queuedDomNodes=a,Xt(e.elTag,o,s)}componentDidMount(){this.applyQueueudDomNodes(),this.triggerCustomRendering(!0)}componentDidUpdate(){this.applyQueueudDomNodes(),this.triggerCustomRendering(!0)}componentWillUnmount(){this.triggerCustomRendering(!1)}triggerCustomRendering(e){const{props:t,context:n}=this,{handleCustomRendering:r,customRenderingMetaMap:i}=n.options;if(r){const n=null==i?void 0:i[t.generatorName];n&&r(Object.assign({id:this.id,isActive:e,containerEl:this.base,reportNewContainerEl:this.handleEl,generatorMeta:n},t))}}applyQueueudDomNodes(){const{queuedDomNodes:e,currentDomNodes:n}=this,r=this.base;if(!ue(e,n)){n.forEach(t);for(let t of e)r.appendChild(t);this.currentDomNodes=e}}}function di(e,t){var n;return Boolean(t.handleCustomRendering&&e&&(null===(n=t.customRenderingMetaMap)||void 0===n?void 0:n[e]))}function fi(e,t){const n=Object.assign(Object.assign({},e.elAttrs),{ref:e.elRef});return(e.elClasses||t)&&(n.className=(e.elClasses||[]).concat(t||[]).concat(n.className||[]).filter(Boolean).join(" ")),e.elStyle&&(n.style=e.elStyle),n}ui.addPropsEquality({elClasses:ue,elStyle:j,elAttrs:function(e,t){const n=L(e,t);for(let e of n)if(!z.test(e))return!1;return!0},renderProps:j});const hi=cr(0);class pi extends nn{constructor(){super(...arguments),this.InnerContent=gi.bind(void 0,this)}render(){const{props:e}=this,t=function(e,t){const n="function"==typeof e?e(t):e||[];return"string"==typeof n?[n]:n}(e.classNameGenerator,e.renderProps);if(e.children){const n=fi(e,t),r=e.children(this.InnerContent,e.renderProps,n);return e.elTag?Xt(e.elTag,n,r):r}return Xt(ui,Object.assign(Object.assign({},e),{elTag:e.elTag||"div",elClasses:(e.elClasses||[]).concat(t),renderId:this.context}))}componentDidMount(){var e,t;null===(t=(e=this.props).didMount)||void 0===t||t.call(e,Object.assign(Object.assign({},this.props.renderProps),{el:this.base}))}componentWillUnmount(){var e,t;null===(t=(e=this.props).willUnmount)||void 0===t||t.call(e,Object.assign(Object.assign({},this.props.renderProps),{el:this.base}))}}function gi(e,t){const n=e.props;return Xt(ui,Object.assign({renderProps:n.renderProps,generatorName:n.generatorName,generator:n.generator,renderId:e.context},t))}pi.contextType=hi;class mi extends gr{render(){let{dateEnv:e,options:t,theme:n,viewApi:r}=this.context,{props:i}=this,{date:o,dateProfile:s}=i,a=Et(o,i.todayRange,null,s),l=[li].concat(Dt(a,n)),c=e.format(o,i.dayHeaderFormat),u=!a.isDisabled&&i.colCnt>1?St(this.context,o):{},d=Object.assign(Object.assign(Object.assign({date:e.toDate(o),view:r},i.extraRenderProps),{text:c}),a);return Xt(pi,{elTag:"th",elClasses:l,elAttrs:Object.assign({role:"columnheader",colSpan:i.colSpan,"data-date":a.isDisabled?void 0:le(o)},i.extraDataAttrs),renderProps:d,generatorName:"dayHeaderContent",generator:t.dayHeaderContent||ci,classNameGenerator:t.dayHeaderClassNames,didMount:t.dayHeaderDidMount,willUnmount:t.dayHeaderWillUnmount},e=>Xt("div",{className:"fc-scrollgrid-sync-inner"},!a.isDisabled&&Xt(e,{elTag:"a",elAttrs:u,elClasses:["fc-col-header-cell-cushion",i.isSticky&&"fc-sticky"]})))}}const vi=Se({weekday:"long"});class Ai extends gr{render(){let{props:e}=this,{dateEnv:t,theme:n,viewApi:r,options:i}=this.context,o=G(new Date(2592e5),e.dow),s={dow:e.dow,isDisabled:!1,isFuture:!1,isPast:!1,isToday:!1,isOther:!1},a=t.format(o,e.dayHeaderFormat),l=Object.assign(Object.assign(Object.assign(Object.assign({date:o},s),{view:r}),e.extraRenderProps),{text:a});return Xt(pi,{elTag:"th",elClasses:[li,...Dt(s,n),...e.extraClassNames||[]],elAttrs:Object.assign({role:"columnheader",colSpan:e.colSpan},e.extraDataAttrs),renderProps:l,generatorName:"dayHeaderContent",generator:i.dayHeaderContent||ci,classNameGenerator:i.dayHeaderClassNames,didMount:i.dayHeaderDidMount,willUnmount:i.dayHeaderWillUnmount},n=>Xt("div",{className:"fc-scrollgrid-sync-inner"},Xt(n,{elTag:"a",elClasses:["fc-col-header-cell-cushion",e.isSticky&&"fc-sticky"],elAttrs:{"aria-label":t.format(o,vi)}})))}}class bi extends nn{constructor(e,t){super(e,t),this.initialNowDate=Ar(t.options.now,t.dateEnv),this.initialNowQueriedMs=(new Date).valueOf(),this.state=this.computeTiming().currentState}render(){let{props:e,state:t}=this;return e.children(t.nowDate,t.todayRange)}componentDidMount(){this.setTimeout()}componentDidUpdate(e){e.unit!==this.props.unit&&(this.clearTimeout(),this.setTimeout())}componentWillUnmount(){this.clearTimeout()}computeTiming(){let{props:e,context:t}=this,n=Z(this.initialNowDate,(new Date).valueOf()-this.initialNowQueriedMs),r=t.dateEnv.startOf(n,e.unit),i=t.dateEnv.add(r,k(1,e.unit)),o=i.valueOf()-n.valueOf();return o=Math.min(864e5,o),{currentState:{nowDate:r,todayRange:yi(r)},nextState:{nowDate:i,todayRange:yi(i)},waitMs:o}}setTimeout(){let{nextState:e,waitMs:t}=this.computeTiming();this.timeoutId=setTimeout(()=>{this.setState(e,()=>{this.setTimeout()})},t)}clearTimeout(){this.timeoutId&&clearTimeout(this.timeoutId)}}function yi(e){let t=X(e);return{start:t,end:G(t,1)}}bi.contextType=fr;function _i(e,t,n){return e||ai(t,n)}function Ei(e,t){let n=e.activeRange;return t?n:{start:Z(n.start,e.slotMinTime.milliseconds),end:Z(n.end,e.slotMaxTime.milliseconds-864e5)}}function Di(e,t,n,r,i){switch(t.type){case"RECEIVE_EVENTS":return function(e,t,n,r,i,o){if(t&&n===t.latestFetchId){let n=ze(function(e,t,n){let r=n.options.eventDataTransform,i=t?t.eventDataTransform:null;i&&(e=Ci(e,i));r&&(e=Ci(e,r));return e}(i,t,o),t,o);return r&&(n=Ue(n,r,o)),We(wi(e,t.sourceId),n)}return e}(e,n[t.sourceId],t.fetchId,t.fetchRange,t.rawEvents,i);case"ADD_EVENTS":return function(e,t,n,r){n&&(t=Ue(t,n,r));return We(e,t)}(e,t.eventStore,r?r.activeRange:null,i);case"RESET_EVENTS":return t.eventStore;case"MERGE_EVENTS":return We(e,t.eventStore);case"PREV":case"NEXT":case"CHANGE_DATE":case"CHANGE_VIEW_TYPE":return r?Ue(e,r.activeRange,i):e;case"REMOVE_EVENTS":return function(e,t){let{defs:n,instances:r}=e,i={},o={};for(let e in n)t.defs[e]||(i[e]=n[e]);for(let e in r)!t.instances[e]&&i[r[e].defId]&&(o[e]=r[e]);return{defs:i,instances:o}}(e,t.eventStore);case"REMOVE_EVENT_SOURCE":return wi(e,t.sourceId);case"REMOVE_ALL_EVENT_SOURCES":return Qe(e,e=>!e.sourceId);case"REMOVE_ALL_EVENTS":return{defs:{},instances:{}};default:return e}}function Ci(e,t){let n;if(t){n=[];for(let r of e){let e=t(r);e?n.push(e):null==e&&n.push(r)}}else n=e;return n}function wi(e,t){return Qe(e,e=>e.sourceId!==t)}function Si(e,t){let n=t.getCurrentData(),r=Object.assign({businessHours:n.businessHours,dateSelection:"",eventStore:n.eventStore,eventUiBases:n.eventUiBases,eventSelection:"",eventDrag:null,eventResize:null},e);return(t.pluginHooks.isPropsValid||Ti)(r,t)}function Ti(e,t,n={},r){return!(e.eventDrag&&!function(e,t,n,r){let i=t.getCurrentData(),o=e.eventDrag,s=o.mutatedEvents,a=s.defs,l=s.instances,c=Mr(a,o.isEvent?e.eventUiBases:{"":i.selectionConfig});r&&(c=H(c,r));let u=(p=e.eventStore,g=o.affectedEvents.instances,{defs:p.defs,instances:B(p.instances,e=>!g[e.instanceId])}),d=u.defs,f=u.instances,h=Mr(d,e.eventUiBases);var p,g;for(let r in l){let s=l[r],p=s.range,g=c[s.defId],m=a[s.defId];if(!ki(g.constraints,p,u,e.businessHours,t))return!1;let{eventOverlap:v}=t.options,A="function"==typeof v?v:null;for(let e in f){let n=f[e];if(bt(p,n.range)){if(!1===h[n.defId].overlap&&o.isEvent)return!1;if(!1===g.overlap)return!1;if(A&&!A(new Tr(t,d[n.defId],n),new Tr(t,m,s)))return!1}}let b=i.eventStore;for(let e of g.allows){let i,o=Object.assign(Object.assign({},n),{range:s.range,allDay:m.allDay}),a=b.defs[m.defId],l=b.instances[r];if(i=a?new Tr(t,a,l):new Tr(t,m),!e(_r(o,t),i))return!1}}return!0}(e,t,n,r))&&!(e.dateSelection&&!function(e,t,n,r){let i=e.eventStore,o=i.defs,s=i.instances,a=e.dateSelection,l=a.range,{selectionConfig:c}=t.getCurrentData();r&&(c=r(c));if(!ki(c.constraints,l,i,e.businessHours,t))return!1;let{selectOverlap:u}=t.options,d="function"==typeof u?u:null;for(let e in s){let n=s[e];if(bt(l,n.range)){if(!1===c.overlap)return!1;if(d&&!d(new Tr(t,o[n.defId],n),null))return!1}}for(let e of c.allows){let r=Object.assign(Object.assign({},n),a);if(!e(_r(r,t),null))return!1}return!0}(e,t,n,r))}function ki(e,t,n,r,i){for(let o of e)if(!Oi(Ri(o,t,n,r,i),t))return!1;return!0}function Ri(e,t,n,r,i){return"businessHours"===e?xi(Ue(r,t,i)):"string"==typeof e?xi(Qe(n,t=>t.groupId===e)):"object"==typeof e&&e?xi(Ue(e,t,i)):[]}function xi(e){let{instances:t}=e,n=[];for(let e in t)n.push(t[e].range);return n}function Oi(e,t){for(let n of e)if(yt(n,t))return!0;return!1}class Ii extends Error{constructor(e,t){super(e),this.response=t}}function Mi(e,t,n){const r={method:e=e.toUpperCase()};return"GET"===e?t+=(-1===t.indexOf("?")?"?":"&")+new URLSearchParams(n):(r.body=new URLSearchParams(n),r.headers={"Content-Type":"application/x-www-form-urlencoded"}),fetch(t,r).then(e=>{if(e.ok)return e.json().then(t=>[t,e],()=>{throw new Ii("Failure parsing JSON",e)});throw new Ii("Request failed",e)})}class Ni{constructor(e){this.drainedOption=e,this.isRunning=!1,this.isDirty=!1,this.pauseDepths={},this.timeoutId=0}request(e){this.isDirty=!0,this.isPaused()||(this.clearTimeout(),null==e?this.tryDrain():this.timeoutId=setTimeout(this.tryDrain.bind(this),e))}pause(e=""){let{pauseDepths:t}=this;t[e]=(t[e]||0)+1,this.clearTimeout()}resume(e="",t){let{pauseDepths:n}=this;if(e in n){if(t)delete n[e];else{n[e]-=1,n[e]<=0&&delete n[e]}this.tryDrain()}}isPaused(){return Object.keys(this.pauseDepths).length}tryDrain(){if(!this.isRunning&&!this.isPaused()){for(this.isRunning=!0;this.isDirty;)this.isDirty=!1,this.drained();this.isRunning=!1}}clear(){this.clearTimeout(),this.isDirty=!1,this.pauseDepths={}}clearTimeout(){this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=0)}drained(){this.drainedOption&&this.drainedOption()}}const Bi=/^(visible|hidden)$/;class Hi extends gr{constructor(){super(...arguments),this.handleEl=e=>{this.el=e,mr(this.props.elRef,e)}}render(){let{props:e}=this,{liquid:t,liquidIsAbsolute:n}=e,r=t&&n,i=["fc-scroller"];return t&&(n?i.push("fc-scroller-liquid-absolute"):i.push("fc-scroller-liquid")),Xt("div",{ref:this.handleEl,className:i.join(" "),style:{overflowX:e.overflowX,overflowY:e.overflowY,left:r&&-(e.overcomeLeft||0)||"",right:r&&-(e.overcomeRight||0)||"",bottom:r&&-(e.overcomeBottom||0)||"",marginLeft:!r&&-(e.overcomeLeft||0)||"",marginRight:!r&&-(e.overcomeRight||0)||"",marginBottom:!r&&-(e.overcomeBottom||0)||"",maxHeight:e.maxHeight||""}},e.children)}needsXScrolling(){if(Bi.test(this.props.overflowX))return!1;let{el:e}=this,t=this.el.getBoundingClientRect().width-this.getYScrollbarWidth(),{children:n}=e;for(let e=0;e<n.length;e+=1){if(n[e].getBoundingClientRect().width>t)return!0}return!1}needsYScrolling(){if(Bi.test(this.props.overflowY))return!1;let{el:e}=this,t=this.el.getBoundingClientRect().height-this.getXScrollbarWidth(),{children:n}=e;for(let e=0;e<n.length;e+=1){if(n[e].getBoundingClientRect().height>t)return!0}return!1}getXScrollbarWidth(){return Bi.test(this.props.overflowX)?0:this.el.offsetHeight-this.el.clientHeight}getYScrollbarWidth(){return Bi.test(this.props.overflowY)?0:this.el.offsetWidth-this.el.clientWidth}}class Pi{constructor(e){this.masterCallback=e,this.currentMap={},this.depths={},this.callbackMap={},this.handleValue=(e,t)=>{let{depths:n,currentMap:r}=this,i=!1,o=!1;null!==e?(i=t in r,r[t]=e,n[t]=(n[t]||0)+1,o=!0):(n[t]-=1,n[t]||(delete r[t],delete this.callbackMap[t],i=!0)),this.masterCallback&&(i&&this.masterCallback(null,String(t)),o&&this.masterCallback(e,String(t)))}}createRef(e){let t=this.callbackMap[e];return t||(t=this.callbackMap[e]=t=>{this.handleValue(t,String(e))}),t}collect(e,t,n){return W(this.currentMap,e,t,n)}getAll(){return U(this.currentMap)}}function Ui(e){let t=i(e,".fc-scrollgrid-shrink"),n=0;for(let e of t)n=Math.max(n,w(e));return Math.ceil(n)}function ji(e,t){return e.liquid&&t.liquid}function zi(e,t){return null!=t.maxHeight||ji(e,t)}function Li(e,t,n,r){let{expandRows:i}=n;return"function"==typeof t.content?t.content(n):Xt("table",{role:"presentation",className:[t.tableClassName,e.syncRowHeights?"fc-scrollgrid-sync-table":""].join(" "),style:{minWidth:n.tableMinWidth,width:n.clientWidth,height:i?n.clientHeight:""}},n.tableColGroupNode,Xt(r?"thead":"tbody",{role:"presentation"},"function"==typeof t.rowContent?t.rowContent(n):t.rowContent))}function Fi(e,t){return ue(e,t,j)}function Vi(e,t){let n=[];for(let r of e){let e=r.span||1;for(let i=0;i<e;i+=1)n.push(Xt("col",{style:{width:"shrink"===r.width?Wi(t):r.width||"",minWidth:r.minWidth||""}}))}return Xt("colgroup",{},...n)}function Wi(e){return null==e?4:e}function Qi(e){for(let t of e)if("shrink"===t.width)return!0;return!1}function Gi(e,t){let n=["fc-scrollgrid",t.theme.getClass("table")];return e&&n.push("fc-scrollgrid-liquid"),n}function Zi(e,t){let n=["fc-scrollgrid-section","fc-scrollgrid-section-"+e.type,e.className];return t&&e.liquid&&null==e.maxHeight&&n.push("fc-scrollgrid-section-liquid"),e.isSticky&&n.push("fc-scrollgrid-section-sticky"),n}class Yi extends gr{constructor(){super(...arguments),this.processCols=de(e=>e,Fi),this.renderMicroColGroup=de(Vi),this.scrollerRefs=new Pi,this.scrollerElRefs=new Pi(this._handleScrollerEl.bind(this)),this.state={shrinkWidth:null,forceYScrollbars:!1,scrollerClientWidths:{},scrollerClientHeights:{}},this.handleSizing=()=>{this.safeSetState(Object.assign({shrinkWidth:this.computeShrinkWidth()},this.computeScrollerDims()))}}render(){let{props:e,state:t,context:n}=this,r=e.sections||[],i=this.processCols(e.cols),o=this.renderMicroColGroup(i,t.shrinkWidth),s=Gi(e.liquid,n);e.collapsibleWidth&&s.push("fc-scrollgrid-collapsible");let a,l=r.length,c=0,u=[],d=[],f=[];for(;c<l&&"header"===(a=r[c]).type;)u.push(this.renderSection(a,o,!0)),c+=1;for(;c<l&&"body"===(a=r[c]).type;)d.push(this.renderSection(a,o,!1)),c+=1;for(;c<l&&"footer"===(a=r[c]).type;)f.push(this.renderSection(a,o,!0)),c+=1;let h=!ft();const p={role:"rowgroup"};return Xt("table",{role:"grid",className:s.join(" "),style:{height:e.height}},Boolean(!h&&u.length)&&Xt("thead",p,...u),Boolean(!h&&d.length)&&Xt("tbody",p,...d),Boolean(!h&&f.length)&&Xt("tfoot",p,...f),h&&Xt("tbody",p,...u,...d,...f))}renderSection(e,t,n){return"outerContent"in e?Xt(tn,{key:e.key},e.outerContent):Xt("tr",{key:e.key,role:"presentation",className:Zi(e,this.props.liquid).join(" ")},this.renderChunkTd(e,t,e.chunk,n))}renderChunkTd(e,t,n,r){if("outerContent"in n)return n.outerContent;let{props:i}=this,{forceYScrollbars:o,scrollerClientWidths:s,scrollerClientHeights:a}=this.state,l=zi(i,e),c=ji(i,e),u=i.liquid?o?"scroll":l?"auto":"hidden":"visible",d=e.key,f=Li(e,n,{tableColGroupNode:t,tableMinWidth:"",clientWidth:i.collapsibleWidth||void 0===s[d]?null:s[d],clientHeight:void 0!==a[d]?a[d]:null,expandRows:e.expandRows,syncRowHeights:!1,rowSyncHeights:[],reportRowHeightChange:()=>{}},r);return Xt(r?"th":"td",{ref:n.elRef,role:"presentation"},Xt("div",{className:"fc-scroller-harness"+(c?" fc-scroller-harness-liquid":"")},Xt(Hi,{ref:this.scrollerRefs.createRef(d),elRef:this.scrollerElRefs.createRef(d),overflowY:u,overflowX:i.liquid?"hidden":"visible",maxHeight:e.maxHeight,liquid:c,liquidIsAbsolute:!0},f)))}_handleScrollerEl(e,t){let n=function(e,t){for(let n of e)if(n.key===t)return n;return null}(this.props.sections,t);n&&mr(n.chunk.scrollerElRef,e)}componentDidMount(){this.handleSizing(),this.context.addResizeHandler(this.handleSizing)}componentDidUpdate(){this.handleSizing()}componentWillUnmount(){this.context.removeResizeHandler(this.handleSizing)}computeShrinkWidth(){return Qi(this.props.cols)?Ui(this.scrollerElRefs.getAll()):0}computeScrollerDims(){let e=xt(),{scrollerRefs:t,scrollerElRefs:n}=this,r=!1,i={},o={};for(let e in t.currentMap){let n=t.currentMap[e];if(n&&n.needsYScrolling()){r=!0;break}}for(let t of this.props.sections){let s=t.key,a=n.currentMap[s];if(a){let t=a.parentNode;i[s]=Math.floor(t.getBoundingClientRect().width-(r?e.y:0)),o[s]=Math.floor(t.getBoundingClientRect().height)}}return{forceYScrollbars:r,scrollerClientWidths:i,scrollerClientHeights:o}}}Yi.addStateEquality({scrollerClientWidths:j,scrollerClientHeights:j});class qi extends gr{constructor(){super(...arguments),this.handleEl=e=>{this.el=e,e&&Or(e,this.props.seg)}}render(){const{props:e,context:t}=this,{options:n}=t,{seg:r}=e,{eventRange:i}=r,{ui:o}=i,s={event:new Tr(t,i.def,i.instance),view:t.viewApi,timeText:e.timeText,textColor:o.textColor,backgroundColor:o.backgroundColor,borderColor:o.borderColor,isDraggable:!e.disableDragging&&Hr(r,t),isStartResizable:!e.disableResizing&&Pr(r,t),isEndResizable:!e.disableResizing&&Ur(r),isMirror:Boolean(e.isDragging||e.isResizing||e.isDateSelecting),isStart:Boolean(r.isStart),isEnd:Boolean(r.isEnd),isPast:Boolean(e.isPast),isFuture:Boolean(e.isFuture),isToday:Boolean(e.isToday),isSelected:Boolean(e.isSelected),isDragging:Boolean(e.isDragging),isResizing:Boolean(e.isResizing)};return Xt(pi,Object.assign({},e,{elRef:this.handleEl,elClasses:[...zr(s),...r.eventRange.ui.classNames,...e.elClasses||[]],renderProps:s,generatorName:"eventContent",generator:n.eventContent||e.defaultGenerator,classNameGenerator:n.eventClassNames,didMount:n.eventDidMount,willUnmount:n.eventWillUnmount}))}componentDidUpdate(e){this.el&&this.props.seg!==e.seg&&Or(this.el,this.props.seg)}}function Ji(e){return Xt("div",{className:"fc-event-main-frame"},e.timeText&&Xt("div",{className:"fc-event-time"},e.timeText),Xt("div",{className:"fc-event-title-container"},Xt("div",{className:"fc-event-title fc-sticky"},e.event.title||Xt(tn,null," "))))}const $i=Se({day:"numeric"});class Xi extends gr{constructor(){super(...arguments),this.refineRenderProps=fe(eo)}render(){let{props:e,context:t}=this,{options:n}=t,r=this.refineRenderProps({date:e.date,dateProfile:e.dateProfile,todayRange:e.todayRange,showDayNumber:e.showDayNumber,extraRenderProps:e.extraRenderProps,viewApi:t.viewApi,dateEnv:t.dateEnv});return Xt(pi,Object.assign({},e,{elClasses:[...Dt(r,t.theme),...e.elClasses||[]],elAttrs:Object.assign(Object.assign({},e.elAttrs),r.isDisabled?{}:{"data-date":le(e.date)}),renderProps:r,generatorName:"dayCellContent",generator:n.dayCellContent||e.defaultGenerator,classNameGenerator:r.isDisabled?void 0:n.dayCellClassNames,didMount:n.dayCellDidMount,willUnmount:n.dayCellWillUnmount}))}}function Ki(e){return Boolean(e.dayCellContent||di("dayCellContent",e))}function eo(e){let{date:t,dateEnv:n}=e,r=Et(t,e.todayRange,null,e.dateProfile);return Object.assign(Object.assign(Object.assign({date:n.toDate(t),view:e.viewApi},r),{dayNumberText:e.showDayNumber?n.format(t,$i):""}),e.extraRenderProps)}function to(e){let{title:t}=e.event;return t&&Xt("div",{className:"fc-event-title"},e.event.title)}function no(e){return e.text}class ro extends gr{constructor(){super(...arguments),this.state={titleId:u()},this.handleRootEl=e=>{this.rootEl=e,this.props.elRef&&mr(this.props.elRef,e)},this.handleDocumentMouseDown=e=>{const t=l(e);this.rootEl.contains(t)||this.handleCloseClick()},this.handleDocumentKeyDown=e=>{"Escape"===e.key&&this.handleCloseClick()},this.handleCloseClick=()=>{let{onClose:e}=this.props;e&&e()}}render(){let{theme:e,options:t}=this.context,{props:n,state:r}=this,i=["fc-popover",e.getClass("popover")].concat(n.extraClassNames||[]);return qn(Xt("div",Object.assign({},n.extraAttrs,{id:n.id,className:i.join(" "),"aria-labelledby":r.titleId,ref:this.handleRootEl}),Xt("div",{className:"fc-popover-header "+e.getClass("popoverHeader")},Xt("span",{className:"fc-popover-title",id:r.titleId},n.title),Xt("span",{className:"fc-popover-close "+e.getIconClass("close"),title:t.closeHint,onClick:this.handleCloseClick})),Xt("div",{className:"fc-popover-body "+e.getClass("popoverContent")},n.children)),n.parentEl)}componentDidMount(){document.addEventListener("mousedown",this.handleDocumentMouseDown),document.addEventListener("keydown",this.handleDocumentKeyDown),this.updateSize()}componentWillUnmount(){document.removeEventListener("mousedown",this.handleDocumentMouseDown),document.removeEventListener("keydown",this.handleDocumentKeyDown)}updateSize(){let{isRtl:e}=this.context,{alignmentEl:t,alignGridTop:r}=this.props,{rootEl:i}=this,o=function(e){let t=Nt(e),n=e.getBoundingClientRect();for(let e of t){let t=ut(n,e.getBoundingClientRect());if(!t)return null;n=t}return n}(t);if(o){let a=i.getBoundingClientRect(),l=r?n(t,".fc-scrollgrid").getBoundingClientRect().top:o.top,c=e?o.right-a.width:o.left;l=Math.max(l,10),c=Math.min(c,document.documentElement.clientWidth-10-a.width),c=Math.max(c,10);let u=i.offsetParent.getBoundingClientRect();s(i,{top:l-u.top,left:c-u.left})}}}class io extends vr{constructor(){super(...arguments),this.handleRootEl=e=>{this.rootEl=e,e?this.context.registerInteractiveComponent(this,{el:e,useEventCenter:!1}):this.context.unregisterInteractiveComponent(this)}}render(){let{options:e,dateEnv:t}=this.context,{props:n}=this,{startDate:r,todayRange:i,dateProfile:o}=n,s=t.format(r,e.dayPopoverFormat);return Xt(Xi,{elRef:this.handleRootEl,date:r,dateProfile:o,todayRange:i},(t,r,i)=>Xt(ro,{elRef:i.ref,id:n.id,title:s,extraClassNames:["fc-more-popover"].concat(i.className||[]),extraAttrs:i,parentEl:n.parentEl,alignmentEl:n.alignmentEl,alignGridTop:n.alignGridTop,onClose:n.onClose},Ki(e)&&Xt(t,{elTag:"div",elClasses:["fc-more-popover-misc"]}),n.children))}queryHit(e,t,n,r){let{rootEl:i,props:o}=this;return e>=0&&e<n&&t>=0&&t<r?{dateProfile:o.dateProfile,dateSpan:Object.assign({allDay:!0,range:{start:o.startDate,end:o.endDate}},o.extraDateSpan),dayEl:i,rect:{left:0,top:0,right:n,bottom:r},layer:1}:null}}function oo(e){return e.text}function so(e){if(e.allDayDate)return{start:e.allDayDate,end:G(e.allDayDate,1)};let{hiddenSegs:t}=e;return{start:ao(t),end:(n=t,n.reduce(co).eventRange.range.end)};var n}function ao(e){return e.reduce(lo).eventRange.range.start}function lo(e,t){return e.eventRange.range.start<t.eventRange.range.start?e:t}function co(e,t){return e.eventRange.range.end>t.eventRange.range.end?e:t}function uo(e){return[`fc-${e.type}-view`,"fc-view"]}function fo(e){if(!e||"undefined"==typeof document)return;const t=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}const ho={id:String,defaultAllDay:Boolean,url:String,format:String,events:He,eventDataTransform:He,success:He,failure:He};function po(e,t,n=go(t)){let r;if("string"==typeof e?r={url:e}:"function"==typeof e||Array.isArray(e)?r={events:e}:"object"==typeof e&&e&&(r=e),r){let{refined:i,extra:o}=Be(r,n),s=function(e,t){let n=t.pluginHooks.eventSourceDefs;for(let t=n.length-1;t>=0;t-=1){let r=n[t].parseMeta(e);if(r)return{sourceDefId:t,meta:r}}return null}(i,t);if(s)return{_raw:e,isFetching:!1,latestFetchId:"",fetchRange:null,defaultAllDay:i.defaultAllDay,eventDataTransform:i.eventDataTransform,success:i.success,failure:i.failure,publicId:i.id||"",sourceId:v(),sourceDefId:s.sourceDefId,meta:s.meta,ui:qe(i,t),extendedProps:o}}return null}function go(e){return Object.assign(Object.assign(Object.assign({},Ze),ho),e.pluginHooks.eventSourceRefiners)}class mo{getCurrentData(){return this.currentDataManager.getCurrentData()}dispatch(e){this.currentDataManager.dispatch(e)}get view(){return this.getCurrentData().viewApi}batchRendering(e){e()}updateSize(){this.trigger("_resize",!0)}setOption(e,t){this.dispatch({type:"SET_OPTION",optionName:e,rawOptionValue:t})}getOption(e){return this.currentDataManager.currentCalendarOptionsInput[e]}getAvailableLocaleCodes(){return Object.keys(this.getCurrentData().availableRawLocales)}on(e,t){let{currentDataManager:n}=this;n.currentCalendarOptionsRefiners[e]?n.emitter.on(e,t):console.warn(`Unknown listener name '${e}'`)}off(e,t){this.currentDataManager.emitter.off(e,t)}trigger(e,...t){this.currentDataManager.emitter.trigger(e,...t)}changeView(e,t){this.batchRendering(()=>{if(this.unselect(),t)if(t.start&&t.end)this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e}),this.dispatch({type:"SET_OPTION",optionName:"visibleRange",rawOptionValue:t});else{let{dateEnv:n}=this.getCurrentData();this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e,dateMarker:n.createMarker(t)})}else this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e})})}zoomTo(e,t){let n;t=t||"day",n=this.getCurrentData().viewSpecs[t]||this.getUnitViewSpec(t),this.unselect(),n?this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:n.type,dateMarker:e}):this.dispatch({type:"CHANGE_DATE",dateMarker:e})}getUnitViewSpec(e){let t,n,{viewSpecs:r,toolbarConfig:i}=this.getCurrentData(),o=[].concat(i.header?i.header.viewsWithButtons:[],i.footer?i.footer.viewsWithButtons:[]);for(let e in r)o.push(e);for(t=0;t<o.length;t+=1)if(n=r[o[t]],n&&n.singleUnit===e)return n;return null}prev(){this.unselect(),this.dispatch({type:"PREV"})}next(){this.unselect(),this.dispatch({type:"NEXT"})}prevYear(){let e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:e.dateEnv.addYears(e.currentDate,-1)})}nextYear(){let e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:e.dateEnv.addYears(e.currentDate,1)})}today(){let e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:Ar(e.calendarOptions.now,e.dateEnv)})}gotoDate(e){let t=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:t.dateEnv.createMarker(e)})}incrementDate(e){let t=this.getCurrentData(),n=k(e);n&&(this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:t.dateEnv.add(t.currentDate,n)}))}getDate(){let e=this.getCurrentData();return e.dateEnv.toDate(e.currentDate)}formatDate(e,t){let{dateEnv:n}=this.getCurrentData();return n.format(n.createMarker(e),Se(t))}formatRange(e,t,n){let{dateEnv:r}=this.getCurrentData();return r.formatRange(r.createMarker(e),r.createMarker(t),Se(n),n)}formatIso(e,t){let{dateEnv:n}=this.getCurrentData();return n.formatIso(n.createMarker(e),{omitTime:t})}select(e,t){let n;n=null==t?null!=e.start?e:{start:e,end:null}:{start:e,end:t};let r=this.getCurrentData(),i=Vr(n,r.dateEnv,k({days:1}));i&&(this.dispatch({type:"SELECT_DATES",selection:i}),yr(i,null,r))}unselect(e){let t=this.getCurrentData();t.dateSelection&&(this.dispatch({type:"UNSELECT_DATES"}),function(e,t){t.emitter.trigger("unselect",{jsEvent:e?e.origEvent:null,view:t.viewApi||t.calendarApi.view})}(e,t))}addEvent(e,t){if(e instanceof Tr){let t=e._def,n=e._instance;return this.getCurrentData().eventStore.defs[t.defId]||(this.dispatch({type:"ADD_EVENTS",eventStore:Le({def:t,instance:n})}),this.triggerEventAdd(e)),e}let n,r=this.getCurrentData();if(t instanceof Sr)n=t.internalEventSource;else if("boolean"==typeof t)t&&([n]=U(r.eventSources));else if(null!=t){let e=this.getEventSourceById(t);if(!e)return console.warn(`Could not find an event source with ID "${t}"`),null;n=e.internalEventSource}let i=tt(e,n,r,!1);if(i){let e=new Tr(r,i.def,i.def.recurringDef?null:i.instance);return this.dispatch({type:"ADD_EVENTS",eventStore:Le(i)}),this.triggerEventAdd(e),e}return null}triggerEventAdd(e){let{emitter:t}=this.getCurrentData();t.trigger("eventAdd",{event:e,relatedEvents:[],revert:()=>{this.dispatch({type:"REMOVE_EVENTS",eventStore:kr(e)})}})}getEventById(e){let t=this.getCurrentData(),{defs:n,instances:r}=t.eventStore;e=String(e);for(let i in n){let o=n[i];if(o.publicId===e){if(o.recurringDef)return new Tr(t,o,null);for(let e in r){let n=r[e];if(n.defId===o.defId)return new Tr(t,o,n)}}}return null}getEvents(){let e=this.getCurrentData();return Rr(e.eventStore,e)}removeAllEvents(){this.dispatch({type:"REMOVE_ALL_EVENTS"})}getEventSources(){let e=this.getCurrentData(),t=e.eventSources,n=[];for(let r in t)n.push(new Sr(e,t[r]));return n}getEventSourceById(e){let t=this.getCurrentData(),n=t.eventSources;e=String(e);for(let r in n)if(n[r].publicId===e)return new Sr(t,n[r]);return null}addEventSource(e){let t=this.getCurrentData();if(e instanceof Sr)return t.eventSources[e.internalEventSource.sourceId]||this.dispatch({type:"ADD_EVENT_SOURCES",sources:[e.internalEventSource]}),e;let n=po(e,t);return n?(this.dispatch({type:"ADD_EVENT_SOURCES",sources:[n]}),new Sr(t,n)):null}removeAllEventSources(){this.dispatch({type:"REMOVE_ALL_EVENT_SOURCES"})}refetchEvents(){this.dispatch({type:"FETCH_EVENT_SOURCES",isRefetch:!0})}scrollToTime(e){let t=k(e);t&&this.trigger("_scrollRequest",{time:t})}}var vo={__proto__:null,BASE_OPTION_DEFAULTS:ke,identity:He,refineProps:Be,createEventInstance:Pe,parseEventDef:it,refineEventDef:nt,parseBusinessHours:st,padStart:E,isInt:C,parseFieldSpecs:A,compareByFieldSpecs:b,flexibleCompare:_,preventSelection:function(e){e.classList.add("fc-unselectable"),e.addEventListener("selectstart",d)},allowSelection:function(e){e.classList.remove("fc-unselectable"),e.removeEventListener("selectstart",d)},preventContextMenu:function(e){e.addEventListener("contextmenu",d)},allowContextMenu:function(e){e.removeEventListener("contextmenu",d)},compareNumbers:function(e,t){return e-t},enableCursor:function(){document.body.classList.remove("fc-not-allowed")},disableCursor:function(){document.body.classList.add("fc-not-allowed")},guid:v,computeVisibleDayRange:lt,isMultiDayRange:function(e){let t=lt(e);return Y(t.start,t.end)>1},diffDates:ct,removeExact:function(e,t){let n=0,r=0;for(;r<e.length;)e[r]===t?(e.splice(r,1),n+=1):r+=1;return n},isArraysEqual:ue,memoize:de,memoizeObjArg:fe,memoizeArraylike:function(e,t,n){let r=[],i=[];return o=>{let s=r.length,a=o.length,l=0;for(;l<s;l+=1)if(o[l]){if(!ue(r[l],o[l])){n&&n(i[l]);let r=e.apply(this,o[l]);t&&t(r,i[l])||(i[l]=r)}}else n&&n(i[l]);for(;l<a;l+=1)i[l]=e.apply(this,o[l]);return r=o,i.splice(a),i}},memoizeHashlike:function(e,t,n){let r={},i={};return o=>{let s={};for(let a in o)if(i[a])if(ue(r[a],o[a]))s[a]=i[a];else{n&&n(i[a]);let r=e.apply(this,o[a]);s[a]=t&&t(r,i[a])?i[a]:r}else s[a]=e.apply(this,o[a]);return r=o,i=s,s}},intersectRects:ut,pointInsideRect:function(e,t){return e.left>=t.left&&e.left<t.right&&e.top>=t.top&&e.top<t.bottom},constrainPoint:function(e,t){return{left:Math.min(Math.max(e.left,t.left),t.right),top:Math.min(Math.max(e.top,t.top),t.bottom)}},getRectCenter:function(e){return{left:(e.left+e.right)/2,top:(e.top+e.bottom)/2}},diffPoints:function(e,t){return{left:e.left-t.left,top:e.top-t.top}},translateRect:function(e,t,n){return{left:e.left+t,right:e.right+t,top:e.top+n,bottom:e.bottom+n}},mapHash:H,filterHash:B,isPropsEqual:j,compareObjs:F,collectFromHash:W,findElements:i,findDirectChildren:function(e,t){let n=e instanceof HTMLElement?[e]:e,i=[];for(let e=0;e<n.length;e+=1){let o=n[e].children;for(let e=0;e<o.length;e+=1){let n=o[e];t&&!r(n,t)||i.push(n)}}return i},removeElement:t,applyStyle:s,elementMatches:r,elementClosest:n,getElRoot:function(e){return e.getRootNode?e.getRootNode():document},getEventTargetViaRoot:l,getUniqueDomId:u,parseClassNames:Ge,getCanVGrowWithinCell:ft,createEmptyEventStore:Ve,mergeEventStores:We,getRelevantEvents:Fe,eventTupleToStore:Le,combineEventUis:Je,createEventUi:qe,Splitter:class{constructor(){this.getKeysForEventDefs=de(this._getKeysForEventDefs),this.splitDateSelection=de(this._splitDateSpan),this.splitEventStore=de(this._splitEventStore),this.splitIndividualUi=de(this._splitIndividualUi),this.splitEventDrag=de(this._splitInteraction),this.splitEventResize=de(this._splitInteraction),this.eventUiBuilders={}}splitProps(e){let t=this.getKeyInfo(e),n=this.getKeysForEventDefs(e.eventStore),r=this.splitDateSelection(e.dateSelection),i=this.splitIndividualUi(e.eventUiBases,n),o=this.splitEventStore(e.eventStore,n),s=this.splitEventDrag(e.eventDrag),a=this.splitEventResize(e.eventResize),l={};this.eventUiBuilders=H(t,(e,t)=>this.eventUiBuilders[t]||de(pt));for(let n in t){let c=t[n],u=o[n]||ht,d=this.eventUiBuilders[n];l[n]={businessHours:c.businessHours||e.businessHours,dateSelection:r[n]||null,eventStore:u,eventUiBases:d(e.eventUiBases[""],c.ui,i[n]),eventSelection:u.instances[e.eventSelection]?e.eventSelection:"",eventDrag:s[n]||null,eventResize:a[n]||null}}return l}_splitDateSpan(e){let t={};if(e){let n=this.getKeysForDateSpan(e);for(let r of n)t[r]=e}return t}_getKeysForEventDefs(e){return H(e.defs,e=>this.getKeysForEventDef(e))}_splitEventStore(e,t){let{defs:n,instances:r}=e,i={};for(let e in n)for(let r of t[e])i[r]||(i[r]={defs:{},instances:{}}),i[r].defs[e]=n[e];for(let e in r){let n=r[e];for(let r of t[n.defId])i[r]&&(i[r].instances[e]=n)}return i}_splitIndividualUi(e,t){let n={};for(let r in e)if(r)for(let i of t[r])n[i]||(n[i]={}),n[i][r]=e[r];return n}_splitInteraction(e){let t={};if(e){let n=this._splitEventStore(e.affectedEvents,this._getKeysForEventDefs(e.affectedEvents)),r=this._getKeysForEventDefs(e.mutatedEvents),i=this._splitEventStore(e.mutatedEvents,r),o=r=>{t[r]||(t[r]={affectedEvents:n[r]||ht,mutatedEvents:i[r]||ht,isEvent:e.isEvent})};for(let e in n)o(e);for(let e in i)o(e)}return t}},getDayClassNames:Dt,getDateMeta:Et,getSlotClassNames:function(e,t){let n=["fc-slot","fc-slot-"+Q[e.dow]];return e.isDisabled?n.push("fc-slot-disabled"):(e.isToday&&(n.push("fc-slot-today"),n.push(t.getClass("today"))),e.isPast&&n.push("fc-slot-past"),e.isFuture&&n.push("fc-slot-future")),n},buildNavLinkAttrs:St,preventDefault:d,whenTransitionDone:function(e,t){let n=r=>{t(r),h.forEach(t=>{e.removeEventListener(t,n)})};h.forEach(t=>{e.addEventListener(t,n)})},computeInnerRect:function(e,t=!1,n){let r=n?e.getBoundingClientRect():Mt(e),i=It(e,t),o={left:r.left+i.borderLeft+i.scrollbarLeft,right:r.right-i.borderRight-i.scrollbarRight,top:r.top+i.borderTop,bottom:r.bottom-i.borderBottom-i.scrollbarBottom};return t&&(o.left+=i.paddingLeft,o.right-=i.paddingRight,o.top+=i.paddingTop,o.bottom-=i.paddingBottom),o},computeEdges:It,getClippingParents:Nt,computeRect:Mt,unpromisify:Bt,Emitter:Ht,rangeContainsMarker:_t,intersectRanges:vt,rangesEqual:At,rangesIntersect:bt,rangeContainsRange:yt,PositionCache:class{constructor(e,t,n,r){this.els=t;let i=this.originClientRect=e.getBoundingClientRect();n&&this.buildElHorizontals(i.left),r&&this.buildElVerticals(i.top)}buildElHorizontals(e){let t=[],n=[];for(let r of this.els){let i=r.getBoundingClientRect();t.push(i.left-e),n.push(i.right-e)}this.lefts=t,this.rights=n}buildElVerticals(e){let t=[],n=[];for(let r of this.els){let i=r.getBoundingClientRect();t.push(i.top-e),n.push(i.bottom-e)}this.tops=t,this.bottoms=n}leftToIndex(e){let t,{lefts:n,rights:r}=this,i=n.length;for(t=0;t<i;t+=1)if(e>=n[t]&&e<r[t])return t}topToIndex(e){let t,{tops:n,bottoms:r}=this,i=n.length;for(t=0;t<i;t+=1)if(e>=n[t]&&e<r[t])return t}getWidth(e){return this.rights[e]-this.lefts[e]}getHeight(e){return this.bottoms[e]-this.tops[e]}similarTo(e){return Pt(this.tops||[],e.tops||[])&&Pt(this.bottoms||[],e.bottoms||[])&&Pt(this.lefts||[],e.lefts||[])&&Pt(this.rights||[],e.rights||[])}},ScrollController:Ut,ElementScrollController:class extends Ut{constructor(e){super(),this.el=e}getScrollTop(){return this.el.scrollTop}getScrollLeft(){return this.el.scrollLeft}setScrollTop(e){this.el.scrollTop=e}setScrollLeft(e){this.el.scrollLeft=e}getScrollWidth(){return this.el.scrollWidth}getScrollHeight(){return this.el.scrollHeight}getClientHeight(){return this.el.clientHeight}getClientWidth(){return this.el.clientWidth}},WindowScrollController:class extends Ut{getScrollTop(){return window.pageYOffset}getScrollLeft(){return window.pageXOffset}setScrollTop(e){window.scroll(window.pageXOffset,e)}setScrollLeft(e){window.scroll(e,window.pageYOffset)}getScrollWidth(){return document.documentElement.scrollWidth}getScrollHeight(){return document.documentElement.scrollHeight}getClientHeight(){return document.documentElement.clientHeight}getClientWidth(){return document.documentElement.clientWidth}},Theme:jt,ViewContextType:fr,DateComponent:vr,DateProfileGenerator:br,isDateSpansEqual:function(e,t){return At(e.range,t.range)&&e.allDay===t.allDay&&function(e,t){for(let n in t)if("range"!==n&&"allDay"!==n&&e[n]!==t[n])return!1;for(let n in e)if(!(n in t))return!1;return!0}(e,t)},addDays:G,startOfDay:X,addMs:Z,addWeeks:function(e,t){let n=re(e);return n[2]+=7*t,ie(n)},diffWeeks:function(e,t){return Y(e,t)/7},diffWholeWeeks:J,diffWholeDays:$,diffDayAndTime:q,diffDays:Y,isValidDate:oe,createDuration:k,asCleanDays:function(e){return e.years||e.months||e.milliseconds?0:e.days},multiplyDuration:function(e,t){return{years:e.years*t,months:e.months*t,days:e.days*t,milliseconds:e.milliseconds*t}},addDurations:function(e,t){return{years:e.years+t.years,months:e.months+t.months,days:e.days+t.days,milliseconds:e.milliseconds+t.milliseconds}},asRoughMinutes:function(e){return O(e)/6e4},asRoughSeconds:function(e){return O(e)/1e3},asRoughMs:O,wholeDivideDurations:function(e,t){let n=null;for(let r=0;r<S.length;r+=1){let i=S[r];if(t[i]){let r=e[i]/t[i];if(!C(r)||null!==n&&n!==r)return null;n=r}else if(e[i])return null}return n},greatestDurationDenominator:I,DateEnv:$r,createFormatter:Se,formatIsoTimeString:function(e){return E(e.getUTCHours(),2)+":"+E(e.getUTCMinutes(),2)+":"+E(e.getUTCSeconds(),2)},formatDayString:le,buildIsoString:ae,NamedTimeZoneImpl:class{constructor(e){this.timeZoneName=e}},parseMarker:Jr,SegHierarchy:class{constructor(){this.strictOrder=!1,this.allowReslicing=!1,this.maxCoord=-1,this.maxStackCnt=-1,this.levelCoords=[],this.entriesByLevel=[],this.stackCnts={}}addSegs(e){let t=[];for(let n of e)this.insertEntry(n,t);return t}insertEntry(e,t){let n=this.findInsertion(e);return this.isInsertionValid(n,e)?(this.insertEntryAt(e,n),1):this.handleInvalidInsertion(n,e,t)}isInsertionValid(e,t){return(-1===this.maxCoord||e.levelCoord+t.thickness<=this.maxCoord)&&(-1===this.maxStackCnt||e.stackCnt<this.maxStackCnt)}handleInvalidInsertion(e,t,n){return this.allowReslicing&&e.touchingEntry?this.splitEntry(t,e.touchingEntry,n):(n.push(t),0)}splitEntry(e,t,n){let r=0,i=[],o=e.span,s=t.span;return o.start<s.start&&(r+=this.insertEntry({index:e.index,thickness:e.thickness,span:{start:o.start,end:s.start}},i)),o.end>s.end&&(r+=this.insertEntry({index:e.index,thickness:e.thickness,span:{start:s.end,end:o.end}},i)),r?(n.push({index:e.index,thickness:e.thickness,span:ei(s,o)},...i),r):(n.push(e),0)}insertEntryAt(e,t){let{entriesByLevel:n,levelCoords:r}=this;-1===t.lateral?(ti(r,t.level,t.levelCoord),ti(n,t.level,[e])):ti(n[t.level],t.lateral,e),this.stackCnts[Kr(e)]=t.stackCnt}findInsertion(e){let{levelCoords:t,entriesByLevel:n,strictOrder:r,stackCnts:i}=this,o=t.length,s=0,a=-1,l=-1,c=null,u=0;for(let d=0;d<o;d+=1){let o=t[d];if(!r&&o>=s+e.thickness)break;let f,h=n[d],p=ni(h,e.span.start,Xr),g=p[0]+p[1];for(;(f=h[g])&&f.span.start<e.span.end;){let e=o+f.thickness;e>s&&(s=e,c=f,a=d,l=g),e===s&&(u=Math.max(u,i[Kr(f)]+1)),g+=1}}let d=0;if(c)for(d=a+1;d<o&&t[d]<s;)d+=1;let f=-1;return d<o&&t[d]===s&&(f=ni(n[d],e.span.end,Xr)[0]),{touchingLevel:a,touchingLateral:l,touchingEntry:c,stackCnt:u,levelCoord:s,level:d,lateral:f}}toRects(){let{entriesByLevel:e,levelCoords:t}=this,n=e.length,r=[];for(let i=0;i<n;i+=1){let n=e[i],o=t[i];for(let e of n)r.push(Object.assign(Object.assign({},e),{levelCoord:o}))}return r}},buildEntryKey:Kr,getEntrySpanEnd:Xr,binarySearch:ni,groupIntersectingEntries:function(e){let t=[];for(let i of e){let e=[],o={span:i.span,entries:[i]};for(let i of t)ei(i.span,o.span)?o={entries:i.entries.concat(o.entries),span:(n=i.span,r=o.span,{start:Math.min(n.start,r.start),end:Math.max(n.end,r.end)})}:e.push(i);e.push(o),t=e}var n,r;return t},intersectSpans:ei,Interaction:ri,interactionSettingsToStore:function(e){return{[e.component.uid]:e}},interactionSettingsStore:ii,ElementDragging:class{constructor(e,t){this.emitter=new Ht}destroy(){}setMirrorIsVisible(e){}setMirrorNeedsRevert(e){}setAutoScrollEnabled(e){}},config:{},parseDragMeta:function(e){let{refined:t,extra:n}=Be(e,oi);return{startTime:t.startTime||null,duration:t.duration||null,create:null==t.create||t.create,sourceId:t.sourceId,leftoverProps:n}},CalendarRoot:si,DayHeader:class extends gr{constructor(){super(...arguments),this.createDayHeaderFormatter=de(_i)}render(){let{context:e}=this,{dates:t,dateProfile:n,datesRepDistinctDays:r,renderIntro:i}=this.props,o=this.createDayHeaderFormatter(e.options.dayHeaderFormat,r,t.length);return Xt(bi,{unit:"day"},(e,s)=>Xt("tr",{role:"row"},i&&i("day"),t.map(e=>r?Xt(mi,{key:e.toISOString(),date:e,dateProfile:n,todayRange:s,colCnt:t.length,dayHeaderFormat:o}):Xt(Ai,{key:e.getUTCDay(),dow:e.getUTCDay(),dayHeaderFormat:o}))))}},computeFallbackHeaderFormat:ai,TableDateCell:mi,TableDowCell:Ai,DaySeriesModel:class{constructor(e,t){let n=e.start,{end:r}=e,i=[],o=[],s=-1;for(;n<r;)t.isHiddenDay(n)?i.push(s+.5):(s+=1,i.push(s),o.push(n)),n=G(n,1);this.dates=o,this.indices=i,this.cnt=o.length}sliceRange(e){let t=this.getDateDayIndex(e.start),n=this.getDateDayIndex(G(e.end,-1)),r=Math.max(0,t),i=Math.min(this.cnt-1,n);return r=Math.ceil(r),i=Math.floor(i),r<=i?{firstIndex:r,lastIndex:i,isStart:t===r,isEnd:n===i}:null}getDateDayIndex(e){let{indices:t}=this,n=Math.floor(Y(this.dates[0],e));return n<0?t[0]-1:n>=t.length?t[t.length-1]+1:t[n]}},sliceEventStore:xr,hasBgRendering:function(e){return"background"===e.ui.display||"inverse-background"===e.ui.display},getElSeg:Ir,buildSegTimeText:jr,sortEventSegs:function(e,t){let n=e.map(Br);return n.sort((e,n)=>b(e,n,t)),n.map(e=>e._seg)},getSegMeta:function(e,t,n){let r=e.eventRange.range;return{isPast:r.end<(n||t.start),isFuture:r.start>=(n||t.end),isToday:t&&_t(t,r.start)}},buildEventRangeKey:function(e){return e.instance?e.instance.instanceId:`${e.def.defId}:${e.range.start.toISOString()}`},getSegAnchorAttrs:Lr,DayTableModel:class{constructor(e,t){let n,r,i,{dates:o}=e;if(t){for(r=o[0].getUTCDay(),n=1;n<o.length&&o[n].getUTCDay()!==r;n+=1);i=Math.ceil(o.length/n)}else i=1,n=o.length;this.rowCnt=i,this.colCnt=n,this.daySeries=e,this.cells=this.buildCells(),this.headerDates=this.buildHeaderDates()}buildCells(){let e=[];for(let t=0;t<this.rowCnt;t+=1){let n=[];for(let e=0;e<this.colCnt;e+=1)n.push(this.buildCell(t,e));e.push(n)}return e}buildCell(e,t){let n=this.daySeries.dates[e*this.colCnt+t];return{key:n.toISOString(),date:n}}buildHeaderDates(){let e=[];for(let t=0;t<this.colCnt;t+=1)e.push(this.cells[0][t].date);return e}sliceRange(e){let{colCnt:t}=this,n=this.daySeries.sliceRange(e),r=[];if(n){let{firstIndex:e,lastIndex:i}=n,o=e;for(;o<=i;){let s=Math.floor(o/t),a=Math.min((s+1)*t,i+1);r.push({row:s,firstCol:o%t,lastCol:(a-1)%t,isStart:n.isStart&&o===e,isEnd:n.isEnd&&a-1===i}),o=a}}return r}},Slicer:class{constructor(){this.sliceBusinessHours=de(this._sliceBusinessHours),this.sliceDateSelection=de(this._sliceDateSpan),this.sliceEventStore=de(this._sliceEventStore),this.sliceEventDrag=de(this._sliceInteraction),this.sliceEventResize=de(this._sliceInteraction),this.forceDayIfListItem=!1}sliceProps(e,t,n,r,...i){let{eventUiBases:o}=e,s=this.sliceEventStore(e.eventStore,o,t,n,...i);return{dateSelectionSegs:this.sliceDateSelection(e.dateSelection,o,r,...i),businessHourSegs:this.sliceBusinessHours(e.businessHours,t,n,r,...i),fgEventSegs:s.fg,bgEventSegs:s.bg,eventDrag:this.sliceEventDrag(e.eventDrag,o,t,n,...i),eventResize:this.sliceEventResize(e.eventResize,o,t,n,...i),eventSelection:e.eventSelection}}sliceNowDate(e,t,...n){return this._sliceDateSpan({range:{start:e,end:Z(e,1)},allDay:!1},{},t,...n)}_sliceBusinessHours(e,t,n,r,...i){return e?this._sliceEventStore(Ue(e,Ei(t,Boolean(n)),r),{},t,n,...i).bg:[]}_sliceEventStore(e,t,n,r,...i){if(e){let o=xr(e,t,Ei(n,Boolean(r)),r);return{bg:this.sliceEventRanges(o.bg,i),fg:this.sliceEventRanges(o.fg,i)}}return{bg:[],fg:[]}}_sliceInteraction(e,t,n,r,...i){if(!e)return null;let o=xr(e.mutatedEvents,t,Ei(n,Boolean(r)),r);return{segs:this.sliceEventRanges(o.fg,i),affectedInstances:e.affectedEvents.instances,isEvent:e.isEvent}}_sliceDateSpan(e,t,n,...r){if(!e)return[];let i=function(e,t,n){let r=nt({editable:!1},n),i=it(r.refined,r.extra,"",e.allDay,!0,n);return{def:i,ui:Nr(i,t),instance:Pe(i.defId,e.range),range:e.range,isStart:!0,isEnd:!0}}(e,t,n),o=this.sliceRange(e.range,...r);for(let e of o)e.eventRange=i;return o}sliceEventRanges(e,t){let n=[];for(let r of e)n.push(...this.sliceEventRange(r,t));return n}sliceEventRange(e,t){let n=e.range;this.forceDayIfListItem&&"list-item"===e.ui.display&&(n={start:n.start,end:G(n.start,1)});let r=this.sliceRange(n,...t);for(let t of r)t.eventRange=e,t.isStart=e.isStart&&t.isStart,t.isEnd=e.isEnd&&t.isEnd;return r}},applyMutationToEventStore:Dr,isPropsValid:Ti,isInteractionValid:function(e,t,n){let{instances:r}=e.mutatedEvents;for(let e in r)if(!yt(t.validRange,r[e].range))return!1;return Si({eventDrag:e},n)},isDateSelectionValid:function(e,t,n){return!!yt(t.validRange,e.range)&&Si({dateSelection:e},n)},requestJson:Mi,BaseComponent:gr,setRef:mr,DelayedRunner:Ni,SimpleScrollGrid:Yi,hasShrinkWidth:Qi,renderMicroColGroup:Vi,getScrollGridClassNames:Gi,getSectionClassNames:Zi,getSectionHasLiquidHeight:ji,getAllowYScrolling:zi,renderChunkContent:Li,computeShrinkWidth:Ui,sanitizeShrinkWidth:Wi,isColPropsEqual:Fi,renderScrollShim:function(e){return Xt("div",{className:"fc-scrollgrid-sticky-shim",style:{width:e.clientWidth,minWidth:e.tableMinWidth}})},getStickyFooterScrollbar:function(e){let{stickyFooterScrollbar:t}=e;return null!=t&&"auto"!==t||(t="auto"===e.height||"auto"===e.viewHeight),t},getStickyHeaderDates:function(e){let{stickyHeaderDates:t}=e;return null!=t&&"auto"!==t||(t="auto"===e.height||"auto"===e.viewHeight),t},Scroller:Hi,getScrollbarWidths:xt,RefMap:Pi,getIsRtlScrollbarOnLeft:Rt,NowTimer:bi,ScrollResponder:dr,StandardEvent:class extends gr{render(){let{props:e,context:t}=this,{options:n}=t,{seg:r}=e,{ui:i}=r.eventRange,o=jr(r,n.eventTimeFormat||e.defaultTimeFormat,t,e.defaultDisplayEventTime,e.defaultDisplayEventEnd);return Xt(qi,Object.assign({},e,{elTag:"a",elStyle:{borderColor:i.borderColor,backgroundColor:i.backgroundColor},elAttrs:Lr(r,t),defaultGenerator:Ji,timeText:o}),(e,t)=>Xt(tn,null,Xt(e,{elTag:"div",elClasses:["fc-event-main"],elStyle:{color:t.textColor}}),Boolean(t.isStartResizable)&&Xt("div",{className:"fc-event-resizer fc-event-resizer-start"}),Boolean(t.isEndResizable)&&Xt("div",{className:"fc-event-resizer fc-event-resizer-end"})))}},NowIndicatorContainer:e=>Xt(fr.Consumer,null,t=>{let{options:n}=t,r={isAxis:e.isAxis,date:t.dateEnv.toDate(e.date),view:t.viewApi};return Xt(pi,Object.assign({},e,{elTag:e.elTag||"div",renderProps:r,generatorName:"nowIndicatorContent",generator:n.nowIndicatorContent,classNameGenerator:n.nowIndicatorClassNames,didMount:n.nowIndicatorDidMount,willUnmount:n.nowIndicatorWillUnmount}))}),DayCellContainer:Xi,hasCustomDayCellContent:Ki,EventContainer:qi,renderFill:function(e){return Xt("div",{className:"fc-"+e})},BgEvent:class extends gr{render(){let{props:e}=this,{seg:t}=e;return Xt(qi,{elTag:"div",elClasses:["fc-bg-event"],elStyle:{backgroundColor:t.eventRange.ui.backgroundColor},defaultGenerator:to,seg:t,timeText:"",isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:!1,isPast:e.isPast,isFuture:e.isFuture,isToday:e.isToday,disableDragging:!0,disableResizing:!0})}},WeekNumberContainer:e=>Xt(fr.Consumer,null,t=>{let{dateEnv:n,options:r}=t,{date:i}=e,o=r.weekNumberFormat||e.defaultFormat,s={num:n.computeWeekNumber(i),text:n.format(i,o),date:i};return Xt(pi,Object.assign({},e,{renderProps:s,generatorName:"weekNumberContent",generator:r.weekNumberContent||no,classNameGenerator:r.weekNumberClassNames,didMount:r.weekNumberDidMount,willUnmount:r.weekNumberWillUnmount}))}),MoreLinkContainer:class extends gr{constructor(){super(...arguments),this.state={isPopoverOpen:!1,popoverId:u()},this.handleLinkEl=e=>{this.linkEl=e,this.props.elRef&&mr(this.props.elRef,e)},this.handleClick=e=>{let{props:t,context:n}=this,{moreLinkClick:r}=n.options,i=so(t).start;function o(e){let{def:t,instance:r,range:i}=e.eventRange;return{event:new Tr(n,t,r),start:n.dateEnv.toDate(i.start),end:n.dateEnv.toDate(i.end),isStart:e.isStart,isEnd:e.isEnd}}"function"==typeof r&&(r=r({date:i,allDay:Boolean(t.allDayDate),allSegs:t.allSegs.map(o),hiddenSegs:t.hiddenSegs.map(o),jsEvent:e,view:n.viewApi})),r&&"popover"!==r?"string"==typeof r&&n.calendarApi.zoomTo(i,r):this.setState({isPopoverOpen:!0})},this.handlePopoverClose=()=>{this.setState({isPopoverOpen:!1})}}render(){let{props:e,state:t}=this;return Xt(fr.Consumer,null,n=>{let{viewApi:r,options:i,calendarApi:o}=n,{moreLinkText:s}=i,{moreCnt:a}=e,l=so(e),c="function"==typeof s?s.call(o,a):`+${a} ${s}`,u=D(i.moreLinkHint,[a],c),d={num:a,shortText:"+"+a,text:c,view:r};return Xt(tn,null,Boolean(e.moreCnt)&&Xt(pi,{elTag:e.elTag||"a",elRef:this.handleLinkEl,elClasses:[...e.elClasses||[],"fc-more-link"],elStyle:e.elStyle,elAttrs:Object.assign(Object.assign(Object.assign({},e.elAttrs),p(this.handleClick)),{title:u,"aria-expanded":t.isPopoverOpen,"aria-controls":t.isPopoverOpen?t.popoverId:""}),renderProps:d,generatorName:"moreLinkContent",generator:i.moreLinkContent||e.defaultGenerator||oo,classNameGenerator:i.moreLinkClassNames,didMount:i.moreLinkDidMount,willUnmount:i.moreLinkWillUnmount},e.children),t.isPopoverOpen&&Xt(io,{id:t.popoverId,startDate:l.start,endDate:l.end,dateProfile:e.dateProfile,todayRange:e.todayRange,extraDateSpan:e.extraDateSpan,parentEl:this.parentEl,alignmentEl:e.alignmentElRef?e.alignmentElRef.current:this.linkEl,alignGridTop:e.alignGridTop,onClose:this.handlePopoverClose},e.popoverContent()))})}componentDidMount(){this.updateParentEl()}componentDidUpdate(){this.updateParentEl()}updateParentEl(){this.linkEl&&(this.parentEl=n(this.linkEl,".fc-view-harness"))}},computeEarliestSegStart:ao,ViewContainer:class extends gr{render(){let{props:e,context:t}=this,{options:n}=t,r={view:t.viewApi};return Xt(pi,Object.assign({},e,{elTag:e.elTag||"div",elClasses:[...uo(e.viewSpec),...e.elClasses||[]],renderProps:r,classNameGenerator:n.viewClassNames,generatorName:void 0,generator:void 0,didMount:n.viewDidMount,willUnmount:n.viewWillUnmount}),()=>e.children)}},triggerDateSelect:yr,getDefaultEventEnd:Er,injectStyles:fo,CalendarImpl:mo,EventImpl:Tr,buildEventApis:Rr,buildElAttrs:fi,ContentContainer:pi,CustomRenderingStore:class extends class{constructor(){this.handlers=[]}set(e){this.currentValue=e;for(let t of this.handlers)t(e)}subscribe(e){this.handlers.push(e),void 0!==this.currentValue&&e(this.currentValue)}}{constructor(){super(...arguments),this.map=new Map}handle(e){const{map:t}=this;let n=!1;e.isActive?(t.set(e.id,e),n=!0):t.has(e.id)&&(t.delete(e.id),n=!0),n&&this.set(t)}}};fo(':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)}');const Ao=[],bo={code:"en",week:{dow:0,doy:4},direction:"ltr",buttonText:{prev:"prev",next:"next",prevYear:"prev year",nextYear:"next year",year:"year",today:"today",month:"month",week:"week",day:"day",list:"list"},weekText:"W",weekTextLong:"Week",closeHint:"Close",timeHint:"Time",eventHint:"Event",allDayText:"all-day",moreLinkText:"more",noEventsText:"No events to display"},yo=Object.assign(Object.assign({},bo),{buttonHints:{prev:"Previous $0",next:"Next $0",today:(e,t)=>"day"===t?"Today":"This "+e},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:e=>`Show ${e} more event${1===e?"":"s"}`});function _o(e){let t=e.length>0?e[0].code:"en",n=Ao.concat(e),r={en:yo};for(let e of n)r[e.code]=e;return{map:r,defaultCode:t}}function Eo(e,t){return"object"!=typeof e||Array.isArray(e)?function(e,t){let n=[].concat(e||[]),r=function(e,t){for(let n=0;n<e.length;n+=1){let r=e[n].toLocaleLowerCase().split("-");for(let e=r.length;e>0;e-=1){let n=r.slice(0,e).join("-");if(t[n])return t[n]}}return null}(n,t)||yo;return Do(e,n,r)}(e,t):Do(e.code,[e.code],e)}function Do(e,t,n){let r=N([bo,n],["buttonText"]);delete r.code;let{week:i}=r;return delete r.week,{codeArg:e,codes:t,week:i,simpleNumberFormat:new Intl.NumberFormat(e),options:r}}function Co(e){return{id:v(),name:e.name,premiumReleaseDate:e.premiumReleaseDate?new Date(e.premiumReleaseDate):void 0,deps:e.deps||[],reducers:e.reducers||[],isLoadingFuncs:e.isLoadingFuncs||[],contextInit:[].concat(e.contextInit||[]),eventRefiners:e.eventRefiners||{},eventDefMemberAdders:e.eventDefMemberAdders||[],eventSourceRefiners:e.eventSourceRefiners||{},isDraggableTransformers:e.isDraggableTransformers||[],eventDragMutationMassagers:e.eventDragMutationMassagers||[],eventDefMutationAppliers:e.eventDefMutationAppliers||[],dateSelectionTransformers:e.dateSelectionTransformers||[],datePointTransforms:e.datePointTransforms||[],dateSpanTransforms:e.dateSpanTransforms||[],views:e.views||{},viewPropsTransformers:e.viewPropsTransformers||[],isPropsValid:e.isPropsValid||null,externalDefTransforms:e.externalDefTransforms||[],viewContainerAppends:e.viewContainerAppends||[],eventDropTransformers:e.eventDropTransformers||[],componentInteractions:e.componentInteractions||[],calendarInteractions:e.calendarInteractions||[],themeClasses:e.themeClasses||{},eventSourceDefs:e.eventSourceDefs||[],cmdFormatter:e.cmdFormatter,recurringTypes:e.recurringTypes||[],namedTimeZonedImpl:e.namedTimeZonedImpl,initialView:e.initialView||"",elementDraggingImpl:e.elementDraggingImpl,optionChangeHandlers:e.optionChangeHandlers||{},scrollGridImpl:e.scrollGridImpl||null,listenerRefiners:e.listenerRefiners||{},optionRefiners:e.optionRefiners||{},propSetHandlers:e.propSetHandlers||{}}}function wo(){let e,t=[],n=[];return(r,i)=>(e&&ue(r,t)&&ue(i,n)||(e=function(e,t){let n={},r={premiumReleaseDate:void 0,reducers:[],isLoadingFuncs:[],contextInit:[],eventRefiners:{},eventDefMemberAdders:[],eventSourceRefiners:{},isDraggableTransformers:[],eventDragMutationMassagers:[],eventDefMutationAppliers:[],dateSelectionTransformers:[],datePointTransforms:[],dateSpanTransforms:[],views:{},viewPropsTransformers:[],isPropsValid:null,externalDefTransforms:[],viewContainerAppends:[],eventDropTransformers:[],componentInteractions:[],calendarInteractions:[],themeClasses:{},eventSourceDefs:[],cmdFormatter:null,recurringTypes:[],namedTimeZonedImpl:null,initialView:"",elementDraggingImpl:null,optionChangeHandlers:{},scrollGridImpl:null,listenerRefiners:{},optionRefiners:{},propSetHandlers:{}};function i(e){for(let s of e){const e=s.name,a=n[e];void 0===a?(n[e]=s.id,i(s.deps),o=s,r={premiumReleaseDate:So((t=r).premiumReleaseDate,o.premiumReleaseDate),reducers:t.reducers.concat(o.reducers),isLoadingFuncs:t.isLoadingFuncs.concat(o.isLoadingFuncs),contextInit:t.contextInit.concat(o.contextInit),eventRefiners:Object.assign(Object.assign({},t.eventRefiners),o.eventRefiners),eventDefMemberAdders:t.eventDefMemberAdders.concat(o.eventDefMemberAdders),eventSourceRefiners:Object.assign(Object.assign({},t.eventSourceRefiners),o.eventSourceRefiners),isDraggableTransformers:t.isDraggableTransformers.concat(o.isDraggableTransformers),eventDragMutationMassagers:t.eventDragMutationMassagers.concat(o.eventDragMutationMassagers),eventDefMutationAppliers:t.eventDefMutationAppliers.concat(o.eventDefMutationAppliers),dateSelectionTransformers:t.dateSelectionTransformers.concat(o.dateSelectionTransformers),datePointTransforms:t.datePointTransforms.concat(o.datePointTransforms),dateSpanTransforms:t.dateSpanTransforms.concat(o.dateSpanTransforms),views:Object.assign(Object.assign({},t.views),o.views),viewPropsTransformers:t.viewPropsTransformers.concat(o.viewPropsTransformers),isPropsValid:o.isPropsValid||t.isPropsValid,externalDefTransforms:t.externalDefTransforms.concat(o.externalDefTransforms),viewContainerAppends:t.viewContainerAppends.concat(o.viewContainerAppends),eventDropTransformers:t.eventDropTransformers.concat(o.eventDropTransformers),calendarInteractions:t.calendarInteractions.concat(o.calendarInteractions),componentInteractions:t.componentInteractions.concat(o.componentInteractions),themeClasses:Object.assign(Object.assign({},t.themeClasses),o.themeClasses),eventSourceDefs:t.eventSourceDefs.concat(o.eventSourceDefs),cmdFormatter:o.cmdFormatter||t.cmdFormatter,recurringTypes:t.recurringTypes.concat(o.recurringTypes),namedTimeZonedImpl:o.namedTimeZonedImpl||t.namedTimeZonedImpl,initialView:t.initialView||o.initialView,elementDraggingImpl:t.elementDraggingImpl||o.elementDraggingImpl,optionChangeHandlers:Object.assign(Object.assign({},t.optionChangeHandlers),o.optionChangeHandlers),scrollGridImpl:o.scrollGridImpl||t.scrollGridImpl,listenerRefiners:Object.assign(Object.assign({},t.listenerRefiners),o.listenerRefiners),optionRefiners:Object.assign(Object.assign({},t.optionRefiners),o.optionRefiners),propSetHandlers:Object.assign(Object.assign({},t.propSetHandlers),o.propSetHandlers)}):a!==s.id&&console.warn(`Duplicate plugin '${e}'`)}var t,o}return e&&i(e),i(t),r}(r,i)),t=r,n=i,e)}function So(e,t){return void 0===e?t:void 0===t?e:new Date(Math.max(e.valueOf(),t.valueOf()))}class To extends jt{}function ko(e,t,n,r){if(t[e])return t[e];let i=function(e,t,n,r){let i=n[e],o=r[e],s=e=>i&&null!==i[e]?i[e]:o&&null!==o[e]?o[e]:null,a=s("component"),l=s("superType"),c=null;if(l){if(l===e)throw new Error("Can't have a custom view type that references itself");c=ko(l,t,n,r)}!a&&c&&(a=c.component);if(!a)return null;return{type:e,component:a,defaults:Object.assign(Object.assign({},c?c.defaults:{}),i?i.rawOptions:{}),overrides:Object.assign(Object.assign({},c?c.overrides:{}),o?o.rawOptions:{})}}(e,t,n,r);return i&&(t[e]=i),i}function Ro(e){return H(e,xo)}function xo(e){let t="function"==typeof e?{component:e}:e,{component:n}=t;var r;return t.content&&(r=t,n=e=>Xt(fr.Consumer,null,t=>Xt(pi,{elTag:"div",elClasses:uo(t.viewSpec),renderProps:Object.assign(Object.assign({},e),{nextDayThreshold:t.options.nextDayThreshold}),generatorName:void 0,generator:r.content,classNameGenerator:r.classNames,didMount:r.didMount,willUnmount:r.willUnmount}))),{superType:t.type,component:n,rawOptions:t}}function Oo(e,t,n,r){let i=Ro(e),o=Ro(t.views);return H(function(e,t){let n,r={};for(n in e)ko(n,r,e,t);for(n in t)ko(n,r,e,t);return r}(i,o),e=>function(e,t,n,r,i){let o=e.overrides.duration||e.defaults.duration||r.duration||n.duration,s=null,a="",l="",c={};if(o&&(s=function(e){let t=JSON.stringify(e),n=Io[t];void 0===n&&(n=k(e),Io[t]=n);return n}(o),s)){let e=I(s);a=e.unit,1===e.value&&(l=a,c=t[a]?t[a].rawOptions:{})}let u=t=>{let n=t.buttonText||{},r=e.defaults.buttonTextKey;return null!=r&&null!=n[r]?n[r]:null!=n[e.type]?n[e.type]:null!=n[l]?n[l]:null},d=t=>{let n=t.buttonHints||{},r=e.defaults.buttonTextKey;return null!=r&&null!=n[r]?n[r]:null!=n[e.type]?n[e.type]:null!=n[l]?n[l]:null};return{type:e.type,component:e.component,duration:s,durationUnit:a,singleUnit:l,optionDefaults:e.defaults,optionOverrides:Object.assign(Object.assign({},c),e.overrides),buttonTextOverride:u(r)||u(n)||e.overrides.buttonText,buttonTextDefault:u(i)||e.defaults.buttonText||u(ke)||e.type,buttonTitleOverride:d(r)||d(n)||e.overrides.buttonHint,buttonTitleDefault:d(i)||e.defaults.buttonHint||d(ke)}}(e,o,t,n,r))}To.prototype.classes={root:"fc-theme-standard",tableCellShaded:"fc-cell-shaded",buttonGroup:"fc-button-group",button:"fc-button fc-button-primary",buttonActive:"fc-button-active"},To.prototype.baseIconClass="fc-icon",To.prototype.iconClasses={close:"fc-icon-x",prev:"fc-icon-chevron-left",next:"fc-icon-chevron-right",prevYear:"fc-icon-chevrons-left",nextYear:"fc-icon-chevrons-right"},To.prototype.rtlIconClasses={prev:"fc-icon-chevron-right",next:"fc-icon-chevron-left",prevYear:"fc-icon-chevrons-right",nextYear:"fc-icon-chevrons-left"},To.prototype.iconOverrideOption="buttonIcons",To.prototype.iconOverrideCustomButtonOption="icon",To.prototype.iconOverridePrefix="fc-icon-";let Io={};function Mo(e,t,n){let r=t?t.activeRange:null;return Ho({},function(e,t){let n=go(t),r=[].concat(e.eventSources||[]),i=[];e.initialEvents&&r.unshift(e.initialEvents);e.events&&r.unshift(e.events);for(let e of r){let r=po(e,t,n);r&&i.push(r)}return i}(e,n),r,n)}function No(e,t,n,r){let i=n?n.activeRange:null;switch(t.type){case"ADD_EVENT_SOURCES":return Ho(e,t.sources,i,r);case"REMOVE_EVENT_SOURCE":return o=e,s=t.sourceId,B(o,e=>e.sourceId!==s);case"PREV":case"NEXT":case"CHANGE_DATE":case"CHANGE_VIEW_TYPE":return n?Po(e,i,r):e;case"FETCH_EVENT_SOURCES":return Uo(e,t.sourceIds?P(t.sourceIds):zo(e,r),i,t.isRefetch||!1,r);case"RECEIVE_EVENTS":case"RECEIVE_EVENT_ERROR":return function(e,t,n,r){let i=e[t];if(i&&n===i.latestFetchId)return Object.assign(Object.assign({},e),{[t]:Object.assign(Object.assign({},i),{isFetching:!1,fetchRange:r})});return e}(e,t.sourceId,t.fetchId,t.fetchRange);case"REMOVE_ALL_EVENT_SOURCES":return{};default:return e}var o,s}function Bo(e){for(let t in e)if(e[t].isFetching)return!0;return!1}function Ho(e,t,n,r){let i={};for(let e of t)i[e.sourceId]=e;return n&&(i=Po(i,n,r)),Object.assign(Object.assign({},e),i)}function Po(e,t,n){return Uo(e,B(e,e=>function(e,t,n){if(!Lo(e,n))return!e.latestFetchId;return!n.options.lazyFetching||!e.fetchRange||e.isFetching||t.start<e.fetchRange.start||t.end>e.fetchRange.end}(e,t,n)),t,!1,n)}function Uo(e,t,n,r,i){let o={};for(let s in e){let a=e[s];t[s]?o[s]=jo(a,n,r,i):o[s]=a}return o}function jo(e,t,n,r){let{options:i,calendarApi:o}=r,s=r.pluginHooks.eventSourceDefs[e.sourceDefId],a=v();return s.fetch({eventSource:e,range:t,isRefetch:n,context:r},n=>{let{rawEvents:s}=n;i.eventSourceSuccess&&(s=i.eventSourceSuccess.call(o,s,n.response)||s),e.success&&(s=e.success.call(o,s,n.response)||s),r.dispatch({type:"RECEIVE_EVENTS",sourceId:e.sourceId,fetchId:a,fetchRange:t,rawEvents:s})},n=>{let s=!1;i.eventSourceFailure&&(i.eventSourceFailure.call(o,n),s=!0),e.failure&&(e.failure(n),s=!0),s||console.warn(n.message,n),r.dispatch({type:"RECEIVE_EVENT_ERROR",sourceId:e.sourceId,fetchId:a,fetchRange:t,error:n})}),Object.assign(Object.assign({},e),{isFetching:!0,latestFetchId:a})}function zo(e,t){return B(e,e=>Lo(e,t))}function Lo(e,t){return!t.pluginHooks.eventSourceDefs[e.sourceDefId].ignoreRange}function Fo(e,t){switch(t.type){case"UNSELECT_DATES":return null;case"SELECT_DATES":return t.selection;default:return e}}function Vo(e,t){switch(t.type){case"UNSELECT_EVENT":return"";case"SELECT_EVENT":return t.eventInstanceId;default:return e}}function Wo(e,t){let n;switch(t.type){case"UNSET_EVENT_DRAG":return null;case"SET_EVENT_DRAG":return n=t.state,{affectedEvents:n.affectedEvents,mutatedEvents:n.mutatedEvents,isEvent:n.isEvent};default:return e}}function Qo(e,t){let n;switch(t.type){case"UNSET_EVENT_RESIZE":return null;case"SET_EVENT_RESIZE":return n=t.state,{affectedEvents:n.affectedEvents,mutatedEvents:n.mutatedEvents,isEvent:n.isEvent};default:return e}}function Go(e,t,n,r,i){return{header:e.headerToolbar?Zo(e.headerToolbar,e,t,n,r,i):null,footer:e.footerToolbar?Zo(e.footerToolbar,e,t,n,r,i):null}}function Zo(e,t,n,r,i,o){let s={},a=[],l=!1;for(let c in e){let u=Yo(e[c],t,n,r,i,o);s[c]=u.widgets,a.push(...u.viewsWithButtons),l=l||u.hasTitle}return{sectionWidgets:s,viewsWithButtons:a,hasTitle:l}}function Yo(e,t,n,r,i,o){let s="rtl"===t.direction,a=t.customButtons||{},l=n.buttonText||{},c=t.buttonText||{},u=n.buttonHints||{},d=t.buttonHints||{},f=e?e.split(" "):[],h=[],p=!1;return{widgets:f.map(e=>e.split(",").map(e=>{if("title"===e)return p=!0,{buttonName:e};let n,f,g,m,v,A;if(n=a[e])g=e=>{n.click&&n.click.call(e.target,e,e.target)},(m=r.getCustomButtonIconClass(n))||(m=r.getIconClass(e,s))||(v=n.text),A=n.hint||n.text;else if(f=i[e]){h.push(e),g=()=>{o.changeView(e)},(v=f.buttonTextOverride)||(m=r.getIconClass(e,s))||(v=f.buttonTextDefault);let n=f.buttonTextOverride||f.buttonTextDefault;A=D(f.buttonTitleOverride||f.buttonTitleDefault||t.viewHint,[n,e],n)}else if(o[e])if(g=()=>{o[e]()},(v=l[e])||(m=r.getIconClass(e,s))||(v=c[e]),"prevYear"===e||"nextYear"===e){let t="prevYear"===e?"prev":"next";A=D(u[t]||d[t],[c.year||"year","year"],c[e])}else A=t=>D(u[e]||d[e],[c[t]||t,t],c[e]);return{buttonName:e,buttonClick:g,buttonIcon:m,buttonText:v,buttonHint:A}})),viewsWithButtons:h,hasTitle:p}}class qo{constructor(e,t,n){this.type=e,this.getCurrentData=t,this.dateEnv=n}get calendar(){return this.getCurrentData().calendarApi}get title(){return this.getCurrentData().viewTitle}get activeStart(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.start)}get activeEnd(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.end)}get currentStart(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.start)}get currentEnd(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.end)}getOption(e){return this.getCurrentData().options[e]}}function Jo(e,t){let n=U(t.getCurrentData().eventSources),r=[];for(let t of e){let e=!1;for(let r=0;r<n.length;r+=1)if(n[r]._raw===t){n.splice(r,1),e=!0;break}e||r.push(t)}for(let e of n)t.dispatch({type:"REMOVE_EVENT_SOURCE",sourceId:e.sourceId});for(let e of r)t.calendarApi.addEventSource(e)}const $o=[Co({name:"array-event-source",eventSourceDefs:[{ignoreRange:!0,parseMeta:e=>Array.isArray(e.events)?e.events:null,fetch(e,t){t({rawEvents:e.eventSource.meta})}}]}),Co({name:"func-event-source",eventSourceDefs:[{parseMeta:e=>"function"==typeof e.events?e.events:null,fetch(e,t,n){const{dateEnv:r}=e.context;Bt(e.eventSource.meta.bind(null,Wr(e.range,r)),e=>t({rawEvents:e}),n)}}]}),Co({name:"json-event-source",eventSourceRefiners:{method:String,extraParams:He,startParam:String,endParam:String,timeZoneParam:String},eventSourceDefs:[{parseMeta:e=>!e.url||"json"!==e.format&&e.format?null:{url:e.url,format:"json",method:(e.method||"GET").toUpperCase(),extraParams:e.extraParams,startParam:e.startParam,endParam:e.endParam,timeZoneParam:e.timeZoneParam},fetch(e,t,n){const{meta:r}=e.eventSource,i=function(e,t,n){let r,i,o,s,{dateEnv:a,options:l}=n,c={};r=e.startParam,null==r&&(r=l.startParam);i=e.endParam,null==i&&(i=l.endParam);o=e.timeZoneParam,null==o&&(o=l.timeZoneParam);s="function"==typeof e.extraParams?e.extraParams():e.extraParams||{};Object.assign(c,s),c[r]=a.formatIso(t.start),c[i]=a.formatIso(t.end),"local"!==a.timeZone&&(c[o]=a.timeZone);return c}(r,e.range,e.context);Mi(r.method,r.url,i).then(([e,n])=>{t({rawEvents:e,response:n})},n)}}]}),Co({name:"simple-recurring-event",recurringTypes:[{parse(e,t){if(e.daysOfWeek||e.startTime||e.endTime||e.startRecur||e.endRecur){let i,o={daysOfWeek:e.daysOfWeek||null,startTime:e.startTime||null,endTime:e.endTime||null,startRecur:e.startRecur?t.createMarker(e.startRecur):null,endRecur:e.endRecur?t.createMarker(e.endRecur):null};return e.duration&&(i=e.duration),!i&&e.startTime&&e.endTime&&(n=e.endTime,r=e.startTime,i={years:n.years-r.years,months:n.months-r.months,days:n.days-r.days,milliseconds:n.milliseconds-r.milliseconds}),{allDayGuess:Boolean(!e.startTime&&!e.endTime),duration:i,typeData:o}}var n,r;return null},expand(e,t,n){let r=vt(t,{start:e.startRecur,end:e.endRecur});return r?function(e,t,n,r){let i=e?P(e):null,o=X(n.start),s=n.end,a=[];for(;o<s;){let e;i&&!i[o.getUTCDay()]||(e=t?r.add(o,t):o,a.push(e)),o=G(o,1)}return a}(e.daysOfWeek,e.startTime,r,n):[]}}],eventRefiners:{daysOfWeek:He,startTime:k,endTime:k,duration:k,startRecur:He,endRecur:He}}),Co({name:"change-handler",optionChangeHandlers:{events(e,t){Jo([e],t)},eventSources:Jo}}),Co({name:"misc",isLoadingFuncs:[e=>Bo(e.eventSources)],propSetHandlers:{dateProfile:function(e,t){t.emitter.trigger("datesSet",Object.assign(Object.assign({},Wr(e.activeRange,t.dateEnv)),{view:t.viewApi}))},eventStore:function(e,t){let{emitter:n}=t;n.hasHandlers("eventsSet")&&n.trigger("eventsSet",Rr(e,t))}}})];class Xo{constructor(e,t){this.runTaskOption=e,this.drainedOption=t,this.queue=[],this.delayedRunner=new Ni(this.drain.bind(this))}request(e,t){this.queue.push(e),this.delayedRunner.request(t)}pause(e){this.delayedRunner.pause(e)}resume(e,t){this.delayedRunner.resume(e,t)}drain(){let{queue:e}=this;for(;e.length;){let t,n=[];for(;t=e.shift();)this.runTask(t),n.push(t);this.drained(n)}}runTask(e){this.runTaskOption&&this.runTaskOption(e)}drained(e){this.drainedOption&&this.drainedOption(e)}}function Ko(e,t,n){let r;return r=/^(year|month)$/.test(e.currentRangeUnit)?e.currentRange:e.activeRange,n.formatRange(r.start,r.end,Se(t.titleFormat||function(e){let{currentRangeUnit:t}=e;if("year"===t)return{year:"numeric"};if("month"===t)return{year:"numeric",month:"long"};let n=$(e.currentRange.start,e.currentRange.end);if(null!==n&&n>1)return{year:"numeric",month:"short",day:"numeric"};return{year:"numeric",month:"long",day:"numeric"}}(e)),{isEndExclusive:e.isRangeAllDay,defaultSeparator:t.titleRangeSeparator})}class es{constructor(e){this.computeOptionsData=de(this._computeOptionsData),this.computeCurrentViewData=de(this._computeCurrentViewData),this.organizeRawLocales=de(_o),this.buildLocale=de(Eo),this.buildPluginHooks=wo(),this.buildDateEnv=de(ts),this.buildTheme=de(ns),this.parseToolbars=de(Go),this.buildViewSpecs=de(Oo),this.buildDateProfileGenerator=fe(rs),this.buildViewApi=de(is),this.buildViewUiProps=fe(as),this.buildEventUiBySource=de(os,j),this.buildEventUiBases=de(ss),this.parseContextBusinessHours=fe(cs),this.buildTitle=de(Ko),this.emitter=new Ht,this.actionRunner=new Xo(this._handleAction.bind(this),this.updateData.bind(this)),this.currentCalendarOptionsInput={},this.currentCalendarOptionsRefined={},this.currentViewOptionsInput={},this.currentViewOptionsRefined={},this.currentCalendarOptionsRefiners={},this.getCurrentData=()=>this.data,this.dispatch=e=>{this.actionRunner.request(e)},this.props=e,this.actionRunner.pause();let t={},n=this.computeOptionsData(e.optionOverrides,t,e.calendarApi),r=n.calendarOptions.initialView||n.pluginHooks.initialView,i=this.computeCurrentViewData(r,n,e.optionOverrides,t);e.calendarApi.currentDataManager=this,this.emitter.setThisContext(e.calendarApi),this.emitter.setOptions(i.options);let o=function(e,t){let n=e.initialDate;return null!=n?t.createMarker(n):Ar(e.now,t)}(n.calendarOptions,n.dateEnv),s=i.dateProfileGenerator.build(o);_t(s.activeRange,o)||(o=s.currentRange.start);let a={dateEnv:n.dateEnv,options:n.calendarOptions,pluginHooks:n.pluginHooks,calendarApi:e.calendarApi,dispatch:this.dispatch,emitter:this.emitter,getCurrentData:this.getCurrentData};for(let e of n.pluginHooks.contextInit)e(a);let l=Mo(n.calendarOptions,s,a),c={dynamicOptionOverrides:t,currentViewType:r,currentDate:o,dateProfile:s,businessHours:this.parseContextBusinessHours(a),eventSources:l,eventUiBases:{},eventStore:{defs:{},instances:{}},renderableEventStore:{defs:{},instances:{}},dateSelection:null,eventSelection:"",eventDrag:null,eventResize:null,selectionConfig:this.buildViewUiProps(a).selectionConfig},u=Object.assign(Object.assign({},a),c);for(let e of n.pluginHooks.reducers)Object.assign(c,e(null,null,u));ls(c,a)&&this.emitter.trigger("loading",!0),this.state=c,this.updateData(),this.actionRunner.resume()}resetOptions(e,t){let{props:n}=this;n.optionOverrides=t?Object.assign(Object.assign({},n.optionOverrides),e):e,this.actionRunner.request({type:"NOTHING"})}_handleAction(e){let{props:t,state:n,emitter:r}=this,i=function(e,t){switch(t.type){case"SET_OPTION":return Object.assign(Object.assign({},e),{[t.optionName]:t.rawOptionValue});default:return e}}(n.dynamicOptionOverrides,e),o=this.computeOptionsData(t.optionOverrides,i,t.calendarApi),s=function(e,t){switch(t.type){case"CHANGE_VIEW_TYPE":e=t.viewType}return e}(n.currentViewType,e),a=this.computeCurrentViewData(s,o,t.optionOverrides,i);t.calendarApi.currentDataManager=this,r.setThisContext(t.calendarApi),r.setOptions(a.options);let l={dateEnv:o.dateEnv,options:o.calendarOptions,pluginHooks:o.pluginHooks,calendarApi:t.calendarApi,dispatch:this.dispatch,emitter:r,getCurrentData:this.getCurrentData},{currentDate:c,dateProfile:u}=n;this.data&&this.data.dateProfileGenerator!==a.dateProfileGenerator&&(u=a.dateProfileGenerator.build(c)),c=function(e,t){switch(t.type){case"CHANGE_DATE":return t.dateMarker;default:return e}}(c,e),u=function(e,t,n,r){let i;switch(t.type){case"CHANGE_VIEW_TYPE":return r.build(t.dateMarker||n);case"CHANGE_DATE":return r.build(t.dateMarker);case"PREV":if(i=r.buildPrev(e,n),i.isValid)return i;break;case"NEXT":if(i=r.buildNext(e,n),i.isValid)return i}return e}(u,e,c,a.dateProfileGenerator),"PREV"!==e.type&&"NEXT"!==e.type&&_t(u.currentRange,c)||(c=u.currentRange.start);let d=No(n.eventSources,e,u,l),f=Di(n.eventStore,e,d,u,l),h=Bo(d)&&!a.options.progressiveEventRendering&&n.renderableEventStore||f,{eventUiSingleBase:p,selectionConfig:g}=this.buildViewUiProps(l),m=this.buildEventUiBySource(d),v={dynamicOptionOverrides:i,currentViewType:s,currentDate:c,dateProfile:u,eventSources:d,eventStore:f,renderableEventStore:h,selectionConfig:g,eventUiBases:this.buildEventUiBases(h.defs,p,m),businessHours:this.parseContextBusinessHours(l),dateSelection:Fo(n.dateSelection,e),eventSelection:Vo(n.eventSelection,e),eventDrag:Wo(n.eventDrag,e),eventResize:Qo(n.eventResize,e)},A=Object.assign(Object.assign({},l),v);for(let t of o.pluginHooks.reducers)Object.assign(v,t(n,e,A));let b=ls(n,l),y=ls(v,l);!b&&y?r.trigger("loading",!0):b&&!y&&r.trigger("loading",!1),this.state=v,t.onAction&&t.onAction(e)}updateData(){let{props:e,state:t}=this,n=this.data,r=this.computeOptionsData(e.optionOverrides,t.dynamicOptionOverrides,e.calendarApi),i=this.computeCurrentViewData(t.currentViewType,r,e.optionOverrides,t.dynamicOptionOverrides),o=this.data=Object.assign(Object.assign(Object.assign({viewTitle:this.buildTitle(t.dateProfile,i.options,r.dateEnv),calendarApi:e.calendarApi,dispatch:this.dispatch,emitter:this.emitter,getCurrentData:this.getCurrentData},r),i),t),s=r.pluginHooks.optionChangeHandlers,a=n&&n.calendarOptions,l=r.calendarOptions;if(a&&a!==l){a.timeZone!==l.timeZone&&(t.eventSources=o.eventSources=function(e,t,n){let r=t?t.activeRange:null;return Uo(e,zo(e,n),r,!0,n)}(o.eventSources,t.dateProfile,o),t.eventStore=o.eventStore=function(e,t,n){let{defs:r}=e,i=H(e.instances,e=>{let i=r[e.defId];return i.allDay||i.recurringDef?e:Object.assign(Object.assign({},e),{range:{start:n.createMarker(t.toDate(e.range.start,e.forcedStartTzo)),end:n.createMarker(t.toDate(e.range.end,e.forcedEndTzo))},forcedStartTzo:n.canComputeOffset?null:e.forcedStartTzo,forcedEndTzo:n.canComputeOffset?null:e.forcedEndTzo})});return{defs:r,instances:i}}(o.eventStore,n.dateEnv,o.dateEnv));for(let e in s)a[e]!==l[e]&&s[e](l[e],o)}e.onData&&e.onData(o)}_computeOptionsData(e,t,n){let{refinedOptions:r,pluginHooks:i,localeDefaults:o,availableLocaleData:s,extra:a}=this.processRawCalendarOptions(e,t);us(a);let l=this.buildDateEnv(r.timeZone,r.locale,r.weekNumberCalculation,r.firstDay,r.weekText,i,s,r.defaultRangeSeparator),c=this.buildViewSpecs(i.views,e,t,o),u=this.buildTheme(r,i);return{calendarOptions:r,pluginHooks:i,dateEnv:l,viewSpecs:c,theme:u,toolbarConfig:this.parseToolbars(r,e,u,c,n),localeDefaults:o,availableRawLocales:s.map}}processRawCalendarOptions(e,t){let{locales:n,locale:r}=Ne([ke,e,t]),i=this.organizeRawLocales(n),o=i.map,s=this.buildLocale(r||i.defaultCode,o).options,a=this.buildPluginHooks(e.plugins||[],$o),l=this.currentCalendarOptionsRefiners=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Te),Re),xe),a.listenerRefiners),a.optionRefiners),c={},u=Ne([ke,s,e,t]),d={},f=this.currentCalendarOptionsInput,h=this.currentCalendarOptionsRefined,p=!1;for(let e in u)"plugins"!==e&&(u[e]===f[e]||Oe[e]&&e in f&&Oe[e](f[e],u[e])?d[e]=h[e]:l[e]?(d[e]=l[e](u[e]),p=!0):c[e]=f[e]);return p&&(this.currentCalendarOptionsInput=u,this.currentCalendarOptionsRefined=d),{rawOptions:this.currentCalendarOptionsInput,refinedOptions:this.currentCalendarOptionsRefined,pluginHooks:a,availableLocaleData:i,localeDefaults:s,extra:c}}_computeCurrentViewData(e,t,n,r){let i=t.viewSpecs[e];if(!i)throw new Error(`viewType "${e}" is not available. Please make sure you've loaded all neccessary plugins`);let{refinedOptions:o,extra:s}=this.processRawViewOptions(i,t.pluginHooks,t.localeDefaults,n,r);return us(s),{viewSpec:i,options:o,dateProfileGenerator:this.buildDateProfileGenerator({dateProfileGeneratorClass:i.optionDefaults.dateProfileGeneratorClass,duration:i.duration,durationUnit:i.durationUnit,usesMinMaxTime:i.optionDefaults.usesMinMaxTime,dateEnv:t.dateEnv,calendarApi:this.props.calendarApi,slotMinTime:o.slotMinTime,slotMaxTime:o.slotMaxTime,showNonCurrentDates:o.showNonCurrentDates,dayCount:o.dayCount,dateAlignment:o.dateAlignment,dateIncrement:o.dateIncrement,hiddenDays:o.hiddenDays,weekends:o.weekends,nowInput:o.now,validRangeInput:o.validRange,visibleRangeInput:o.visibleRange,monthMode:o.monthMode,fixedWeekCount:o.fixedWeekCount}),viewApi:this.buildViewApi(e,this.getCurrentData,t.dateEnv)}}processRawViewOptions(e,t,n,r,i){let o=Ne([ke,e.optionDefaults,n,r,e.optionOverrides,i]),s=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Te),Re),xe),Me),t.listenerRefiners),t.optionRefiners),a={},l=this.currentViewOptionsInput,c=this.currentViewOptionsRefined,u=!1,d={};for(let e in o)o[e]===l[e]||Oe[e]&&Oe[e](o[e],l[e])?a[e]=c[e]:(o[e]===this.currentCalendarOptionsInput[e]||Oe[e]&&Oe[e](o[e],this.currentCalendarOptionsInput[e])?e in this.currentCalendarOptionsRefined&&(a[e]=this.currentCalendarOptionsRefined[e]):s[e]?a[e]=s[e](o[e]):d[e]=o[e],u=!0);return u&&(this.currentViewOptionsInput=o,this.currentViewOptionsRefined=a),{rawOptions:this.currentViewOptionsInput,refinedOptions:this.currentViewOptionsRefined,extra:d}}}function ts(e,t,n,r,i,o,s,a){let l=Eo(t||s.defaultCode,s.map);return new $r({calendarSystem:"gregory",timeZone:e,namedTimeZoneImpl:o.namedTimeZonedImpl,locale:l,weekNumberCalculation:n,firstDay:r,weekText:i,cmdFormatter:o.cmdFormatter,defaultSeparator:a})}function ns(e,t){return new(t.themeClasses[e.themeSystem]||To)(e)}function rs(e){return new(e.dateProfileGeneratorClass||br)(e)}function is(e,t,n){return new qo(e,t,n)}function os(e){return H(e,e=>e.ui)}function ss(e,t,n){let r={"":t};for(let t in e){let i=e[t];i.sourceId&&n[i.sourceId]&&(r[t]=n[i.sourceId])}return r}function as(e){let{options:t}=e;return{eventUiSingleBase:qe({display:t.eventDisplay,editable:t.editable,startEditable:t.eventStartEditable,durationEditable:t.eventDurationEditable,constraint:t.eventConstraint,overlap:"boolean"==typeof t.eventOverlap?t.eventOverlap:void 0,allow:t.eventAllow,backgroundColor:t.eventBackgroundColor,borderColor:t.eventBorderColor,textColor:t.eventTextColor,color:t.eventColor},e),selectionConfig:qe({constraint:t.selectConstraint,overlap:"boolean"==typeof t.selectOverlap?t.selectOverlap:void 0,allow:t.selectAllow},e)}}function ls(e,t){for(let n of t.pluginHooks.isLoadingFuncs)if(n(e))return!0;return!1}function cs(e){return st(e.options.businessHours,e)}function us(e,t){for(let n in e)console.warn(`Unknown option '${n}'`+(t?` for view '${t}'`:""))}class ds extends gr{render(){return Xt("div",{className:"fc-toolbar-chunk"},...this.props.widgetGroups.map(e=>this.renderWidgetGroup(e)))}renderWidgetGroup(e){let{props:t}=this,{theme:n}=this.context,r=[],i=!0;for(let o of e){let{buttonName:e,buttonClick:s,buttonText:a,buttonIcon:l,buttonHint:c}=o;if("title"===e)i=!1,r.push(Xt("h2",{className:"fc-toolbar-title",id:t.titleId},t.title));else{let i=e===t.activeButton,o=!t.isTodayEnabled&&"today"===e||!t.isPrevEnabled&&"prev"===e||!t.isNextEnabled&&"next"===e,u=[`fc-${e}-button`,n.getClass("button")];i&&u.push(n.getClass("buttonActive")),r.push(Xt("button",{type:"button",title:"function"==typeof c?c(t.navUnit):c,disabled:o,"aria-pressed":i,className:u.join(" "),onClick:s},a||(l?Xt("span",{className:l}):"")))}}if(r.length>1){return Xt("div",{className:i&&n.getClass("buttonGroup")||""},...r)}return r[0]}}class fs extends gr{render(){let e,t,{model:n,extraClassName:r}=this.props,i=!1,o=n.sectionWidgets,s=o.center;return o.left?(i=!0,e=o.left):e=o.start,o.right?(i=!0,t=o.right):t=o.end,Xt("div",{className:[r||"","fc-toolbar",i?"fc-toolbar-ltr":""].join(" ")},this.renderSection("start",e||[]),this.renderSection("center",s||[]),this.renderSection("end",t||[]))}renderSection(e,t){let{props:n}=this;return Xt(ds,{key:e,widgetGroups:t,title:n.title,navUnit:n.navUnit,activeButton:n.activeButton,isTodayEnabled:n.isTodayEnabled,isPrevEnabled:n.isPrevEnabled,isNextEnabled:n.isNextEnabled,titleId:n.titleId})}}class hs extends gr{constructor(){super(...arguments),this.state={availableWidth:null},this.handleEl=e=>{this.el=e,mr(this.props.elRef,e),this.updateAvailableWidth()},this.handleResize=()=>{this.updateAvailableWidth()}}render(){let{props:e,state:t}=this,{aspectRatio:n}=e,r=["fc-view-harness",n||e.liquid||e.height?"fc-view-harness-active":"fc-view-harness-passive"],i="",o="";return n?null!==t.availableWidth?i=t.availableWidth/n:o=1/n*100+"%":i=e.height||"",Xt("div",{"aria-labelledby":e.labeledById,ref:this.handleEl,className:r.join(" "),style:{height:i,paddingBottom:o}},e.children)}componentDidMount(){this.context.addResizeHandler(this.handleResize)}componentWillUnmount(){this.context.removeResizeHandler(this.handleResize)}updateAvailableWidth(){this.el&&this.props.aspectRatio&&this.setState({availableWidth:this.el.offsetWidth})}}class ps extends ri{constructor(e){super(e),this.handleSegClick=(e,t)=>{let{component:r}=this,{context:i}=r,o=Ir(t);if(o&&r.isValidSegDownEl(e.target)){let s=n(e.target,".fc-event-forced-url"),a=s?s.querySelector("a[href]").href:"";i.emitter.trigger("eventClick",{el:t,event:new Tr(r.context,o.eventRange.def,o.eventRange.instance),jsEvent:e,view:i.viewApi}),a&&!e.defaultPrevented&&(window.location.href=a)}},this.destroy=f(e.el,"click",".fc-event",this.handleSegClick)}}class gs extends ri{constructor(e){super(e),this.handleEventElRemove=e=>{e===this.currentSegEl&&this.handleSegLeave(null,this.currentSegEl)},this.handleSegEnter=(e,t)=>{Ir(t)&&(this.currentSegEl=t,this.triggerEvent("eventMouseEnter",e,t))},this.handleSegLeave=(e,t)=>{this.currentSegEl&&(this.currentSegEl=null,this.triggerEvent("eventMouseLeave",e,t))},this.removeHoverListeners=function(e,t,n,r){let i;return f(e,"mouseover",t,(e,t)=>{if(t!==i){i=t,n(e,t);let o=e=>{i=null,r(e,t),t.removeEventListener("mouseleave",o)};t.addEventListener("mouseleave",o)}})}(e.el,".fc-event",this.handleSegEnter,this.handleSegLeave)}destroy(){this.removeHoverListeners()}triggerEvent(e,t,n){let{component:r}=this,{context:i}=r,o=Ir(n);t&&!r.isValidSegDownEl(t.target)||i.emitter.trigger(e,{el:n,event:new Tr(i,o.eventRange.def,o.eventRange.instance),jsEvent:t,view:i.viewApi})}}class ms extends pr{constructor(){super(...arguments),this.buildViewContext=de(hr),this.buildViewPropTransformers=de(As),this.buildToolbarProps=de(vs),this.headerRef={current:null},this.footerRef={current:null},this.interactionsStore={},this.state={viewLabelId:u()},this.registerInteractiveComponent=(e,t)=>{let n=function(e,t){return{component:e,el:t.el,useEventCenter:null==t.useEventCenter||t.useEventCenter,isHitComboAllowed:t.isHitComboAllowed||null}}(e,t),r=[ps,gs].concat(this.props.pluginHooks.componentInteractions).map(e=>new e(n));this.interactionsStore[e.uid]=r,ii[e.uid]=n},this.unregisterInteractiveComponent=e=>{let t=this.interactionsStore[e.uid];if(t){for(let e of t)e.destroy();delete this.interactionsStore[e.uid]}delete ii[e.uid]},this.resizeRunner=new Ni(()=>{this.props.emitter.trigger("_resize",!0),this.props.emitter.trigger("windowResize",{view:this.props.viewApi})}),this.handleWindowResize=e=>{let{options:t}=this.props;t.handleWindowResize&&e.target===window&&this.resizeRunner.request(t.windowResizeDelay)}}render(){let e,{props:t}=this,{toolbarConfig:n,options:r}=t,i=this.buildToolbarProps(t.viewSpec,t.dateProfile,t.dateProfileGenerator,t.currentDate,Ar(t.options.now,t.dateEnv),t.viewTitle),o=!1,s="";t.isHeightAuto||t.forPrint?s="":null!=r.height?o=!0:null!=r.contentHeight?s=r.contentHeight:e=Math.max(r.aspectRatio,.5);let a=this.buildViewContext(t.viewSpec,t.viewApi,t.options,t.dateProfileGenerator,t.dateEnv,t.theme,t.pluginHooks,t.dispatch,t.getCurrentData,t.emitter,t.calendarApi,this.registerInteractiveComponent,this.unregisterInteractiveComponent),l=n.header&&n.header.hasTitle?this.state.viewLabelId:"";return Xt(fr.Provider,{value:a},n.header&&Xt(fs,Object.assign({ref:this.headerRef,extraClassName:"fc-header-toolbar",model:n.header,titleId:l},i)),Xt(hs,{liquid:o,height:s,aspectRatio:e,labeledById:l},this.renderView(t),this.buildAppendContent()),n.footer&&Xt(fs,Object.assign({ref:this.footerRef,extraClassName:"fc-footer-toolbar",model:n.footer,titleId:""},i)))}componentDidMount(){let{props:e}=this;this.calendarInteractions=e.pluginHooks.calendarInteractions.map(t=>new t(e)),window.addEventListener("resize",this.handleWindowResize);let{propSetHandlers:t}=e.pluginHooks;for(let n in t)t[n](e[n],e)}componentDidUpdate(e){let{props:t}=this,{propSetHandlers:n}=t.pluginHooks;for(let r in n)t[r]!==e[r]&&n[r](t[r],t)}componentWillUnmount(){window.removeEventListener("resize",this.handleWindowResize),this.resizeRunner.clear();for(let e of this.calendarInteractions)e.destroy();this.props.emitter.trigger("_unmount")}buildAppendContent(){let{props:e}=this;return Xt(tn,{},...e.pluginHooks.viewContainerAppends.map(t=>t(e)))}renderView(e){let{pluginHooks:t}=e,{viewSpec:n}=e,r={dateProfile:e.dateProfile,businessHours:e.businessHours,eventStore:e.renderableEventStore,eventUiBases:e.eventUiBases,dateSelection:e.dateSelection,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,isHeightAuto:e.isHeightAuto,forPrint:e.forPrint},i=this.buildViewPropTransformers(t.viewPropsTransformers);for(let t of i)Object.assign(r,t.transform(r,e));return Xt(n.component,Object.assign({},r))}}function vs(e,t,n,r,i,o){let s=n.build(i,void 0,!1),a=n.buildPrev(t,r,!1),l=n.buildNext(t,r,!1);return{title:o,activeButton:e.type,navUnit:e.singleUnit,isTodayEnabled:s.isValid&&!_t(t.currentRange,i),isPrevEnabled:a.isValid,isNextEnabled:l.isValid}}function As(e){return e.map(e=>new e)}function bs(e){let t=Eo(e.locale||"en",_o([]).map);return new $r(Object.assign(Object.assign({timeZone:ke.timeZone,calendarSystem:"gregory"},e),{locale:t}))}return e.Calendar=class extends mo{constructor(e,t={}){super(),this.isRendering=!1,this.isRendered=!1,this.currentClassNames=[],this.customContentRenderId=0,this.handleAction=e=>{switch(e.type){case"SET_EVENT_DRAG":case"SET_EVENT_RESIZE":this.renderRunner.tryDrain()}},this.handleData=e=>{this.currentData=e,this.renderRunner.request(e.calendarOptions.rerenderDelay)},this.handleRenderRequest=()=>{if(this.isRendering){this.isRendered=!0;let{currentData:e}=this;ar(()=>{En(Xt(si,{options:e.calendarOptions,theme:e.theme,emitter:e.emitter},(t,n,r,i)=>(this.setClassNames(t),this.setHeight(n),Xt(hi.Provider,{value:this.customContentRenderId},Xt(ms,Object.assign({isHeightAuto:r,forPrint:i},e))))),this.el)})}else this.isRendered&&(this.isRendered=!1,En(null,this.el),this.setClassNames([]),this.setHeight(""))},this.el=e,this.renderRunner=new Ni(this.handleRenderRequest),new es({optionOverrides:t,calendarApi:this,onAction:this.handleAction,onData:this.handleData})}render(){let e=this.isRendering;e?this.customContentRenderId+=1:this.isRendering=!0,this.renderRunner.request(),e&&this.updateSize()}destroy(){this.isRendering&&(this.isRendering=!1,this.renderRunner.request())}updateSize(){ar(()=>{super.updateSize()})}batchRendering(e){this.renderRunner.pause("batchRendering"),e(),this.renderRunner.resume("batchRendering")}pauseRendering(){this.renderRunner.pause("pauseRendering")}resumeRendering(){this.renderRunner.resume("pauseRendering",!0)}resetOptions(e,t){this.currentDataManager.resetOptions(e,t)}setClassNames(e){if(!ue(e,this.currentClassNames)){let{classList:t}=this.el;for(let e of this.currentClassNames)t.remove(e);for(let n of e)t.add(n);this.currentClassNames=e}}setHeight(e){a(this.el,"height",e)}},e.Internal=vo,e.JsonRequestError=Ii,e.Preact=ur,e.createPlugin=Co,e.formatDate=function(e,t={}){let n=bs(t),r=Se(t),i=n.createMarkerMeta(e);return i?n.format(i.marker,r,{forcedTzo:i.forcedTzo}):""},e.formatRange=function(e,t,n){let r=bs("object"==typeof n&&n?n:{}),i=Se(n),o=r.createMarkerMeta(e),s=r.createMarkerMeta(t);return o&&s?r.formatRange(o.marker,s.marker,i,{forcedStartTzo:o.forcedTzo,forcedEndTzo:s.forcedTzo,isEndExclusive:n.isEndExclusive,defaultSeparator:ke.defaultRangeSeparator}):""},e.globalLocales=Ao,e.globalPlugins=$o,e.sliceEvents=function(e,t){return xr(e.eventStore,e.eventUiBases,e.dateProfile.activeRange,t?e.nextDayThreshold:null).fg},e.version="6.0.3",Object.defineProperty(e,"__esModule",{value:!0}),e}({}); \ No newline at end of file
+var FullCalendar=function(e){"use strict";const t=[],n=new Map;function r(e){t.push(e),n.forEach(t=>{o(t,e)})}function i(e){let r=n.get(e);if(!r||!r.isConnected){if(r=e.querySelector("style[data-fullcalendar]"),!r){r=document.createElement("style"),r.setAttribute("data-fullcalendar","");const t=function(){void 0===s&&(s=function(){const e=document.querySelector('meta[name="csp-nonce"]');if(e&&e.hasAttribute("content"))return e.getAttribute("content");const t=document.querySelector("script[nonce]");if(t)return t.nonce||"";return""}());return s}();t&&(r.nonce=t);const n=e===document?document.head:e,i=e===document?n.querySelector("script,link[rel=stylesheet],link[as=style],style"):n.firstChild;n.insertBefore(r,i)}n.set(e,r),function(e){for(const n of t)o(e,n)}(r)}}function o(e,t){const{sheet:n}=e,r=n.cssRules.length;t.split("}").forEach((e,t)=>{(e=e.trim())&&n.insertRule(e+"}",r+t)})}let s;"undefined"!=typeof document&&i(document);function a(e){e.parentNode&&e.parentNode.removeChild(e)}function l(e,t){if(e.closest)return e.closest(t);if(!document.documentElement.contains(e))return null;do{if(c(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null}function c(e,t){return(e.matches||e.matchesSelector||e.msMatchesSelector).call(e,t)}function u(e,t){let n=e instanceof HTMLElement?[e]:e,r=[];for(let e=0;e<n.length;e+=1){let i=n[e].querySelectorAll(t);for(let e=0;e<i.length;e+=1)r.push(i[e])}return r}r(':root{--fc-small-font-size:.85em;--fc-page-bg-color:#fff;--fc-neutral-bg-color:hsla(0,0%,82%,.3);--fc-neutral-text-color:grey;--fc-border-color:#ddd;--fc-button-text-color:#fff;--fc-button-bg-color:#2c3e50;--fc-button-border-color:#2c3e50;--fc-button-hover-bg-color:#1e2b37;--fc-button-hover-border-color:#1a252f;--fc-button-active-bg-color:#1a252f;--fc-button-active-border-color:#151e27;--fc-event-bg-color:#3788d8;--fc-event-border-color:#3788d8;--fc-event-text-color:#fff;--fc-event-selected-overlay-color:rgba(0,0,0,.25);--fc-more-link-bg-color:#d0d0d0;--fc-more-link-text-color:inherit;--fc-event-resizer-thickness:8px;--fc-event-resizer-dot-total-width:8px;--fc-event-resizer-dot-border-width:1px;--fc-non-business-color:hsla(0,0%,84%,.3);--fc-bg-event-color:#8fdf82;--fc-bg-event-opacity:0.3;--fc-highlight-color:rgba(188,232,241,.3);--fc-today-bg-color:rgba(255,220,40,.15);--fc-now-indicator-color:red}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc :after,.fc :before{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{padding:0;vertical-align:top}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid var(--fc-border-color)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;font-style:normal;font-weight:400;src:url("data:application/x-font-ttf;charset=utf-8;base64,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{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)}');const d=/(top|left|right|bottom|width|height)$/i;function f(e,t){for(let n in t)h(e,n,t[n])}function h(e,t,n){null==n?e.style[t]="":"number"==typeof n&&d.test(t)?e.style[t]=n+"px":e.style[t]=n}function p(e){var t,n;return null!==(n=null===(t=e.composedPath)||void 0===t?void 0:t.call(e)[0])&&void 0!==n?n:e.target}let g=0;function m(){return g+=1,"fc-dom-"+g}function v(e){e.preventDefault()}function b(e,t,n,r){let i=function(e,t){return n=>{let r=l(n.target,e);r&&t.call(r,n,r)}}(n,r);return e.addEventListener(t,i),()=>{e.removeEventListener(t,i)}}const A=["webkitTransitionEnd","otransitionend","oTransitionEnd","msTransitionEnd","transitionend"];function y(e){return Object.assign({onClick:e},_(e))}function _(e){return{tabIndex:0,onKeyDown(t){"Enter"!==t.key&&" "!==t.key||(e(t),t.preventDefault())}}}let E=0;function D(){return E+=1,String(E)}function C(e){let t,n,r=[],i=[];for("string"==typeof e?i=e.split(/\s*,\s*/):"function"==typeof e?i=[e]:Array.isArray(e)&&(i=e),t=0;t<i.length;t+=1)n=i[t],"string"==typeof n?r.push("-"===n.charAt(0)?{field:n.substring(1),order:-1}:{field:n,order:1}):"function"==typeof n&&r.push({func:n});return r}function w(e,t,n){let r,i;for(r=0;r<n.length;r+=1)if(i=S(e,t,n[r]),i)return i;return 0}function S(e,t,n){return n.func?n.func(e,t):T(e[n.field],t[n.field])*(n.order||1)}function T(e,t){return e||t?null==t?-1:null==e?1:"string"==typeof e||"string"==typeof t?String(e).localeCompare(String(t)):e-t:0}function k(e,t){let n=String(e);return"000".substr(0,t-n.length)+n}function R(e,t,n){return"function"==typeof e?e(...t):"string"==typeof e?t.reduce((e,t,n)=>e.replace("$"+n,t||""),e):n}function O(e){return e%1==0}function x(e){let t=e.querySelector(".fc-scrollgrid-shrink-frame"),n=e.querySelector(".fc-scrollgrid-shrink-cushion");if(!t)throw new Error("needs fc-scrollgrid-shrink-frame className");if(!n)throw new Error("needs fc-scrollgrid-shrink-cushion className");return e.getBoundingClientRect().width-t.getBoundingClientRect().width+n.getBoundingClientRect().width}const I=["years","months","days","milliseconds"],M=/^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/;function N(e,t){return"string"==typeof e?function(e){let t=M.exec(e);if(t){let e=t[1]?-1:1;return{years:0,months:0,days:e*(t[2]?parseInt(t[2],10):0),milliseconds:e*(60*(t[3]?parseInt(t[3],10):0)*60*1e3+60*(t[4]?parseInt(t[4],10):0)*1e3+1e3*(t[5]?parseInt(t[5],10):0)+(t[6]?parseInt(t[6],10):0))}}return null}(e):"object"==typeof e&&e?B(e):"number"==typeof e?B({[t||"milliseconds"]:e}):null}function B(e){let t={years:e.years||e.year||0,months:e.months||e.month||0,days:e.days||e.day||0,milliseconds:60*(e.hours||e.hour||0)*60*1e3+60*(e.minutes||e.minute||0)*1e3+1e3*(e.seconds||e.second||0)+(e.milliseconds||e.millisecond||e.ms||0)},n=e.weeks||e.week;return n&&(t.days+=7*n,t.specifiedWeeks=!0),t}function H(e){return P(e)/864e5}function P(e){return 31536e6*e.years+2592e6*e.months+864e5*e.days+e.milliseconds}function U(e){let t=e.milliseconds;if(t){if(t%1e3!=0)return{unit:"millisecond",value:t};if(t%6e4!=0)return{unit:"second",value:t/1e3};if(t%36e5!=0)return{unit:"minute",value:t/6e4};if(t)return{unit:"hour",value:t/36e5}}return e.days?e.specifiedWeeks&&e.days%7==0?{unit:"week",value:e.days/7}:{unit:"day",value:e.days}:e.months?{unit:"month",value:e.months}:e.years?{unit:"year",value:e.years}:{unit:"millisecond",value:0}}const{hasOwnProperty:j}=Object.prototype;function z(e,t){let n={};if(t)for(let r in t)if(t[r]===Ue){let t=[];for(let i=e.length-1;i>=0;i-=1){let o=e[i][r];if("object"==typeof o&&o)t.unshift(o);else if(void 0!==o){n[r]=o;break}}t.length&&(n[r]=z(t))}for(let t=e.length-1;t>=0;t-=1){let r=e[t];for(let e in r)e in n||(n[e]=r[e])}return n}function F(e,t){let n={};for(let r in e)t(e[r],r)&&(n[r]=e[r]);return n}function L(e,t){let n={};for(let r in e)n[r]=t(e[r],r);return n}function V(e){let t={};for(let n of e)t[n]=!0;return t}function W(e){let t=[];for(let n in e)t.push(e[n]);return t}function Q(e,t){if(e===t)return!0;for(let n in e)if(j.call(e,n)&&!(n in t))return!1;for(let n in t)if(j.call(t,n)&&e[n]!==t[n])return!1;return!0}const G=/^on[A-Z]/;function Z(e,t){let n=[];for(let r in e)j.call(e,r)&&(r in t||n.push(r));for(let r in t)j.call(t,r)&&e[r]!==t[r]&&n.push(r);return n}function q(e,t,n={}){if(e===t)return!0;for(let r in t)if(!(r in e)||!Y(e[r],t[r],n[r]))return!1;for(let n in e)if(!(n in t))return!1;return!0}function Y(e,t,n){return e===t||!0===n||!!n&&n(e,t)}function J(e,t=0,n,r=1){let i=[];null==n&&(n=Object.keys(e).length);for(let o=t;o<n;o+=r){let t=e[o];void 0!==t&&i.push(t)}return i}function $(e,t,n){if(e===t)return!0;let r,i=e.length;if(i!==t.length)return!1;for(r=0;r<i;r+=1)if(!(n?n(e[r],t[r]):e[r]===t[r]))return!1;return!0}const X=["sun","mon","tue","wed","thu","fri","sat"];function K(e,t){let n=ue(e);return n[2]+=t,de(n)}function ee(e,t){let n=ue(e);return n[6]+=t,de(n)}function te(e,t){return(t.valueOf()-e.valueOf())/864e5}function ne(e,t){let n=oe(e),r=oe(t);return{years:0,months:0,days:Math.round(te(n,r)),milliseconds:t.valueOf()-r.valueOf()-(e.valueOf()-n.valueOf())}}function re(e,t){let n=ie(e,t);return null!==n&&n%7==0?n/7:null}function ie(e,t){return he(e)===he(t)?Math.round(te(e,t)):null}function oe(e){return de([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()])}function se(e,t,n,r){let i=de([t,0,1+ae(t,n,r)]),o=oe(e),s=Math.round(te(i,o));return Math.floor(s/7)+1}function ae(e,t,n){let r=7+t-n;return-((7+de([e,0,r]).getUTCDay()-t)%7)+r-1}function le(e){return[e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()]}function ce(e){return new Date(e[0],e[1]||0,null==e[2]?1:e[2],e[3]||0,e[4]||0,e[5]||0)}function ue(e){return[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()]}function de(e){return 1===e.length&&(e=e.concat([0])),new Date(Date.UTC(...e))}function fe(e){return!isNaN(e.valueOf())}function he(e){return 1e3*e.getUTCHours()*60*60+1e3*e.getUTCMinutes()*60+1e3*e.getUTCSeconds()+e.getUTCMilliseconds()}function pe(e,t,n=!1){let r=e.toISOString();return r=r.replace(".000",""),n&&(r=r.replace("T00:00:00Z","")),r.length>10&&(null==t?r=r.replace("Z",""):0!==t&&(r=r.replace("Z",me(t,!0)))),r}function ge(e){return e.toISOString().replace(/T.*$/,"")}function me(e,t=!1){let n=e<0?"-":"+",r=Math.abs(e),i=Math.floor(r/60),o=Math.round(r%60);return t?`${n+k(i,2)}:${k(o,2)}`:`GMT${n}${i}${o?":"+k(o,2):""}`}function ve(e,t,n){let r,i;return function(...o){if(r){if(!$(r,o)){n&&n(i);let r=e.apply(this,o);t&&t(r,i)||(i=r)}}else i=e.apply(this,o);return r=o,i}}function be(e,t,n){let r,i;return o=>{if(r){if(!Q(r,o)){n&&n(i);let r=e.call(this,o);t&&t(r,i)||(i=r)}}else i=e.call(this,o);return r=o,i}}const Ae={week:3,separator:0,omitZeroMinute:0,meridiem:0,omitCommas:0},ye={timeZoneName:7,era:6,year:5,month:4,day:2,weekday:2,hour:1,minute:1,second:1},_e=/\s*([ap])\.?m\.?/i,Ee=/,/g,De=/\s+/g,Ce=/\u200e/g,we=/UTC|GMT/;class Se{constructor(e){let t={},n={},r=0;for(let i in e)i in Ae?(n[i]=e[i],r=Math.max(Ae[i],r)):(t[i]=e[i],i in ye&&(r=Math.max(ye[i],r)));this.standardDateProps=t,this.extendedSettings=n,this.severity=r,this.buildFormattingFunc=ve(Te)}format(e,t){return this.buildFormattingFunc(this.standardDateProps,this.extendedSettings,t)(e)}formatRange(e,t,n,r){let{standardDateProps:i,extendedSettings:o}=this,s=function(e,t,n){if(n.getMarkerYear(e)!==n.getMarkerYear(t))return 5;if(n.getMarkerMonth(e)!==n.getMarkerMonth(t))return 4;if(n.getMarkerDay(e)!==n.getMarkerDay(t))return 2;if(he(e)!==he(t))return 1;return 0}(e.marker,t.marker,n.calendarSystem);if(!s)return this.format(e,n);let a=s;!(a>1)||"numeric"!==i.year&&"2-digit"!==i.year||"numeric"!==i.month&&"2-digit"!==i.month||"numeric"!==i.day&&"2-digit"!==i.day||(a=1);let l=this.format(e,n),c=this.format(t,n);if(l===c)return l;let u=Te(function(e,t){let n={};for(let r in e)(!(r in ye)||ye[r]<=t)&&(n[r]=e[r]);return n}(i,a),o,n),d=u(e),f=u(t),h=function(e,t,n,r){let i=0;for(;i<e.length;){let o=e.indexOf(t,i);if(-1===o)break;let s=e.substr(0,o);i=o+t.length;let a=e.substr(i),l=0;for(;l<n.length;){let e=n.indexOf(r,l);if(-1===e)break;let t=n.substr(0,e);l=e+r.length;let i=n.substr(l);if(s===t&&a===i)return{before:s,after:a}}}return null}(l,d,c,f),p=o.separator||r||n.defaultSeparator||"";return h?h.before+d+p+f+h.after:l+p+c}getLargestUnit(){switch(this.severity){case 7:case 6:case 5:return"year";case 4:return"month";case 3:return"week";case 2:return"day";default:return"time"}}}function Te(e,t,n){let r=Object.keys(e).length;return 1===r&&"short"===e.timeZoneName?e=>me(e.timeZoneOffset):0===r&&t.week?e=>function(e,t,n,r,i){let o=[];"long"===i?o.push(n):"short"!==i&&"narrow"!==i||o.push(t);"long"!==i&&"short"!==i||o.push(" ");o.push(r.simpleNumberFormat.format(e)),"rtl"===r.options.direction&&o.reverse();return o.join("")}(n.computeWeekNumber(e.marker),n.weekText,n.weekTextLong,n.locale,t.week):function(e,t,n){e=Object.assign({},e),t=Object.assign({},t),function(e,t){e.timeZoneName&&(e.hour||(e.hour="2-digit"),e.minute||(e.minute="2-digit"));"long"===e.timeZoneName&&(e.timeZoneName="short");t.omitZeroMinute&&(e.second||e.millisecond)&&delete t.omitZeroMinute}(e,t),e.timeZone="UTC";let r,i=new Intl.DateTimeFormat(n.locale.codes,e);if(t.omitZeroMinute){let t=Object.assign({},e);delete t.minute,r=new Intl.DateTimeFormat(n.locale.codes,t)}return o=>{let s,{marker:a}=o;return s=r&&!a.getUTCMinutes()?r:i,function(e,t,n,r,i){e=e.replace(Ce,""),"short"===n.timeZoneName&&(e=function(e,t){let n=!1;e=e.replace(we,()=>(n=!0,t)),n||(e+=" "+t);return e}(e,"UTC"===i.timeZone||null==t.timeZoneOffset?"UTC":me(t.timeZoneOffset)));r.omitCommas&&(e=e.replace(Ee,"").trim());r.omitZeroMinute&&(e=e.replace(":00",""));!1===r.meridiem?e=e.replace(_e,"").trim():"narrow"===r.meridiem?e=e.replace(_e,(e,t)=>t.toLocaleLowerCase()):"short"===r.meridiem?e=e.replace(_e,(e,t)=>t.toLocaleLowerCase()+"m"):"lowercase"===r.meridiem&&(e=e.replace(_e,e=>e.toLocaleLowerCase()));return e=(e=e.replace(De," ")).trim()}(s.format(a),o,e,t,n)}}(e,t,n)}function ke(e,t){let n=t.markerToArray(e.marker);return{marker:e.marker,timeZoneOffset:e.timeZoneOffset,array:n,year:n[0],month:n[1],day:n[2],hour:n[3],minute:n[4],second:n[5],millisecond:n[6]}}function Re(e,t,n,r){let i=ke(e,n.calendarSystem);return{date:i,start:i,end:t?ke(t,n.calendarSystem):null,timeZone:n.timeZone,localeCodes:n.locale.codes,defaultSeparator:r||n.defaultSeparator}}class Oe{constructor(e){this.cmdStr=e}format(e,t,n){return t.cmdFormatter(this.cmdStr,Re(e,null,t,n))}formatRange(e,t,n,r){return n.cmdFormatter(this.cmdStr,Re(e,t,n,r))}}class xe{constructor(e){this.func=e}format(e,t,n){return this.func(Re(e,null,t,n))}formatRange(e,t,n,r){return this.func(Re(e,t,n,r))}}function Ie(e){return"object"==typeof e&&e?new Se(e):"string"==typeof e?new Oe(e):"function"==typeof e?new xe(e):null}const Me={navLinkDayClick:Ve,navLinkWeekClick:Ve,duration:N,bootstrapFontAwesome:Ve,buttonIcons:Ve,customButtons:Ve,defaultAllDayEventDuration:N,defaultTimedEventDuration:N,nextDayThreshold:N,scrollTime:N,scrollTimeReset:Boolean,slotMinTime:N,slotMaxTime:N,dayPopoverFormat:Ie,slotDuration:N,snapDuration:N,headerToolbar:Ve,footerToolbar:Ve,defaultRangeSeparator:String,titleRangeSeparator:String,forceEventDuration:Boolean,dayHeaders:Boolean,dayHeaderFormat:Ie,dayHeaderClassNames:Ve,dayHeaderContent:Ve,dayHeaderDidMount:Ve,dayHeaderWillUnmount:Ve,dayCellClassNames:Ve,dayCellContent:Ve,dayCellDidMount:Ve,dayCellWillUnmount:Ve,initialView:String,aspectRatio:Number,weekends:Boolean,weekNumberCalculation:Ve,weekNumbers:Boolean,weekNumberClassNames:Ve,weekNumberContent:Ve,weekNumberDidMount:Ve,weekNumberWillUnmount:Ve,editable:Boolean,viewClassNames:Ve,viewDidMount:Ve,viewWillUnmount:Ve,nowIndicator:Boolean,nowIndicatorClassNames:Ve,nowIndicatorContent:Ve,nowIndicatorDidMount:Ve,nowIndicatorWillUnmount:Ve,showNonCurrentDates:Boolean,lazyFetching:Boolean,startParam:String,endParam:String,timeZoneParam:String,timeZone:String,locales:Ve,locale:Ve,themeSystem:String,dragRevertDuration:Number,dragScroll:Boolean,allDayMaintainDuration:Boolean,unselectAuto:Boolean,dropAccept:Ve,eventOrder:C,eventOrderStrict:Boolean,handleWindowResize:Boolean,windowResizeDelay:Number,longPressDelay:Number,eventDragMinDistance:Number,expandRows:Boolean,height:Ve,contentHeight:Ve,direction:String,weekNumberFormat:Ie,eventResizableFromStart:Boolean,displayEventTime:Boolean,displayEventEnd:Boolean,weekText:String,weekTextLong:String,progressiveEventRendering:Boolean,businessHours:Ve,initialDate:Ve,now:Ve,eventDataTransform:Ve,stickyHeaderDates:Ve,stickyFooterScrollbar:Ve,viewHeight:Ve,defaultAllDay:Boolean,eventSourceFailure:Ve,eventSourceSuccess:Ve,eventDisplay:String,eventStartEditable:Boolean,eventDurationEditable:Boolean,eventOverlap:Ve,eventConstraint:Ve,eventAllow:Ve,eventBackgroundColor:String,eventBorderColor:String,eventTextColor:String,eventColor:String,eventClassNames:Ve,eventContent:Ve,eventDidMount:Ve,eventWillUnmount:Ve,selectConstraint:Ve,selectOverlap:Ve,selectAllow:Ve,droppable:Boolean,unselectCancel:String,slotLabelFormat:Ve,slotLaneClassNames:Ve,slotLaneContent:Ve,slotLaneDidMount:Ve,slotLaneWillUnmount:Ve,slotLabelClassNames:Ve,slotLabelContent:Ve,slotLabelDidMount:Ve,slotLabelWillUnmount:Ve,dayMaxEvents:Ve,dayMaxEventRows:Ve,dayMinWidth:Number,slotLabelInterval:N,allDayText:String,allDayClassNames:Ve,allDayContent:Ve,allDayDidMount:Ve,allDayWillUnmount:Ve,slotMinWidth:Number,navLinks:Boolean,eventTimeFormat:Ie,rerenderDelay:Number,moreLinkText:Ve,moreLinkHint:Ve,selectMinDistance:Number,selectable:Boolean,selectLongPressDelay:Number,eventLongPressDelay:Number,selectMirror:Boolean,eventMaxStack:Number,eventMinHeight:Number,eventMinWidth:Number,eventShortHeight:Number,slotEventOverlap:Boolean,plugins:Ve,firstDay:Number,dayCount:Number,dateAlignment:String,dateIncrement:N,hiddenDays:Ve,fixedWeekCount:Boolean,validRange:Ve,visibleRange:Ve,titleFormat:Ve,eventInteractive:Boolean,noEventsText:String,viewHint:Ve,navLinkHint:Ve,closeHint:String,timeHint:String,eventHint:String,moreLinkClick:Ve,moreLinkClassNames:Ve,moreLinkContent:Ve,moreLinkDidMount:Ve,moreLinkWillUnmount:Ve,monthStartFormat:Ie,handleCustomRendering:Ve,customRenderingMetaMap:Ve,customRenderingReplacesEl:Boolean},Ne={eventDisplay:"auto",defaultRangeSeparator:" - ",titleRangeSeparator:" – ",defaultTimedEventDuration:"01:00:00",defaultAllDayEventDuration:{day:1},forceEventDuration:!1,nextDayThreshold:"00:00:00",dayHeaders:!0,initialView:"",aspectRatio:1.35,headerToolbar:{start:"title",center:"",end:"today prev,next"},weekends:!0,weekNumbers:!1,weekNumberCalculation:"local",editable:!1,nowIndicator:!1,scrollTime:"06:00:00",scrollTimeReset:!0,slotMinTime:"00:00:00",slotMaxTime:"24:00:00",showNonCurrentDates:!0,lazyFetching:!0,startParam:"start",endParam:"end",timeZoneParam:"timeZone",timeZone:"local",locales:[],locale:"",themeSystem:"standard",dragRevertDuration:500,dragScroll:!0,allDayMaintainDuration:!1,unselectAuto:!0,dropAccept:"*",eventOrder:"start,-duration,allDay,title",dayPopoverFormat:{month:"long",day:"numeric",year:"numeric"},handleWindowResize:!0,windowResizeDelay:100,longPressDelay:1e3,eventDragMinDistance:5,expandRows:!1,navLinks:!1,selectable:!1,eventMinHeight:15,eventMinWidth:30,eventShortHeight:30,monthStartFormat:{month:"long",day:"numeric"}},Be={datesSet:Ve,eventsSet:Ve,eventAdd:Ve,eventChange:Ve,eventRemove:Ve,windowResize:Ve,eventClick:Ve,eventMouseEnter:Ve,eventMouseLeave:Ve,select:Ve,unselect:Ve,loading:Ve,_unmount:Ve,_beforeprint:Ve,_afterprint:Ve,_noEventDrop:Ve,_noEventResize:Ve,_resize:Ve,_scrollRequest:Ve},He={buttonText:Ve,buttonHints:Ve,views:Ve,plugins:Ve,initialEvents:Ve,events:Ve,eventSources:Ve},Pe={headerToolbar:Ue,footerToolbar:Ue,buttonText:Ue,buttonHints:Ue,buttonIcons:Ue,dateIncrement:Ue,plugins:je,events:je,eventSources:je,resources:je};function Ue(e,t){return"object"==typeof e&&"object"==typeof t&&e&&t?Q(e,t):e===t}function je(e,t){return Array.isArray(e)&&Array.isArray(t)?$(e,t):e===t}const ze={type:String,component:Ve,buttonText:String,buttonTextKey:String,dateProfileGeneratorClass:Ve,usesMinMaxTime:Boolean,classNames:Ve,content:Ve,didMount:Ve,willUnmount:Ve};function Fe(e){return z(e,Pe)}function Le(e,t){let n={},r={};for(let r in t)r in e&&(n[r]=t[r](e[r]));for(let n in e)n in t||(r[n]=e[n]);return{refined:n,extra:r}}function Ve(e){return e}function We(e,t,n,r){return{instanceId:D(),defId:e,range:t,forcedStartTzo:null==n?null:n,forcedEndTzo:null==r?null:r}}function Qe(e,t,n){let{dateEnv:r,pluginHooks:i,options:o}=n,{defs:s,instances:a}=e;a=F(a,e=>!s[e.defId].recurringDef);for(let e in s){let n=s[e];if(n.recurringDef){let{duration:s}=n.recurringDef;s||(s=n.allDay?o.defaultAllDayEventDuration:o.defaultTimedEventDuration);let l=Ge(n,s,t,r,i.recurringTypes);for(let t of l){let n=We(e,{start:t,end:r.add(t,s)});a[n.instanceId]=n}}}return{defs:s,instances:a}}function Ge(e,t,n,r,i){let o=i[e.recurringDef.typeId].expand(e.recurringDef.typeData,{start:r.subtract(n.start,t),end:n.end},r);return e.allDay&&(o=o.map(oe)),o}function Ze(e,t,n,r,i,o){let s={defs:{},instances:{}},a=ut(n);for(let l of e){let e=lt(l,t,n,r,a,i,o);e&&qe(e,s)}return s}function qe(e,t={defs:{},instances:{}}){return t.defs[e.def.defId]=e.def,e.instance&&(t.instances[e.instance.instanceId]=e.instance),t}function Ye(e,t){let n=e.instances[t];if(n){let t=e.defs[n.defId],r=Xe(e,e=>{return n=t,r=e,Boolean(n.groupId&&n.groupId===r.groupId);var n,r});return r.defs[t.defId]=t,r.instances[n.instanceId]=n,r}return{defs:{},instances:{}}}function Je(){return{defs:{},instances:{}}}function $e(e,t){return{defs:Object.assign(Object.assign({},e.defs),t.defs),instances:Object.assign(Object.assign({},e.instances),t.instances)}}function Xe(e,t){let n=F(e.defs,t),r=F(e.instances,e=>n[e.defId]);return{defs:n,instances:r}}function Ke(e){return Array.isArray(e)?e:"string"==typeof e?e.split(/\s+/):[]}const et={display:String,editable:Boolean,startEditable:Boolean,durationEditable:Boolean,constraint:Ve,overlap:Ve,allow:Ve,className:Ke,classNames:Ke,color:String,backgroundColor:String,borderColor:String,textColor:String},tt={display:null,startEditable:null,durationEditable:null,constraints:[],overlap:null,allows:[],backgroundColor:"",borderColor:"",textColor:"",classNames:[]};function nt(e,t){let n=function(e,t){return Array.isArray(e)?Ze(e,null,t,!0):"object"==typeof e&&e?Ze([e],null,t,!0):null!=e?String(e):null}(e.constraint,t);return{display:e.display||null,startEditable:null!=e.startEditable?e.startEditable:e.editable,durationEditable:null!=e.durationEditable?e.durationEditable:e.editable,constraints:null!=n?[n]:[],overlap:null!=e.overlap?e.overlap:null,allows:null!=e.allow?[e.allow]:[],backgroundColor:e.backgroundColor||e.color||"",borderColor:e.borderColor||e.color||"",textColor:e.textColor||"",classNames:(e.className||[]).concat(e.classNames||[])}}function rt(e){return e.reduce(it,tt)}function it(e,t){return{display:null!=t.display?t.display:e.display,startEditable:null!=t.startEditable?t.startEditable:e.startEditable,durationEditable:null!=t.durationEditable?t.durationEditable:e.durationEditable,constraints:e.constraints.concat(t.constraints),overlap:"boolean"==typeof t.overlap?t.overlap:e.overlap,allows:e.allows.concat(t.allows),backgroundColor:t.backgroundColor||e.backgroundColor,borderColor:t.borderColor||e.borderColor,textColor:t.textColor||e.textColor,classNames:e.classNames.concat(t.classNames)}}const ot={id:String,groupId:String,title:String,url:String,interactive:Boolean},st={start:Ve,end:Ve,date:Ve,allDay:Boolean},at=Object.assign(Object.assign(Object.assign({},ot),st),{extendedProps:Ve});function lt(e,t,n,r,i=ut(n),o,s){let{refined:a,extra:l}=ct(e,n,i),c=function(e,t){let n=null;e&&(n=e.defaultAllDay);null==n&&(n=t.options.defaultAllDay);return n}(t,n),u=function(e,t,n,r){for(let i=0;i<r.length;i+=1){let o=r[i].parse(e,n);if(o){let{allDay:n}=e;return null==n&&(n=t,null==n&&(n=o.allDayGuess,null==n&&(n=!1))),{allDay:n,duration:o.duration,typeData:o.typeData,typeId:i}}}return null}(a,c,n.dateEnv,n.pluginHooks.recurringTypes);if(u){let e=dt(a,l,t?t.sourceId:"",u.allDay,Boolean(u.duration),n,o);return e.recurringDef={typeId:u.typeId,typeData:u.typeData,duration:u.duration},{def:e,instance:null}}let d=function(e,t,n,r){let i,o,{allDay:s}=e,a=null,l=!1,c=null,u=null!=e.start?e.start:e.date;if(i=n.dateEnv.createMarkerMeta(u),i)a=i.marker;else if(!r)return null;null!=e.end&&(o=n.dateEnv.createMarkerMeta(e.end));null==s&&(s=null!=t?t:(!i||i.isTimeUnspecified)&&(!o||o.isTimeUnspecified));s&&a&&(a=oe(a));o&&(c=o.marker,s&&(c=oe(c)),a&&c<=a&&(c=null));c?l=!0:r||(l=n.options.forceEventDuration||!1,c=n.dateEnv.add(a,s?n.options.defaultAllDayEventDuration:n.options.defaultTimedEventDuration));return{allDay:s,hasEnd:l,range:{start:a,end:c},forcedStartTzo:i?i.forcedTzo:null,forcedEndTzo:o?o.forcedTzo:null}}(a,c,n,r);if(d){let e=dt(a,l,t?t.sourceId:"",d.allDay,d.hasEnd,n,o),r=We(e.defId,d.range,d.forcedStartTzo,d.forcedEndTzo);return s&&e.publicId&&s[e.publicId]&&(r.instanceId=s[e.publicId]),{def:e,instance:r}}return null}function ct(e,t,n=ut(t)){return Le(e,n)}function ut(e){return Object.assign(Object.assign(Object.assign({},et),at),e.pluginHooks.eventRefiners)}function dt(e,t,n,r,i,o,s){let a={title:e.title||"",groupId:e.groupId||"",publicId:e.id||"",url:e.url||"",recurringDef:null,defId:(s&&e.id?s[e.id]:"")||D(),sourceId:n,allDay:r,hasEnd:i,interactive:e.interactive,ui:nt(e,o),extendedProps:Object.assign(Object.assign({},e.extendedProps||{}),t)};for(let t of o.pluginHooks.eventDefMemberAdders)Object.assign(a,t(e));return Object.freeze(a.ui.classNames),Object.freeze(a.extendedProps),a}const ft={startTime:"09:00",endTime:"17:00",daysOfWeek:[1,2,3,4,5],display:"inverse-background",classNames:"fc-non-business",groupId:"_businessHours"};function ht(e,t){return Ze(function(e){let t;t=!0===e?[{}]:Array.isArray(e)?e.filter(e=>e.daysOfWeek):"object"==typeof e&&e?[e]:[];return t=t.map(e=>Object.assign(Object.assign({},ft),e)),t}(e),null,t)}function pt(e){let t=Math.floor(te(e.start,e.end))||1,n=oe(e.start);return{start:n,end:K(n,t)}}function gt(e,t=N(0)){let n=null,r=null;if(e.end){r=oe(e.end);let n=e.end.valueOf()-r.valueOf();n&&n>=P(t)&&(r=K(r,1))}return e.start&&(n=oe(e.start),r&&r<=n&&(r=K(n,1))),{start:n,end:r}}function mt(e,t,n,r){return"year"===r?N(n.diffWholeYears(e,t),"year"):"month"===r?N(n.diffWholeMonths(e,t),"month"):ne(e,t)}function vt(e,t){let n={left:Math.max(e.left,t.left),right:Math.min(e.right,t.right),top:Math.max(e.top,t.top),bottom:Math.min(e.bottom,t.bottom)};return n.left<n.right&&n.top<n.bottom&&n}let bt;function At(){return null==bt&&(bt=function(){if("undefined"==typeof document)return!0;let e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.innerHTML="<table><tr><td><div></div></td></tr></table>",e.querySelector("table").style.height="100px",e.querySelector("div").style.height="100%",document.body.appendChild(e);let t=e.querySelector("div").offsetHeight>0;return document.body.removeChild(e),t}()),bt}const yt={defs:{},instances:{}};function _t(e,t,n){let r=[];e&&r.push(e),t&&r.push(t);let i={"":rt(r)};return n&&Object.assign(i,n),i}function Et(e,t){let n,r,i=[],{start:o}=t;for(e.sort(Dt),n=0;n<e.length;n+=1)r=e[n],r.start>o&&i.push({start:o,end:r.start}),r.end>o&&(o=r.end);return o<t.end&&i.push({start:o,end:t.end}),i}function Dt(e,t){return e.start.valueOf()-t.start.valueOf()}function Ct(e,t){let{start:n,end:r}=e,i=null;return null!==t.start&&(n=null===n?t.start:new Date(Math.max(n.valueOf(),t.start.valueOf()))),null!=t.end&&(r=null===r?t.end:new Date(Math.min(r.valueOf(),t.end.valueOf()))),(null===n||null===r||n<r)&&(i={start:n,end:r}),i}function wt(e,t){return(null===e.start?null:e.start.valueOf())===(null===t.start?null:t.start.valueOf())&&(null===e.end?null:e.end.valueOf())===(null===t.end?null:t.end.valueOf())}function St(e,t){return(null===e.end||null===t.start||e.end>t.start)&&(null===e.start||null===t.end||e.start<t.end)}function Tt(e,t){return(null===e.start||null!==t.start&&t.start>=e.start)&&(null===e.end||null!==t.end&&t.end<=e.end)}function kt(e,t){return(null===e.start||t>=e.start)&&(null===e.end||t<e.end)}function Rt(e,t,n,r){return{dow:e.getUTCDay(),isDisabled:Boolean(r&&!kt(r.activeRange,e)),isOther:Boolean(r&&!kt(r.currentRange,e)),isToday:Boolean(t&&kt(t,e)),isPast:Boolean(n?e<n:!!t&&e<t.start),isFuture:Boolean(n?e>n:!!t&&e>=t.end)}}function Ot(e,t){let n=["fc-day","fc-day-"+X[e.dow]];return e.isDisabled?n.push("fc-day-disabled"):(e.isToday&&(n.push("fc-day-today"),n.push(t.getClass("today"))),e.isPast&&n.push("fc-day-past"),e.isFuture&&n.push("fc-day-future"),e.isOther&&n.push("fc-day-other")),n}const xt=Ie({year:"numeric",month:"long",day:"numeric"}),It=Ie({week:"long"});function Mt(e,t,n="day",r=!0){const{dateEnv:i,options:o,calendarApi:s}=e;let a=i.format(t,"week"===n?It:xt);if(o.navLinks){let e=i.toDate(t);const l=e=>{let r="day"===n?o.navLinkDayClick:"week"===n?o.navLinkWeekClick:null;"function"==typeof r?r.call(s,i.toDate(t),e):("string"==typeof r&&(n=r),s.zoomTo(t,n))};return Object.assign({title:R(o.navLinkHint,[a,e],a),"data-navlink":""},r?y(l):{onClick:l})}return{"aria-label":a}}let Nt,Bt=null;function Ht(){return null===Bt&&(Bt=function(){let e=document.createElement("div");f(e,{position:"absolute",top:-1e3,left:0,border:0,padding:0,overflow:"scroll",direction:"rtl"}),e.innerHTML="<div></div>",document.body.appendChild(e);let t=e.firstChild.getBoundingClientRect().left>e.getBoundingClientRect().left;return a(e),t}()),Bt}function Pt(){return Nt||(Nt=function(){let e=document.createElement("div");e.style.overflow="scroll",e.style.position="absolute",e.style.top="-9999px",e.style.left="-9999px",document.body.appendChild(e);let t=Ut(e);return document.body.removeChild(e),t}()),Nt}function Ut(e){return{x:e.offsetHeight-e.clientHeight,y:e.offsetWidth-e.clientWidth}}function jt(e,t=!1){let n=window.getComputedStyle(e),r=parseInt(n.borderLeftWidth,10)||0,i=parseInt(n.borderRightWidth,10)||0,o=parseInt(n.borderTopWidth,10)||0,s=parseInt(n.borderBottomWidth,10)||0,a=Ut(e),l=a.y-r-i,c={borderLeft:r,borderRight:i,borderTop:o,borderBottom:s,scrollbarBottom:a.x-o-s,scrollbarLeft:0,scrollbarRight:0};return Ht()&&"rtl"===n.direction?c.scrollbarLeft=l:c.scrollbarRight=l,t&&(c.paddingLeft=parseInt(n.paddingLeft,10)||0,c.paddingRight=parseInt(n.paddingRight,10)||0,c.paddingTop=parseInt(n.paddingTop,10)||0,c.paddingBottom=parseInt(n.paddingBottom,10)||0),c}function zt(e){let t=e.getBoundingClientRect();return{left:t.left+window.pageXOffset,top:t.top+window.pageYOffset,right:t.right+window.pageXOffset,bottom:t.bottom+window.pageYOffset}}function Ft(e){let t=[];for(;e instanceof HTMLElement;){let n=window.getComputedStyle(e);if("fixed"===n.position)break;/(auto|scroll)/.test(n.overflow+n.overflowY+n.overflowX)&&t.push(e),e=e.parentNode}return t}function Lt(e,t,n){let r=!1,i=function(e){r||(r=!0,t(e))},o=function(e){r||(r=!0,n(e))},s=e(i,o);s&&"function"==typeof s.then&&s.then(i,o)}class Vt{constructor(){this.handlers={},this.thisContext=null}setThisContext(e){this.thisContext=e}setOptions(e){this.options=e}on(e,t){!function(e,t,n){(e[t]||(e[t]=[])).push(n)}(this.handlers,e,t)}off(e,t){!function(e,t,n){n?e[t]&&(e[t]=e[t].filter(e=>e!==n)):delete e[t]}(this.handlers,e,t)}trigger(e,...t){let n=this.handlers[e]||[],r=this.options&&this.options[e],i=[].concat(r||[],n);for(let e of i)e.apply(this.thisContext,t)}hasHandlers(e){return Boolean(this.handlers[e]&&this.handlers[e].length||this.options&&this.options[e])}}function Wt(e,t){const n=e.length;if(n!==t.length)return!1;for(let r=0;r<n;r++)if(Math.round(e[r])!==Math.round(t[r]))return!1;return!0}class Qt{getMaxScrollTop(){return this.getScrollHeight()-this.getClientHeight()}getMaxScrollLeft(){return this.getScrollWidth()-this.getClientWidth()}canScrollVertically(){return this.getMaxScrollTop()>0}canScrollHorizontally(){return this.getMaxScrollLeft()>0}canScrollUp(){return this.getScrollTop()>0}canScrollDown(){return this.getScrollTop()<this.getMaxScrollTop()}canScrollLeft(){return this.getScrollLeft()>0}canScrollRight(){return this.getScrollLeft()<this.getMaxScrollLeft()}}class Gt{constructor(e){this.iconOverrideOption&&this.setIconOverride(e[this.iconOverrideOption])}setIconOverride(e){let t,n;if("object"==typeof e&&e){for(n in t=Object.assign({},this.iconClasses),e)t[n]=this.applyIconOverridePrefix(e[n]);this.iconClasses=t}else!1===e&&(this.iconClasses={})}applyIconOverridePrefix(e){let t=this.iconOverridePrefix;return t&&0!==e.indexOf(t)&&(e=t+e),e}getClass(e){return this.classes[e]||""}getIconClass(e,t){let n;return n=t&&this.rtlIconClasses&&this.rtlIconClasses[e]||this.iconClasses[e],n?`${this.baseIconClass} ${n}`:""}getCustomButtonIconClass(e){let t;return this.iconOverrideCustomButtonOption&&(t=e[this.iconOverrideCustomButtonOption],t)?`${this.baseIconClass} ${this.applyIconOverridePrefix(t)}`:""}}Gt.prototype.classes={},Gt.prototype.iconClasses={},Gt.prototype.baseIconClass="",Gt.prototype.iconOverridePrefix="";var Zt,qt,Yt,Jt,$t,Xt,Kt,en,tn,nn={},rn=[],on=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function sn(e,t){for(var n in t)e[n]=t[n];return e}function an(e){var t=e.parentNode;t&&t.removeChild(e)}function ln(e,t,n){var r,i,o,s={};for(o in t)"key"==o?r=t[o]:"ref"==o?i=t[o]:s[o]=t[o];if(arguments.length>2&&(s.children=arguments.length>3?Zt.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(o in e.defaultProps)void 0===s[o]&&(s[o]=e.defaultProps[o]);return cn(e,s,r,i,null)}function cn(e,t,n,r,i){var o={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==i?++Yt:i};return null==i&&null!=qt.vnode&&qt.vnode(o),o}function un(){return{current:null}}function dn(e){return e.children}function fn(e,t,n){"-"===t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||on.test(t)?n:n+"px"}function hn(e,t,n,r,i){var o;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||fn(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||fn(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])o=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+o]=n,n?r||e.addEventListener(t,o?gn:pn,o):e.removeEventListener(t,o?gn:pn,o);else if("dangerouslySetInnerHTML"!==t){if(i)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!==t&&"height"!==t&&"href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null==n||!1===n&&-1==t.indexOf("-")?e.removeAttribute(t):e.setAttribute(t,n))}}function pn(e){$t=!0;try{return this.l[e.type+!1](qt.event?qt.event(e):e)}finally{$t=!1}}function gn(e){$t=!0;try{return this.l[e.type+!0](qt.event?qt.event(e):e)}finally{$t=!1}}function mn(e,t){this.props=e,this.context=t}function vn(e,t){if(null==t)return e.__?vn(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?vn(e):null}function bn(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return bn(e)}}function An(e){$t?setTimeout(e):en(e)}function yn(e){(!e.__d&&(e.__d=!0)&&Xt.push(e)&&!_n.__r++||Kt!==qt.debounceRendering)&&((Kt=qt.debounceRendering)||An)(_n)}function _n(){var e,t,n,r,i,o,s,a;for(Xt.sort((function(e,t){return e.__v.__b-t.__v.__b}));e=Xt.shift();)e.__d&&(t=Xt.length,r=void 0,i=void 0,s=(o=(n=e).__v).__e,(a=n.__P)&&(r=[],(i=sn({},o)).__v=o.__v+1,Tn(a,o,i,n.__n,void 0!==a.ownerSVGElement,null!=o.__h?[s]:null,r,null==s?vn(o):s,o.__h),kn(r,o),o.__e!=s&&bn(o)),Xt.length>t&&Xt.sort((function(e,t){return e.__v.__b-t.__v.__b})));_n.__r=0}function En(e,t,n,r,i,o,s,a,l,c){var u,d,f,h,p,g,m,v=r&&r.__k||rn,b=v.length;for(n.__k=[],u=0;u<t.length;u++)if(null!=(h=n.__k[u]=null==(h=t[u])||"boolean"==typeof h?null:"string"==typeof h||"number"==typeof h||"bigint"==typeof h?cn(null,h,null,null,h):Array.isArray(h)?cn(dn,{children:h},null,null,null):h.__b>0?cn(h.type,h.props,h.key,h.ref?h.ref:null,h.__v):h)){if(h.__=n,h.__b=n.__b+1,null===(f=v[u])||f&&h.key==f.key&&h.type===f.type)v[u]=void 0;else for(d=0;d<b;d++){if((f=v[d])&&h.key==f.key&&h.type===f.type){v[d]=void 0;break}f=null}Tn(e,h,f=f||nn,i,o,s,a,l,c),p=h.__e,(d=h.ref)&&f.ref!=d&&(m||(m=[]),f.ref&&m.push(f.ref,null,h),m.push(d,h.__c||p,h)),null!=p?(null==g&&(g=p),"function"==typeof h.type&&h.__k===f.__k?h.__d=l=Dn(h,l,e):l=wn(e,h,f,v,p,l),"function"==typeof n.type&&(n.__d=l)):l&&f.__e==l&&l.parentNode!=e&&(l=vn(f))}for(n.__e=g,u=b;u--;)null!=v[u]&&("function"==typeof n.type&&null!=v[u].__e&&v[u].__e==n.__d&&(n.__d=Sn(r).nextSibling),xn(v[u],v[u]));if(m)for(u=0;u<m.length;u++)On(m[u],m[++u],m[++u])}function Dn(e,t,n){for(var r,i=e.__k,o=0;i&&o<i.length;o++)(r=i[o])&&(r.__=e,t="function"==typeof r.type?Dn(r,t,n):wn(n,r,r,i,r.__e,t));return t}function Cn(e,t){return t=t||[],null==e||"boolean"==typeof e||(Array.isArray(e)?e.some((function(e){Cn(e,t)})):t.push(e)),t}function wn(e,t,n,r,i,o){var s,a,l;if(void 0!==t.__d)s=t.__d,t.__d=void 0;else if(null==n||i!=o||null==i.parentNode)e:if(null==o||o.parentNode!==e)e.appendChild(i),s=null;else{for(a=o,l=0;(a=a.nextSibling)&&l<r.length;l+=1)if(a==i)break e;e.insertBefore(i,o),s=o}return void 0!==s?s:i.nextSibling}function Sn(e){var t,n,r;if(null==e.type||"string"==typeof e.type)return e.__e;if(e.__k)for(t=e.__k.length-1;t>=0;t--)if((n=e.__k[t])&&(r=Sn(n)))return r;return null}function Tn(e,t,n,r,i,o,s,a,l){var c,u,d,f,h,p,g,m,v,b,A,y,_,E,D,C=t.type;if(void 0!==t.constructor)return null;null!=n.__h&&(l=n.__h,a=t.__e=n.__e,t.__h=null,o=[a]),(c=qt.__b)&&c(t);try{e:if("function"==typeof C){if(m=t.props,v=(c=C.contextType)&&r[c.__c],b=c?v?v.props.value:c.__:r,n.__c?g=(u=t.__c=n.__c).__=u.__E:("prototype"in C&&C.prototype.render?t.__c=u=new C(m,b):(t.__c=u=new mn(m,b),u.constructor=C,u.render=In),v&&v.sub(u),u.props=m,u.state||(u.state={}),u.context=b,u.__n=r,d=u.__d=!0,u.__h=[],u._sb=[]),null==u.__s&&(u.__s=u.state),null!=C.getDerivedStateFromProps&&(u.__s==u.state&&(u.__s=sn({},u.__s)),sn(u.__s,C.getDerivedStateFromProps(m,u.__s))),f=u.props,h=u.state,u.__v=t,d)null==C.getDerivedStateFromProps&&null!=u.componentWillMount&&u.componentWillMount(),null!=u.componentDidMount&&u.__h.push(u.componentDidMount);else{if(null==C.getDerivedStateFromProps&&m!==f&&null!=u.componentWillReceiveProps&&u.componentWillReceiveProps(m,b),!u.__e&&null!=u.shouldComponentUpdate&&!1===u.shouldComponentUpdate(m,u.__s,b)||t.__v===n.__v){for(t.__v!==n.__v&&(u.props=m,u.state=u.__s,u.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.forEach((function(e){e&&(e.__=t)})),A=0;A<u._sb.length;A++)u.__h.push(u._sb[A]);u._sb=[],u.__h.length&&s.push(u);break e}null!=u.componentWillUpdate&&u.componentWillUpdate(m,u.__s,b),null!=u.componentDidUpdate&&u.__h.push((function(){u.componentDidUpdate(f,h,p)}))}if(u.context=b,u.props=m,u.__P=e,y=qt.__r,_=0,"prototype"in C&&C.prototype.render){for(u.state=u.__s,u.__d=!1,y&&y(t),c=u.render(u.props,u.state,u.context),E=0;E<u._sb.length;E++)u.__h.push(u._sb[E]);u._sb=[]}else do{u.__d=!1,y&&y(t),c=u.render(u.props,u.state,u.context),u.state=u.__s}while(u.__d&&++_<25);u.state=u.__s,null!=u.getChildContext&&(r=sn(sn({},r),u.getChildContext())),d||null==u.getSnapshotBeforeUpdate||(p=u.getSnapshotBeforeUpdate(f,h)),D=null!=c&&c.type===dn&&null==c.key?c.props.children:c,En(e,Array.isArray(D)?D:[D],t,n,r,i,o,s,a,l),u.base=t.__e,t.__h=null,u.__h.length&&s.push(u),g&&(u.__E=u.__=null),u.__e=!1}else null==o&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=Rn(n.__e,t,n,r,i,o,s,l);(c=qt.diffed)&&c(t)}catch(e){t.__v=null,(l||null!=o)&&(t.__e=a,t.__h=!!l,o[o.indexOf(a)]=null),qt.__e(e,t,n)}}function kn(e,t){qt.__c&&qt.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){qt.__e(e,t.__v)}}))}function Rn(e,t,n,r,i,o,s,a){var l,c,u,d=n.props,f=t.props,h=t.type,p=0;if("svg"===h&&(i=!0),null!=o)for(;p<o.length;p++)if((l=o[p])&&"setAttribute"in l==!!h&&(h?l.localName===h:3===l.nodeType)){e=l,o[p]=null;break}if(null==e){if(null===h)return document.createTextNode(f);e=i?document.createElementNS("http://www.w3.org/2000/svg",h):document.createElement(h,f.is&&f),o=null,a=!1}if(null===h)d===f||a&&e.data===f||(e.data=f);else{if(o=o&&Zt.call(e.childNodes),c=(d=n.props||nn).dangerouslySetInnerHTML,u=f.dangerouslySetInnerHTML,!a){if(null!=o)for(d={},p=0;p<e.attributes.length;p++)d[e.attributes[p].name]=e.attributes[p].value;(u||c)&&(u&&(c&&u.__html==c.__html||u.__html===e.innerHTML)||(e.innerHTML=u&&u.__html||""))}if(function(e,t,n,r,i){var o;for(o in n)"children"===o||"key"===o||o in t||hn(e,o,null,n[o],r);for(o in t)i&&"function"!=typeof t[o]||"children"===o||"key"===o||"value"===o||"checked"===o||n[o]===t[o]||hn(e,o,t[o],n[o],r)}(e,f,d,i,a),u)t.__k=[];else if(p=t.props.children,En(e,Array.isArray(p)?p:[p],t,n,r,i&&"foreignObject"!==h,o,s,o?o[0]:n.__k&&vn(n,0),a),null!=o)for(p=o.length;p--;)null!=o[p]&&an(o[p]);a||("value"in f&&void 0!==(p=f.value)&&(p!==e.value||"progress"===h&&!p||"option"===h&&p!==d.value)&&hn(e,"value",p,d.value,!1),"checked"in f&&void 0!==(p=f.checked)&&p!==e.checked&&hn(e,"checked",p,d.checked,!1))}return e}function On(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){qt.__e(e,n)}}function xn(e,t,n){var r,i;if(qt.unmount&&qt.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||On(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){qt.__e(e,t)}r.base=r.__P=null,e.__c=void 0}if(r=e.__k)for(i=0;i<r.length;i++)r[i]&&xn(r[i],t,n||"function"!=typeof e.type);n||null==e.__e||an(e.__e),e.__=e.__e=e.__d=void 0}function In(e,t,n){return this.constructor(e,n)}function Mn(e,t,n){var r,i,o;qt.__&&qt.__(e,t),i=(r="function"==typeof n)?null:n&&n.__k||t.__k,o=[],Tn(t,e=(!r&&n||t).__k=ln(dn,null,[e]),i||nn,nn,void 0!==t.ownerSVGElement,!r&&n?[n]:i?null:t.firstChild?Zt.call(t.childNodes):null,o,!r&&n?n:i?i.__e:t.firstChild,r),kn(o,e)}Zt=rn.slice,qt={__e:function(e,t,n,r){for(var i,o,s;t=t.__;)if((i=t.__c)&&!i.__)try{if((o=i.constructor)&&null!=o.getDerivedStateFromError&&(i.setState(o.getDerivedStateFromError(e)),s=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(e,r||{}),s=i.__d),s)return i.__E=i}catch(t){e=t}throw e}},Yt=0,Jt=function(e){return null!=e&&void 0===e.constructor},$t=!1,mn.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=sn({},this.state),"function"==typeof e&&(e=e(sn({},n),this.props)),e&&sn(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),yn(this))},mn.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),yn(this))},mn.prototype.render=dn,Xt=[],en="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,_n.__r=0,tn=0;var Nn,Bn,Hn,Pn=[],Un=[],jn=qt.__b,zn=qt.__r,Fn=qt.diffed,Ln=qt.__c,Vn=qt.unmount;function Wn(){for(var e;e=Pn.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(Zn),e.__H.__h.forEach(qn),e.__H.__h=[]}catch(t){e.__H.__h=[],qt.__e(t,e.__v)}}qt.__b=function(e){Nn=null,jn&&jn(e)},qt.__r=function(e){zn&&zn(e);var t=(Nn=e.__c).__H;t&&(Bn===Nn?(t.__h=[],Nn.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=Un,e.__N=e.i=void 0}))):(t.__h.forEach(Zn),t.__h.forEach(qn),t.__h=[])),Bn=Nn},qt.diffed=function(e){Fn&&Fn(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==Pn.push(t)&&Hn===qt.requestAnimationFrame||((Hn=qt.requestAnimationFrame)||Gn)(Wn)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==Un&&(e.__=e.__V),e.i=void 0,e.__V=Un}))),Bn=Nn=null},qt.__c=function(e,t){t.some((function(e){try{e.__h.forEach(Zn),e.__h=e.__h.filter((function(e){return!e.__||qn(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],qt.__e(n,e.__v)}})),Ln&&Ln(e,t)},qt.unmount=function(e){Vn&&Vn(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach((function(e){try{Zn(e)}catch(e){t=e}})),n.__H=void 0,t&&qt.__e(t,n.__v))};var Qn="function"==typeof requestAnimationFrame;function Gn(e){var t,n=function(){clearTimeout(r),Qn&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);Qn&&(t=requestAnimationFrame(n))}function Zn(e){var t=Nn,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Nn=t}function qn(e){var t=Nn;e.__c=e.__(),Nn=t}function Yn(e,t){for(var n in e)if("__source"!==n&&!(n in t))return!0;for(var r in t)if("__source"!==r&&e[r]!==t[r])return!0;return!1}function Jn(e){this.props=e}(Jn.prototype=new mn).isPureReactComponent=!0,Jn.prototype.shouldComponentUpdate=function(e,t){return Yn(this.props,e)||Yn(this.state,t)};var $n=qt.__b;qt.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),$n&&$n(e)};var Xn=qt.__e;qt.__e=function(e,t,n,r){if(e.then)for(var i,o=t;o=o.__;)if((i=o.__c)&&i.__c)return null==t.__e&&(t.__e=n.__e,t.__k=n.__k),i.__c(e,t);Xn(e,t,n,r)};var Kn=qt.unmount;function er(){this.__u=0,this.t=null,this.__b=null}function tr(e){var t=e.__.__c;return t&&t.__a&&t.__a(e)}function nr(){this.u=null,this.o=null}qt.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&!0===e.__h&&(e.type=null),Kn&&Kn(e)},(er.prototype=new mn).__c=function(e,t){var n=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(n);var i=tr(r.__v),o=!1,s=function(){o||(o=!0,n.__R=null,i?i(a):a())};n.__R=s;var a=function(){if(!--r.__u){if(r.state.__a){var e=r.state.__a;r.__v.__k[0]=function e(t,n,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map((function(t){return e(t,n,r)})),t.__c&&t.__c.__P===n&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(e,e.__c.__P,e.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate()}},l=!0===t.__h;r.__u++||l||r.setState({__a:r.__b=r.__v.__k[0]}),e.then(s,s)},er.prototype.componentWillUnmount=function(){this.t=[]},er.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var n=document.createElement("div"),r=this.__v.__k[0].__c;this.__v.__k[0]=function e(t,n,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach((function(e){"function"==typeof e.__c&&e.__c()})),t.__c.__H=null),null!=(t=function(e,t){for(var n in t)e[n]=t[n];return e}({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=n),t.__c=null),t.__k=t.__k&&t.__k.map((function(t){return e(t,n,r)}))),t}(this.__b,n,r.__O=r.__P)}this.__b=null}var i=t.__a&&ln(dn,null,e.fallback);return i&&(i.__h=null),[ln(dn,null,t.__a?null:e.children),i]};var rr=function(e,t,n){if(++n[1]===n[0]&&e.o.delete(t),e.props.revealOrder&&("t"!==e.props.revealOrder[0]||!e.o.size))for(n=e.u;n;){for(;n.length>3;)n.pop()();if(n[1]<n[0])break;e.u=n=n[2]}};function ir(e){return this.getChildContext=function(){return e.context},e.children}function or(e){var t=this,n=e.i;t.componentWillUnmount=function(){Mn(null,t.l),t.l=null,t.i=null},t.i&&t.i!==n&&t.componentWillUnmount(),e.__v?(t.l||(t.i=n,t.l={nodeType:1,parentNode:n,childNodes:[],appendChild:function(e){this.childNodes.push(e),t.i.appendChild(e)},insertBefore:function(e,n){this.childNodes.push(e),t.i.appendChild(e)},removeChild:function(e){this.childNodes.splice(this.childNodes.indexOf(e)>>>1,1),t.i.removeChild(e)}}),Mn(ln(ir,{context:t.context},e.__v),t.l)):t.l&&t.componentWillUnmount()}function sr(e,t){var n=ln(or,{__v:e,i:t});return n.containerInfo=t,n}(nr.prototype=new mn).__a=function(e){var t=this,n=tr(t.__v),r=t.o.get(e);return r[0]++,function(i){var o=function(){t.props.revealOrder?(r.push(i),rr(t,e,r)):i()};n?n(o):o()}},nr.prototype.render=function(e){this.u=null,this.o=new Map;var t=Cn(e.children);e.revealOrder&&"b"===e.revealOrder[0]&&t.reverse();for(var n=t.length;n--;)this.o.set(t[n],this.u=[1,0,this.u]);return e.children},nr.prototype.componentDidUpdate=nr.prototype.componentDidMount=function(){var e=this;this.o.forEach((function(t,n){rr(e,n,t)}))};var ar="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,lr=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,cr="undefined"!=typeof document,ur=function(e){return("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(e)};mn.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach((function(e){Object.defineProperty(mn.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})}));var dr=qt.event;function fr(){}function hr(){return this.cancelBubble}function pr(){return this.defaultPrevented}qt.event=function(e){return dr&&(e=dr(e)),e.persist=fr,e.isPropagationStopped=hr,e.isDefaultPrevented=pr,e.nativeEvent=e};var gr={configurable:!0,get:function(){return this.class}},mr=qt.vnode;qt.vnode=function(e){var t=e.type,n=e.props,r=n;if("string"==typeof t){var i=-1===t.indexOf("-");for(var o in r={},n){var s=n[o];cr&&"children"===o&&"noscript"===t||"value"===o&&"defaultValue"in n&&null==s||("defaultValue"===o&&"value"in n&&null==n.value?o="value":"download"===o&&!0===s?s="":/ondoubleclick/i.test(o)?o="ondblclick":/^onchange(textarea|input)/i.test(o+t)&&!ur(n.type)?o="oninput":/^onfocus$/i.test(o)?o="onfocusin":/^onblur$/i.test(o)?o="onfocusout":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(o)?o=o.toLowerCase():i&&lr.test(o)?o=o.replace(/[A-Z0-9]/g,"-$&").toLowerCase():null===s&&(s=void 0),/^oninput$/i.test(o)&&(o=o.toLowerCase(),r[o]&&(o="oninputCapture")),r[o]=s)}"select"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=Cn(n.children).forEach((function(e){e.props.selected=-1!=r.value.indexOf(e.props.value)}))),"select"==t&&null!=r.defaultValue&&(r.value=Cn(n.children).forEach((function(e){e.props.selected=r.multiple?-1!=r.defaultValue.indexOf(e.props.value):r.defaultValue==e.props.value}))),e.props=r,n.class!=n.className&&(gr.enumerable="className"in n,null!=n.className&&(r.class=n.className),Object.defineProperty(r,"className",gr))}e.$$typeof=ar,mr&&mr(e)};var vr=qt.__r;function br(e){e();let t=qt.debounceRendering,n=[];for(qt.debounceRendering=function(e){n.push(e)},Mn(ln(Ar,{}),document.createElement("div"));n.length;)n.shift()();qt.debounceRendering=t}qt.__r=function(e){vr&&vr(e),e.__c};class Ar extends mn{render(){return ln("div",{})}componentDidMount(){this.setState({})}}function yr(e){let t=function(e,t){var n={__c:t="__cC"+tn++,__:e,Consumer:function(e,t){return e.children(t)},Provider:function(e){var n,r;return this.getChildContext||(n=[],(r={})[t]=this,this.getChildContext=function(){return r},this.shouldComponentUpdate=function(e){this.props.value!==e.value&&n.some((function(e){e.__e=!0,yn(e)}))},this.sub=function(e){n.push(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){n.splice(n.indexOf(e),1),t&&t.call(e)}}),e.children}};return n.Provider.__=n.Consumer.contextType=n}(e),n=t.Provider;return t.Provider=function(){let e=!this.getChildContext,t=n.apply(this,arguments);if(e){let e=[];this.shouldComponentUpdate=t=>{this.props.value!==t.value&&e.forEach(e=>{e.context=t.value,e.forceUpdate()})},this.sub=t=>{e.push(t);let n=t.componentWillUnmount;t.componentWillUnmount=()=>{e.splice(e.indexOf(t),1),n&&n.call(t)}}}return t},t}var _r={__proto__:null,flushSync:br,createContext:yr,createPortal:sr,Component:mn,Fragment:dn,cloneElement:function(e,t,n){var r,i,o,s=sn({},e.props);for(o in t)"key"==o?r=t[o]:"ref"==o?i=t[o]:s[o]=t[o];return arguments.length>2&&(s.children=arguments.length>3?Zt.call(arguments,2):n),cn(e.type,s,r||e.key,i||e.ref,null)},createElement:ln,createRef:un,h:ln,hydrate:function e(t,n){Mn(t,n,e)},get isValidElement(){return Jt},get options(){return qt},render:Mn,toChildArray:Cn};class Er{constructor(e,t,n,r){this.execFunc=e,this.emitter=t,this.scrollTime=n,this.scrollTimeReset=r,this.handleScrollRequest=e=>{this.queuedRequest=Object.assign({},this.queuedRequest||{},e),this.drain()},t.on("_scrollRequest",this.handleScrollRequest),this.fireInitialScroll()}detach(){this.emitter.off("_scrollRequest",this.handleScrollRequest)}update(e){e&&this.scrollTimeReset?this.fireInitialScroll():this.drain()}fireInitialScroll(){this.handleScrollRequest({time:this.scrollTime})}drain(){this.queuedRequest&&this.execFunc(this.queuedRequest)&&(this.queuedRequest=null)}}const Dr=yr({});function Cr(e,t,n,r,i,o,s,a,l,c,u,d,f){return{dateEnv:i,options:n,pluginHooks:s,emitter:c,dispatch:a,getCurrentData:l,calendarApi:u,viewSpec:e,viewApi:t,dateProfileGenerator:r,theme:o,isRtl:"rtl"===n.direction,addResizeHandler(e){c.on("_resize",e)},removeResizeHandler(e){c.off("_resize",e)},createScrollResponder:e=>new Er(e,c,N(n.scrollTime),n.scrollTimeReset),registerInteractiveComponent:d,unregisterInteractiveComponent:f}}class wr extends mn{shouldComponentUpdate(e,t){return this.debug&&console.log(Z(e,this.props),Z(t,this.state)),!q(this.props,e,this.propEquality)||!q(this.state,t,this.stateEquality)}safeSetState(e){q(this.state,Object.assign(Object.assign({},this.state),e),this.stateEquality)||this.setState(e)}}wr.addPropsEquality=function(e){let t=Object.create(this.prototype.propEquality);Object.assign(t,e),this.prototype.propEquality=t},wr.addStateEquality=function(e){let t=Object.create(this.prototype.stateEquality);Object.assign(t,e),this.prototype.stateEquality=t},wr.contextType=Dr,wr.prototype.propEquality={},wr.prototype.stateEquality={};class Sr extends wr{}function Tr(e,t){"function"==typeof e?e(t):e&&(e.current=t)}Sr.contextType=Dr;class kr extends Sr{constructor(){super(...arguments),this.uid=D()}prepareHits(){}queryHit(e,t,n,r){return null}isValidSegDownEl(e){return!this.props.eventDrag&&!this.props.eventResize&&!l(e,".fc-event-mirror")}isValidDateDownEl(e){return!(l(e,".fc-event:not(.fc-bg-event)")||l(e,".fc-more-link")||l(e,"a[data-navlink]")||l(e,".fc-popover"))}}function Rr(e,t){return"function"==typeof e&&(e=e()),null==e?t.createNowMarker():t.createMarker(e)}class Or{constructor(e){this.props=e,this.nowDate=Rr(e.nowInput,e.dateEnv),this.initHiddenDays()}buildPrev(e,t,n){let{dateEnv:r}=this.props,i=r.subtract(r.startOf(t,e.currentRangeUnit),e.dateIncrement);return this.build(i,-1,n)}buildNext(e,t,n){let{dateEnv:r}=this.props,i=r.add(r.startOf(t,e.currentRangeUnit),e.dateIncrement);return this.build(i,1,n)}build(e,t,n=!0){let r,i,o,s,a,l,{props:c}=this;var u,d;return r=this.buildValidRange(),r=this.trimHiddenDays(r),n&&(u=e,e=null!=(d=r).start&&u<d.start?d.start:null!=d.end&&u>=d.end?new Date(d.end.valueOf()-1):u),i=this.buildCurrentRangeInfo(e,t),o=/^(year|month|week|day)$/.test(i.unit),s=this.buildRenderRange(this.trimHiddenDays(i.range),i.unit,o),s=this.trimHiddenDays(s),a=s,c.showNonCurrentDates||(a=Ct(a,i.range)),a=this.adjustActiveRange(a),a=Ct(a,r),l=St(i.range,r),kt(s,e)||(e=s.start),{currentDate:e,validRange:r,currentRange:i.range,currentRangeUnit:i.unit,isRangeAllDay:o,activeRange:a,renderRange:s,slotMinTime:c.slotMinTime,slotMaxTime:c.slotMaxTime,isValid:l,dateIncrement:this.buildDateIncrement(i.duration)}}buildValidRange(){let e=this.props.validRangeInput,t="function"==typeof e?e.call(this.props.calendarApi,this.nowDate):e;return this.refineRange(t)||{start:null,end:null}}buildCurrentRangeInfo(e,t){let n,{props:r}=this,i=null,o=null,s=null;return r.duration?(i=r.duration,o=r.durationUnit,s=this.buildRangeFromDuration(e,t,i,o)):(n=this.props.dayCount)?(o="day",s=this.buildRangeFromDayCount(e,t,n)):(s=this.buildCustomVisibleRange(e))?o=r.dateEnv.greatestWholeUnit(s.start,s.end).unit:(i=this.getFallbackDuration(),o=U(i).unit,s=this.buildRangeFromDuration(e,t,i,o)),{duration:i,unit:o,range:s}}getFallbackDuration(){return N({day:1})}adjustActiveRange(e){let{dateEnv:t,usesMinMaxTime:n,slotMinTime:r,slotMaxTime:i}=this.props,{start:o,end:s}=e;return n&&(H(r)<0&&(o=oe(o),o=t.add(o,r)),H(i)>1&&(s=oe(s),s=K(s,-1),s=t.add(s,i))),{start:o,end:s}}buildRangeFromDuration(e,t,n,r){let i,o,s,{dateEnv:a,dateAlignment:l}=this.props;if(!l){let{dateIncrement:e}=this.props;l=e&&P(e)<P(n)?U(e).unit:r}function c(){i=a.startOf(e,l),o=a.add(i,n),s={start:i,end:o}}return H(n)<=1&&this.isHiddenDay(i)&&(i=this.skipHiddenDays(i,t),i=oe(i)),c(),this.trimHiddenDays(s)||(e=this.skipHiddenDays(e,t),c()),s}buildRangeFromDayCount(e,t,n){let r,{dateEnv:i,dateAlignment:o}=this.props,s=0,a=e;o&&(a=i.startOf(a,o)),a=oe(a),a=this.skipHiddenDays(a,t),r=a;do{r=K(r,1),this.isHiddenDay(r)||(s+=1)}while(s<n);return{start:a,end:r}}buildCustomVisibleRange(e){let{props:t}=this,n=t.visibleRangeInput,r="function"==typeof n?n.call(t.calendarApi,t.dateEnv.toDate(e)):n,i=this.refineRange(r);return!i||null!=i.start&&null!=i.end?i:null}buildRenderRange(e,t,n){return e}buildDateIncrement(e){let t,{dateIncrement:n}=this.props;return n||((t=this.props.dateAlignment)?N(1,t):e||N({days:1}))}refineRange(e){if(e){let t=function(e,t){let n=null,r=null;return e.start&&(n=t.createMarker(e.start)),e.end&&(r=t.createMarker(e.end)),n||r?n&&r&&r<n?null:{start:n,end:r}:null}(e,this.props.dateEnv);return t&&(t=gt(t)),t}return null}initHiddenDays(){let e,t=this.props.hiddenDays||[],n=[],r=0;for(!1===this.props.weekends&&t.push(0,6),e=0;e<7;e+=1)(n[e]=-1!==t.indexOf(e))||(r+=1);if(!r)throw new Error("invalid hiddenDays");this.isHiddenDayHash=n}trimHiddenDays(e){let{start:t,end:n}=e;return t&&(t=this.skipHiddenDays(t)),n&&(n=this.skipHiddenDays(n,-1,!0)),null==t||null==n||t<n?{start:t,end:n}:null}isHiddenDay(e){return e instanceof Date&&(e=e.getUTCDay()),this.isHiddenDayHash[e]}skipHiddenDays(e,t=1,n=!1){for(;this.isHiddenDayHash[(e.getUTCDay()+(n?t:0)+7)%7];)e=K(e,t);return e}}function xr(e,t,n){n.emitter.trigger("select",Object.assign(Object.assign({},Ir(e,n)),{jsEvent:t?t.origEvent:null,view:n.viewApi||n.calendarApi.view}))}function Ir(e,t){let n={};for(let r of t.pluginHooks.dateSpanTransforms)Object.assign(n,r(e,t));var r,i;return Object.assign(n,(r=e,i=t.dateEnv,Object.assign(Object.assign({},ni(r.range,i,r.allDay)),{allDay:r.allDay}))),n}function Mr(e,t,n){let{dateEnv:r,options:i}=n,o=t;return e?(o=oe(o),o=r.add(o,i.defaultAllDayEventDuration)):o=r.add(o,i.defaultTimedEventDuration),o}function Nr(e,t,n,r){let i=Wr(e.defs,t),o={defs:{},instances:{}};for(let t in e.defs){let s=e.defs[t];o.defs[t]=Br(s,i[t],n,r)}for(let t in e.instances){let s=e.instances[t],a=o.defs[s.defId];o.instances[t]=Hr(s,a,i[s.defId],n,r)}return o}function Br(e,t,n,r){let i=n.standardProps||{};null==i.hasEnd&&t.durationEditable&&(n.startDelta||n.endDelta)&&(i.hasEnd=!0);let o=Object.assign(Object.assign(Object.assign({},e),i),{ui:Object.assign(Object.assign({},e.ui),i.ui)});n.extendedProps&&(o.extendedProps=Object.assign(Object.assign({},o.extendedProps),n.extendedProps));for(let e of r.pluginHooks.eventDefMutationAppliers)e(o,n,r);return!o.hasEnd&&r.options.forceEventDuration&&(o.hasEnd=!0),o}function Hr(e,t,n,r,i){let{dateEnv:o}=i,s=r.standardProps&&!0===r.standardProps.allDay,a=r.standardProps&&!1===r.standardProps.hasEnd,l=Object.assign({},e);return s&&(l.range=pt(l.range)),r.datesDelta&&n.startEditable&&(l.range={start:o.add(l.range.start,r.datesDelta),end:o.add(l.range.end,r.datesDelta)}),r.startDelta&&n.durationEditable&&(l.range={start:o.add(l.range.start,r.startDelta),end:l.range.end}),r.endDelta&&n.durationEditable&&(l.range={start:l.range.start,end:o.add(l.range.end,r.endDelta)}),a&&(l.range={start:l.range.start,end:Mr(t.allDay,l.range.start,i)}),t.allDay&&(l.range={start:oe(l.range.start),end:oe(l.range.end)}),l.range.end<l.range.start&&(l.range.end=Mr(t.allDay,l.range.start,i)),l}class Pr{constructor(e,t){this.context=e,this.internalEventSource=t}remove(){this.context.dispatch({type:"REMOVE_EVENT_SOURCE",sourceId:this.internalEventSource.sourceId})}refetch(){this.context.dispatch({type:"FETCH_EVENT_SOURCES",sourceIds:[this.internalEventSource.sourceId],isRefetch:!0})}get id(){return this.internalEventSource.publicId}get url(){return this.internalEventSource.meta.url}get format(){return this.internalEventSource.meta.format}}class Ur{constructor(e,t,n){this._context=e,this._def=t,this._instance=n||null}setProp(e,t){if(e in st)console.warn("Could not set date-related prop 'name'. Use one of the date-related methods instead.");else if("id"===e)t=ot[e](t),this.mutate({standardProps:{publicId:t}});else if(e in ot)t=ot[e](t),this.mutate({standardProps:{[e]:t}});else if(e in et){let n=et[e](t);n="color"===e?{backgroundColor:t,borderColor:t}:"editable"===e?{startEditable:t,durationEditable:t}:{[e]:t},this.mutate({standardProps:{ui:n}})}else console.warn(`Could not set prop '${e}'. Use setExtendedProp instead.`)}setExtendedProp(e,t){this.mutate({extendedProps:{[e]:t}})}setStart(e,t={}){let{dateEnv:n}=this._context,r=n.createMarker(e);if(r&&this._instance){let e=mt(this._instance.range.start,r,n,t.granularity);t.maintainDuration?this.mutate({datesDelta:e}):this.mutate({startDelta:e})}}setEnd(e,t={}){let n,{dateEnv:r}=this._context;if((null==e||(n=r.createMarker(e),n))&&this._instance)if(n){let e=mt(this._instance.range.end,n,r,t.granularity);this.mutate({endDelta:e})}else this.mutate({standardProps:{hasEnd:!1}})}setDates(e,t,n={}){let r,{dateEnv:i}=this._context,o={allDay:n.allDay},s=i.createMarker(e);var a,l;if(s&&((null==t||(r=i.createMarker(t),r))&&this._instance)){let e=this._instance.range;!0===n.allDay&&(e=pt(e));let t=mt(e.start,s,i,n.granularity);if(r){let s=mt(e.end,r,i,n.granularity);l=s,(a=t).years===l.years&&a.months===l.months&&a.days===l.days&&a.milliseconds===l.milliseconds?this.mutate({datesDelta:t,standardProps:o}):this.mutate({startDelta:t,endDelta:s,standardProps:o})}else o.hasEnd=!1,this.mutate({datesDelta:t,standardProps:o})}}moveStart(e){let t=N(e);t&&this.mutate({startDelta:t})}moveEnd(e){let t=N(e);t&&this.mutate({endDelta:t})}moveDates(e){let t=N(e);t&&this.mutate({datesDelta:t})}setAllDay(e,t={}){let n={allDay:e},{maintainDuration:r}=t;null==r&&(r=this._context.options.allDayMaintainDuration),this._def.allDay!==e&&(n.hasEnd=r),this.mutate({standardProps:n})}formatRange(e){let{dateEnv:t}=this._context,n=this._instance,r=Ie(e);return this._def.hasEnd?t.formatRange(n.range.start,n.range.end,r,{forcedStartTzo:n.forcedStartTzo,forcedEndTzo:n.forcedEndTzo}):t.format(n.range.start,r,{forcedTzo:n.forcedStartTzo})}mutate(e){let t=this._instance;if(t){let n=this._def,r=this._context,{eventStore:i}=r.getCurrentData(),o=Ye(i,t.instanceId);o=Nr(o,{"":{display:"",startEditable:!0,durationEditable:!0,constraints:[],overlap:null,allows:[],backgroundColor:"",borderColor:"",textColor:"",classNames:[]}},e,r);let s=new Ur(r,n,t);this._def=o.defs[n.defId],this._instance=o.instances[t.instanceId],r.dispatch({type:"MERGE_EVENTS",eventStore:o}),r.emitter.trigger("eventChange",{oldEvent:s,event:this,relatedEvents:zr(o,r,t),revert(){r.dispatch({type:"RESET_EVENTS",eventStore:i})}})}}remove(){let e=this._context,t=jr(this);e.dispatch({type:"REMOVE_EVENTS",eventStore:t}),e.emitter.trigger("eventRemove",{event:this,relatedEvents:[],revert(){e.dispatch({type:"MERGE_EVENTS",eventStore:t})}})}get source(){let{sourceId:e}=this._def;return e?new Pr(this._context,this._context.getCurrentData().eventSources[e]):null}get start(){return this._instance?this._context.dateEnv.toDate(this._instance.range.start):null}get end(){return this._instance&&this._def.hasEnd?this._context.dateEnv.toDate(this._instance.range.end):null}get startStr(){let e=this._instance;return e?this._context.dateEnv.formatIso(e.range.start,{omitTime:this._def.allDay,forcedTzo:e.forcedStartTzo}):""}get endStr(){let e=this._instance;return e&&this._def.hasEnd?this._context.dateEnv.formatIso(e.range.end,{omitTime:this._def.allDay,forcedTzo:e.forcedEndTzo}):""}get id(){return this._def.publicId}get groupId(){return this._def.groupId}get allDay(){return this._def.allDay}get title(){return this._def.title}get url(){return this._def.url}get display(){return this._def.ui.display||"auto"}get startEditable(){return this._def.ui.startEditable}get durationEditable(){return this._def.ui.durationEditable}get constraint(){return this._def.ui.constraints[0]||null}get overlap(){return this._def.ui.overlap}get allow(){return this._def.ui.allows[0]||null}get backgroundColor(){return this._def.ui.backgroundColor}get borderColor(){return this._def.ui.borderColor}get textColor(){return this._def.ui.textColor}get classNames(){return this._def.ui.classNames}get extendedProps(){return this._def.extendedProps}toPlainObject(e={}){let t=this._def,{ui:n}=t,{startStr:r,endStr:i}=this,o={allDay:t.allDay};return t.title&&(o.title=t.title),r&&(o.start=r),i&&(o.end=i),t.publicId&&(o.id=t.publicId),t.groupId&&(o.groupId=t.groupId),t.url&&(o.url=t.url),n.display&&"auto"!==n.display&&(o.display=n.display),e.collapseColor&&n.backgroundColor&&n.backgroundColor===n.borderColor?o.color=n.backgroundColor:(n.backgroundColor&&(o.backgroundColor=n.backgroundColor),n.borderColor&&(o.borderColor=n.borderColor)),n.textColor&&(o.textColor=n.textColor),n.classNames.length&&(o.classNames=n.classNames),Object.keys(t.extendedProps).length&&(e.collapseExtendedProps?Object.assign(o,t.extendedProps):o.extendedProps=t.extendedProps),o}toJSON(){return this.toPlainObject()}}function jr(e){let t=e._def,n=e._instance;return{defs:{[t.defId]:t},instances:n?{[n.instanceId]:n}:{}}}function zr(e,t,n){let{defs:r,instances:i}=e,o=[],s=n?n.instanceId:"";for(let e in i){let n=i[e],a=r[n.defId];n.instanceId!==s&&o.push(new Ur(t,a,n))}return o}function Fr(e,t,n,r){let i={},o={},s={},a=[],l=[],c=Wr(e.defs,t);for(let t in e.defs){let n=e.defs[t];"inverse-background"===c[n.defId].display&&(n.groupId?(i[n.groupId]=[],s[n.groupId]||(s[n.groupId]=n)):o[t]=[])}for(let t in e.instances){let s=e.instances[t],u=e.defs[s.defId],d=c[u.defId],f=s.range,h=!u.allDay&&r?gt(f,r):f,p=Ct(h,n);p&&("inverse-background"===d.display?u.groupId?i[u.groupId].push(p):o[s.defId].push(p):"none"!==d.display&&("background"===d.display?a:l).push({def:u,ui:d,instance:s,range:p,isStart:h.start&&h.start.valueOf()===p.start.valueOf(),isEnd:h.end&&h.end.valueOf()===p.end.valueOf()}))}for(let e in i){let t=Et(i[e],n);for(let n of t){let t=s[e],r=c[t.defId];a.push({def:t,ui:r,instance:null,range:n,isStart:!1,isEnd:!1})}}for(let t in o){let r=Et(o[t],n);for(let n of r)a.push({def:e.defs[t],ui:c[t],instance:null,range:n,isStart:!1,isEnd:!1})}return{bg:a,fg:l}}function Lr(e,t){e.fcSeg=t}function Vr(e){return e.fcSeg||e.parentNode.fcSeg||null}function Wr(e,t){return L(e,e=>Qr(e,t))}function Qr(e,t){let n=[];return t[""]&&n.push(t[""]),t[e.defId]&&n.push(t[e.defId]),n.push(e.ui),rt(n)}function Gr(e){let{eventRange:t}=e,n=t.def,r=t.instance?t.instance.range:t.range,i=r.start?r.start.valueOf():0,o=r.end?r.end.valueOf():0;return Object.assign(Object.assign(Object.assign({},n.extendedProps),n),{id:n.publicId,start:i,end:o,duration:o-i,allDay:Number(n.allDay),_seg:e})}function Zr(e,t){let{pluginHooks:n}=t,r=n.isDraggableTransformers,{def:i,ui:o}=e.eventRange,s=o.startEditable;for(let e of r)s=e(s,i,o,t);return s}function qr(e,t){return e.isStart&&e.eventRange.ui.durationEditable&&t.options.eventResizableFromStart}function Yr(e,t){return e.isEnd&&e.eventRange.ui.durationEditable}function Jr(e,t,n,r,i,o,s){let{dateEnv:a,options:l}=n,{displayEventTime:c,displayEventEnd:u}=l,d=e.eventRange.def,f=e.eventRange.instance;null==c&&(c=!1!==r),null==u&&(u=!1!==i);let h=f.range.start,p=f.range.end,g=o||e.start||e.eventRange.range.start,m=s||e.end||e.eventRange.range.end,v=oe(h).valueOf()===oe(g).valueOf(),b=oe(ee(p,-1)).valueOf()===oe(ee(m,-1)).valueOf();return c&&!d.allDay&&(v||b)?(g=v?h:g,m=b?p:m,u&&d.hasEnd?a.formatRange(g,m,t,{forcedStartTzo:o?null:f.forcedStartTzo,forcedEndTzo:s?null:f.forcedEndTzo}):a.format(g,t,{forcedTzo:o?null:f.forcedStartTzo})):""}function $r(e){let t=["fc-event"];return e.isMirror&&t.push("fc-event-mirror"),e.isDraggable&&t.push("fc-event-draggable"),(e.isStartResizable||e.isEndResizable)&&t.push("fc-event-resizable"),e.isDragging&&t.push("fc-event-dragging"),e.isResizing&&t.push("fc-event-resizing"),e.isSelected&&t.push("fc-event-selected"),e.isStart&&t.push("fc-event-start"),e.isEnd&&t.push("fc-event-end"),e.isPast&&t.push("fc-event-past"),e.isToday&&t.push("fc-event-today"),e.isFuture&&t.push("fc-event-future"),t}function Xr(e,t){let{def:n,instance:r}=e.eventRange,{url:i}=n;if(i)return{href:i};let{emitter:o,options:s}=t,{eventInteractive:a}=s;return null==a&&(a=n.interactive,null==a&&(a=Boolean(o.hasHandlers("eventClick")))),a?_(e=>{o.trigger("eventClick",{el:e.target,event:new Ur(t,n,r),jsEvent:e,view:t.viewApi})}):{}}const Kr={start:Ve,end:Ve,allDay:Boolean};function ei(e,t,n){let r=function(e,t){let{refined:n,extra:r}=Le(e,Kr),i=n.start?t.createMarkerMeta(n.start):null,o=n.end?t.createMarkerMeta(n.end):null,{allDay:s}=n;null==s&&(s=i&&i.isTimeUnspecified&&(!o||o.isTimeUnspecified));return Object.assign({range:{start:i?i.marker:null,end:o?o.marker:null},allDay:s},r)}(e,t),{range:i}=r;if(!i.start)return null;if(!i.end){if(null==n)return null;i.end=t.add(i.start,n)}return r}function ti(e,t,n){return Object.assign(Object.assign({},ni(e,t,n)),{timeZone:t.timeZone})}function ni(e,t,n){return{start:t.toDate(e.start),end:t.toDate(e.end),startStr:t.formatIso(e.start,{omitTime:n}),endStr:t.formatIso(e.end,{omitTime:n})}}let ri={};var ii,oi;ii="gregory",oi=class{getMarkerYear(e){return e.getUTCFullYear()}getMarkerMonth(e){return e.getUTCMonth()}getMarkerDay(e){return e.getUTCDate()}arrayToMarker(e){return de(e)}markerToArray(e){return ue(e)}},ri[ii]=oi;const si=/^\s*(\d{4})(-?(\d{2})(-?(\d{2})([T ](\d{2}):?(\d{2})(:?(\d{2})(\.(\d+))?)?(Z|(([-+])(\d{2})(:?(\d{2}))?))?)?)?)?$/;function ai(e){let t=si.exec(e);if(t){let e=new Date(Date.UTC(Number(t[1]),t[3]?Number(t[3])-1:0,Number(t[5]||1),Number(t[7]||0),Number(t[8]||0),Number(t[10]||0),t[12]?1e3*Number("0."+t[12]):0));if(fe(e)){let n=null;return t[13]&&(n=("-"===t[15]?-1:1)*(60*Number(t[16]||0)+Number(t[18]||0))),{marker:e,isTimeUnspecified:!t[6],timeZoneOffset:n}}}return null}class li{constructor(e){let t=this.timeZone=e.timeZone,n="local"!==t&&"UTC"!==t;e.namedTimeZoneImpl&&n&&(this.namedTimeZoneImpl=new e.namedTimeZoneImpl(t)),this.canComputeOffset=Boolean(!n||this.namedTimeZoneImpl),this.calendarSystem=function(e){return new ri[e]}(e.calendarSystem),this.locale=e.locale,this.weekDow=e.locale.week.dow,this.weekDoy=e.locale.week.doy,"ISO"===e.weekNumberCalculation&&(this.weekDow=1,this.weekDoy=4),"number"==typeof e.firstDay&&(this.weekDow=e.firstDay),"function"==typeof e.weekNumberCalculation&&(this.weekNumberFunc=e.weekNumberCalculation),this.weekText=null!=e.weekText?e.weekText:e.locale.options.weekText,this.weekTextLong=(null!=e.weekTextLong?e.weekTextLong:e.locale.options.weekTextLong)||this.weekText,this.cmdFormatter=e.cmdFormatter,this.defaultSeparator=e.defaultSeparator}createMarker(e){let t=this.createMarkerMeta(e);return null===t?null:t.marker}createNowMarker(){return this.canComputeOffset?this.timestampToMarker((new Date).valueOf()):de(le(new Date))}createMarkerMeta(e){if("string"==typeof e)return this.parse(e);let t=null;return"number"==typeof e?t=this.timestampToMarker(e):e instanceof Date?(e=e.valueOf(),isNaN(e)||(t=this.timestampToMarker(e))):Array.isArray(e)&&(t=de(e)),null!==t&&fe(t)?{marker:t,isTimeUnspecified:!1,forcedTzo:null}:null}parse(e){let t=ai(e);if(null===t)return null;let{marker:n}=t,r=null;return null!==t.timeZoneOffset&&(this.canComputeOffset?n=this.timestampToMarker(n.valueOf()-60*t.timeZoneOffset*1e3):r=t.timeZoneOffset),{marker:n,isTimeUnspecified:t.isTimeUnspecified,forcedTzo:r}}getYear(e){return this.calendarSystem.getMarkerYear(e)}getMonth(e){return this.calendarSystem.getMarkerMonth(e)}getDay(e){return this.calendarSystem.getMarkerDay(e)}add(e,t){let n=this.calendarSystem.markerToArray(e);return n[0]+=t.years,n[1]+=t.months,n[2]+=t.days,n[6]+=t.milliseconds,this.calendarSystem.arrayToMarker(n)}subtract(e,t){let n=this.calendarSystem.markerToArray(e);return n[0]-=t.years,n[1]-=t.months,n[2]-=t.days,n[6]-=t.milliseconds,this.calendarSystem.arrayToMarker(n)}addYears(e,t){let n=this.calendarSystem.markerToArray(e);return n[0]+=t,this.calendarSystem.arrayToMarker(n)}addMonths(e,t){let n=this.calendarSystem.markerToArray(e);return n[1]+=t,this.calendarSystem.arrayToMarker(n)}diffWholeYears(e,t){let{calendarSystem:n}=this;return he(e)===he(t)&&n.getMarkerDay(e)===n.getMarkerDay(t)&&n.getMarkerMonth(e)===n.getMarkerMonth(t)?n.getMarkerYear(t)-n.getMarkerYear(e):null}diffWholeMonths(e,t){let{calendarSystem:n}=this;return he(e)===he(t)&&n.getMarkerDay(e)===n.getMarkerDay(t)?n.getMarkerMonth(t)-n.getMarkerMonth(e)+12*(n.getMarkerYear(t)-n.getMarkerYear(e)):null}greatestWholeUnit(e,t){let n=this.diffWholeYears(e,t);return null!==n?{unit:"year",value:n}:(n=this.diffWholeMonths(e,t),null!==n?{unit:"month",value:n}:(n=re(e,t),null!==n?{unit:"week",value:n}:(n=ie(e,t),null!==n?{unit:"day",value:n}:(n=function(e,t){return(t.valueOf()-e.valueOf())/36e5}(e,t),O(n)?{unit:"hour",value:n}:(n=function(e,t){return(t.valueOf()-e.valueOf())/6e4}(e,t),O(n)?{unit:"minute",value:n}:(n=function(e,t){return(t.valueOf()-e.valueOf())/1e3}(e,t),O(n)?{unit:"second",value:n}:{unit:"millisecond",value:t.valueOf()-e.valueOf()}))))))}countDurationsBetween(e,t,n){let r;return n.years&&(r=this.diffWholeYears(e,t),null!==r)?r/(H(n)/365):n.months&&(r=this.diffWholeMonths(e,t),null!==r)?r/function(e){return H(e)/30}(n):n.days&&(r=ie(e,t),null!==r)?r/H(n):(t.valueOf()-e.valueOf())/P(n)}startOf(e,t){return"year"===t?this.startOfYear(e):"month"===t?this.startOfMonth(e):"week"===t?this.startOfWeek(e):"day"===t?oe(e):"hour"===t?function(e){return de([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours()])}(e):"minute"===t?function(e){return de([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes()])}(e):"second"===t?function(e){return de([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds()])}(e):null}startOfYear(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e)])}startOfMonth(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e),this.calendarSystem.getMarkerMonth(e)])}startOfWeek(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e),this.calendarSystem.getMarkerMonth(e),e.getUTCDate()-(e.getUTCDay()-this.weekDow+7)%7])}computeWeekNumber(e){return this.weekNumberFunc?this.weekNumberFunc(this.toDate(e)):function(e,t,n){let r=e.getUTCFullYear(),i=se(e,r,t,n);if(i<1)return se(e,r-1,t,n);let o=se(e,r+1,t,n);return o>=1?Math.min(i,o):i}(e,this.weekDow,this.weekDoy)}format(e,t,n={}){return t.format({marker:e,timeZoneOffset:null!=n.forcedTzo?n.forcedTzo:this.offsetForMarker(e)},this)}formatRange(e,t,n,r={}){return r.isEndExclusive&&(t=ee(t,-1)),n.formatRange({marker:e,timeZoneOffset:null!=r.forcedStartTzo?r.forcedStartTzo:this.offsetForMarker(e)},{marker:t,timeZoneOffset:null!=r.forcedEndTzo?r.forcedEndTzo:this.offsetForMarker(t)},this,r.defaultSeparator)}formatIso(e,t={}){let n=null;return t.omitTimeZoneOffset||(n=null!=t.forcedTzo?t.forcedTzo:this.offsetForMarker(e)),pe(e,n,t.omitTime)}timestampToMarker(e){return"local"===this.timeZone?de(le(new Date(e))):"UTC"!==this.timeZone&&this.namedTimeZoneImpl?de(this.namedTimeZoneImpl.timestampToArray(e)):new Date(e)}offsetForMarker(e){return"local"===this.timeZone?-ce(ue(e)).getTimezoneOffset():"UTC"===this.timeZone?0:this.namedTimeZoneImpl?this.namedTimeZoneImpl.offsetForArray(ue(e)):null}toDate(e,t){return"local"===this.timeZone?ce(ue(e)):"UTC"===this.timeZone?new Date(e.valueOf()):this.namedTimeZoneImpl?new Date(e.valueOf()-1e3*this.namedTimeZoneImpl.offsetForArray(ue(e))*60):new Date(e.valueOf()-(t||0))}}function ci(e){return e.span.end}function ui(e){return e.index+":"+e.span.start}function di(e,t){let n=Math.max(e.start,t.start),r=Math.min(e.end,t.end);return n<r?{start:n,end:r}:null}function fi(e,t,n){e.splice(t,0,n)}function hi(e,t,n){let r=0,i=e.length;if(!i||t<n(e[r]))return[0,0];if(t>n(e[i-1]))return[i,0];for(;r<i;){let o=Math.floor(r+(i-r)/2),s=n(e[o]);if(t<s)i=o;else{if(!(t>s))return[o,1];r=o+1}}return[r,0]}class pi{constructor(e){this.component=e.component,this.isHitComboAllowed=e.isHitComboAllowed||null}destroy(){}}const gi={};const mi={startTime:N,duration:N,create:Boolean,sourceId:String};class vi extends Sr{constructor(){super(...arguments),this.state={forPrint:!1},this.handleBeforePrint=()=>{this.setState({forPrint:!0})},this.handleAfterPrint=()=>{this.setState({forPrint:!1})}}render(){let{props:e}=this,{options:t}=e,{forPrint:n}=this.state,r=n||"auto"===t.height||"auto"===t.contentHeight,i=r||null==t.height?"":t.height,o=["fc",n?"fc-media-print":"fc-media-screen","fc-direction-"+t.direction,e.theme.getClass("root")];return At()||o.push("fc-liquid-hack"),e.children(o,i,r,n)}componentDidMount(){let{emitter:e}=this.props;e.on("_beforeprint",this.handleBeforePrint),e.on("_afterprint",this.handleAfterPrint)}componentWillUnmount(){let{emitter:e}=this.props;e.off("_beforeprint",this.handleBeforePrint),e.off("_afterprint",this.handleAfterPrint)}}function bi(e,t){return Ie(!e||t>10?{weekday:"short"}:t>1?{weekday:"short",month:"numeric",day:"numeric",omitCommas:!0}:{weekday:"long"})}const Ai="fc-col-header-cell";function yi(e){return e.text}class _i extends Sr{constructor(){super(...arguments),this.id=D(),this.queuedDomNodes=[],this.currentDomNodes=[],this.handleEl=e=>{this.props.elRef&&Tr(this.props.elRef,e)}}render(){const{props:e,context:t}=this,{options:n}=t,{customGenerator:r,defaultGenerator:i,renderProps:o}=e,s=Di(e);let a,l,c=!1,u=[];if(null!=r){const e="function"==typeof r?r(o,ln):r;if(!0===e)c=!0;else{const t=e&&"object"==typeof e;t&&"html"in e?s.dangerouslySetInnerHTML={__html:e.html}:t&&"domNodes"in e?u=Array.prototype.slice.call(e.domNodes):t||"function"==typeof e?l=e:a=e}}else c=!Ei(e.generatorName,n);return c&&i&&(a=i(o)),this.queuedDomNodes=u,this.currentGeneratorMeta=l,ln(e.elTag,s,a)}componentDidMount(){this.applyQueueudDomNodes(),this.triggerCustomRendering(!0)}componentDidUpdate(){this.applyQueueudDomNodes(),this.triggerCustomRendering(!0)}componentWillUnmount(){this.triggerCustomRendering(!1)}triggerCustomRendering(e){var t;const{props:n,context:r}=this,{handleCustomRendering:i,customRenderingMetaMap:o}=r.options;if(i){const r=null!==(t=this.currentGeneratorMeta)&&void 0!==t?t:null==o?void 0:o[n.generatorName];r&&i(Object.assign(Object.assign({id:this.id,isActive:e,containerEl:this.base,reportNewContainerEl:this.handleEl,generatorMeta:r},n),{elClasses:(n.elClasses||[]).filter(Ci)}))}}applyQueueudDomNodes(){const{queuedDomNodes:e,currentDomNodes:t}=this,n=this.base;if(!$(e,t)){t.forEach(a);for(let t of e)n.appendChild(t);this.currentDomNodes=e}}}function Ei(e,t){var n;return Boolean(t.handleCustomRendering&&e&&(null===(n=t.customRenderingMetaMap)||void 0===n?void 0:n[e]))}function Di(e,t){const n=Object.assign(Object.assign({},e.elAttrs),{ref:e.elRef});return(e.elClasses||t)&&(n.className=(e.elClasses||[]).concat(t||[]).concat(n.className||[]).filter(Boolean).join(" ")),e.elStyle&&(n.style=e.elStyle),n}function Ci(e){return Boolean(e)}_i.addPropsEquality({elClasses:$,elStyle:Q,elAttrs:function(e,t){const n=Z(e,t);for(let e of n)if(!G.test(e))return!1;return!0},renderProps:Q});const wi=yr(0);class Si extends mn{constructor(){super(...arguments),this.InnerContent=Ti.bind(void 0,this),this.handleRootEl=e=>{this.rootEl=e,this.props.elRef&&Tr(this.props.elRef,e)}}render(){const{props:e}=this,t=function(e,t){const n="function"==typeof e?e(t):e||[];return"string"==typeof n?[n]:n}(e.classNameGenerator,e.renderProps);if(e.children){const n=Di(e,t),r=e.children(this.InnerContent,e.renderProps,n);return e.elTag?ln(e.elTag,n,r):r}return ln(_i,Object.assign(Object.assign({},e),{elRef:this.handleRootEl,elTag:e.elTag||"div",elClasses:(e.elClasses||[]).concat(t),renderId:this.context}))}componentDidMount(){var e,t;null===(t=(e=this.props).didMount)||void 0===t||t.call(e,Object.assign(Object.assign({},this.props.renderProps),{el:this.rootEl||this.base}))}componentWillUnmount(){var e,t;null===(t=(e=this.props).willUnmount)||void 0===t||t.call(e,Object.assign(Object.assign({},this.props.renderProps),{el:this.rootEl||this.base}))}}function Ti(e,t){const n=e.props;return ln(_i,Object.assign({renderProps:n.renderProps,generatorName:n.generatorName,customGenerator:n.customGenerator,defaultGenerator:n.defaultGenerator,renderId:e.context},t))}Si.contextType=wi;class ki extends Sr{render(){let{dateEnv:e,options:t,theme:n,viewApi:r}=this.context,{props:i}=this,{date:o,dateProfile:s}=i,a=Rt(o,i.todayRange,null,s),l=[Ai].concat(Ot(a,n)),c=e.format(o,i.dayHeaderFormat),u=!a.isDisabled&&i.colCnt>1?Mt(this.context,o):{},d=Object.assign(Object.assign(Object.assign({date:e.toDate(o),view:r},i.extraRenderProps),{text:c}),a);return ln(Si,{elTag:"th",elClasses:l,elAttrs:Object.assign({role:"columnheader",colSpan:i.colSpan,"data-date":a.isDisabled?void 0:ge(o)},i.extraDataAttrs),renderProps:d,generatorName:"dayHeaderContent",customGenerator:t.dayHeaderContent,defaultGenerator:yi,classNameGenerator:t.dayHeaderClassNames,didMount:t.dayHeaderDidMount,willUnmount:t.dayHeaderWillUnmount},e=>ln("div",{className:"fc-scrollgrid-sync-inner"},!a.isDisabled&&ln(e,{elTag:"a",elAttrs:u,elClasses:["fc-col-header-cell-cushion",i.isSticky&&"fc-sticky"]})))}}const Ri=Ie({weekday:"long"});class Oi extends Sr{render(){let{props:e}=this,{dateEnv:t,theme:n,viewApi:r,options:i}=this.context,o=K(new Date(2592e5),e.dow),s={dow:e.dow,isDisabled:!1,isFuture:!1,isPast:!1,isToday:!1,isOther:!1},a=t.format(o,e.dayHeaderFormat),l=Object.assign(Object.assign(Object.assign(Object.assign({date:o},s),{view:r}),e.extraRenderProps),{text:a});return ln(Si,{elTag:"th",elClasses:[Ai,...Ot(s,n),...e.extraClassNames||[]],elAttrs:Object.assign({role:"columnheader",colSpan:e.colSpan},e.extraDataAttrs),renderProps:l,generatorName:"dayHeaderContent",customGenerator:i.dayHeaderContent,defaultGenerator:yi,classNameGenerator:i.dayHeaderClassNames,didMount:i.dayHeaderDidMount,willUnmount:i.dayHeaderWillUnmount},n=>ln("div",{className:"fc-scrollgrid-sync-inner"},ln(n,{elTag:"a",elClasses:["fc-col-header-cell-cushion",e.isSticky&&"fc-sticky"],elAttrs:{"aria-label":t.format(o,Ri)}})))}}class xi extends mn{constructor(e,t){super(e,t),this.initialNowDate=Rr(t.options.now,t.dateEnv),this.initialNowQueriedMs=(new Date).valueOf(),this.state=this.computeTiming().currentState}render(){let{props:e,state:t}=this;return e.children(t.nowDate,t.todayRange)}componentDidMount(){this.setTimeout()}componentDidUpdate(e){e.unit!==this.props.unit&&(this.clearTimeout(),this.setTimeout())}componentWillUnmount(){this.clearTimeout()}computeTiming(){let{props:e,context:t}=this,n=ee(this.initialNowDate,(new Date).valueOf()-this.initialNowQueriedMs),r=t.dateEnv.startOf(n,e.unit),i=t.dateEnv.add(r,N(1,e.unit)),o=i.valueOf()-n.valueOf();return o=Math.min(864e5,o),{currentState:{nowDate:r,todayRange:Ii(r)},nextState:{nowDate:i,todayRange:Ii(i)},waitMs:o}}setTimeout(){let{nextState:e,waitMs:t}=this.computeTiming();this.timeoutId=setTimeout(()=>{this.setState(e,()=>{this.setTimeout()})},t)}clearTimeout(){this.timeoutId&&clearTimeout(this.timeoutId)}}function Ii(e){let t=oe(e);return{start:t,end:K(t,1)}}xi.contextType=Dr;function Mi(e,t,n){return e||bi(t,n)}function Ni(e,t){let n=e.activeRange;return t?n:{start:ee(n.start,e.slotMinTime.milliseconds),end:ee(n.end,e.slotMaxTime.milliseconds-864e5)}}function Bi(e,t,n,r,i){switch(t.type){case"RECEIVE_EVENTS":return function(e,t,n,r,i,o){if(t&&n===t.latestFetchId){let n=Ze(Hi(i,t,o),t,o);return r&&(n=Qe(n,r,o)),$e(ji(e,t.sourceId),n)}return e}(e,n[t.sourceId],t.fetchId,t.fetchRange,t.rawEvents,i);case"RESET_RAW_EVENTS":return function(e,t,n,r,i){const{defIdMap:o,instanceIdMap:s}=function(e){const{defs:t,instances:n}=e,r={},i={};for(let e in t){const n=t[e],{publicId:i}=n;i&&(r[i]=e)}for(let e in n){const r=n[e],o=t[r.defId],{publicId:s}=o;s&&(i[s]=e)}return{defIdMap:r,instanceIdMap:i}}(e);return Qe(Ze(Hi(n,t,i),t,i,!1,o,s),r,i)}(e,n[t.sourceId],t.rawEvents,r.activeRange,i);case"ADD_EVENTS":return function(e,t,n,r){n&&(t=Qe(t,n,r));return $e(e,t)}(e,t.eventStore,r?r.activeRange:null,i);case"RESET_EVENTS":return t.eventStore;case"MERGE_EVENTS":return $e(e,t.eventStore);case"PREV":case"NEXT":case"CHANGE_DATE":case"CHANGE_VIEW_TYPE":return r?Qe(e,r.activeRange,i):e;case"REMOVE_EVENTS":return function(e,t){let{defs:n,instances:r}=e,i={},o={};for(let e in n)t.defs[e]||(i[e]=n[e]);for(let e in r)!t.instances[e]&&i[r[e].defId]&&(o[e]=r[e]);return{defs:i,instances:o}}(e,t.eventStore);case"REMOVE_EVENT_SOURCE":return ji(e,t.sourceId);case"REMOVE_ALL_EVENT_SOURCES":return Xe(e,e=>!e.sourceId);case"REMOVE_ALL_EVENTS":return{defs:{},instances:{}};default:return e}}function Hi(e,t,n){let r=n.options.eventDataTransform,i=t?t.eventDataTransform:null;return i&&(e=Pi(e,i)),r&&(e=Pi(e,r)),e}function Pi(e,t){let n;if(t){n=[];for(let r of e){let e=t(r);e?n.push(e):null==e&&n.push(r)}}else n=e;return n}function Ui(e,t,n){let{defs:r}=e,i=L(e.instances,e=>r[e.defId].allDay?e:Object.assign(Object.assign({},e),{range:{start:n.createMarker(t.toDate(e.range.start,e.forcedStartTzo)),end:n.createMarker(t.toDate(e.range.end,e.forcedEndTzo))},forcedStartTzo:n.canComputeOffset?null:e.forcedStartTzo,forcedEndTzo:n.canComputeOffset?null:e.forcedEndTzo}));return{defs:r,instances:i}}function ji(e,t){return Xe(e,e=>e.sourceId!==t)}function zi(e,t){let n=t.getCurrentData(),r=Object.assign({businessHours:n.businessHours,dateSelection:"",eventStore:n.eventStore,eventUiBases:n.eventUiBases,eventSelection:"",eventDrag:null,eventResize:null},e);return(t.pluginHooks.isPropsValid||Fi)(r,t)}function Fi(e,t,n={},r){return!(e.eventDrag&&!function(e,t,n,r){let i=t.getCurrentData(),o=e.eventDrag,s=o.mutatedEvents,a=s.defs,l=s.instances,c=Wr(a,o.isEvent?e.eventUiBases:{"":i.selectionConfig});r&&(c=L(c,r));let u=(p=e.eventStore,g=o.affectedEvents.instances,{defs:p.defs,instances:F(p.instances,e=>!g[e.instanceId])}),d=u.defs,f=u.instances,h=Wr(d,e.eventUiBases);var p,g;for(let r in l){let s=l[r],p=s.range,g=c[s.defId],m=a[s.defId];if(!Li(g.constraints,p,u,e.businessHours,t))return!1;let{eventOverlap:v}=t.options,b="function"==typeof v?v:null;for(let e in f){let n=f[e];if(St(p,n.range)){if(!1===h[n.defId].overlap&&o.isEvent)return!1;if(!1===g.overlap)return!1;if(b&&!b(new Ur(t,d[n.defId],n),new Ur(t,m,s)))return!1}}let A=i.eventStore;for(let e of g.allows){let i,o=Object.assign(Object.assign({},n),{range:s.range,allDay:m.allDay}),a=A.defs[m.defId],l=A.instances[r];if(i=a?new Ur(t,a,l):new Ur(t,m),!e(Ir(o,t),i))return!1}}return!0}(e,t,n,r))&&!(e.dateSelection&&!function(e,t,n,r){let i=e.eventStore,o=i.defs,s=i.instances,a=e.dateSelection,l=a.range,{selectionConfig:c}=t.getCurrentData();r&&(c=r(c));if(!Li(c.constraints,l,i,e.businessHours,t))return!1;let{selectOverlap:u}=t.options,d="function"==typeof u?u:null;for(let e in s){let n=s[e];if(St(l,n.range)){if(!1===c.overlap)return!1;if(d&&!d(new Ur(t,o[n.defId],n),null))return!1}}for(let e of c.allows){let r=Object.assign(Object.assign({},n),a);if(!e(Ir(r,t),null))return!1}return!0}(e,t,n,r))}function Li(e,t,n,r,i){for(let o of e)if(!Qi(Vi(o,t,n,r,i),t))return!1;return!0}function Vi(e,t,n,r,i){return"businessHours"===e?Wi(Qe(r,t,i)):"string"==typeof e?Wi(Xe(n,t=>t.groupId===e)):"object"==typeof e&&e?Wi(Qe(e,t,i)):[]}function Wi(e){let{instances:t}=e,n=[];for(let e in t)n.push(t[e].range);return n}function Qi(e,t){for(let n of e)if(Tt(n,t))return!0;return!1}class Gi extends Error{constructor(e,t){super(e),this.response=t}}function Zi(e,t,n){const r={method:e=e.toUpperCase()};return"GET"===e?t+=(-1===t.indexOf("?")?"?":"&")+new URLSearchParams(n):(r.body=new URLSearchParams(n),r.headers={"Content-Type":"application/x-www-form-urlencoded"}),fetch(t,r).then(e=>{if(e.ok)return e.json().then(t=>[t,e],()=>{throw new Gi("Failure parsing JSON",e)});throw new Gi("Request failed",e)})}class qi{constructor(e){this.drainedOption=e,this.isRunning=!1,this.isDirty=!1,this.pauseDepths={},this.timeoutId=0}request(e){this.isDirty=!0,this.isPaused()||(this.clearTimeout(),null==e?this.tryDrain():this.timeoutId=setTimeout(this.tryDrain.bind(this),e))}pause(e=""){let{pauseDepths:t}=this;t[e]=(t[e]||0)+1,this.clearTimeout()}resume(e="",t){let{pauseDepths:n}=this;if(e in n){if(t)delete n[e];else{n[e]-=1,n[e]<=0&&delete n[e]}this.tryDrain()}}isPaused(){return Object.keys(this.pauseDepths).length}tryDrain(){if(!this.isRunning&&!this.isPaused()){for(this.isRunning=!0;this.isDirty;)this.isDirty=!1,this.drained();this.isRunning=!1}}clear(){this.clearTimeout(),this.isDirty=!1,this.pauseDepths={}}clearTimeout(){this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=0)}drained(){this.drainedOption&&this.drainedOption()}}const Yi=/^(visible|hidden)$/;class Ji extends Sr{constructor(){super(...arguments),this.handleEl=e=>{this.el=e,Tr(this.props.elRef,e)}}render(){let{props:e}=this,{liquid:t,liquidIsAbsolute:n}=e,r=t&&n,i=["fc-scroller"];return t&&(n?i.push("fc-scroller-liquid-absolute"):i.push("fc-scroller-liquid")),ln("div",{ref:this.handleEl,className:i.join(" "),style:{overflowX:e.overflowX,overflowY:e.overflowY,left:r&&-(e.overcomeLeft||0)||"",right:r&&-(e.overcomeRight||0)||"",bottom:r&&-(e.overcomeBottom||0)||"",marginLeft:!r&&-(e.overcomeLeft||0)||"",marginRight:!r&&-(e.overcomeRight||0)||"",marginBottom:!r&&-(e.overcomeBottom||0)||"",maxHeight:e.maxHeight||""}},e.children)}needsXScrolling(){if(Yi.test(this.props.overflowX))return!1;let{el:e}=this,t=this.el.getBoundingClientRect().width-this.getYScrollbarWidth(),{children:n}=e;for(let e=0;e<n.length;e+=1){if(n[e].getBoundingClientRect().width>t)return!0}return!1}needsYScrolling(){if(Yi.test(this.props.overflowY))return!1;let{el:e}=this,t=this.el.getBoundingClientRect().height-this.getXScrollbarWidth(),{children:n}=e;for(let e=0;e<n.length;e+=1){if(n[e].getBoundingClientRect().height>t)return!0}return!1}getXScrollbarWidth(){return Yi.test(this.props.overflowX)?0:this.el.offsetHeight-this.el.clientHeight}getYScrollbarWidth(){return Yi.test(this.props.overflowY)?0:this.el.offsetWidth-this.el.clientWidth}}class $i{constructor(e){this.masterCallback=e,this.currentMap={},this.depths={},this.callbackMap={},this.handleValue=(e,t)=>{let{depths:n,currentMap:r}=this,i=!1,o=!1;null!==e?(i=t in r,r[t]=e,n[t]=(n[t]||0)+1,o=!0):(n[t]-=1,n[t]||(delete r[t],delete this.callbackMap[t],i=!0)),this.masterCallback&&(i&&this.masterCallback(null,String(t)),o&&this.masterCallback(e,String(t)))}}createRef(e){let t=this.callbackMap[e];return t||(t=this.callbackMap[e]=t=>{this.handleValue(t,String(e))}),t}collect(e,t,n){return J(this.currentMap,e,t,n)}getAll(){return W(this.currentMap)}}function Xi(e){let t=u(e,".fc-scrollgrid-shrink"),n=0;for(let e of t)n=Math.max(n,x(e));return Math.ceil(n)}function Ki(e,t){return e.liquid&&t.liquid}function eo(e,t){return null!=t.maxHeight||Ki(e,t)}function to(e,t,n,r){let{expandRows:i}=n;return"function"==typeof t.content?t.content(n):ln("table",{role:"presentation",className:[t.tableClassName,e.syncRowHeights?"fc-scrollgrid-sync-table":""].join(" "),style:{minWidth:n.tableMinWidth,width:n.clientWidth,height:i?n.clientHeight:""}},n.tableColGroupNode,ln(r?"thead":"tbody",{role:"presentation"},"function"==typeof t.rowContent?t.rowContent(n):t.rowContent))}function no(e,t){return $(e,t,Q)}function ro(e,t){let n=[];for(let r of e){let e=r.span||1;for(let i=0;i<e;i+=1)n.push(ln("col",{style:{width:"shrink"===r.width?io(t):r.width||"",minWidth:r.minWidth||""}}))}return ln("colgroup",{},...n)}function io(e){return null==e?4:e}function oo(e){for(let t of e)if("shrink"===t.width)return!0;return!1}function so(e,t){let n=["fc-scrollgrid",t.theme.getClass("table")];return e&&n.push("fc-scrollgrid-liquid"),n}function ao(e,t){let n=["fc-scrollgrid-section","fc-scrollgrid-section-"+e.type,e.className];return t&&e.liquid&&null==e.maxHeight&&n.push("fc-scrollgrid-section-liquid"),e.isSticky&&n.push("fc-scrollgrid-section-sticky"),n}class lo extends Sr{constructor(){super(...arguments),this.processCols=ve(e=>e,no),this.renderMicroColGroup=ve(ro),this.scrollerRefs=new $i,this.scrollerElRefs=new $i(this._handleScrollerEl.bind(this)),this.state={shrinkWidth:null,forceYScrollbars:!1,scrollerClientWidths:{},scrollerClientHeights:{}},this.handleSizing=()=>{this.safeSetState(Object.assign({shrinkWidth:this.computeShrinkWidth()},this.computeScrollerDims()))}}render(){let{props:e,state:t,context:n}=this,r=e.sections||[],i=this.processCols(e.cols),o=this.renderMicroColGroup(i,t.shrinkWidth),s=so(e.liquid,n);e.collapsibleWidth&&s.push("fc-scrollgrid-collapsible");let a,l=r.length,c=0,u=[],d=[],f=[];for(;c<l&&"header"===(a=r[c]).type;)u.push(this.renderSection(a,o,!0)),c+=1;for(;c<l&&"body"===(a=r[c]).type;)d.push(this.renderSection(a,o,!1)),c+=1;for(;c<l&&"footer"===(a=r[c]).type;)f.push(this.renderSection(a,o,!0)),c+=1;let h=!At();const p={role:"rowgroup"};return ln("table",{role:"grid",className:s.join(" "),style:{height:e.height}},Boolean(!h&&u.length)&&ln("thead",p,...u),Boolean(!h&&d.length)&&ln("tbody",p,...d),Boolean(!h&&f.length)&&ln("tfoot",p,...f),h&&ln("tbody",p,...u,...d,...f))}renderSection(e,t,n){return"outerContent"in e?ln(dn,{key:e.key},e.outerContent):ln("tr",{key:e.key,role:"presentation",className:ao(e,this.props.liquid).join(" ")},this.renderChunkTd(e,t,e.chunk,n))}renderChunkTd(e,t,n,r){if("outerContent"in n)return n.outerContent;let{props:i}=this,{forceYScrollbars:o,scrollerClientWidths:s,scrollerClientHeights:a}=this.state,l=eo(i,e),c=Ki(i,e),u=i.liquid?o?"scroll":l?"auto":"hidden":"visible",d=e.key,f=to(e,n,{tableColGroupNode:t,tableMinWidth:"",clientWidth:i.collapsibleWidth||void 0===s[d]?null:s[d],clientHeight:void 0!==a[d]?a[d]:null,expandRows:e.expandRows,syncRowHeights:!1,rowSyncHeights:[],reportRowHeightChange:()=>{}},r);return ln(r?"th":"td",{ref:n.elRef,role:"presentation"},ln("div",{className:"fc-scroller-harness"+(c?" fc-scroller-harness-liquid":"")},ln(Ji,{ref:this.scrollerRefs.createRef(d),elRef:this.scrollerElRefs.createRef(d),overflowY:u,overflowX:i.liquid?"hidden":"visible",maxHeight:e.maxHeight,liquid:c,liquidIsAbsolute:!0},f)))}_handleScrollerEl(e,t){let n=function(e,t){for(let n of e)if(n.key===t)return n;return null}(this.props.sections,t);n&&Tr(n.chunk.scrollerElRef,e)}componentDidMount(){this.handleSizing(),this.context.addResizeHandler(this.handleSizing)}componentDidUpdate(){this.handleSizing()}componentWillUnmount(){this.context.removeResizeHandler(this.handleSizing)}computeShrinkWidth(){return oo(this.props.cols)?Xi(this.scrollerElRefs.getAll()):0}computeScrollerDims(){let e=Pt(),{scrollerRefs:t,scrollerElRefs:n}=this,r=!1,i={},o={};for(let e in t.currentMap){let n=t.currentMap[e];if(n&&n.needsYScrolling()){r=!0;break}}for(let t of this.props.sections){let s=t.key,a=n.currentMap[s];if(a){let t=a.parentNode;i[s]=Math.floor(t.getBoundingClientRect().width-(r?e.y:0)),o[s]=Math.floor(t.getBoundingClientRect().height)}}return{forceYScrollbars:r,scrollerClientWidths:i,scrollerClientHeights:o}}}lo.addStateEquality({scrollerClientWidths:Q,scrollerClientHeights:Q});class co extends Sr{constructor(){super(...arguments),this.handleEl=e=>{this.el=e,e&&Lr(e,this.props.seg)}}render(){const{props:e,context:t}=this,{options:n}=t,{seg:r}=e,{eventRange:i}=r,{ui:o}=i,s={event:new Ur(t,i.def,i.instance),view:t.viewApi,timeText:e.timeText,textColor:o.textColor,backgroundColor:o.backgroundColor,borderColor:o.borderColor,isDraggable:!e.disableDragging&&Zr(r,t),isStartResizable:!e.disableResizing&&qr(r,t),isEndResizable:!e.disableResizing&&Yr(r),isMirror:Boolean(e.isDragging||e.isResizing||e.isDateSelecting),isStart:Boolean(r.isStart),isEnd:Boolean(r.isEnd),isPast:Boolean(e.isPast),isFuture:Boolean(e.isFuture),isToday:Boolean(e.isToday),isSelected:Boolean(e.isSelected),isDragging:Boolean(e.isDragging),isResizing:Boolean(e.isResizing)};return ln(Si,Object.assign({},e,{elRef:this.handleEl,elClasses:[...$r(s),...r.eventRange.ui.classNames,...e.elClasses||[]],renderProps:s,generatorName:"eventContent",customGenerator:n.eventContent,defaultGenerator:e.defaultGenerator,classNameGenerator:n.eventClassNames,didMount:n.eventDidMount,willUnmount:n.eventWillUnmount}))}componentDidUpdate(e){this.el&&this.props.seg!==e.seg&&Lr(this.el,this.props.seg)}}function uo(e){return ln("div",{className:"fc-event-main-frame"},e.timeText&&ln("div",{className:"fc-event-time"},e.timeText),ln("div",{className:"fc-event-title-container"},ln("div",{className:"fc-event-title fc-sticky"},e.event.title||ln(dn,null," "))))}const fo=Ie({day:"numeric"});class ho extends Sr{constructor(){super(...arguments),this.refineRenderProps=be(go)}render(){let{props:e,context:t}=this,{options:n}=t,r=this.refineRenderProps({date:e.date,dateProfile:e.dateProfile,todayRange:e.todayRange,isMonthStart:e.isMonthStart||!1,showDayNumber:e.showDayNumber,extraRenderProps:e.extraRenderProps,viewApi:t.viewApi,dateEnv:t.dateEnv,monthStartFormat:n.monthStartFormat});return ln(Si,Object.assign({},e,{elClasses:[...Ot(r,t.theme),...e.elClasses||[]],elAttrs:Object.assign(Object.assign({},e.elAttrs),r.isDisabled?{}:{"data-date":ge(e.date)}),renderProps:r,generatorName:"dayCellContent",customGenerator:n.dayCellContent,defaultGenerator:e.defaultGenerator,classNameGenerator:r.isDisabled?void 0:n.dayCellClassNames,didMount:n.dayCellDidMount,willUnmount:n.dayCellWillUnmount}))}}function po(e){return Boolean(e.dayCellContent||Ei("dayCellContent",e))}function go(e){let{date:t,dateEnv:n,dateProfile:r,isMonthStart:i}=e,o=Rt(t,e.todayRange,null,r),s=e.showDayNumber?n.format(t,i?e.monthStartFormat:fo):"";return Object.assign(Object.assign(Object.assign({date:n.toDate(t),view:e.viewApi},o),{isMonthStart:i,dayNumberText:s}),e.extraRenderProps)}function mo(e){let{title:t}=e.event;return t&&ln("div",{className:"fc-event-title"},e.event.title)}function vo(e){return e.text}class bo extends Sr{constructor(){super(...arguments),this.state={titleId:m()},this.handleRootEl=e=>{this.rootEl=e,this.props.elRef&&Tr(this.props.elRef,e)},this.handleDocumentMouseDown=e=>{const t=p(e);this.rootEl.contains(t)||this.handleCloseClick()},this.handleDocumentKeyDown=e=>{"Escape"===e.key&&this.handleCloseClick()},this.handleCloseClick=()=>{let{onClose:e}=this.props;e&&e()}}render(){let{theme:e,options:t}=this.context,{props:n,state:r}=this,i=["fc-popover",e.getClass("popover")].concat(n.extraClassNames||[]);return sr(ln("div",Object.assign({},n.extraAttrs,{id:n.id,className:i.join(" "),"aria-labelledby":r.titleId,ref:this.handleRootEl}),ln("div",{className:"fc-popover-header "+e.getClass("popoverHeader")},ln("span",{className:"fc-popover-title",id:r.titleId},n.title),ln("span",{className:"fc-popover-close "+e.getIconClass("close"),title:t.closeHint,onClick:this.handleCloseClick})),ln("div",{className:"fc-popover-body "+e.getClass("popoverContent")},n.children)),n.parentEl)}componentDidMount(){document.addEventListener("mousedown",this.handleDocumentMouseDown),document.addEventListener("keydown",this.handleDocumentKeyDown),this.updateSize()}componentWillUnmount(){document.removeEventListener("mousedown",this.handleDocumentMouseDown),document.removeEventListener("keydown",this.handleDocumentKeyDown)}updateSize(){let{isRtl:e}=this.context,{alignmentEl:t,alignGridTop:n}=this.props,{rootEl:r}=this,i=function(e){let t=Ft(e),n=e.getBoundingClientRect();for(let e of t){let t=vt(n,e.getBoundingClientRect());if(!t)return null;n=t}return n}(t);if(i){let o=r.getBoundingClientRect(),s=n?l(t,".fc-scrollgrid").getBoundingClientRect().top:i.top,a=e?i.right-o.width:i.left;s=Math.max(s,10),a=Math.min(a,document.documentElement.clientWidth-10-o.width),a=Math.max(a,10);let c=r.offsetParent.getBoundingClientRect();f(r,{top:s-c.top,left:a-c.left})}}}class Ao extends kr{constructor(){super(...arguments),this.handleRootEl=e=>{this.rootEl=e,e?this.context.registerInteractiveComponent(this,{el:e,useEventCenter:!1}):this.context.unregisterInteractiveComponent(this)}}render(){let{options:e,dateEnv:t}=this.context,{props:n}=this,{startDate:r,todayRange:i,dateProfile:o}=n,s=t.format(r,e.dayPopoverFormat);return ln(ho,{elRef:this.handleRootEl,date:r,dateProfile:o,todayRange:i},(t,r,i)=>ln(bo,{elRef:i.ref,id:n.id,title:s,extraClassNames:["fc-more-popover"].concat(i.className||[]),extraAttrs:i,parentEl:n.parentEl,alignmentEl:n.alignmentEl,alignGridTop:n.alignGridTop,onClose:n.onClose},po(e)&&ln(t,{elTag:"div",elClasses:["fc-more-popover-misc"]}),n.children))}queryHit(e,t,n,r){let{rootEl:i,props:o}=this;return e>=0&&e<n&&t>=0&&t<r?{dateProfile:o.dateProfile,dateSpan:Object.assign({allDay:!o.forceTimed,range:{start:o.startDate,end:o.endDate}},o.extraDateSpan),dayEl:i,rect:{left:0,top:0,right:n,bottom:r},layer:1}:null}}function yo(e){return e.text}function _o(e){if(e.allDayDate)return{start:e.allDayDate,end:K(e.allDayDate,1)};let{hiddenSegs:t}=e;return{start:Eo(t),end:(n=t,n.reduce(Co).eventRange.range.end)};var n}function Eo(e){return e.reduce(Do).eventRange.range.start}function Do(e,t){return e.eventRange.range.start<t.eventRange.range.start?e:t}function Co(e,t){return e.eventRange.range.end>t.eventRange.range.end?e:t}function wo(e){return[`fc-${e.type}-view`,"fc-view"]}const So={id:String,defaultAllDay:Boolean,url:String,format:String,events:Ve,eventDataTransform:Ve,success:Ve,failure:Ve};function To(e,t,n=ko(t)){let r;if("string"==typeof e?r={url:e}:"function"==typeof e||Array.isArray(e)?r={events:e}:"object"==typeof e&&e&&(r=e),r){let{refined:i,extra:o}=Le(r,n),s=function(e,t){let n=t.pluginHooks.eventSourceDefs;for(let t=n.length-1;t>=0;t-=1){let r=n[t].parseMeta(e);if(r)return{sourceDefId:t,meta:r}}return null}(i,t);if(s)return{_raw:e,isFetching:!1,latestFetchId:"",fetchRange:null,defaultAllDay:i.defaultAllDay,eventDataTransform:i.eventDataTransform,success:i.success,failure:i.failure,publicId:i.id||"",sourceId:D(),sourceDefId:s.sourceDefId,meta:s.meta,ui:nt(i,t),extendedProps:o}}return null}function ko(e){return Object.assign(Object.assign(Object.assign({},et),So),e.pluginHooks.eventSourceRefiners)}class Ro{getCurrentData(){return this.currentDataManager.getCurrentData()}dispatch(e){this.currentDataManager.dispatch(e)}get view(){return this.getCurrentData().viewApi}batchRendering(e){e()}updateSize(){this.trigger("_resize",!0)}setOption(e,t){this.dispatch({type:"SET_OPTION",optionName:e,rawOptionValue:t})}getOption(e){return this.currentDataManager.currentCalendarOptionsInput[e]}getAvailableLocaleCodes(){return Object.keys(this.getCurrentData().availableRawLocales)}on(e,t){let{currentDataManager:n}=this;n.currentCalendarOptionsRefiners[e]?n.emitter.on(e,t):console.warn(`Unknown listener name '${e}'`)}off(e,t){this.currentDataManager.emitter.off(e,t)}trigger(e,...t){this.currentDataManager.emitter.trigger(e,...t)}changeView(e,t){this.batchRendering(()=>{if(this.unselect(),t)if(t.start&&t.end)this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e}),this.dispatch({type:"SET_OPTION",optionName:"visibleRange",rawOptionValue:t});else{let{dateEnv:n}=this.getCurrentData();this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e,dateMarker:n.createMarker(t)})}else this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e})})}zoomTo(e,t){let n;t=t||"day",n=this.getCurrentData().viewSpecs[t]||this.getUnitViewSpec(t),this.unselect(),n?this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:n.type,dateMarker:e}):this.dispatch({type:"CHANGE_DATE",dateMarker:e})}getUnitViewSpec(e){let t,n,{viewSpecs:r,toolbarConfig:i}=this.getCurrentData(),o=[].concat(i.header?i.header.viewsWithButtons:[],i.footer?i.footer.viewsWithButtons:[]);for(let e in r)o.push(e);for(t=0;t<o.length;t+=1)if(n=r[o[t]],n&&n.singleUnit===e)return n;return null}prev(){this.unselect(),this.dispatch({type:"PREV"})}next(){this.unselect(),this.dispatch({type:"NEXT"})}prevYear(){let e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:e.dateEnv.addYears(e.currentDate,-1)})}nextYear(){let e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:e.dateEnv.addYears(e.currentDate,1)})}today(){let e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:Rr(e.calendarOptions.now,e.dateEnv)})}gotoDate(e){let t=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:t.dateEnv.createMarker(e)})}incrementDate(e){let t=this.getCurrentData(),n=N(e);n&&(this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:t.dateEnv.add(t.currentDate,n)}))}getDate(){let e=this.getCurrentData();return e.dateEnv.toDate(e.currentDate)}formatDate(e,t){let{dateEnv:n}=this.getCurrentData();return n.format(n.createMarker(e),Ie(t))}formatRange(e,t,n){let{dateEnv:r}=this.getCurrentData();return r.formatRange(r.createMarker(e),r.createMarker(t),Ie(n),n)}formatIso(e,t){let{dateEnv:n}=this.getCurrentData();return n.formatIso(n.createMarker(e),{omitTime:t})}select(e,t){let n;n=null==t?null!=e.start?e:{start:e,end:null}:{start:e,end:t};let r=this.getCurrentData(),i=ei(n,r.dateEnv,N({days:1}));i&&(this.dispatch({type:"SELECT_DATES",selection:i}),xr(i,null,r))}unselect(e){let t=this.getCurrentData();t.dateSelection&&(this.dispatch({type:"UNSELECT_DATES"}),function(e,t){t.emitter.trigger("unselect",{jsEvent:e?e.origEvent:null,view:t.viewApi||t.calendarApi.view})}(e,t))}addEvent(e,t){if(e instanceof Ur){let t=e._def,n=e._instance;return this.getCurrentData().eventStore.defs[t.defId]||(this.dispatch({type:"ADD_EVENTS",eventStore:qe({def:t,instance:n})}),this.triggerEventAdd(e)),e}let n,r=this.getCurrentData();if(t instanceof Pr)n=t.internalEventSource;else if("boolean"==typeof t)t&&([n]=W(r.eventSources));else if(null!=t){let e=this.getEventSourceById(t);if(!e)return console.warn(`Could not find an event source with ID "${t}"`),null;n=e.internalEventSource}let i=lt(e,n,r,!1);if(i){let e=new Ur(r,i.def,i.def.recurringDef?null:i.instance);return this.dispatch({type:"ADD_EVENTS",eventStore:qe(i)}),this.triggerEventAdd(e),e}return null}triggerEventAdd(e){let{emitter:t}=this.getCurrentData();t.trigger("eventAdd",{event:e,relatedEvents:[],revert:()=>{this.dispatch({type:"REMOVE_EVENTS",eventStore:jr(e)})}})}getEventById(e){let t=this.getCurrentData(),{defs:n,instances:r}=t.eventStore;e=String(e);for(let i in n){let o=n[i];if(o.publicId===e){if(o.recurringDef)return new Ur(t,o,null);for(let e in r){let n=r[e];if(n.defId===o.defId)return new Ur(t,o,n)}}}return null}getEvents(){let e=this.getCurrentData();return zr(e.eventStore,e)}removeAllEvents(){this.dispatch({type:"REMOVE_ALL_EVENTS"})}getEventSources(){let e=this.getCurrentData(),t=e.eventSources,n=[];for(let r in t)n.push(new Pr(e,t[r]));return n}getEventSourceById(e){let t=this.getCurrentData(),n=t.eventSources;e=String(e);for(let r in n)if(n[r].publicId===e)return new Pr(t,n[r]);return null}addEventSource(e){let t=this.getCurrentData();if(e instanceof Pr)return t.eventSources[e.internalEventSource.sourceId]||this.dispatch({type:"ADD_EVENT_SOURCES",sources:[e.internalEventSource]}),e;let n=To(e,t);return n?(this.dispatch({type:"ADD_EVENT_SOURCES",sources:[n]}),new Pr(t,n)):null}removeAllEventSources(){this.dispatch({type:"REMOVE_ALL_EVENT_SOURCES"})}refetchEvents(){this.dispatch({type:"FETCH_EVENT_SOURCES",isRefetch:!0})}scrollToTime(e){let t=N(e);t&&this.trigger("_scrollRequest",{time:t})}}var Oo={__proto__:null,BASE_OPTION_DEFAULTS:Ne,identity:Ve,refineProps:Le,createEventInstance:We,parseEventDef:dt,refineEventDef:ct,parseBusinessHours:ht,padStart:k,isInt:O,parseFieldSpecs:C,compareByFieldSpecs:w,flexibleCompare:T,preventSelection:function(e){e.style.userSelect="none",e.addEventListener("selectstart",v)},allowSelection:function(e){e.style.userSelect="",e.removeEventListener("selectstart",v)},preventContextMenu:function(e){e.addEventListener("contextmenu",v)},allowContextMenu:function(e){e.removeEventListener("contextmenu",v)},compareNumbers:function(e,t){return e-t},enableCursor:function(){document.body.classList.remove("fc-not-allowed")},disableCursor:function(){document.body.classList.add("fc-not-allowed")},guid:D,computeVisibleDayRange:gt,isMultiDayRange:function(e){let t=gt(e);return te(t.start,t.end)>1},diffDates:mt,removeExact:function(e,t){let n=0,r=0;for(;r<e.length;)e[r]===t?(e.splice(r,1),n+=1):r+=1;return n},isArraysEqual:$,memoize:ve,memoizeObjArg:be,memoizeArraylike:function(e,t,n){let r=[],i=[];return o=>{let s=r.length,a=o.length,l=0;for(;l<s;l+=1)if(o[l]){if(!$(r[l],o[l])){n&&n(i[l]);let r=e.apply(this,o[l]);t&&t(r,i[l])||(i[l]=r)}}else n&&n(i[l]);for(;l<a;l+=1)i[l]=e.apply(this,o[l]);return r=o,i.splice(a),i}},memoizeHashlike:function(e,t,n){let r={},i={};return o=>{let s={};for(let a in o)if(i[a])if($(r[a],o[a]))s[a]=i[a];else{n&&n(i[a]);let r=e.apply(this,o[a]);s[a]=t&&t(r,i[a])?i[a]:r}else s[a]=e.apply(this,o[a]);return r=o,i=s,s}},intersectRects:vt,pointInsideRect:function(e,t){return e.left>=t.left&&e.left<t.right&&e.top>=t.top&&e.top<t.bottom},constrainPoint:function(e,t){return{left:Math.min(Math.max(e.left,t.left),t.right),top:Math.min(Math.max(e.top,t.top),t.bottom)}},getRectCenter:function(e){return{left:(e.left+e.right)/2,top:(e.top+e.bottom)/2}},diffPoints:function(e,t){return{left:e.left-t.left,top:e.top-t.top}},translateRect:function(e,t,n){return{left:e.left+t,right:e.right+t,top:e.top+n,bottom:e.bottom+n}},mapHash:L,filterHash:F,isPropsEqual:Q,compareObjs:q,collectFromHash:J,findElements:u,findDirectChildren:function(e,t){let n=e instanceof HTMLElement?[e]:e,r=[];for(let e=0;e<n.length;e+=1){let i=n[e].children;for(let e=0;e<i.length;e+=1){let n=i[e];t&&!c(n,t)||r.push(n)}}return r},removeElement:a,applyStyle:f,elementMatches:c,elementClosest:l,getEventTargetViaRoot:p,getUniqueDomId:m,parseClassNames:Ke,getCanVGrowWithinCell:At,createEmptyEventStore:Je,mergeEventStores:$e,getRelevantEvents:Ye,eventTupleToStore:qe,combineEventUis:rt,createEventUi:nt,Splitter:class{constructor(){this.getKeysForEventDefs=ve(this._getKeysForEventDefs),this.splitDateSelection=ve(this._splitDateSpan),this.splitEventStore=ve(this._splitEventStore),this.splitIndividualUi=ve(this._splitIndividualUi),this.splitEventDrag=ve(this._splitInteraction),this.splitEventResize=ve(this._splitInteraction),this.eventUiBuilders={}}splitProps(e){let t=this.getKeyInfo(e),n=this.getKeysForEventDefs(e.eventStore),r=this.splitDateSelection(e.dateSelection),i=this.splitIndividualUi(e.eventUiBases,n),o=this.splitEventStore(e.eventStore,n),s=this.splitEventDrag(e.eventDrag),a=this.splitEventResize(e.eventResize),l={};this.eventUiBuilders=L(t,(e,t)=>this.eventUiBuilders[t]||ve(_t));for(let n in t){let c=t[n],u=o[n]||yt,d=this.eventUiBuilders[n];l[n]={businessHours:c.businessHours||e.businessHours,dateSelection:r[n]||null,eventStore:u,eventUiBases:d(e.eventUiBases[""],c.ui,i[n]),eventSelection:u.instances[e.eventSelection]?e.eventSelection:"",eventDrag:s[n]||null,eventResize:a[n]||null}}return l}_splitDateSpan(e){let t={};if(e){let n=this.getKeysForDateSpan(e);for(let r of n)t[r]=e}return t}_getKeysForEventDefs(e){return L(e.defs,e=>this.getKeysForEventDef(e))}_splitEventStore(e,t){let{defs:n,instances:r}=e,i={};for(let e in n)for(let r of t[e])i[r]||(i[r]={defs:{},instances:{}}),i[r].defs[e]=n[e];for(let e in r){let n=r[e];for(let r of t[n.defId])i[r]&&(i[r].instances[e]=n)}return i}_splitIndividualUi(e,t){let n={};for(let r in e)if(r)for(let i of t[r])n[i]||(n[i]={}),n[i][r]=e[r];return n}_splitInteraction(e){let t={};if(e){let n=this._splitEventStore(e.affectedEvents,this._getKeysForEventDefs(e.affectedEvents)),r=this._getKeysForEventDefs(e.mutatedEvents),i=this._splitEventStore(e.mutatedEvents,r),o=r=>{t[r]||(t[r]={affectedEvents:n[r]||yt,mutatedEvents:i[r]||yt,isEvent:e.isEvent})};for(let e in n)o(e);for(let e in i)o(e)}return t}},getDayClassNames:Ot,getDateMeta:Rt,getSlotClassNames:function(e,t){let n=["fc-slot","fc-slot-"+X[e.dow]];return e.isDisabled?n.push("fc-slot-disabled"):(e.isToday&&(n.push("fc-slot-today"),n.push(t.getClass("today"))),e.isPast&&n.push("fc-slot-past"),e.isFuture&&n.push("fc-slot-future")),n},buildNavLinkAttrs:Mt,preventDefault:v,whenTransitionDone:function(e,t){let n=r=>{t(r),A.forEach(t=>{e.removeEventListener(t,n)})};A.forEach(t=>{e.addEventListener(t,n)})},computeInnerRect:function(e,t=!1,n){let r=n?e.getBoundingClientRect():zt(e),i=jt(e,t),o={left:r.left+i.borderLeft+i.scrollbarLeft,right:r.right-i.borderRight-i.scrollbarRight,top:r.top+i.borderTop,bottom:r.bottom-i.borderBottom-i.scrollbarBottom};return t&&(o.left+=i.paddingLeft,o.right-=i.paddingRight,o.top+=i.paddingTop,o.bottom-=i.paddingBottom),o},computeEdges:jt,getClippingParents:Ft,computeRect:zt,unpromisify:Lt,Emitter:Vt,rangeContainsMarker:kt,intersectRanges:Ct,rangesEqual:wt,rangesIntersect:St,rangeContainsRange:Tt,PositionCache:class{constructor(e,t,n,r){this.els=t;let i=this.originClientRect=e.getBoundingClientRect();n&&this.buildElHorizontals(i.left),r&&this.buildElVerticals(i.top)}buildElHorizontals(e){let t=[],n=[];for(let r of this.els){let i=r.getBoundingClientRect();t.push(i.left-e),n.push(i.right-e)}this.lefts=t,this.rights=n}buildElVerticals(e){let t=[],n=[];for(let r of this.els){let i=r.getBoundingClientRect();t.push(i.top-e),n.push(i.bottom-e)}this.tops=t,this.bottoms=n}leftToIndex(e){let t,{lefts:n,rights:r}=this,i=n.length;for(t=0;t<i;t+=1)if(e>=n[t]&&e<r[t])return t}topToIndex(e){let t,{tops:n,bottoms:r}=this,i=n.length;for(t=0;t<i;t+=1)if(e>=n[t]&&e<r[t])return t}getWidth(e){return this.rights[e]-this.lefts[e]}getHeight(e){return this.bottoms[e]-this.tops[e]}similarTo(e){return Wt(this.tops||[],e.tops||[])&&Wt(this.bottoms||[],e.bottoms||[])&&Wt(this.lefts||[],e.lefts||[])&&Wt(this.rights||[],e.rights||[])}},ScrollController:Qt,ElementScrollController:class extends Qt{constructor(e){super(),this.el=e}getScrollTop(){return this.el.scrollTop}getScrollLeft(){return this.el.scrollLeft}setScrollTop(e){this.el.scrollTop=e}setScrollLeft(e){this.el.scrollLeft=e}getScrollWidth(){return this.el.scrollWidth}getScrollHeight(){return this.el.scrollHeight}getClientHeight(){return this.el.clientHeight}getClientWidth(){return this.el.clientWidth}},WindowScrollController:class extends Qt{getScrollTop(){return window.pageYOffset}getScrollLeft(){return window.pageXOffset}setScrollTop(e){window.scroll(window.pageXOffset,e)}setScrollLeft(e){window.scroll(e,window.pageYOffset)}getScrollWidth(){return document.documentElement.scrollWidth}getScrollHeight(){return document.documentElement.scrollHeight}getClientHeight(){return document.documentElement.clientHeight}getClientWidth(){return document.documentElement.clientWidth}},Theme:Gt,ViewContextType:Dr,DateComponent:kr,DateProfileGenerator:Or,isDateSpansEqual:function(e,t){return wt(e.range,t.range)&&e.allDay===t.allDay&&function(e,t){for(let n in t)if("range"!==n&&"allDay"!==n&&e[n]!==t[n])return!1;for(let n in e)if(!(n in t))return!1;return!0}(e,t)},addDays:K,startOfDay:oe,addMs:ee,addWeeks:function(e,t){let n=ue(e);return n[2]+=7*t,de(n)},diffWeeks:function(e,t){return te(e,t)/7},diffWholeWeeks:re,diffWholeDays:ie,diffDayAndTime:ne,diffDays:te,isValidDate:fe,createDuration:N,asCleanDays:function(e){return e.years||e.months||e.milliseconds?0:e.days},multiplyDuration:function(e,t){return{years:e.years*t,months:e.months*t,days:e.days*t,milliseconds:e.milliseconds*t}},addDurations:function(e,t){return{years:e.years+t.years,months:e.months+t.months,days:e.days+t.days,milliseconds:e.milliseconds+t.milliseconds}},asRoughMinutes:function(e){return P(e)/6e4},asRoughSeconds:function(e){return P(e)/1e3},asRoughMs:P,wholeDivideDurations:function(e,t){let n=null;for(let r=0;r<I.length;r+=1){let i=I[r];if(t[i]){let r=e[i]/t[i];if(!O(r)||null!==n&&n!==r)return null;n=r}else if(e[i])return null}return n},greatestDurationDenominator:U,DateEnv:li,createFormatter:Ie,formatIsoTimeString:function(e){return k(e.getUTCHours(),2)+":"+k(e.getUTCMinutes(),2)+":"+k(e.getUTCSeconds(),2)},formatDayString:ge,buildIsoString:pe,formatIsoMonthStr:function(e){return e.toISOString().match(/^\d{4}-\d{2}/)[0]},NamedTimeZoneImpl:class{constructor(e){this.timeZoneName=e}},parseMarker:ai,SegHierarchy:class{constructor(){this.strictOrder=!1,this.allowReslicing=!1,this.maxCoord=-1,this.maxStackCnt=-1,this.levelCoords=[],this.entriesByLevel=[],this.stackCnts={}}addSegs(e){let t=[];for(let n of e)this.insertEntry(n,t);return t}insertEntry(e,t){let n=this.findInsertion(e);return this.isInsertionValid(n,e)?(this.insertEntryAt(e,n),1):this.handleInvalidInsertion(n,e,t)}isInsertionValid(e,t){return(-1===this.maxCoord||e.levelCoord+t.thickness<=this.maxCoord)&&(-1===this.maxStackCnt||e.stackCnt<this.maxStackCnt)}handleInvalidInsertion(e,t,n){return this.allowReslicing&&e.touchingEntry?this.splitEntry(t,e.touchingEntry,n):(n.push(t),0)}splitEntry(e,t,n){let r=0,i=[],o=e.span,s=t.span;return o.start<s.start&&(r+=this.insertEntry({index:e.index,thickness:e.thickness,span:{start:o.start,end:s.start}},i)),o.end>s.end&&(r+=this.insertEntry({index:e.index,thickness:e.thickness,span:{start:s.end,end:o.end}},i)),r?(n.push({index:e.index,thickness:e.thickness,span:di(s,o)},...i),r):(n.push(e),0)}insertEntryAt(e,t){let{entriesByLevel:n,levelCoords:r}=this;-1===t.lateral?(fi(r,t.level,t.levelCoord),fi(n,t.level,[e])):fi(n[t.level],t.lateral,e),this.stackCnts[ui(e)]=t.stackCnt}findInsertion(e){let{levelCoords:t,entriesByLevel:n,strictOrder:r,stackCnts:i}=this,o=t.length,s=0,a=-1,l=-1,c=null,u=0;for(let d=0;d<o;d+=1){let o=t[d];if(!r&&o>=s+e.thickness)break;let f,h=n[d],p=hi(h,e.span.start,ci),g=p[0]+p[1];for(;(f=h[g])&&f.span.start<e.span.end;){let e=o+f.thickness;e>s&&(s=e,c=f,a=d,l=g),e===s&&(u=Math.max(u,i[ui(f)]+1)),g+=1}}let d=0;if(c)for(d=a+1;d<o&&t[d]<s;)d+=1;let f=-1;return d<o&&t[d]===s&&(f=hi(n[d],e.span.end,ci)[0]),{touchingLevel:a,touchingLateral:l,touchingEntry:c,stackCnt:u,levelCoord:s,level:d,lateral:f}}toRects(){let{entriesByLevel:e,levelCoords:t}=this,n=e.length,r=[];for(let i=0;i<n;i+=1){let n=e[i],o=t[i];for(let e of n)r.push(Object.assign(Object.assign({},e),{levelCoord:o}))}return r}},buildEntryKey:ui,getEntrySpanEnd:ci,binarySearch:hi,groupIntersectingEntries:function(e){let t=[];for(let i of e){let e=[],o={span:i.span,entries:[i]};for(let i of t)di(i.span,o.span)?o={entries:i.entries.concat(o.entries),span:(n=i.span,r=o.span,{start:Math.min(n.start,r.start),end:Math.max(n.end,r.end)})}:e.push(i);e.push(o),t=e}var n,r;return t},intersectSpans:di,Interaction:pi,interactionSettingsToStore:function(e){return{[e.component.uid]:e}},interactionSettingsStore:gi,ElementDragging:class{constructor(e,t){this.emitter=new Vt}destroy(){}setMirrorIsVisible(e){}setMirrorNeedsRevert(e){}setAutoScrollEnabled(e){}},config:{},parseDragMeta:function(e){let{refined:t,extra:n}=Le(e,mi);return{startTime:t.startTime||null,duration:t.duration||null,create:null==t.create||t.create,sourceId:t.sourceId,leftoverProps:n}},CalendarRoot:vi,DayHeader:class extends Sr{constructor(){super(...arguments),this.createDayHeaderFormatter=ve(Mi)}render(){let{context:e}=this,{dates:t,dateProfile:n,datesRepDistinctDays:r,renderIntro:i}=this.props,o=this.createDayHeaderFormatter(e.options.dayHeaderFormat,r,t.length);return ln(xi,{unit:"day"},(e,s)=>ln("tr",{role:"row"},i&&i("day"),t.map(e=>r?ln(ki,{key:e.toISOString(),date:e,dateProfile:n,todayRange:s,colCnt:t.length,dayHeaderFormat:o}):ln(Oi,{key:e.getUTCDay(),dow:e.getUTCDay(),dayHeaderFormat:o}))))}},computeFallbackHeaderFormat:bi,TableDateCell:ki,TableDowCell:Oi,DaySeriesModel:class{constructor(e,t){let n=e.start,{end:r}=e,i=[],o=[],s=-1;for(;n<r;)t.isHiddenDay(n)?i.push(s+.5):(s+=1,i.push(s),o.push(n)),n=K(n,1);this.dates=o,this.indices=i,this.cnt=o.length}sliceRange(e){let t=this.getDateDayIndex(e.start),n=this.getDateDayIndex(K(e.end,-1)),r=Math.max(0,t),i=Math.min(this.cnt-1,n);return r=Math.ceil(r),i=Math.floor(i),r<=i?{firstIndex:r,lastIndex:i,isStart:t===r,isEnd:n===i}:null}getDateDayIndex(e){let{indices:t}=this,n=Math.floor(te(this.dates[0],e));return n<0?t[0]-1:n>=t.length?t[t.length-1]+1:t[n]}},sliceEventStore:Fr,hasBgRendering:function(e){return"background"===e.ui.display||"inverse-background"===e.ui.display},getElSeg:Vr,buildSegTimeText:Jr,sortEventSegs:function(e,t){let n=e.map(Gr);return n.sort((e,n)=>w(e,n,t)),n.map(e=>e._seg)},getSegMeta:function(e,t,n){let r=e.eventRange.range;return{isPast:r.end<(n||t.start),isFuture:r.start>=(n||t.end),isToday:t&&kt(t,r.start)}},buildEventRangeKey:function(e){return e.instance?e.instance.instanceId:`${e.def.defId}:${e.range.start.toISOString()}`},getSegAnchorAttrs:Xr,DayTableModel:class{constructor(e,t){let n,r,i,{dates:o}=e;if(t){for(r=o[0].getUTCDay(),n=1;n<o.length&&o[n].getUTCDay()!==r;n+=1);i=Math.ceil(o.length/n)}else i=1,n=o.length;this.rowCnt=i,this.colCnt=n,this.daySeries=e,this.cells=this.buildCells(),this.headerDates=this.buildHeaderDates()}buildCells(){let e=[];for(let t=0;t<this.rowCnt;t+=1){let n=[];for(let e=0;e<this.colCnt;e+=1)n.push(this.buildCell(t,e));e.push(n)}return e}buildCell(e,t){let n=this.daySeries.dates[e*this.colCnt+t];return{key:n.toISOString(),date:n}}buildHeaderDates(){let e=[];for(let t=0;t<this.colCnt;t+=1)e.push(this.cells[0][t].date);return e}sliceRange(e){let{colCnt:t}=this,n=this.daySeries.sliceRange(e),r=[];if(n){let{firstIndex:e,lastIndex:i}=n,o=e;for(;o<=i;){let s=Math.floor(o/t),a=Math.min((s+1)*t,i+1);r.push({row:s,firstCol:o%t,lastCol:(a-1)%t,isStart:n.isStart&&o===e,isEnd:n.isEnd&&a-1===i}),o=a}}return r}},Slicer:class{constructor(){this.sliceBusinessHours=ve(this._sliceBusinessHours),this.sliceDateSelection=ve(this._sliceDateSpan),this.sliceEventStore=ve(this._sliceEventStore),this.sliceEventDrag=ve(this._sliceInteraction),this.sliceEventResize=ve(this._sliceInteraction),this.forceDayIfListItem=!1}sliceProps(e,t,n,r,...i){let{eventUiBases:o}=e,s=this.sliceEventStore(e.eventStore,o,t,n,...i);return{dateSelectionSegs:this.sliceDateSelection(e.dateSelection,t,n,o,r,...i),businessHourSegs:this.sliceBusinessHours(e.businessHours,t,n,r,...i),fgEventSegs:s.fg,bgEventSegs:s.bg,eventDrag:this.sliceEventDrag(e.eventDrag,o,t,n,...i),eventResize:this.sliceEventResize(e.eventResize,o,t,n,...i),eventSelection:e.eventSelection}}sliceNowDate(e,t,n,r,...i){return this._sliceDateSpan({range:{start:e,end:ee(e,1)},allDay:!1},t,n,{},r,...i)}_sliceBusinessHours(e,t,n,r,...i){return e?this._sliceEventStore(Qe(e,Ni(t,Boolean(n)),r),{},t,n,...i).bg:[]}_sliceEventStore(e,t,n,r,...i){if(e){let o=Fr(e,t,Ni(n,Boolean(r)),r);return{bg:this.sliceEventRanges(o.bg,i),fg:this.sliceEventRanges(o.fg,i)}}return{bg:[],fg:[]}}_sliceInteraction(e,t,n,r,...i){if(!e)return null;let o=Fr(e.mutatedEvents,t,Ni(n,Boolean(r)),r);return{segs:this.sliceEventRanges(o.fg,i),affectedInstances:e.affectedEvents.instances,isEvent:e.isEvent}}_sliceDateSpan(e,t,n,r,i,...o){if(!e)return[];let s=Ni(t,Boolean(n)),a=Ct(e.range,s);if(a){let t=function(e,t,n){let r=ct({editable:!1},n),i=dt(r.refined,r.extra,"",e.allDay,!0,n);return{def:i,ui:Qr(i,t),instance:We(i.defId,e.range),range:e.range,isStart:!0,isEnd:!0}}(e=Object.assign(Object.assign({},e),{range:a}),r,i),n=this.sliceRange(e.range,...o);for(let e of n)e.eventRange=t;return n}return[]}sliceEventRanges(e,t){let n=[];for(let r of e)n.push(...this.sliceEventRange(r,t));return n}sliceEventRange(e,t){let n=e.range;this.forceDayIfListItem&&"list-item"===e.ui.display&&(n={start:n.start,end:K(n.start,1)});let r=this.sliceRange(n,...t);for(let t of r)t.eventRange=e,t.isStart=e.isStart&&t.isStart,t.isEnd=e.isEnd&&t.isEnd;return r}},applyMutationToEventStore:Nr,isPropsValid:Fi,isInteractionValid:function(e,t,n){let{instances:r}=e.mutatedEvents;for(let e in r)if(!Tt(t.validRange,r[e].range))return!1;return zi({eventDrag:e},n)},isDateSelectionValid:function(e,t,n){return!!Tt(t.validRange,e.range)&&zi({dateSelection:e},n)},requestJson:Zi,BaseComponent:Sr,setRef:Tr,DelayedRunner:qi,SimpleScrollGrid:lo,hasShrinkWidth:oo,renderMicroColGroup:ro,getScrollGridClassNames:so,getSectionClassNames:ao,getSectionHasLiquidHeight:Ki,getAllowYScrolling:eo,renderChunkContent:to,computeShrinkWidth:Xi,sanitizeShrinkWidth:io,isColPropsEqual:no,renderScrollShim:function(e){return ln("div",{className:"fc-scrollgrid-sticky-shim",style:{width:e.clientWidth,minWidth:e.tableMinWidth}})},getStickyFooterScrollbar:function(e){let{stickyFooterScrollbar:t}=e;return null!=t&&"auto"!==t||(t="auto"===e.height||"auto"===e.viewHeight),t},getStickyHeaderDates:function(e){let{stickyHeaderDates:t}=e;return null!=t&&"auto"!==t||(t="auto"===e.height||"auto"===e.viewHeight),t},Scroller:Ji,getScrollbarWidths:Pt,RefMap:$i,getIsRtlScrollbarOnLeft:Ht,NowTimer:xi,ScrollResponder:Er,StandardEvent:class extends Sr{render(){let{props:e,context:t}=this,{options:n}=t,{seg:r}=e,{ui:i}=r.eventRange,o=Jr(r,n.eventTimeFormat||e.defaultTimeFormat,t,e.defaultDisplayEventTime,e.defaultDisplayEventEnd);return ln(co,Object.assign({},e,{elTag:"a",elStyle:{borderColor:i.borderColor,backgroundColor:i.backgroundColor},elAttrs:Xr(r,t),defaultGenerator:uo,timeText:o}),(e,t)=>ln(dn,null,ln(e,{elTag:"div",elClasses:["fc-event-main"],elStyle:{color:t.textColor}}),Boolean(t.isStartResizable)&&ln("div",{className:"fc-event-resizer fc-event-resizer-start"}),Boolean(t.isEndResizable)&&ln("div",{className:"fc-event-resizer fc-event-resizer-end"})))}},NowIndicatorContainer:e=>ln(Dr.Consumer,null,t=>{let{options:n}=t,r={isAxis:e.isAxis,date:t.dateEnv.toDate(e.date),view:t.viewApi};return ln(Si,Object.assign({},e,{elTag:e.elTag||"div",renderProps:r,generatorName:"nowIndicatorContent",customGenerator:n.nowIndicatorContent,classNameGenerator:n.nowIndicatorClassNames,didMount:n.nowIndicatorDidMount,willUnmount:n.nowIndicatorWillUnmount}))}),DayCellContainer:ho,hasCustomDayCellContent:po,EventContainer:co,renderFill:function(e){return ln("div",{className:"fc-"+e})},BgEvent:class extends Sr{render(){let{props:e}=this,{seg:t}=e;return ln(co,{elTag:"div",elClasses:["fc-bg-event"],elStyle:{backgroundColor:t.eventRange.ui.backgroundColor},defaultGenerator:mo,seg:t,timeText:"",isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:!1,isPast:e.isPast,isFuture:e.isFuture,isToday:e.isToday,disableDragging:!0,disableResizing:!0})}},WeekNumberContainer:e=>ln(Dr.Consumer,null,t=>{let{dateEnv:n,options:r}=t,{date:i}=e,o=r.weekNumberFormat||e.defaultFormat,s={num:n.computeWeekNumber(i),text:n.format(i,o),date:i};return ln(Si,Object.assign({},e,{renderProps:s,generatorName:"weekNumberContent",customGenerator:r.weekNumberContent,defaultGenerator:vo,classNameGenerator:r.weekNumberClassNames,didMount:r.weekNumberDidMount,willUnmount:r.weekNumberWillUnmount}))}),MoreLinkContainer:class extends Sr{constructor(){super(...arguments),this.state={isPopoverOpen:!1,popoverId:m()},this.handleLinkEl=e=>{this.linkEl=e,this.props.elRef&&Tr(this.props.elRef,e)},this.handleClick=e=>{let{props:t,context:n}=this,{moreLinkClick:r}=n.options,i=_o(t).start;function o(e){let{def:t,instance:r,range:i}=e.eventRange;return{event:new Ur(n,t,r),start:n.dateEnv.toDate(i.start),end:n.dateEnv.toDate(i.end),isStart:e.isStart,isEnd:e.isEnd}}"function"==typeof r&&(r=r({date:i,allDay:Boolean(t.allDayDate),allSegs:t.allSegs.map(o),hiddenSegs:t.hiddenSegs.map(o),jsEvent:e,view:n.viewApi})),r&&"popover"!==r?"string"==typeof r&&n.calendarApi.zoomTo(i,r):this.setState({isPopoverOpen:!0})},this.handlePopoverClose=()=>{this.setState({isPopoverOpen:!1})}}render(){let{props:e,state:t}=this;return ln(Dr.Consumer,null,n=>{let{viewApi:r,options:i,calendarApi:o}=n,{moreLinkText:s}=i,{moreCnt:a}=e,l=_o(e),c="function"==typeof s?s.call(o,a):`+${a} ${s}`,u=R(i.moreLinkHint,[a],c),d={num:a,shortText:"+"+a,text:c,view:r};return ln(dn,null,Boolean(e.moreCnt)&&ln(Si,{elTag:e.elTag||"a",elRef:this.handleLinkEl,elClasses:[...e.elClasses||[],"fc-more-link"],elStyle:e.elStyle,elAttrs:Object.assign(Object.assign(Object.assign({},e.elAttrs),y(this.handleClick)),{title:u,"aria-expanded":t.isPopoverOpen,"aria-controls":t.isPopoverOpen?t.popoverId:""}),renderProps:d,generatorName:"moreLinkContent",customGenerator:i.moreLinkContent,defaultGenerator:e.defaultGenerator||yo,classNameGenerator:i.moreLinkClassNames,didMount:i.moreLinkDidMount,willUnmount:i.moreLinkWillUnmount},e.children),t.isPopoverOpen&&ln(Ao,{id:t.popoverId,startDate:l.start,endDate:l.end,dateProfile:e.dateProfile,todayRange:e.todayRange,extraDateSpan:e.extraDateSpan,parentEl:this.parentEl,alignmentEl:e.alignmentElRef?e.alignmentElRef.current:this.linkEl,alignGridTop:e.alignGridTop,forceTimed:e.forceTimed,onClose:this.handlePopoverClose},e.popoverContent()))})}componentDidMount(){this.updateParentEl()}componentDidUpdate(){this.updateParentEl()}updateParentEl(){this.linkEl&&(this.parentEl=l(this.linkEl,".fc-view-harness"))}},computeEarliestSegStart:Eo,ViewContainer:class extends Sr{render(){let{props:e,context:t}=this,{options:n}=t,r={view:t.viewApi};return ln(Si,Object.assign({},e,{elTag:e.elTag||"div",elClasses:[...wo(e.viewSpec),...e.elClasses||[]],renderProps:r,classNameGenerator:n.viewClassNames,generatorName:void 0,didMount:n.viewDidMount,willUnmount:n.viewWillUnmount}),()=>e.children)}},triggerDateSelect:xr,getDefaultEventEnd:Mr,injectStyles:r,CalendarImpl:Ro,EventImpl:Ur,buildEventApis:zr,buildElAttrs:Di,ContentContainer:Si,CustomRenderingStore:class extends class{constructor(){this.handlers=[]}set(e){this.currentValue=e;for(let t of this.handlers)t(e)}subscribe(e){this.handlers.push(e),void 0!==this.currentValue&&e(this.currentValue)}}{constructor(){super(...arguments),this.map=new Map}handle(e){const{map:t}=this;let n=!1;e.isActive?(t.set(e.id,e),n=!0):t.has(e.id)&&(t.delete(e.id),n=!0),n&&this.set(t)}}};const xo=[],Io={code:"en",week:{dow:0,doy:4},direction:"ltr",buttonText:{prev:"prev",next:"next",prevYear:"prev year",nextYear:"next year",year:"year",today:"today",month:"month",week:"week",day:"day",list:"list"},weekText:"W",weekTextLong:"Week",closeHint:"Close",timeHint:"Time",eventHint:"Event",allDayText:"all-day",moreLinkText:"more",noEventsText:"No events to display"},Mo=Object.assign(Object.assign({},Io),{buttonHints:{prev:"Previous $0",next:"Next $0",today:(e,t)=>"day"===t?"Today":"This "+e},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:e=>`Show ${e} more event${1===e?"":"s"}`});function No(e){let t=e.length>0?e[0].code:"en",n=xo.concat(e),r={en:Mo};for(let e of n)r[e.code]=e;return{map:r,defaultCode:t}}function Bo(e,t){return"object"!=typeof e||Array.isArray(e)?function(e,t){let n=[].concat(e||[]),r=function(e,t){for(let n=0;n<e.length;n+=1){let r=e[n].toLocaleLowerCase().split("-");for(let e=r.length;e>0;e-=1){let n=r.slice(0,e).join("-");if(t[n])return t[n]}}return null}(n,t)||Mo;return Ho(e,n,r)}(e,t):Ho(e.code,[e.code],e)}function Ho(e,t,n){let r=z([Io,n],["buttonText"]);delete r.code;let{week:i}=r;return delete r.week,{codeArg:e,codes:t,week:i,simpleNumberFormat:new Intl.NumberFormat(e),options:r}}function Po(e){return{id:D(),name:e.name,premiumReleaseDate:e.premiumReleaseDate?new Date(e.premiumReleaseDate):void 0,deps:e.deps||[],reducers:e.reducers||[],isLoadingFuncs:e.isLoadingFuncs||[],contextInit:[].concat(e.contextInit||[]),eventRefiners:e.eventRefiners||{},eventDefMemberAdders:e.eventDefMemberAdders||[],eventSourceRefiners:e.eventSourceRefiners||{},isDraggableTransformers:e.isDraggableTransformers||[],eventDragMutationMassagers:e.eventDragMutationMassagers||[],eventDefMutationAppliers:e.eventDefMutationAppliers||[],dateSelectionTransformers:e.dateSelectionTransformers||[],datePointTransforms:e.datePointTransforms||[],dateSpanTransforms:e.dateSpanTransforms||[],views:e.views||{},viewPropsTransformers:e.viewPropsTransformers||[],isPropsValid:e.isPropsValid||null,externalDefTransforms:e.externalDefTransforms||[],viewContainerAppends:e.viewContainerAppends||[],eventDropTransformers:e.eventDropTransformers||[],componentInteractions:e.componentInteractions||[],calendarInteractions:e.calendarInteractions||[],themeClasses:e.themeClasses||{},eventSourceDefs:e.eventSourceDefs||[],cmdFormatter:e.cmdFormatter,recurringTypes:e.recurringTypes||[],namedTimeZonedImpl:e.namedTimeZonedImpl,initialView:e.initialView||"",elementDraggingImpl:e.elementDraggingImpl,optionChangeHandlers:e.optionChangeHandlers||{},scrollGridImpl:e.scrollGridImpl||null,listenerRefiners:e.listenerRefiners||{},optionRefiners:e.optionRefiners||{},propSetHandlers:e.propSetHandlers||{}}}function Uo(){let e,t=[],n=[];return(r,i)=>(e&&$(r,t)&&$(i,n)||(e=function(e,t){let n={},r={premiumReleaseDate:void 0,reducers:[],isLoadingFuncs:[],contextInit:[],eventRefiners:{},eventDefMemberAdders:[],eventSourceRefiners:{},isDraggableTransformers:[],eventDragMutationMassagers:[],eventDefMutationAppliers:[],dateSelectionTransformers:[],datePointTransforms:[],dateSpanTransforms:[],views:{},viewPropsTransformers:[],isPropsValid:null,externalDefTransforms:[],viewContainerAppends:[],eventDropTransformers:[],componentInteractions:[],calendarInteractions:[],themeClasses:{},eventSourceDefs:[],cmdFormatter:null,recurringTypes:[],namedTimeZonedImpl:null,initialView:"",elementDraggingImpl:null,optionChangeHandlers:{},scrollGridImpl:null,listenerRefiners:{},optionRefiners:{},propSetHandlers:{}};function i(e){for(let s of e){const e=s.name,a=n[e];void 0===a?(n[e]=s.id,i(s.deps),o=s,r={premiumReleaseDate:jo((t=r).premiumReleaseDate,o.premiumReleaseDate),reducers:t.reducers.concat(o.reducers),isLoadingFuncs:t.isLoadingFuncs.concat(o.isLoadingFuncs),contextInit:t.contextInit.concat(o.contextInit),eventRefiners:Object.assign(Object.assign({},t.eventRefiners),o.eventRefiners),eventDefMemberAdders:t.eventDefMemberAdders.concat(o.eventDefMemberAdders),eventSourceRefiners:Object.assign(Object.assign({},t.eventSourceRefiners),o.eventSourceRefiners),isDraggableTransformers:t.isDraggableTransformers.concat(o.isDraggableTransformers),eventDragMutationMassagers:t.eventDragMutationMassagers.concat(o.eventDragMutationMassagers),eventDefMutationAppliers:t.eventDefMutationAppliers.concat(o.eventDefMutationAppliers),dateSelectionTransformers:t.dateSelectionTransformers.concat(o.dateSelectionTransformers),datePointTransforms:t.datePointTransforms.concat(o.datePointTransforms),dateSpanTransforms:t.dateSpanTransforms.concat(o.dateSpanTransforms),views:Object.assign(Object.assign({},t.views),o.views),viewPropsTransformers:t.viewPropsTransformers.concat(o.viewPropsTransformers),isPropsValid:o.isPropsValid||t.isPropsValid,externalDefTransforms:t.externalDefTransforms.concat(o.externalDefTransforms),viewContainerAppends:t.viewContainerAppends.concat(o.viewContainerAppends),eventDropTransformers:t.eventDropTransformers.concat(o.eventDropTransformers),calendarInteractions:t.calendarInteractions.concat(o.calendarInteractions),componentInteractions:t.componentInteractions.concat(o.componentInteractions),themeClasses:Object.assign(Object.assign({},t.themeClasses),o.themeClasses),eventSourceDefs:t.eventSourceDefs.concat(o.eventSourceDefs),cmdFormatter:o.cmdFormatter||t.cmdFormatter,recurringTypes:t.recurringTypes.concat(o.recurringTypes),namedTimeZonedImpl:o.namedTimeZonedImpl||t.namedTimeZonedImpl,initialView:t.initialView||o.initialView,elementDraggingImpl:t.elementDraggingImpl||o.elementDraggingImpl,optionChangeHandlers:Object.assign(Object.assign({},t.optionChangeHandlers),o.optionChangeHandlers),scrollGridImpl:o.scrollGridImpl||t.scrollGridImpl,listenerRefiners:Object.assign(Object.assign({},t.listenerRefiners),o.listenerRefiners),optionRefiners:Object.assign(Object.assign({},t.optionRefiners),o.optionRefiners),propSetHandlers:Object.assign(Object.assign({},t.propSetHandlers),o.propSetHandlers)}):a!==s.id&&console.warn(`Duplicate plugin '${e}'`)}var t,o}return e&&i(e),i(t),r}(r,i)),t=r,n=i,e)}function jo(e,t){return void 0===e?t:void 0===t?e:new Date(Math.max(e.valueOf(),t.valueOf()))}class zo extends Gt{}function Fo(e,t,n,r){if(t[e])return t[e];let i=function(e,t,n,r){let i=n[e],o=r[e],s=e=>i&&null!==i[e]?i[e]:o&&null!==o[e]?o[e]:null,a=s("component"),l=s("superType"),c=null;if(l){if(l===e)throw new Error("Can't have a custom view type that references itself");c=Fo(l,t,n,r)}!a&&c&&(a=c.component);if(!a)return null;return{type:e,component:a,defaults:Object.assign(Object.assign({},c?c.defaults:{}),i?i.rawOptions:{}),overrides:Object.assign(Object.assign({},c?c.overrides:{}),o?o.rawOptions:{})}}(e,t,n,r);return i&&(t[e]=i),i}function Lo(e){return L(e,Vo)}function Vo(e){let t="function"==typeof e?{component:e}:e,{component:n}=t;return t.content?n=Wo(t):!n||n.prototype instanceof Sr||(n=Wo(Object.assign(Object.assign({},t),{content:n}))),{superType:t.type,component:n,rawOptions:t}}function Wo(e){return t=>ln(Dr.Consumer,null,n=>ln(Si,{elTag:"div",elClasses:wo(n.viewSpec),renderProps:Object.assign(Object.assign({},t),{nextDayThreshold:n.options.nextDayThreshold}),generatorName:void 0,customGenerator:e.content,classNameGenerator:e.classNames,didMount:e.didMount,willUnmount:e.willUnmount}))}function Qo(e,t,n,r){let i=Lo(e),o=Lo(t.views);return L(function(e,t){let n,r={};for(n in e)Fo(n,r,e,t);for(n in t)Fo(n,r,e,t);return r}(i,o),e=>function(e,t,n,r,i){let o=e.overrides.duration||e.defaults.duration||r.duration||n.duration,s=null,a="",l="",c={};if(o&&(s=function(e){let t=JSON.stringify(e),n=Go[t];void 0===n&&(n=N(e),Go[t]=n);return n}(o),s)){let e=U(s);a=e.unit,1===e.value&&(l=a,c=t[a]?t[a].rawOptions:{})}let u=t=>{let n=t.buttonText||{},r=e.defaults.buttonTextKey;return null!=r&&null!=n[r]?n[r]:null!=n[e.type]?n[e.type]:null!=n[l]?n[l]:null},d=t=>{let n=t.buttonHints||{},r=e.defaults.buttonTextKey;return null!=r&&null!=n[r]?n[r]:null!=n[e.type]?n[e.type]:null!=n[l]?n[l]:null};return{type:e.type,component:e.component,duration:s,durationUnit:a,singleUnit:l,optionDefaults:e.defaults,optionOverrides:Object.assign(Object.assign({},c),e.overrides),buttonTextOverride:u(r)||u(n)||e.overrides.buttonText,buttonTextDefault:u(i)||e.defaults.buttonText||u(Ne)||e.type,buttonTitleOverride:d(r)||d(n)||e.overrides.buttonHint,buttonTitleDefault:d(i)||e.defaults.buttonHint||d(Ne)}}(e,o,t,n,r))}zo.prototype.classes={root:"fc-theme-standard",tableCellShaded:"fc-cell-shaded",buttonGroup:"fc-button-group",button:"fc-button fc-button-primary",buttonActive:"fc-button-active"},zo.prototype.baseIconClass="fc-icon",zo.prototype.iconClasses={close:"fc-icon-x",prev:"fc-icon-chevron-left",next:"fc-icon-chevron-right",prevYear:"fc-icon-chevrons-left",nextYear:"fc-icon-chevrons-right"},zo.prototype.rtlIconClasses={prev:"fc-icon-chevron-right",next:"fc-icon-chevron-left",prevYear:"fc-icon-chevrons-right",nextYear:"fc-icon-chevrons-left"},zo.prototype.iconOverrideOption="buttonIcons",zo.prototype.iconOverrideCustomButtonOption="icon",zo.prototype.iconOverridePrefix="fc-icon-";let Go={};function Zo(e,t,n){let r=t?t.activeRange:null;return Jo({},function(e,t){let n=ko(t),r=[].concat(e.eventSources||[]),i=[];e.initialEvents&&r.unshift(e.initialEvents);e.events&&r.unshift(e.events);for(let e of r){let r=To(e,t,n);r&&i.push(r)}return i}(e,n),r,n)}function qo(e,t,n,r){let i=n?n.activeRange:null;switch(t.type){case"ADD_EVENT_SOURCES":return Jo(e,t.sources,i,r);case"REMOVE_EVENT_SOURCE":return o=e,s=t.sourceId,F(o,e=>e.sourceId!==s);case"PREV":case"NEXT":case"CHANGE_DATE":case"CHANGE_VIEW_TYPE":return n?$o(e,i,r):e;case"FETCH_EVENT_SOURCES":return Xo(e,t.sourceIds?V(t.sourceIds):es(e,r),i,t.isRefetch||!1,r);case"RECEIVE_EVENTS":case"RECEIVE_EVENT_ERROR":return function(e,t,n,r){let i=e[t];if(i&&n===i.latestFetchId)return Object.assign(Object.assign({},e),{[t]:Object.assign(Object.assign({},i),{isFetching:!1,fetchRange:r})});return e}(e,t.sourceId,t.fetchId,t.fetchRange);case"REMOVE_ALL_EVENT_SOURCES":return{};default:return e}var o,s}function Yo(e){for(let t in e)if(e[t].isFetching)return!0;return!1}function Jo(e,t,n,r){let i={};for(let e of t)i[e.sourceId]=e;return n&&(i=$o(i,n,r)),Object.assign(Object.assign({},e),i)}function $o(e,t,n){return Xo(e,F(e,e=>function(e,t,n){if(!ts(e,n))return!e.latestFetchId;return!n.options.lazyFetching||!e.fetchRange||e.isFetching||t.start<e.fetchRange.start||t.end>e.fetchRange.end}(e,t,n)),t,!1,n)}function Xo(e,t,n,r,i){let o={};for(let s in e){let a=e[s];t[s]?o[s]=Ko(a,n,r,i):o[s]=a}return o}function Ko(e,t,n,r){let{options:i,calendarApi:o}=r,s=r.pluginHooks.eventSourceDefs[e.sourceDefId],a=D();return s.fetch({eventSource:e,range:t,isRefetch:n,context:r},n=>{let{rawEvents:s}=n;i.eventSourceSuccess&&(s=i.eventSourceSuccess.call(o,s,n.response)||s),e.success&&(s=e.success.call(o,s,n.response)||s),r.dispatch({type:"RECEIVE_EVENTS",sourceId:e.sourceId,fetchId:a,fetchRange:t,rawEvents:s})},n=>{let s=!1;i.eventSourceFailure&&(i.eventSourceFailure.call(o,n),s=!0),e.failure&&(e.failure(n),s=!0),s||console.warn(n.message,n),r.dispatch({type:"RECEIVE_EVENT_ERROR",sourceId:e.sourceId,fetchId:a,fetchRange:t,error:n})}),Object.assign(Object.assign({},e),{isFetching:!0,latestFetchId:a})}function es(e,t){return F(e,e=>ts(e,t))}function ts(e,t){return!t.pluginHooks.eventSourceDefs[e.sourceDefId].ignoreRange}function ns(e,t){switch(t.type){case"UNSELECT_DATES":return null;case"SELECT_DATES":return t.selection;default:return e}}function rs(e,t){switch(t.type){case"UNSELECT_EVENT":return"";case"SELECT_EVENT":return t.eventInstanceId;default:return e}}function is(e,t){let n;switch(t.type){case"UNSET_EVENT_DRAG":return null;case"SET_EVENT_DRAG":return n=t.state,{affectedEvents:n.affectedEvents,mutatedEvents:n.mutatedEvents,isEvent:n.isEvent};default:return e}}function os(e,t){let n;switch(t.type){case"UNSET_EVENT_RESIZE":return null;case"SET_EVENT_RESIZE":return n=t.state,{affectedEvents:n.affectedEvents,mutatedEvents:n.mutatedEvents,isEvent:n.isEvent};default:return e}}function ss(e,t,n,r,i){return{header:e.headerToolbar?as(e.headerToolbar,e,t,n,r,i):null,footer:e.footerToolbar?as(e.footerToolbar,e,t,n,r,i):null}}function as(e,t,n,r,i,o){let s={},a=[],l=!1;for(let c in e){let u=ls(e[c],t,n,r,i,o);s[c]=u.widgets,a.push(...u.viewsWithButtons),l=l||u.hasTitle}return{sectionWidgets:s,viewsWithButtons:a,hasTitle:l}}function ls(e,t,n,r,i,o){let s="rtl"===t.direction,a=t.customButtons||{},l=n.buttonText||{},c=t.buttonText||{},u=n.buttonHints||{},d=t.buttonHints||{},f=e?e.split(" "):[],h=[],p=!1;return{widgets:f.map(e=>e.split(",").map(e=>{if("title"===e)return p=!0,{buttonName:e};let n,f,g,m,v,b;if(n=a[e])g=e=>{n.click&&n.click.call(e.target,e,e.target)},(m=r.getCustomButtonIconClass(n))||(m=r.getIconClass(e,s))||(v=n.text),b=n.hint||n.text;else if(f=i[e]){h.push(e),g=()=>{o.changeView(e)},(v=f.buttonTextOverride)||(m=r.getIconClass(e,s))||(v=f.buttonTextDefault);let n=f.buttonTextOverride||f.buttonTextDefault;b=R(f.buttonTitleOverride||f.buttonTitleDefault||t.viewHint,[n,e],n)}else if(o[e])if(g=()=>{o[e]()},(v=l[e])||(m=r.getIconClass(e,s))||(v=c[e]),"prevYear"===e||"nextYear"===e){let t="prevYear"===e?"prev":"next";b=R(u[t]||d[t],[c.year||"year","year"],c[e])}else b=t=>R(u[e]||d[e],[c[t]||t,t],c[e]);return{buttonName:e,buttonClick:g,buttonIcon:m,buttonText:v,buttonHint:b}})),viewsWithButtons:h,hasTitle:p}}class cs{constructor(e,t,n){this.type=e,this.getCurrentData=t,this.dateEnv=n}get calendar(){return this.getCurrentData().calendarApi}get title(){return this.getCurrentData().viewTitle}get activeStart(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.start)}get activeEnd(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.end)}get currentStart(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.start)}get currentEnd(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.end)}getOption(e){return this.getCurrentData().options[e]}}function us(e,t){let n=W(t.getCurrentData().eventSources);if(1===n.length&&1===e.length&&Array.isArray(n[0]._raw)&&Array.isArray(e[0]))return void t.dispatch({type:"RESET_RAW_EVENTS",sourceId:n[0].sourceId,rawEvents:e[0]});let r=[];for(let t of e){let e=!1;for(let r=0;r<n.length;r+=1)if(n[r]._raw===t){n.splice(r,1),e=!0;break}e||r.push(t)}for(let e of n)t.dispatch({type:"REMOVE_EVENT_SOURCE",sourceId:e.sourceId});for(let e of r)t.calendarApi.addEventSource(e)}const ds=[Po({name:"array-event-source",eventSourceDefs:[{ignoreRange:!0,parseMeta:e=>Array.isArray(e.events)?e.events:null,fetch(e,t){t({rawEvents:e.eventSource.meta})}}]}),Po({name:"func-event-source",eventSourceDefs:[{parseMeta:e=>"function"==typeof e.events?e.events:null,fetch(e,t,n){const{dateEnv:r}=e.context;Lt(e.eventSource.meta.bind(null,ti(e.range,r)),e=>t({rawEvents:e}),n)}}]}),Po({name:"json-event-source",eventSourceRefiners:{method:String,extraParams:Ve,startParam:String,endParam:String,timeZoneParam:String},eventSourceDefs:[{parseMeta:e=>!e.url||"json"!==e.format&&e.format?null:{url:e.url,format:"json",method:(e.method||"GET").toUpperCase(),extraParams:e.extraParams,startParam:e.startParam,endParam:e.endParam,timeZoneParam:e.timeZoneParam},fetch(e,t,n){const{meta:r}=e.eventSource,i=function(e,t,n){let r,i,o,s,{dateEnv:a,options:l}=n,c={};r=e.startParam,null==r&&(r=l.startParam);i=e.endParam,null==i&&(i=l.endParam);o=e.timeZoneParam,null==o&&(o=l.timeZoneParam);s="function"==typeof e.extraParams?e.extraParams():e.extraParams||{};Object.assign(c,s),c[r]=a.formatIso(t.start),c[i]=a.formatIso(t.end),"local"!==a.timeZone&&(c[o]=a.timeZone);return c}(r,e.range,e.context);Zi(r.method,r.url,i).then(([e,n])=>{t({rawEvents:e,response:n})},n)}}]}),Po({name:"simple-recurring-event",recurringTypes:[{parse(e,t){if(e.daysOfWeek||e.startTime||e.endTime||e.startRecur||e.endRecur){let i,o={daysOfWeek:e.daysOfWeek||null,startTime:e.startTime||null,endTime:e.endTime||null,startRecur:e.startRecur?t.createMarker(e.startRecur):null,endRecur:e.endRecur?t.createMarker(e.endRecur):null};return e.duration&&(i=e.duration),!i&&e.startTime&&e.endTime&&(n=e.endTime,r=e.startTime,i={years:n.years-r.years,months:n.months-r.months,days:n.days-r.days,milliseconds:n.milliseconds-r.milliseconds}),{allDayGuess:Boolean(!e.startTime&&!e.endTime),duration:i,typeData:o}}var n,r;return null},expand(e,t,n){let r=Ct(t,{start:e.startRecur,end:e.endRecur});return r?function(e,t,n,r){let i=e?V(e):null,o=oe(n.start),s=n.end,a=[];for(;o<s;){let e;i&&!i[o.getUTCDay()]||(e=t?r.add(o,t):o,a.push(e)),o=K(o,1)}return a}(e.daysOfWeek,e.startTime,r,n):[]}}],eventRefiners:{daysOfWeek:Ve,startTime:N,endTime:N,duration:N,startRecur:Ve,endRecur:Ve}}),Po({name:"change-handler",optionChangeHandlers:{events(e,t){us([e],t)},eventSources:us}}),Po({name:"misc",isLoadingFuncs:[e=>Yo(e.eventSources)],propSetHandlers:{dateProfile:function(e,t){t.emitter.trigger("datesSet",Object.assign(Object.assign({},ti(e.activeRange,t.dateEnv)),{view:t.viewApi}))},eventStore:function(e,t){let{emitter:n}=t;n.hasHandlers("eventsSet")&&n.trigger("eventsSet",zr(e,t))}}})];class fs{constructor(e,t){this.runTaskOption=e,this.drainedOption=t,this.queue=[],this.delayedRunner=new qi(this.drain.bind(this))}request(e,t){this.queue.push(e),this.delayedRunner.request(t)}pause(e){this.delayedRunner.pause(e)}resume(e,t){this.delayedRunner.resume(e,t)}drain(){let{queue:e}=this;for(;e.length;){let t,n=[];for(;t=e.shift();)this.runTask(t),n.push(t);this.drained(n)}}runTask(e){this.runTaskOption&&this.runTaskOption(e)}drained(e){this.drainedOption&&this.drainedOption(e)}}function hs(e,t,n){let r;return r=/^(year|month)$/.test(e.currentRangeUnit)?e.currentRange:e.activeRange,n.formatRange(r.start,r.end,Ie(t.titleFormat||function(e){let{currentRangeUnit:t}=e;if("year"===t)return{year:"numeric"};if("month"===t)return{year:"numeric",month:"long"};let n=ie(e.currentRange.start,e.currentRange.end);if(null!==n&&n>1)return{year:"numeric",month:"short",day:"numeric"};return{year:"numeric",month:"long",day:"numeric"}}(e)),{isEndExclusive:e.isRangeAllDay,defaultSeparator:t.titleRangeSeparator})}class ps{constructor(e){this.computeCurrentViewData=ve(this._computeCurrentViewData),this.organizeRawLocales=ve(No),this.buildLocale=ve(Bo),this.buildPluginHooks=Uo(),this.buildDateEnv=ve(gs),this.buildTheme=ve(ms),this.parseToolbars=ve(ss),this.buildViewSpecs=ve(Qo),this.buildDateProfileGenerator=be(vs),this.buildViewApi=ve(bs),this.buildViewUiProps=be(_s),this.buildEventUiBySource=ve(As,Q),this.buildEventUiBases=ve(ys),this.parseContextBusinessHours=be(Ds),this.buildTitle=ve(hs),this.emitter=new Vt,this.actionRunner=new fs(this._handleAction.bind(this),this.updateData.bind(this)),this.currentCalendarOptionsInput={},this.currentCalendarOptionsRefined={},this.currentViewOptionsInput={},this.currentViewOptionsRefined={},this.currentCalendarOptionsRefiners={},this.optionsForRefining=[],this.optionsForHandling=[],this.getCurrentData=()=>this.data,this.dispatch=e=>{this.actionRunner.request(e)},this.props=e,this.actionRunner.pause();let t={},n=this.computeOptionsData(e.optionOverrides,t,e.calendarApi),r=n.calendarOptions.initialView||n.pluginHooks.initialView,i=this.computeCurrentViewData(r,n,e.optionOverrides,t);e.calendarApi.currentDataManager=this,this.emitter.setThisContext(e.calendarApi),this.emitter.setOptions(i.options);let o=function(e,t){let n=e.initialDate;return null!=n?t.createMarker(n):Rr(e.now,t)}(n.calendarOptions,n.dateEnv),s=i.dateProfileGenerator.build(o);kt(s.activeRange,o)||(o=s.currentRange.start);let a={dateEnv:n.dateEnv,options:n.calendarOptions,pluginHooks:n.pluginHooks,calendarApi:e.calendarApi,dispatch:this.dispatch,emitter:this.emitter,getCurrentData:this.getCurrentData};for(let e of n.pluginHooks.contextInit)e(a);let l=Zo(n.calendarOptions,s,a),c={dynamicOptionOverrides:t,currentViewType:r,currentDate:o,dateProfile:s,businessHours:this.parseContextBusinessHours(a),eventSources:l,eventUiBases:{},eventStore:{defs:{},instances:{}},renderableEventStore:{defs:{},instances:{}},dateSelection:null,eventSelection:"",eventDrag:null,eventResize:null,selectionConfig:this.buildViewUiProps(a).selectionConfig},u=Object.assign(Object.assign({},a),c);for(let e of n.pluginHooks.reducers)Object.assign(c,e(null,null,u));Es(c,a)&&this.emitter.trigger("loading",!0),this.state=c,this.updateData(),this.actionRunner.resume()}resetOptions(e,t){let{props:n}=this;void 0===t?n.optionOverrides=e:(n.optionOverrides=Object.assign(Object.assign({},n.optionOverrides||{}),e),this.optionsForRefining.push(...t)),(void 0===t||t.length)&&this.actionRunner.request({type:"NOTHING"})}_handleAction(e){let{props:t,state:n,emitter:r}=this,i=function(e,t){switch(t.type){case"SET_OPTION":return Object.assign(Object.assign({},e),{[t.optionName]:t.rawOptionValue});default:return e}}(n.dynamicOptionOverrides,e),o=this.computeOptionsData(t.optionOverrides,i,t.calendarApi),s=function(e,t){switch(t.type){case"CHANGE_VIEW_TYPE":e=t.viewType}return e}(n.currentViewType,e),a=this.computeCurrentViewData(s,o,t.optionOverrides,i);t.calendarApi.currentDataManager=this,r.setThisContext(t.calendarApi),r.setOptions(a.options);let l={dateEnv:o.dateEnv,options:o.calendarOptions,pluginHooks:o.pluginHooks,calendarApi:t.calendarApi,dispatch:this.dispatch,emitter:r,getCurrentData:this.getCurrentData},{currentDate:c,dateProfile:u}=n;this.data&&this.data.dateProfileGenerator!==a.dateProfileGenerator&&(u=a.dateProfileGenerator.build(c)),c=function(e,t){switch(t.type){case"CHANGE_DATE":return t.dateMarker;default:return e}}(c,e),u=function(e,t,n,r){let i;switch(t.type){case"CHANGE_VIEW_TYPE":return r.build(t.dateMarker||n);case"CHANGE_DATE":return r.build(t.dateMarker);case"PREV":if(i=r.buildPrev(e,n),i.isValid)return i;break;case"NEXT":if(i=r.buildNext(e,n),i.isValid)return i}return e}(u,e,c,a.dateProfileGenerator),"PREV"!==e.type&&"NEXT"!==e.type&&kt(u.currentRange,c)||(c=u.currentRange.start);let d=qo(n.eventSources,e,u,l),f=Bi(n.eventStore,e,d,u,l),h=Yo(d)&&!a.options.progressiveEventRendering&&n.renderableEventStore||f,{eventUiSingleBase:p,selectionConfig:g}=this.buildViewUiProps(l),m=this.buildEventUiBySource(d),v={dynamicOptionOverrides:i,currentViewType:s,currentDate:c,dateProfile:u,eventSources:d,eventStore:f,renderableEventStore:h,selectionConfig:g,eventUiBases:this.buildEventUiBases(h.defs,p,m),businessHours:this.parseContextBusinessHours(l),dateSelection:ns(n.dateSelection,e),eventSelection:rs(n.eventSelection,e),eventDrag:is(n.eventDrag,e),eventResize:os(n.eventResize,e)},b=Object.assign(Object.assign({},l),v);for(let t of o.pluginHooks.reducers)Object.assign(v,t(n,e,b));let A=Es(n,l),y=Es(v,l);!A&&y?r.trigger("loading",!0):A&&!y&&r.trigger("loading",!1),this.state=v,t.onAction&&t.onAction(e)}updateData(){let{props:e,state:t}=this,n=this.data,r=this.computeOptionsData(e.optionOverrides,t.dynamicOptionOverrides,e.calendarApi),i=this.computeCurrentViewData(t.currentViewType,r,e.optionOverrides,t.dynamicOptionOverrides),o=this.data=Object.assign(Object.assign(Object.assign({viewTitle:this.buildTitle(t.dateProfile,i.options,r.dateEnv),calendarApi:e.calendarApi,dispatch:this.dispatch,emitter:this.emitter,getCurrentData:this.getCurrentData},r),i),t),s=r.pluginHooks.optionChangeHandlers,a=n&&n.calendarOptions,l=r.calendarOptions;if(a&&a!==l){a.timeZone!==l.timeZone&&(t.eventSources=o.eventSources=function(e,t,n){let r=t?t.activeRange:null;return Xo(e,es(e,n),r,!0,n)}(o.eventSources,t.dateProfile,o),t.eventStore=o.eventStore=Ui(o.eventStore,n.dateEnv,o.dateEnv),t.renderableEventStore=o.renderableEventStore=Ui(o.renderableEventStore,n.dateEnv,o.dateEnv));for(let e in s)-1===this.optionsForHandling.indexOf(e)&&a[e]===l[e]||s[e](l[e],o)}this.optionsForHandling=[],e.onData&&e.onData(o)}computeOptionsData(e,t,n){if(!this.optionsForRefining.length&&e===this.stableOptionOverrides&&t===this.stableDynamicOptionOverrides)return this.stableCalendarOptionsData;let{refinedOptions:r,pluginHooks:i,localeDefaults:o,availableLocaleData:s,extra:a}=this.processRawCalendarOptions(e,t);Cs(a);let l=this.buildDateEnv(r.timeZone,r.locale,r.weekNumberCalculation,r.firstDay,r.weekText,i,s,r.defaultRangeSeparator),c=this.buildViewSpecs(i.views,this.stableOptionOverrides,this.stableDynamicOptionOverrides,o),u=this.buildTheme(r,i),d=this.parseToolbars(r,this.stableOptionOverrides,u,c,n);return this.stableCalendarOptionsData={calendarOptions:r,pluginHooks:i,dateEnv:l,viewSpecs:c,theme:u,toolbarConfig:d,localeDefaults:o,availableRawLocales:s.map}}processRawCalendarOptions(e,t){let{locales:n,locale:r}=Fe([Ne,e,t]),i=this.organizeRawLocales(n),o=i.map,s=this.buildLocale(r||i.defaultCode,o).options,a=this.buildPluginHooks(e.plugins||[],ds),l=this.currentCalendarOptionsRefiners=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Me),Be),He),a.listenerRefiners),a.optionRefiners),c={},u=Fe([Ne,s,e,t]),d={},f=this.currentCalendarOptionsInput,h=this.currentCalendarOptionsRefined,p=!1;for(let e in u)-1===this.optionsForRefining.indexOf(e)&&(u[e]===f[e]||Pe[e]&&e in f&&Pe[e](f[e],u[e]))?d[e]=h[e]:l[e]?(d[e]=l[e](u[e]),p=!0):c[e]=f[e];return p&&(this.currentCalendarOptionsInput=u,this.currentCalendarOptionsRefined=d,this.stableOptionOverrides=e,this.stableDynamicOptionOverrides=t),this.optionsForHandling.push(...this.optionsForRefining),this.optionsForRefining=[],{rawOptions:this.currentCalendarOptionsInput,refinedOptions:this.currentCalendarOptionsRefined,pluginHooks:a,availableLocaleData:i,localeDefaults:s,extra:c}}_computeCurrentViewData(e,t,n,r){let i=t.viewSpecs[e];if(!i)throw new Error(`viewType "${e}" is not available. Please make sure you've loaded all neccessary plugins`);let{refinedOptions:o,extra:s}=this.processRawViewOptions(i,t.pluginHooks,t.localeDefaults,n,r);return Cs(s),{viewSpec:i,options:o,dateProfileGenerator:this.buildDateProfileGenerator({dateProfileGeneratorClass:i.optionDefaults.dateProfileGeneratorClass,duration:i.duration,durationUnit:i.durationUnit,usesMinMaxTime:i.optionDefaults.usesMinMaxTime,dateEnv:t.dateEnv,calendarApi:this.props.calendarApi,slotMinTime:o.slotMinTime,slotMaxTime:o.slotMaxTime,showNonCurrentDates:o.showNonCurrentDates,dayCount:o.dayCount,dateAlignment:o.dateAlignment,dateIncrement:o.dateIncrement,hiddenDays:o.hiddenDays,weekends:o.weekends,nowInput:o.now,validRangeInput:o.validRange,visibleRangeInput:o.visibleRange,fixedWeekCount:o.fixedWeekCount}),viewApi:this.buildViewApi(e,this.getCurrentData,t.dateEnv)}}processRawViewOptions(e,t,n,r,i){let o=Fe([Ne,e.optionDefaults,n,r,e.optionOverrides,i]),s=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Me),Be),He),ze),t.listenerRefiners),t.optionRefiners),a={},l=this.currentViewOptionsInput,c=this.currentViewOptionsRefined,u=!1,d={};for(let e in o)o[e]===l[e]||Pe[e]&&Pe[e](o[e],l[e])?a[e]=c[e]:(o[e]===this.currentCalendarOptionsInput[e]||Pe[e]&&Pe[e](o[e],this.currentCalendarOptionsInput[e])?e in this.currentCalendarOptionsRefined&&(a[e]=this.currentCalendarOptionsRefined[e]):s[e]?a[e]=s[e](o[e]):d[e]=o[e],u=!0);return u&&(this.currentViewOptionsInput=o,this.currentViewOptionsRefined=a),{rawOptions:this.currentViewOptionsInput,refinedOptions:this.currentViewOptionsRefined,extra:d}}}function gs(e,t,n,r,i,o,s,a){let l=Bo(t||s.defaultCode,s.map);return new li({calendarSystem:"gregory",timeZone:e,namedTimeZoneImpl:o.namedTimeZonedImpl,locale:l,weekNumberCalculation:n,firstDay:r,weekText:i,cmdFormatter:o.cmdFormatter,defaultSeparator:a})}function ms(e,t){return new(t.themeClasses[e.themeSystem]||zo)(e)}function vs(e){return new(e.dateProfileGeneratorClass||Or)(e)}function bs(e,t,n){return new cs(e,t,n)}function As(e){return L(e,e=>e.ui)}function ys(e,t,n){let r={"":t};for(let t in e){let i=e[t];i.sourceId&&n[i.sourceId]&&(r[t]=n[i.sourceId])}return r}function _s(e){let{options:t}=e;return{eventUiSingleBase:nt({display:t.eventDisplay,editable:t.editable,startEditable:t.eventStartEditable,durationEditable:t.eventDurationEditable,constraint:t.eventConstraint,overlap:"boolean"==typeof t.eventOverlap?t.eventOverlap:void 0,allow:t.eventAllow,backgroundColor:t.eventBackgroundColor,borderColor:t.eventBorderColor,textColor:t.eventTextColor,color:t.eventColor},e),selectionConfig:nt({constraint:t.selectConstraint,overlap:"boolean"==typeof t.selectOverlap?t.selectOverlap:void 0,allow:t.selectAllow},e)}}function Es(e,t){for(let n of t.pluginHooks.isLoadingFuncs)if(n(e))return!0;return!1}function Ds(e){return ht(e.options.businessHours,e)}function Cs(e,t){for(let n in e)console.warn(`Unknown option '${n}'`+(t?` for view '${t}'`:""))}class ws extends Sr{render(){return ln("div",{className:"fc-toolbar-chunk"},...this.props.widgetGroups.map(e=>this.renderWidgetGroup(e)))}renderWidgetGroup(e){let{props:t}=this,{theme:n}=this.context,r=[],i=!0;for(let o of e){let{buttonName:e,buttonClick:s,buttonText:a,buttonIcon:l,buttonHint:c}=o;if("title"===e)i=!1,r.push(ln("h2",{className:"fc-toolbar-title",id:t.titleId},t.title));else{let i=e===t.activeButton,o=!t.isTodayEnabled&&"today"===e||!t.isPrevEnabled&&"prev"===e||!t.isNextEnabled&&"next"===e,u=[`fc-${e}-button`,n.getClass("button")];i&&u.push(n.getClass("buttonActive")),r.push(ln("button",{type:"button",title:"function"==typeof c?c(t.navUnit):c,disabled:o,"aria-pressed":i,className:u.join(" "),onClick:s},a||(l?ln("span",{className:l}):"")))}}if(r.length>1){return ln("div",{className:i&&n.getClass("buttonGroup")||""},...r)}return r[0]}}class Ss extends Sr{render(){let e,t,{model:n,extraClassName:r}=this.props,i=!1,o=n.sectionWidgets,s=o.center;return o.left?(i=!0,e=o.left):e=o.start,o.right?(i=!0,t=o.right):t=o.end,ln("div",{className:[r||"","fc-toolbar",i?"fc-toolbar-ltr":""].join(" ")},this.renderSection("start",e||[]),this.renderSection("center",s||[]),this.renderSection("end",t||[]))}renderSection(e,t){let{props:n}=this;return ln(ws,{key:e,widgetGroups:t,title:n.title,navUnit:n.navUnit,activeButton:n.activeButton,isTodayEnabled:n.isTodayEnabled,isPrevEnabled:n.isPrevEnabled,isNextEnabled:n.isNextEnabled,titleId:n.titleId})}}class Ts extends Sr{constructor(){super(...arguments),this.state={availableWidth:null},this.handleEl=e=>{this.el=e,Tr(this.props.elRef,e),this.updateAvailableWidth()},this.handleResize=()=>{this.updateAvailableWidth()}}render(){let{props:e,state:t}=this,{aspectRatio:n}=e,r=["fc-view-harness",n||e.liquid||e.height?"fc-view-harness-active":"fc-view-harness-passive"],i="",o="";return n?null!==t.availableWidth?i=t.availableWidth/n:o=1/n*100+"%":i=e.height||"",ln("div",{"aria-labelledby":e.labeledById,ref:this.handleEl,className:r.join(" "),style:{height:i,paddingBottom:o}},e.children)}componentDidMount(){this.context.addResizeHandler(this.handleResize)}componentWillUnmount(){this.context.removeResizeHandler(this.handleResize)}updateAvailableWidth(){this.el&&this.props.aspectRatio&&this.setState({availableWidth:this.el.offsetWidth})}}class ks extends pi{constructor(e){super(e),this.handleSegClick=(e,t)=>{let{component:n}=this,{context:r}=n,i=Vr(t);if(i&&n.isValidSegDownEl(e.target)){let o=l(e.target,".fc-event-forced-url"),s=o?o.querySelector("a[href]").href:"";r.emitter.trigger("eventClick",{el:t,event:new Ur(n.context,i.eventRange.def,i.eventRange.instance),jsEvent:e,view:r.viewApi}),s&&!e.defaultPrevented&&(window.location.href=s)}},this.destroy=b(e.el,"click",".fc-event",this.handleSegClick)}}class Rs extends pi{constructor(e){super(e),this.handleEventElRemove=e=>{e===this.currentSegEl&&this.handleSegLeave(null,this.currentSegEl)},this.handleSegEnter=(e,t)=>{Vr(t)&&(this.currentSegEl=t,this.triggerEvent("eventMouseEnter",e,t))},this.handleSegLeave=(e,t)=>{this.currentSegEl&&(this.currentSegEl=null,this.triggerEvent("eventMouseLeave",e,t))},this.removeHoverListeners=function(e,t,n,r){let i;return b(e,"mouseover",t,(e,t)=>{if(t!==i){i=t,n(e,t);let o=e=>{i=null,r(e,t),t.removeEventListener("mouseleave",o)};t.addEventListener("mouseleave",o)}})}(e.el,".fc-event",this.handleSegEnter,this.handleSegLeave)}destroy(){this.removeHoverListeners()}triggerEvent(e,t,n){let{component:r}=this,{context:i}=r,o=Vr(n);t&&!r.isValidSegDownEl(t.target)||i.emitter.trigger(e,{el:n,event:new Ur(i,o.eventRange.def,o.eventRange.instance),jsEvent:t,view:i.viewApi})}}class Os extends wr{constructor(){super(...arguments),this.buildViewContext=ve(Cr),this.buildViewPropTransformers=ve(Is),this.buildToolbarProps=ve(xs),this.headerRef={current:null},this.footerRef={current:null},this.interactionsStore={},this.state={viewLabelId:m()},this.registerInteractiveComponent=(e,t)=>{let n=function(e,t){return{component:e,el:t.el,useEventCenter:null==t.useEventCenter||t.useEventCenter,isHitComboAllowed:t.isHitComboAllowed||null}}(e,t),r=[ks,Rs].concat(this.props.pluginHooks.componentInteractions).map(e=>new e(n));this.interactionsStore[e.uid]=r,gi[e.uid]=n},this.unregisterInteractiveComponent=e=>{let t=this.interactionsStore[e.uid];if(t){for(let e of t)e.destroy();delete this.interactionsStore[e.uid]}delete gi[e.uid]},this.resizeRunner=new qi(()=>{this.props.emitter.trigger("_resize",!0),this.props.emitter.trigger("windowResize",{view:this.props.viewApi})}),this.handleWindowResize=e=>{let{options:t}=this.props;t.handleWindowResize&&e.target===window&&this.resizeRunner.request(t.windowResizeDelay)}}render(){let e,{props:t}=this,{toolbarConfig:n,options:r}=t,i=this.buildToolbarProps(t.viewSpec,t.dateProfile,t.dateProfileGenerator,t.currentDate,Rr(t.options.now,t.dateEnv),t.viewTitle),o=!1,s="";t.isHeightAuto||t.forPrint?s="":null!=r.height?o=!0:null!=r.contentHeight?s=r.contentHeight:e=Math.max(r.aspectRatio,.5);let a=this.buildViewContext(t.viewSpec,t.viewApi,t.options,t.dateProfileGenerator,t.dateEnv,t.theme,t.pluginHooks,t.dispatch,t.getCurrentData,t.emitter,t.calendarApi,this.registerInteractiveComponent,this.unregisterInteractiveComponent),l=n.header&&n.header.hasTitle?this.state.viewLabelId:"";return ln(Dr.Provider,{value:a},n.header&&ln(Ss,Object.assign({ref:this.headerRef,extraClassName:"fc-header-toolbar",model:n.header,titleId:l},i)),ln(Ts,{liquid:o,height:s,aspectRatio:e,labeledById:l},this.renderView(t),this.buildAppendContent()),n.footer&&ln(Ss,Object.assign({ref:this.footerRef,extraClassName:"fc-footer-toolbar",model:n.footer,titleId:""},i)))}componentDidMount(){let{props:e}=this;this.calendarInteractions=e.pluginHooks.calendarInteractions.map(t=>new t(e)),window.addEventListener("resize",this.handleWindowResize);let{propSetHandlers:t}=e.pluginHooks;for(let n in t)t[n](e[n],e)}componentDidUpdate(e){let{props:t}=this,{propSetHandlers:n}=t.pluginHooks;for(let r in n)t[r]!==e[r]&&n[r](t[r],t)}componentWillUnmount(){window.removeEventListener("resize",this.handleWindowResize),this.resizeRunner.clear();for(let e of this.calendarInteractions)e.destroy();this.props.emitter.trigger("_unmount")}buildAppendContent(){let{props:e}=this;return ln(dn,{},...e.pluginHooks.viewContainerAppends.map(t=>t(e)))}renderView(e){let{pluginHooks:t}=e,{viewSpec:n}=e,r={dateProfile:e.dateProfile,businessHours:e.businessHours,eventStore:e.renderableEventStore,eventUiBases:e.eventUiBases,dateSelection:e.dateSelection,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,isHeightAuto:e.isHeightAuto,forPrint:e.forPrint},i=this.buildViewPropTransformers(t.viewPropsTransformers);for(let t of i)Object.assign(r,t.transform(r,e));return ln(n.component,Object.assign({},r))}}function xs(e,t,n,r,i,o){let s=n.build(i,void 0,!1),a=n.buildPrev(t,r,!1),l=n.buildNext(t,r,!1);return{title:o,activeButton:e.type,navUnit:e.singleUnit,isTodayEnabled:s.isValid&&!kt(t.currentRange,i),isPrevEnabled:a.isValid,isNextEnabled:l.isValid}}function Is(e){return e.map(e=>new e)}function Ms(e){let t=Bo(e.locale||"en",No([]).map);return new li(Object.assign(Object.assign({timeZone:Ne.timeZone,calendarSystem:"gregory"},e),{locale:t}))}return e.Calendar=class extends Ro{constructor(e,t={}){super(),this.isRendering=!1,this.isRendered=!1,this.currentClassNames=[],this.customContentRenderId=0,this.handleAction=e=>{switch(e.type){case"SET_EVENT_DRAG":case"SET_EVENT_RESIZE":this.renderRunner.tryDrain()}},this.handleData=e=>{this.currentData=e,this.renderRunner.request(e.calendarOptions.rerenderDelay)},this.handleRenderRequest=()=>{if(this.isRendering){this.isRendered=!0;let{currentData:e}=this;br(()=>{Mn(ln(vi,{options:e.calendarOptions,theme:e.theme,emitter:e.emitter},(t,n,r,i)=>(this.setClassNames(t),this.setHeight(n),ln(wi.Provider,{value:this.customContentRenderId},ln(Os,Object.assign({isHeightAuto:r,forPrint:i},e))))),this.el)})}else this.isRendered&&(this.isRendered=!1,Mn(null,this.el),this.setClassNames([]),this.setHeight(""))},function(e){e.isConnected&&i(e.getRootNode())}(e),this.el=e,this.renderRunner=new qi(this.handleRenderRequest),new ps({optionOverrides:t,calendarApi:this,onAction:this.handleAction,onData:this.handleData})}render(){let e=this.isRendering;e?this.customContentRenderId+=1:this.isRendering=!0,this.renderRunner.request(),e&&this.updateSize()}destroy(){this.isRendering&&(this.isRendering=!1,this.renderRunner.request())}updateSize(){br(()=>{super.updateSize()})}batchRendering(e){this.renderRunner.pause("batchRendering"),e(),this.renderRunner.resume("batchRendering")}pauseRendering(){this.renderRunner.pause("pauseRendering")}resumeRendering(){this.renderRunner.resume("pauseRendering",!0)}resetOptions(e,t){this.currentDataManager.resetOptions(e,t)}setClassNames(e){if(!$(e,this.currentClassNames)){let{classList:t}=this.el;for(let e of this.currentClassNames)t.remove(e);for(let n of e)t.add(n);this.currentClassNames=e}}setHeight(e){h(this.el,"height",e)}},e.Internal=Oo,e.JsonRequestError=Gi,e.Preact=_r,e.createPlugin=Po,e.formatDate=function(e,t={}){let n=Ms(t),r=Ie(t),i=n.createMarkerMeta(e);return i?n.format(i.marker,r,{forcedTzo:i.forcedTzo}):""},e.formatRange=function(e,t,n){let r=Ms("object"==typeof n&&n?n:{}),i=Ie(n),o=r.createMarkerMeta(e),s=r.createMarkerMeta(t);return o&&s?r.formatRange(o.marker,s.marker,i,{forcedStartTzo:o.forcedTzo,forcedEndTzo:s.forcedTzo,isEndExclusive:n.isEndExclusive,defaultSeparator:Ne.defaultRangeSeparator}):""},e.globalLocales=xo,e.globalPlugins=ds,e.sliceEvents=function(e,t){return Fr(e.eventStore,e.eventUiBases,e.dateProfile.activeRange,t?e.nextDayThreshold:null).fg},e.version="6.1.8",Object.defineProperty(e,"__esModule",{value:!0}),e}({}); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales-all.global.js b/library/fullcalendar/packages/core/locales-all.global.js
index 5333ce07d..980ed1952 100644
--- a/library/fullcalendar/packages/core/locales-all.global.js
+++ b/library/fullcalendar/packages/core/locales-all.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -38,6 +38,7 @@ Docs & License: https://fullcalendar.io
prev: 'السابق',
next: 'التالي',
today: 'اليوم',
+ year: 'سنة',
month: 'شهر',
week: 'أسبوع',
day: 'يوم',
@@ -60,6 +61,7 @@ Docs & License: https://fullcalendar.io
prev: 'السابق',
next: 'التالي',
today: 'اليوم',
+ year: 'سنة',
month: 'شهر',
week: 'أسبوع',
day: 'يوم',
@@ -82,6 +84,7 @@ Docs & License: https://fullcalendar.io
prev: 'السابق',
next: 'التالي',
today: 'اليوم',
+ year: 'سنة',
month: 'شهر',
week: 'أسبوع',
day: 'يوم',
@@ -104,6 +107,7 @@ Docs & License: https://fullcalendar.io
prev: 'السابق',
next: 'التالي',
today: 'اليوم',
+ year: 'سنة',
month: 'شهر',
week: 'أسبوع',
day: 'يوم',
@@ -126,6 +130,7 @@ Docs & License: https://fullcalendar.io
prev: 'السابق',
next: 'التالي',
today: 'اليوم',
+ year: 'سنة',
month: 'شهر',
week: 'أسبوع',
day: 'يوم',
@@ -148,6 +153,7 @@ Docs & License: https://fullcalendar.io
prev: 'السابق',
next: 'التالي',
today: 'اليوم',
+ year: 'سنة',
month: 'شهر',
week: 'أسبوع',
day: 'يوم',
@@ -170,6 +176,7 @@ Docs & License: https://fullcalendar.io
prev: 'السابق',
next: 'التالي',
today: 'اليوم',
+ year: 'سنة',
month: 'شهر',
week: 'أسبوع',
day: 'يوم',
@@ -191,6 +198,7 @@ Docs & License: https://fullcalendar.io
prev: 'Əvvəl',
next: 'Sonra',
today: 'Bu Gün',
+ year: 'Il',
month: 'Ay',
week: 'Həftə',
day: 'Gün',
@@ -214,6 +222,7 @@ Docs & License: https://fullcalendar.io
prev: 'назад',
next: 'напред',
today: 'днес',
+ year: 'година',
month: 'Месец',
week: 'Седмица',
day: 'Ден',
@@ -236,6 +245,7 @@ Docs & License: https://fullcalendar.io
prev: 'পেছনে',
next: 'সামনে',
today: 'আজ',
+ year: 'বছর',
month: 'মাস',
week: 'সপ্তাহ',
day: 'দিন',
@@ -259,6 +269,7 @@ Docs & License: https://fullcalendar.io
prev: 'Prošli',
next: 'Sljedeći',
today: 'Danas',
+ year: 'Godina',
month: 'Mjesec',
week: 'Sedmica',
day: 'Dan',
@@ -282,6 +293,7 @@ Docs & License: https://fullcalendar.io
prev: 'Anterior',
next: 'Següent',
today: 'Avui',
+ year: 'Curs',
month: 'Mes',
week: 'Setmana',
day: 'Dia',
@@ -303,6 +315,7 @@ Docs & License: https://fullcalendar.io
prev: 'Dříve',
next: 'Později',
today: 'Nyní',
+ year: 'Rok',
month: 'Měsíc',
week: 'Týden',
day: 'Den',
@@ -348,6 +361,7 @@ Docs & License: https://fullcalendar.io
prev: 'Forrige',
next: 'Næste',
today: 'I dag',
+ year: 'År',
month: 'Måned',
week: 'Uge',
day: 'Dag',
@@ -485,6 +499,7 @@ Docs & License: https://fullcalendar.io
prev: 'Προηγούμενος',
next: 'Επόμενος',
today: 'Σήμερα',
+ year: 'Ετος',
month: 'Μήνας',
week: 'Εβδομάδα',
day: 'Ημέρα',
@@ -560,6 +575,7 @@ Docs & License: https://fullcalendar.io
prev: 'Antaŭa',
next: 'Sekva',
today: 'Hodiaŭ',
+ year: 'Jaro',
month: 'Monato',
week: 'Semajno',
day: 'Tago',
@@ -581,6 +597,7 @@ Docs & License: https://fullcalendar.io
prev: 'Ant',
next: 'Sig',
today: 'Hoy',
+ year: 'Año',
month: 'Mes',
week: 'Semana',
day: 'Día',
@@ -602,6 +619,7 @@ Docs & License: https://fullcalendar.io
prev: 'Ant',
next: 'Sig',
today: 'Hoy',
+ year: 'Año',
month: 'Mes',
week: 'Semana',
day: 'Día',
@@ -642,6 +660,7 @@ Docs & License: https://fullcalendar.io
prev: 'Eelnev',
next: 'Järgnev',
today: 'Täna',
+ year: 'Aasta',
month: 'Kuu',
week: 'Nädal',
day: 'Päev',
@@ -665,6 +684,7 @@ Docs & License: https://fullcalendar.io
prev: 'Aur',
next: 'Hur',
today: 'Gaur',
+ year: 'Urtea',
month: 'Hilabetea',
week: 'Astea',
day: 'Eguna',
@@ -687,6 +707,7 @@ Docs & License: https://fullcalendar.io
prev: 'قبلی',
next: 'بعدی',
today: 'امروز',
+ year: 'سال',
month: 'ماه',
week: 'هفته',
day: 'روز',
@@ -710,6 +731,7 @@ Docs & License: https://fullcalendar.io
prev: 'Edellinen',
next: 'Seuraava',
today: 'Tänään',
+ year: 'Vuosi',
month: 'Kuukausi',
week: 'Viikko',
day: 'Päivä',
@@ -736,7 +758,7 @@ Docs & License: https://fullcalendar.io
weekText: 'Sem.',
allDayText: 'Toute la journée',
moreLinkText: 'en plus',
- noEventsText: 'Aucun événement à afficher',
+ noEventsText: 'Aucun évènement à afficher',
};
var l30 = {
@@ -758,7 +780,7 @@ Docs & License: https://fullcalendar.io
weekText: 'Sm',
allDayText: 'Toute la journée',
moreLinkText: 'en plus',
- noEventsText: 'Aucun événement à afficher',
+ noEventsText: 'Aucun évènement à afficher',
};
var l31 = {
@@ -778,9 +800,10 @@ Docs & License: https://fullcalendar.io
list: 'Planning',
},
weekText: 'Sem.',
+ weekTextLong: 'Semaine',
allDayText: 'Toute la journée',
moreLinkText: 'en plus',
- noEventsText: 'Aucun événement à afficher',
+ noEventsText: 'Aucun évènement à afficher',
};
var l32 = {
@@ -793,15 +816,35 @@ Docs & License: https://fullcalendar.io
prev: 'Ant',
next: 'Seg',
today: 'Hoxe',
+ year: 'Ano',
month: 'Mes',
week: 'Semana',
day: 'Día',
list: 'Axenda',
},
+ buttonHints: {
+ prev: '$0 antes',
+ next: '$0 seguinte',
+ today(buttonText) {
+ return (buttonText === 'Día') ? 'Hoxe' :
+ ((buttonText === 'Semana') ? 'Esta' : 'Este') + ' ' + buttonText.toLocaleLowerCase();
+ },
+ },
+ viewHint(buttonText) {
+ return 'Vista ' + (buttonText === 'Semana' ? 'da' : 'do') + ' ' + buttonText.toLocaleLowerCase();
+ },
weekText: 'Sm',
+ weekTextLong: 'Semana',
allDayText: 'Todo o día',
moreLinkText: 'máis',
+ moreLinkHint(eventCnt) {
+ return `Amosar ${eventCnt} eventos máis`;
+ },
noEventsText: 'Non hai eventos para amosar',
+ navLinkHint: 'Ir ao $0',
+ closeHint: 'Pechar',
+ timeHint: 'A hora',
+ eventHint: 'Evento',
};
var l33 = {
@@ -811,13 +854,14 @@ Docs & License: https://fullcalendar.io
prev: 'הקודם',
next: 'הבא',
today: 'היום',
+ year: 'שנה',
month: 'חודש',
week: 'שבוע',
day: 'יום',
list: 'סדר יום',
},
allDayText: 'כל היום',
- moreLinkText: 'אחר',
+ moreLinkText: 'נוספים',
noEventsText: 'אין אירועים להצגה',
weekText: 'שבוע',
};
@@ -832,6 +876,7 @@ Docs & License: https://fullcalendar.io
prev: 'पिछला',
next: 'अगला',
today: 'आज',
+ year: 'वर्ष',
month: 'महीना',
week: 'सप्ताह',
day: 'दिन',
@@ -855,6 +900,7 @@ Docs & License: https://fullcalendar.io
prev: 'Prijašnji',
next: 'Sljedeći',
today: 'Danas',
+ year: 'Godina',
month: 'Mjesec',
week: 'Tjedan',
day: 'Dan',
@@ -878,6 +924,7 @@ Docs & License: https://fullcalendar.io
prev: 'vissza',
next: 'előre',
today: 'ma',
+ year: 'Év',
month: 'Hónap',
week: 'Hét',
day: 'Nap',
@@ -899,6 +946,7 @@ Docs & License: https://fullcalendar.io
prev: 'Նախորդ',
next: 'Հաջորդ',
today: 'Այսօր',
+ year: 'Տարի',
month: 'Ամիս',
week: 'Շաբաթ',
day: 'Օր',
@@ -922,6 +970,7 @@ Docs & License: https://fullcalendar.io
prev: 'mundur',
next: 'maju',
today: 'hari ini',
+ year: 'Tahun',
month: 'Bulan',
week: 'Minggu',
day: 'Hari',
@@ -943,6 +992,7 @@ Docs & License: https://fullcalendar.io
prev: 'Fyrri',
next: 'Næsti',
today: 'Í dag',
+ year: 'Ár',
month: 'Mánuður',
week: 'Vika',
day: 'Dagur',
@@ -964,6 +1014,7 @@ Docs & License: https://fullcalendar.io
prev: 'Prec',
next: 'Succ',
today: 'Oggi',
+ year: 'Anno',
month: 'Mese',
week: 'Settimana',
day: 'Giorno',
@@ -983,6 +1034,7 @@ Docs & License: https://fullcalendar.io
prev: '前',
next: '次',
today: '今日',
+ year: '年',
month: '月',
week: '週',
day: '日',
@@ -1006,6 +1058,7 @@ Docs & License: https://fullcalendar.io
prev: 'წინა',
next: 'შემდეგი',
today: 'დღეს',
+ year: 'წელიწადი',
month: 'თვე',
week: 'კვირა',
day: 'დღე',
@@ -1029,6 +1082,7 @@ Docs & License: https://fullcalendar.io
prev: 'Алдыңғы',
next: 'Келесі',
today: 'Бүгін',
+ year: 'Жыл',
month: 'Ай',
week: 'Апта',
day: 'Күн',
@@ -1070,6 +1124,7 @@ Docs & License: https://fullcalendar.io
prev: '이전달',
next: '다음달',
today: '오늘',
+ year: '년도',
month: '월',
week: '주',
day: '일',
@@ -1092,6 +1147,7 @@ Docs & License: https://fullcalendar.io
prev: 'پێشتر',
next: 'دواتر',
today: 'ئەمڕو',
+ year: 'ساڵ',
month: 'مانگ',
week: 'هەفتە',
day: 'ڕۆژ',
@@ -1113,6 +1169,7 @@ Docs & License: https://fullcalendar.io
prev: 'Zréck',
next: 'Weider',
today: 'Haut',
+ year: 'Joer',
month: 'Mount',
week: 'Woch',
day: 'Dag',
@@ -1134,6 +1191,7 @@ Docs & License: https://fullcalendar.io
prev: 'Atgal',
next: 'Pirmyn',
today: 'Šiandien',
+ year: 'Metai',
month: 'Mėnuo',
week: 'Savaitė',
day: 'Diena',
@@ -1155,6 +1213,7 @@ Docs & License: https://fullcalendar.io
prev: 'Iepr.',
next: 'Nāk.',
today: 'Šodien',
+ year: 'Gads',
month: 'Mēnesis',
week: 'Nedēļa',
day: 'Diena',
@@ -1174,6 +1233,7 @@ Docs & License: https://fullcalendar.io
prev: 'претходно',
next: 'следно',
today: 'Денес',
+ year: 'година',
month: 'Месец',
week: 'Недела',
day: 'Ден',
@@ -1197,6 +1257,7 @@ Docs & License: https://fullcalendar.io
prev: 'Sebelum',
next: 'Selepas',
today: 'hari ini',
+ year: 'Tahun',
month: 'Bulan',
week: 'Minggu',
day: 'Hari',
@@ -1220,6 +1281,7 @@ Docs & License: https://fullcalendar.io
prev: 'Forrige',
next: 'Neste',
today: 'I dag',
+ year: 'År',
month: 'Måned',
week: 'Uke',
day: 'Dag',
@@ -1252,6 +1314,7 @@ Docs & License: https://fullcalendar.io
prev: 'अघिल्लो',
next: 'अर्को',
today: 'आज',
+ year: 'वर्ष',
month: 'महिना',
week: 'हप्ता',
day: 'दिन',
@@ -1294,6 +1357,7 @@ Docs & License: https://fullcalendar.io
prev: 'Førre',
next: 'Neste',
today: 'I dag',
+ year: 'År',
month: 'Månad',
week: 'Veke',
day: 'Dag',
@@ -1315,6 +1379,7 @@ Docs & License: https://fullcalendar.io
prev: 'Poprzedni',
next: 'Następny',
today: 'Dziś',
+ year: 'Rok',
month: 'Miesiąc',
week: 'Tydzień',
day: 'Dzień',
@@ -1331,18 +1396,40 @@ Docs & License: https://fullcalendar.io
buttonText: {
prev: 'Anterior',
next: 'Próximo',
+ prevYear: 'Ano anterior',
+ nextYear: 'Próximo ano',
+ year: 'Ano',
today: 'Hoje',
month: 'Mês',
week: 'Semana',
day: 'Dia',
list: 'Lista',
},
+ buttonHints: {
+ prev: '$0 Anterior',
+ next: 'Próximo $0',
+ today(buttonText) {
+ return (buttonText === 'Dia') ? 'Hoje' :
+ ((buttonText === 'Semana') ? 'Esta' : 'Este') + ' ' + buttonText.toLocaleLowerCase();
+ },
+ },
+ viewHint(buttonText) {
+ return 'Visualizar ' + (buttonText === 'Semana' ? 'a' : 'o') + ' ' + buttonText.toLocaleLowerCase();
+ },
weekText: 'Sm',
+ weekTextLong: 'Semana',
allDayText: 'dia inteiro',
moreLinkText(n) {
return 'mais +' + n;
},
+ moreLinkHint(eventCnt) {
+ return `Mostrar mais ${eventCnt} eventos`;
+ },
noEventsText: 'Não há eventos para mostrar',
+ navLinkHint: 'Ir para $0',
+ closeHint: 'Fechar',
+ timeHint: 'A hora',
+ eventHint: 'Evento',
};
var l58 = {
@@ -1355,6 +1442,7 @@ Docs & License: https://fullcalendar.io
prev: 'Anterior',
next: 'Seguinte',
today: 'Hoje',
+ year: 'Ano',
month: 'Mês',
week: 'Semana',
day: 'Dia',
@@ -1376,6 +1464,7 @@ Docs & License: https://fullcalendar.io
prev: 'precedentă',
next: 'următoare',
today: 'Azi',
+ year: 'An',
month: 'Lună',
week: 'Săptămână',
day: 'Zi',
@@ -1399,6 +1488,7 @@ Docs & License: https://fullcalendar.io
prev: 'Пред',
next: 'След',
today: 'Сегодня',
+ year: 'Год',
month: 'Месяц',
week: 'Неделя',
day: 'День',
@@ -1422,6 +1512,7 @@ Docs & License: https://fullcalendar.io
prev: 'පෙර',
next: 'පසු',
today: 'අද',
+ year: 'අවුරුදු',
month: 'මාසය',
week: 'සතිය',
day: 'දවස',
@@ -1443,6 +1534,7 @@ Docs & License: https://fullcalendar.io
prev: 'Predchádzajúci',
next: 'Nasledujúci',
today: 'Dnes',
+ year: 'Rok',
month: 'Mesiac',
week: 'Týždeň',
day: 'Deň',
@@ -1466,6 +1558,7 @@ Docs & License: https://fullcalendar.io
prev: 'Prejšnji',
next: 'Naslednji',
today: 'Trenutni',
+ year: 'Leto',
month: 'Mesec',
week: 'Teden',
day: 'Dan',
@@ -1483,6 +1576,7 @@ Docs & License: https://fullcalendar.io
prev: 'Talu ai',
next: 'Mulimuli atu',
today: 'Aso nei',
+ year: 'Tausaga',
month: 'Masina',
week: 'Vaiaso',
day: 'Aso',
@@ -1503,7 +1597,8 @@ Docs & License: https://fullcalendar.io
buttonText: {
prev: 'mbrapa',
next: 'Përpara',
- today: 'sot',
+ today: 'Sot',
+ year: 'Viti',
month: 'Muaj',
week: 'Javë',
day: 'Ditë',
@@ -1527,6 +1622,7 @@ Docs & License: https://fullcalendar.io
prev: 'Претходна',
next: 'следећи',
today: 'Данас',
+ year: 'Година',
month: 'Месец',
week: 'Недеља',
day: 'Дан',
@@ -1550,6 +1646,7 @@ Docs & License: https://fullcalendar.io
prev: 'Prethodna',
next: 'Sledeći',
today: 'Danas',
+ year: 'Godina',
month: 'Mеsеc',
week: 'Nеdеlja',
day: 'Dan',
@@ -1573,6 +1670,7 @@ Docs & License: https://fullcalendar.io
prev: 'Förra',
next: 'Nästa',
today: 'Idag',
+ year: 'År',
month: 'Månad',
week: 'Vecka',
day: 'Dag',
@@ -1614,6 +1712,7 @@ Docs & License: https://fullcalendar.io
prev: 'முந்தைய',
next: 'அடுத்தது',
today: 'இன்று',
+ year: 'ஆண்டு',
month: 'மாதம்',
week: 'வாரம்',
day: 'நாள்',
@@ -1661,6 +1760,7 @@ Docs & License: https://fullcalendar.io
prev: 'geri',
next: 'ileri',
today: 'bugün',
+ year: 'Yıl',
month: 'Ay',
week: 'Hafta',
day: 'Gün',
@@ -1675,6 +1775,10 @@ Docs & License: https://fullcalendar.io
var l72 = {
code: 'ug',
buttonText: {
+ prev: 'ئالدىنقى',
+ next: 'كېيىنكى',
+ today: 'بۈگۈن',
+ year: 'يىل',
month: 'ئاي',
week: 'ھەپتە',
day: 'كۈن',
@@ -1693,6 +1797,7 @@ Docs & License: https://fullcalendar.io
prev: 'Попередній',
next: 'далі',
today: 'Сьогодні',
+ year: 'рік',
month: 'Місяць',
week: 'Тиждень',
day: 'День',
@@ -1707,8 +1812,39 @@ Docs & License: https://fullcalendar.io
};
var l74 = {
+ code: 'uz-cy',
+ week: {
+ dow: 1,
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ buttonText: {
+ prev: 'Олин',
+ next: 'Кейин',
+ today: 'Бугун',
+ month: 'Ой',
+ week: 'Ҳафта',
+ day: 'Кун',
+ list: 'Кун тартиби',
+ },
+ weekText: 'Ҳафта',
+ allDayText: 'Кун бўйича',
+ moreLinkText(n) {
+ return '+ яна ' + n;
+ },
+ noEventsText: 'Кўрсатиш учун воқеалар йўқ',
+ };
+
+ var l75 = {
code: 'uz',
+ week: {
+ dow: 1,
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
buttonText: {
+ prev: 'Oldingi',
+ next: 'Keyingi',
+ today: 'Bugun',
+ year: 'Yil',
month: 'Oy',
week: 'Xafta',
day: 'Kun',
@@ -1721,7 +1857,7 @@ Docs & License: https://fullcalendar.io
noEventsText: 'Ko\'rsatish uchun voqealar yo\'q',
};
- var l75 = {
+ var l76 = {
code: 'vi',
week: {
dow: 1,
@@ -1731,6 +1867,7 @@ Docs & License: https://fullcalendar.io
prev: 'Trước',
next: 'Tiếp',
today: 'Hôm nay',
+ year: 'Năm',
month: 'Tháng',
week: 'Tuần',
day: 'Ngày',
@@ -1744,7 +1881,7 @@ Docs & License: https://fullcalendar.io
noEventsText: 'Không có sự kiện để hiển thị',
};
- var l76 = {
+ var l77 = {
code: 'zh-cn',
week: {
// GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
@@ -1755,6 +1892,7 @@ Docs & License: https://fullcalendar.io
prev: '上月',
next: '下月',
today: '今天',
+ year: '年',
month: '月',
week: '周',
day: '日',
@@ -1768,25 +1906,26 @@ Docs & License: https://fullcalendar.io
noEventsText: '没有事件显示',
};
- var l77 = {
+ var l78 = {
code: 'zh-tw',
buttonText: {
- prev: '上月',
- next: '下月',
+ prev: '上個',
+ next: '下個',
today: '今天',
+ year: '年',
month: '月',
week: '週',
day: '天',
list: '活動列表',
},
- weekText: '周',
+ weekText: '週',
allDayText: '整天',
moreLinkText: '顯示更多',
- noEventsText: '没有任何活動',
+ noEventsText: '沒有任何活動',
};
var localesAll = [
- l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, l25, l26, l27, l28, l29, l30, l31, l32, l33, l34, l35, l36, l37, l38, l39, l40, l41, l42, l43, l44, l45, l46, l47, l48, l49, l50, l51, l52, l53, l54, l55, l56, l57, l58, l59, l60, l61, l62, l63, l64, l65, l66, l67, l68, l69, l70, l71, l72, l73, l74, l75, l76, l77,
+ l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, l25, l26, l27, l28, l29, l30, l31, l32, l33, l34, l35, l36, l37, l38, l39, l40, l41, l42, l43, l44, l45, l46, l47, l48, l49, l50, l51, l52, l53, l54, l55, l56, l57, l58, l59, l60, l61, l62, l63, l64, l65, l66, l67, l68, l69, l70, l71, l72, l73, l74, l75, l76, l77, l78,
];
index_js.globalLocales.push(...localesAll);
diff --git a/library/fullcalendar/packages/core/locales-all.global.min.js b/library/fullcalendar/packages/core/locales-all.global.min.js
index c195374bd..fb0436789 100644
--- a/library/fullcalendar/packages/core/locales-all.global.min.js
+++ b/library/fullcalendar/packages/core/locales-all.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";function t(e){return"Tag"===e||"Monat"===e?"r":"Jahr"===e?"s":""}function n(e){return"Tag"===e||"Monat"===e?"r":"Jahr"===e?"s":""}var o=[{code:"af",week:{dow:1,doy:4},buttonText:{prev:"Vorige",next:"Volgende",today:"Vandag",year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Heeldag",moreLinkText:"Addisionele",noEventsText:"Daar is geen gebeurtenisse nie"},{code:"ar-dz",week:{dow:0,doy:4},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},{code:"ar-kw",week:{dow:0,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},{code:"ar-ly",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},{code:"ar-ma",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},{code:"ar-sa",week:{dow:0,doy:6},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},{code:"ar-tn",week:{dow:1,doy:4},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},{code:"ar",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},{code:"az",week:{dow:1,doy:4},buttonText:{prev:"Əvvəl",next:"Sonra",today:"Bu Gün",month:"Ay",week:"Həftə",day:"Gün",list:"Gündəm"},weekText:"Həftə",allDayText:"Bütün Gün",moreLinkText:e=>"+ daha çox "+e,noEventsText:"Göstərmək üçün hadisə yoxdur"},{code:"bg",week:{dow:1,doy:7},buttonText:{prev:"назад",next:"напред",today:"днес",month:"Месец",week:"Седмица",day:"Ден",list:"График"},allDayText:"Цял ден",moreLinkText:e=>"+още "+e,noEventsText:"Няма събития за показване"},{code:"bn",week:{dow:0,doy:6},buttonText:{prev:"পেছনে",next:"সামনে",today:"আজ",month:"মাস",week:"সপ্তাহ",day:"দিন",list:"তালিকা"},weekText:"সপ্তাহ",allDayText:"সারাদিন",moreLinkText:e=>"+অন্যান্য "+e,noEventsText:"কোনো ইভেন্ট নেই"},{code:"bs",week:{dow:1,doy:7},buttonText:{prev:"Prošli",next:"Sljedeći",today:"Danas",month:"Mjesec",week:"Sedmica",day:"Dan",list:"Raspored"},weekText:"Sed",allDayText:"Cijeli dan",moreLinkText:e=>"+ još "+e,noEventsText:"Nema događaja za prikazivanje"},{code:"ca",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Següent",today:"Avui",month:"Mes",week:"Setmana",day:"Dia",list:"Agenda"},weekText:"Set",allDayText:"Tot el dia",moreLinkText:"més",noEventsText:"No hi ha esdeveniments per mostrar"},{code:"cs",week:{dow:1,doy:4},buttonText:{prev:"Dříve",next:"Později",today:"Nyní",month:"Měsíc",week:"Týden",day:"Den",list:"Agenda"},weekText:"Týd",allDayText:"Celý den",moreLinkText:e=>"+další: "+e,noEventsText:"Žádné akce k zobrazení"},{code:"cy",week:{dow:1,doy:4},buttonText:{prev:"Blaenorol",next:"Nesaf",today:"Heddiw",year:"Blwyddyn",month:"Mis",week:"Wythnos",day:"Dydd",list:"Rhestr"},weekText:"Wythnos",allDayText:"Trwy'r dydd",moreLinkText:"Mwy",noEventsText:"Dim digwyddiadau"},{code:"da",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Næste",today:"I dag",month:"Måned",week:"Uge",day:"Dag",list:"Agenda"},weekText:"Uge",allDayText:"Hele dagen",moreLinkText:"flere",noEventsText:"Ingen arrangementer at vise"},{code:"de-at",week:{dow:1,doy:4},buttonText:{prev:"Zurück",next:"Vor",today:"Heute",year:"Jahr",month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},weekText:"KW",weekTextLong:"Woche",allDayText:"Ganztägig",moreLinkText:e=>"+ weitere "+e,noEventsText:"Keine Ereignisse anzuzeigen",buttonHints:{prev:e=>`Vorherige${t(e)} ${e}`,next:e=>`Nächste${t(e)} ${e}`,today:e=>"Tag"===e?"Heute":`Diese${t(e)} ${e}`},viewHint:e=>e+("Woche"===e?"n":"Monat"===e?"s":"es")+"ansicht",navLinkHint:"Gehe zu $0",moreLinkHint:e=>"Zeige "+(1===e?"ein weiteres Ereignis":e+" weitere Ereignisse"),closeHint:"Schließen",timeHint:"Uhrzeit",eventHint:"Ereignis"},{code:"de",week:{dow:1,doy:4},buttonText:{prev:"Zurück",next:"Vor",today:"Heute",year:"Jahr",month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},weekText:"KW",weekTextLong:"Woche",allDayText:"Ganztägig",moreLinkText:e=>"+ weitere "+e,noEventsText:"Keine Ereignisse anzuzeigen",buttonHints:{prev:e=>`Vorherige${n(e)} ${e}`,next:e=>`Nächste${n(e)} ${e}`,today:e=>"Tag"===e?"Heute":`Diese${n(e)} ${e}`},viewHint:e=>e+("Woche"===e?"n":"Monat"===e?"s":"es")+"ansicht",navLinkHint:"Gehe zu $0",moreLinkHint:e=>"Zeige "+(1===e?"ein weiteres Ereignis":e+" weitere Ereignisse"),closeHint:"Schließen",timeHint:"Uhrzeit",eventHint:"Ereignis"},{code:"el",week:{dow:1,doy:4},buttonText:{prev:"Προηγούμενος",next:"Επόμενος",today:"Σήμερα",month:"Μήνας",week:"Εβδομάδα",day:"Ημέρα",list:"Ατζέντα"},weekText:"Εβδ",allDayText:"Ολοήμερο",moreLinkText:"περισσότερα",noEventsText:"Δεν υπάρχουν γεγονότα προς εμφάνιση"},{code:"en-au",week:{dow:1,doy:4},buttonHints:{prev:"Previous $0",next:"Next $0",today:"This $0"},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:e=>`Show ${e} more event${1===e?"":"s"}`},{code:"en-gb",week:{dow:1,doy:4},buttonHints:{prev:"Previous $0",next:"Next $0",today:"This $0"},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:e=>`Show ${e} more event${1===e?"":"s"}`},{code:"en-nz",week:{dow:1,doy:4},buttonHints:{prev:"Previous $0",next:"Next $0",today:"This $0"},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:e=>`Show ${e} more event${1===e?"":"s"}`},{code:"eo",week:{dow:1,doy:4},buttonText:{prev:"Antaŭa",next:"Sekva",today:"Hodiaŭ",month:"Monato",week:"Semajno",day:"Tago",list:"Tagordo"},weekText:"Sm",allDayText:"Tuta tago",moreLinkText:"pli",noEventsText:"Neniuj eventoj por montri"},{code:"es",week:{dow:0,doy:6},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},weekText:"Sm",allDayText:"Todo el día",moreLinkText:"más",noEventsText:"No hay eventos para mostrar"},{code:"es",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},buttonHints:{prev:"$0 antes",next:"$0 siguiente",today:e=>"Día"===e?"Hoy":("Semana"===e?"Esta":"Este")+" "+e.toLocaleLowerCase()},viewHint:e=>"Vista "+("Semana"===e?"de la":"del")+" "+e.toLocaleLowerCase(),weekText:"Sm",weekTextLong:"Semana",allDayText:"Todo el día",moreLinkText:"más",moreLinkHint:e=>`Mostrar ${e} eventos más`,noEventsText:"No hay eventos para mostrar",navLinkHint:"Ir al $0",closeHint:"Cerrar",timeHint:"La hora",eventHint:"Evento"},{code:"et",week:{dow:1,doy:4},buttonText:{prev:"Eelnev",next:"Järgnev",today:"Täna",month:"Kuu",week:"Nädal",day:"Päev",list:"Päevakord"},weekText:"näd",allDayText:"Kogu päev",moreLinkText:e=>"+ veel "+e,noEventsText:"Kuvamiseks puuduvad sündmused"},{code:"eu",week:{dow:1,doy:7},buttonText:{prev:"Aur",next:"Hur",today:"Gaur",month:"Hilabetea",week:"Astea",day:"Eguna",list:"Agenda"},weekText:"As",allDayText:"Egun osoa",moreLinkText:"gehiago",noEventsText:"Ez dago ekitaldirik erakusteko"},{code:"fa",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"قبلی",next:"بعدی",today:"امروز",month:"ماه",week:"هفته",day:"روز",list:"برنامه"},weekText:"هف",allDayText:"تمام روز",moreLinkText:e=>"بیش از "+e,noEventsText:"هیچ رویدادی به نمایش"},{code:"fi",week:{dow:1,doy:4},buttonText:{prev:"Edellinen",next:"Seuraava",today:"Tänään",month:"Kuukausi",week:"Viikko",day:"Päivä",list:"Tapahtumat"},weekText:"Vk",allDayText:"Koko päivä",moreLinkText:"lisää",noEventsText:"Ei näytettäviä tapahtumia"},{code:"fr",buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekText:"Sem.",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun événement à afficher"},{code:"fr-ch",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Courant",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekText:"Sm",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun événement à afficher"},{code:"fr",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Planning"},weekText:"Sem.",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun événement à afficher"},{code:"gl",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Seg",today:"Hoxe",month:"Mes",week:"Semana",day:"Día",list:"Axenda"},weekText:"Sm",allDayText:"Todo o día",moreLinkText:"máis",noEventsText:"Non hai eventos para amosar"},{code:"he",direction:"rtl",buttonText:{prev:"הקודם",next:"הבא",today:"היום",month:"חודש",week:"שבוע",day:"יום",list:"סדר יום"},allDayText:"כל היום",moreLinkText:"אחר",noEventsText:"אין אירועים להצגה",weekText:"שבוע"},{code:"hi",week:{dow:0,doy:6},buttonText:{prev:"पिछला",next:"अगला",today:"आज",month:"महीना",week:"सप्ताह",day:"दिन",list:"कार्यसूची"},weekText:"हफ्ता",allDayText:"सभी दिन",moreLinkText:e=>"+अधिक "+e,noEventsText:"कोई घटनाओं को प्रदर्शित करने के लिए"},{code:"hr",week:{dow:1,doy:7},buttonText:{prev:"Prijašnji",next:"Sljedeći",today:"Danas",month:"Mjesec",week:"Tjedan",day:"Dan",list:"Raspored"},weekText:"Tje",allDayText:"Cijeli dan",moreLinkText:e=>"+ još "+e,noEventsText:"Nema događaja za prikaz"},{code:"hu",week:{dow:1,doy:4},buttonText:{prev:"vissza",next:"előre",today:"ma",month:"Hónap",week:"Hét",day:"Nap",list:"Lista"},weekText:"Hét",allDayText:"Egész nap",moreLinkText:"további",noEventsText:"Nincs megjeleníthető esemény"},{code:"hy-am",week:{dow:1,doy:4},buttonText:{prev:"Նախորդ",next:"Հաջորդ",today:"Այսօր",month:"Ամիս",week:"Շաբաթ",day:"Օր",list:"Օրվա ցուցակ"},weekText:"Շաբ",allDayText:"Ամբողջ օր",moreLinkText:e=>"+ ևս "+e,noEventsText:"Բացակայում է իրադարձությունը ցուցադրելու"},{code:"id",week:{dow:1,doy:7},buttonText:{prev:"mundur",next:"maju",today:"hari ini",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekText:"Mg",allDayText:"Sehari penuh",moreLinkText:"lebih",noEventsText:"Tidak ada acara untuk ditampilkan"},{code:"is",week:{dow:1,doy:4},buttonText:{prev:"Fyrri",next:"Næsti",today:"Í dag",month:"Mánuður",week:"Vika",day:"Dagur",list:"Dagskrá"},weekText:"Vika",allDayText:"Allan daginn",moreLinkText:"meira",noEventsText:"Engir viðburðir til að sýna"},{code:"it",week:{dow:1,doy:4},buttonText:{prev:"Prec",next:"Succ",today:"Oggi",month:"Mese",week:"Settimana",day:"Giorno",list:"Agenda"},weekText:"Sm",allDayText:"Tutto il giorno",moreLinkText:e=>"+altri "+e,noEventsText:"Non ci sono eventi da visualizzare"},{code:"ja",buttonText:{prev:"前",next:"次",today:"今日",month:"月",week:"週",day:"日",list:"予定リスト"},weekText:"週",allDayText:"終日",moreLinkText:e=>"他 "+e+" 件",noEventsText:"表示する予定はありません"},{code:"ka",week:{dow:1,doy:7},buttonText:{prev:"წინა",next:"შემდეგი",today:"დღეს",month:"თვე",week:"კვირა",day:"დღე",list:"დღის წესრიგი"},weekText:"კვ",allDayText:"მთელი დღე",moreLinkText:e=>"+ კიდევ "+e,noEventsText:"ღონისძიებები არ არის"},{code:"kk",week:{dow:1,doy:7},buttonText:{prev:"Алдыңғы",next:"Келесі",today:"Бүгін",month:"Ай",week:"Апта",day:"Күн",list:"Күн тәртібі"},weekText:"Не",allDayText:"Күні бойы",moreLinkText:e=>"+ тағы "+e,noEventsText:"Көрсету үшін оқиғалар жоқ"},{code:"km",week:{dow:1,doy:4},buttonText:{prev:"មុន",next:"បន្ទាប់",today:"ថ្ងៃនេះ",year:"ឆ្នាំ",month:"ខែ",week:"សប្តាហ៍",day:"ថ្ងៃ",list:"បញ្ជី"},weekText:"សប្តាហ៍",allDayText:"ពេញមួយថ្ងៃ",moreLinkText:"ច្រើនទៀត",noEventsText:"គ្មានព្រឹត្តិការណ៍ត្រូវបង្ហាញ"},{code:"ko",buttonText:{prev:"이전달",next:"다음달",today:"오늘",month:"월",week:"주",day:"일",list:"일정목록"},weekText:"주",allDayText:"종일",moreLinkText:"개",noEventsText:"일정이 없습니다"},{code:"ku",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"پێشتر",next:"دواتر",today:"ئەمڕو",month:"مانگ",week:"هەفتە",day:"ڕۆژ",list:"بەرنامە"},weekText:"هەفتە",allDayText:"هەموو ڕۆژەکە",moreLinkText:"زیاتر",noEventsText:"هیچ ڕووداوێك نیە"},{code:"lb",week:{dow:1,doy:4},buttonText:{prev:"Zréck",next:"Weider",today:"Haut",month:"Mount",week:"Woch",day:"Dag",list:"Terminiwwersiicht"},weekText:"W",allDayText:"Ganzen Dag",moreLinkText:"méi",noEventsText:"Nee Evenementer ze affichéieren"},{code:"lt",week:{dow:1,doy:4},buttonText:{prev:"Atgal",next:"Pirmyn",today:"Šiandien",month:"Mėnuo",week:"Savaitė",day:"Diena",list:"Darbotvarkė"},weekText:"SAV",allDayText:"Visą dieną",moreLinkText:"daugiau",noEventsText:"Nėra įvykių rodyti"},{code:"lv",week:{dow:1,doy:4},buttonText:{prev:"Iepr.",next:"Nāk.",today:"Šodien",month:"Mēnesis",week:"Nedēļa",day:"Diena",list:"Dienas kārtība"},weekText:"Ned.",allDayText:"Visu dienu",moreLinkText:e=>"+vēl "+e,noEventsText:"Nav notikumu"},{code:"mk",buttonText:{prev:"претходно",next:"следно",today:"Денес",month:"Месец",week:"Недела",day:"Ден",list:"График"},weekText:"Сед",allDayText:"Цел ден",moreLinkText:e=>"+повеќе "+e,noEventsText:"Нема настани за прикажување"},{code:"ms",week:{dow:1,doy:7},buttonText:{prev:"Sebelum",next:"Selepas",today:"hari ini",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekText:"Mg",allDayText:"Sepanjang hari",moreLinkText:e=>"masih ada "+e+" acara",noEventsText:"Tiada peristiwa untuk dipaparkan"},{code:"nb",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Neste",today:"I dag",month:"Måned",week:"Uke",day:"Dag",list:"Agenda"},weekText:"Uke",weekTextLong:"Uke",allDayText:"Hele dagen",moreLinkText:"til",noEventsText:"Ingen hendelser å vise",buttonHints:{prev:"Forrige $0",next:"Neste $0",today:"Nåværende $0"},viewHint:"$0 visning",navLinkHint:"Gå til $0",moreLinkHint:e=>`Vis ${e} flere hendelse${1===e?"":"r"}`},{code:"ne",week:{dow:7,doy:1},buttonText:{prev:"अघिल्लो",next:"अर्को",today:"आज",month:"महिना",week:"हप्ता",day:"दिन",list:"सूची"},weekText:"हप्ता",allDayText:"दिनभरि",moreLinkText:"थप लिंक",noEventsText:"देखाउनको लागि कुनै घटनाहरू छैनन्"},{code:"nl",week:{dow:1,doy:4},buttonText:{prev:"Vorige",next:"Volgende",today:"Vandaag",year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Hele dag",moreLinkText:"extra",noEventsText:"Geen evenementen om te laten zien"},{code:"nn",week:{dow:1,doy:4},buttonText:{prev:"Førre",next:"Neste",today:"I dag",month:"Månad",week:"Veke",day:"Dag",list:"Agenda"},weekText:"Veke",allDayText:"Heile dagen",moreLinkText:"til",noEventsText:"Ingen hendelser å vise"},{code:"pl",week:{dow:1,doy:4},buttonText:{prev:"Poprzedni",next:"Następny",today:"Dziś",month:"Miesiąc",week:"Tydzień",day:"Dzień",list:"Plan dnia"},weekText:"Tydz",allDayText:"Cały dzień",moreLinkText:"więcej",noEventsText:"Brak wydarzeń do wyświetlenia"},{code:"pt-br",buttonText:{prev:"Anterior",next:"Próximo",today:"Hoje",month:"Mês",week:"Semana",day:"Dia",list:"Lista"},weekText:"Sm",allDayText:"dia inteiro",moreLinkText:e=>"mais +"+e,noEventsText:"Não há eventos para mostrar"},{code:"pt",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Seguinte",today:"Hoje",month:"Mês",week:"Semana",day:"Dia",list:"Agenda"},weekText:"Sem",allDayText:"Todo o dia",moreLinkText:"mais",noEventsText:"Não há eventos para mostrar"},{code:"ro",week:{dow:1,doy:7},buttonText:{prev:"precedentă",next:"următoare",today:"Azi",month:"Lună",week:"Săptămână",day:"Zi",list:"Agendă"},weekText:"Săpt",allDayText:"Toată ziua",moreLinkText:e=>"+alte "+e,noEventsText:"Nu există evenimente de afișat"},{code:"ru",week:{dow:1,doy:4},buttonText:{prev:"Пред",next:"След",today:"Сегодня",month:"Месяц",week:"Неделя",day:"День",list:"Повестка дня"},weekText:"Нед",allDayText:"Весь день",moreLinkText:e=>"+ ещё "+e,noEventsText:"Нет событий для отображения"},{code:"si-lk",week:{dow:1,doy:4},buttonText:{prev:"පෙර",next:"පසු",today:"අද",month:"මාසය",week:"සතිය",day:"දවස",list:"ලැයිස්තුව"},weekText:"සති",allDayText:"සියලු",moreLinkText:"තවත්",noEventsText:"මුකුත් නැත"},{code:"sk",week:{dow:1,doy:4},buttonText:{prev:"Predchádzajúci",next:"Nasledujúci",today:"Dnes",month:"Mesiac",week:"Týždeň",day:"Deň",list:"Rozvrh"},weekText:"Ty",allDayText:"Celý deň",moreLinkText:e=>"+ďalšie: "+e,noEventsText:"Žiadne akcie na zobrazenie"},{code:"sl",week:{dow:1,doy:7},buttonText:{prev:"Prejšnji",next:"Naslednji",today:"Trenutni",month:"Mesec",week:"Teden",day:"Dan",list:"Dnevni red"},weekText:"Teden",allDayText:"Ves dan",moreLinkText:"več",noEventsText:"Ni dogodkov za prikaz"},{code:"sm",buttonText:{prev:"Talu ai",next:"Mulimuli atu",today:"Aso nei",month:"Masina",week:"Vaiaso",day:"Aso",list:"Faasologa"},weekText:"Vaiaso",allDayText:"Aso atoa",moreLinkText:"sili atu",noEventsText:"Leai ni mea na tutupu"},{code:"sq",week:{dow:1,doy:4},buttonText:{prev:"mbrapa",next:"Përpara",today:"sot",month:"Muaj",week:"Javë",day:"Ditë",list:"Listë"},weekText:"Ja",allDayText:"Gjithë ditën",moreLinkText:e=>"+më tepër "+e,noEventsText:"Nuk ka evente për të shfaqur"},{code:"sr-cyrl",week:{dow:1,doy:7},buttonText:{prev:"Претходна",next:"следећи",today:"Данас",month:"Месец",week:"Недеља",day:"Дан",list:"Планер"},weekText:"Сед",allDayText:"Цео дан",moreLinkText:e=>"+ још "+e,noEventsText:"Нема догађаја за приказ"},{code:"sr",week:{dow:1,doy:7},buttonText:{prev:"Prethodna",next:"Sledeći",today:"Danas",month:"Mеsеc",week:"Nеdеlja",day:"Dan",list:"Planеr"},weekText:"Sed",allDayText:"Cеo dan",moreLinkText:e=>"+ još "+e,noEventsText:"Nеma događaja za prikaz"},{code:"sv",week:{dow:1,doy:4},buttonText:{prev:"Förra",next:"Nästa",today:"Idag",month:"Månad",week:"Vecka",day:"Dag",list:"Program"},buttonHints:{prev:e=>"Föregående "+e.toLocaleLowerCase(),next:e=>"Nästa "+e.toLocaleLowerCase(),today:e=>("Program"===e?"Detta":"Denna")+" "+e.toLocaleLowerCase()},viewHint:"$0 vy",navLinkHint:"Gå till $0",moreLinkHint:e=>`Visa ytterligare ${e} händelse${1===e?"":"r"}`,weekText:"v.",weekTextLong:"Vecka",allDayText:"Heldag",moreLinkText:"till",noEventsText:"Inga händelser att visa",closeHint:"Stäng",timeHint:"Klockan",eventHint:"Händelse"},{code:"ta-in",week:{dow:1,doy:4},buttonText:{prev:"முந்தைய",next:"அடுத்தது",today:"இன்று",month:"மாதம்",week:"வாரம்",day:"நாள்",list:"தினசரி அட்டவணை"},weekText:"வாரம்",allDayText:"நாள் முழுவதும்",moreLinkText:e=>"+ மேலும் "+e,noEventsText:"காண்பிக்க நிகழ்வுகள் இல்லை"},{code:"th",week:{dow:1,doy:4},buttonText:{prev:"ก่อนหน้า",next:"ถัดไป",prevYear:"ปีก่อนหน้า",nextYear:"ปีถัดไป",year:"ปี",today:"วันนี้",month:"เดือน",week:"สัปดาห์",day:"วัน",list:"กำหนดการ"},weekText:"สัปดาห์",allDayText:"ตลอดวัน",moreLinkText:"เพิ่มเติม",noEventsText:"ไม่มีกิจกรรมที่จะแสดง"},{code:"tr",week:{dow:1,doy:7},buttonText:{prev:"geri",next:"ileri",today:"bugün",month:"Ay",week:"Hafta",day:"Gün",list:"Ajanda"},weekText:"Hf",allDayText:"Tüm gün",moreLinkText:"daha fazla",noEventsText:"Gösterilecek etkinlik yok"},{code:"ug",buttonText:{month:"ئاي",week:"ھەپتە",day:"كۈن",list:"كۈنتەرتىپ"},allDayText:"پۈتۈن كۈن"},{code:"uk",week:{dow:1,doy:7},buttonText:{prev:"Попередній",next:"далі",today:"Сьогодні",month:"Місяць",week:"Тиждень",day:"День",list:"Порядок денний"},weekText:"Тиж",allDayText:"Увесь день",moreLinkText:e=>"+ще "+e+"...",noEventsText:"Немає подій для відображення"},{code:"uz",buttonText:{month:"Oy",week:"Xafta",day:"Kun",list:"Kun tartibi"},allDayText:"Kun bo'yi",moreLinkText:e=>"+ yana "+e,noEventsText:"Ko'rsatish uchun voqealar yo'q"},{code:"vi",week:{dow:1,doy:4},buttonText:{prev:"Trước",next:"Tiếp",today:"Hôm nay",month:"Tháng",week:"Tuần",day:"Ngày",list:"Lịch biểu"},weekText:"Tu",allDayText:"Cả ngày",moreLinkText:e=>"+ thêm "+e,noEventsText:"Không có sự kiện để hiển thị"},{code:"zh-cn",week:{dow:1,doy:4},buttonText:{prev:"上月",next:"下月",today:"今天",month:"月",week:"周",day:"日",list:"日程"},weekText:"周",allDayText:"全天",moreLinkText:e=>"另外 "+e+" 个",noEventsText:"没有事件显示"},{code:"zh-tw",buttonText:{prev:"上月",next:"下月",today:"今天",month:"月",week:"週",day:"天",list:"活動列表"},weekText:"周",allDayText:"整天",moreLinkText:"顯示更多",noEventsText:"没有任何活動"}];FullCalendar.globalLocales.push(...o)}(); \ No newline at end of file
+!function(e){"use strict";function t(e){return"Tag"===e||"Monat"===e?"r":"Jahr"===e?"s":""}function n(e){return"Tag"===e||"Monat"===e?"r":"Jahr"===e?"s":""}var o=[{code:"af",week:{dow:1,doy:4},buttonText:{prev:"Vorige",next:"Volgende",today:"Vandag",year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Heeldag",moreLinkText:"Addisionele",noEventsText:"Daar is geen gebeurtenisse nie"},{code:"ar-dz",week:{dow:0,doy:4},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",year:"سنة",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},{code:"ar-kw",week:{dow:0,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",year:"سنة",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},{code:"ar-ly",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",year:"سنة",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},{code:"ar-ma",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",year:"سنة",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},{code:"ar-sa",week:{dow:0,doy:6},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",year:"سنة",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},{code:"ar-tn",week:{dow:1,doy:4},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",year:"سنة",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},{code:"ar",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",year:"سنة",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},{code:"az",week:{dow:1,doy:4},buttonText:{prev:"Əvvəl",next:"Sonra",today:"Bu Gün",year:"Il",month:"Ay",week:"Həftə",day:"Gün",list:"Gündəm"},weekText:"Həftə",allDayText:"Bütün Gün",moreLinkText:e=>"+ daha çox "+e,noEventsText:"Göstərmək üçün hadisə yoxdur"},{code:"bg",week:{dow:1,doy:7},buttonText:{prev:"назад",next:"напред",today:"днес",year:"година",month:"Месец",week:"Седмица",day:"Ден",list:"График"},allDayText:"Цял ден",moreLinkText:e=>"+още "+e,noEventsText:"Няма събития за показване"},{code:"bn",week:{dow:0,doy:6},buttonText:{prev:"পেছনে",next:"সামনে",today:"আজ",year:"বছর",month:"মাস",week:"সপ্তাহ",day:"দিন",list:"তালিকা"},weekText:"সপ্তাহ",allDayText:"সারাদিন",moreLinkText:e=>"+অন্যান্য "+e,noEventsText:"কোনো ইভেন্ট নেই"},{code:"bs",week:{dow:1,doy:7},buttonText:{prev:"Prošli",next:"Sljedeći",today:"Danas",year:"Godina",month:"Mjesec",week:"Sedmica",day:"Dan",list:"Raspored"},weekText:"Sed",allDayText:"Cijeli dan",moreLinkText:e=>"+ još "+e,noEventsText:"Nema događaja za prikazivanje"},{code:"ca",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Següent",today:"Avui",year:"Curs",month:"Mes",week:"Setmana",day:"Dia",list:"Agenda"},weekText:"Set",allDayText:"Tot el dia",moreLinkText:"més",noEventsText:"No hi ha esdeveniments per mostrar"},{code:"cs",week:{dow:1,doy:4},buttonText:{prev:"Dříve",next:"Později",today:"Nyní",year:"Rok",month:"Měsíc",week:"Týden",day:"Den",list:"Agenda"},weekText:"Týd",allDayText:"Celý den",moreLinkText:e=>"+další: "+e,noEventsText:"Žádné akce k zobrazení"},{code:"cy",week:{dow:1,doy:4},buttonText:{prev:"Blaenorol",next:"Nesaf",today:"Heddiw",year:"Blwyddyn",month:"Mis",week:"Wythnos",day:"Dydd",list:"Rhestr"},weekText:"Wythnos",allDayText:"Trwy'r dydd",moreLinkText:"Mwy",noEventsText:"Dim digwyddiadau"},{code:"da",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Næste",today:"I dag",year:"År",month:"Måned",week:"Uge",day:"Dag",list:"Agenda"},weekText:"Uge",allDayText:"Hele dagen",moreLinkText:"flere",noEventsText:"Ingen arrangementer at vise"},{code:"de-at",week:{dow:1,doy:4},buttonText:{prev:"Zurück",next:"Vor",today:"Heute",year:"Jahr",month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},weekText:"KW",weekTextLong:"Woche",allDayText:"Ganztägig",moreLinkText:e=>"+ weitere "+e,noEventsText:"Keine Ereignisse anzuzeigen",buttonHints:{prev:e=>`Vorherige${t(e)} ${e}`,next:e=>`Nächste${t(e)} ${e}`,today:e=>"Tag"===e?"Heute":`Diese${t(e)} ${e}`},viewHint:e=>e+("Woche"===e?"n":"Monat"===e?"s":"es")+"ansicht",navLinkHint:"Gehe zu $0",moreLinkHint:e=>"Zeige "+(1===e?"ein weiteres Ereignis":e+" weitere Ereignisse"),closeHint:"Schließen",timeHint:"Uhrzeit",eventHint:"Ereignis"},{code:"de",week:{dow:1,doy:4},buttonText:{prev:"Zurück",next:"Vor",today:"Heute",year:"Jahr",month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},weekText:"KW",weekTextLong:"Woche",allDayText:"Ganztägig",moreLinkText:e=>"+ weitere "+e,noEventsText:"Keine Ereignisse anzuzeigen",buttonHints:{prev:e=>`Vorherige${n(e)} ${e}`,next:e=>`Nächste${n(e)} ${e}`,today:e=>"Tag"===e?"Heute":`Diese${n(e)} ${e}`},viewHint:e=>e+("Woche"===e?"n":"Monat"===e?"s":"es")+"ansicht",navLinkHint:"Gehe zu $0",moreLinkHint:e=>"Zeige "+(1===e?"ein weiteres Ereignis":e+" weitere Ereignisse"),closeHint:"Schließen",timeHint:"Uhrzeit",eventHint:"Ereignis"},{code:"el",week:{dow:1,doy:4},buttonText:{prev:"Προηγούμενος",next:"Επόμενος",today:"Σήμερα",year:"Ετος",month:"Μήνας",week:"Εβδομάδα",day:"Ημέρα",list:"Ατζέντα"},weekText:"Εβδ",allDayText:"Ολοήμερο",moreLinkText:"περισσότερα",noEventsText:"Δεν υπάρχουν γεγονότα προς εμφάνιση"},{code:"en-au",week:{dow:1,doy:4},buttonHints:{prev:"Previous $0",next:"Next $0",today:"This $0"},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:e=>`Show ${e} more event${1===e?"":"s"}`},{code:"en-gb",week:{dow:1,doy:4},buttonHints:{prev:"Previous $0",next:"Next $0",today:"This $0"},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:e=>`Show ${e} more event${1===e?"":"s"}`},{code:"en-nz",week:{dow:1,doy:4},buttonHints:{prev:"Previous $0",next:"Next $0",today:"This $0"},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:e=>`Show ${e} more event${1===e?"":"s"}`},{code:"eo",week:{dow:1,doy:4},buttonText:{prev:"Antaŭa",next:"Sekva",today:"Hodiaŭ",year:"Jaro",month:"Monato",week:"Semajno",day:"Tago",list:"Tagordo"},weekText:"Sm",allDayText:"Tuta tago",moreLinkText:"pli",noEventsText:"Neniuj eventoj por montri"},{code:"es",week:{dow:0,doy:6},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",year:"Año",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},weekText:"Sm",allDayText:"Todo el día",moreLinkText:"más",noEventsText:"No hay eventos para mostrar"},{code:"es",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",year:"Año",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},buttonHints:{prev:"$0 antes",next:"$0 siguiente",today:e=>"Día"===e?"Hoy":("Semana"===e?"Esta":"Este")+" "+e.toLocaleLowerCase()},viewHint:e=>"Vista "+("Semana"===e?"de la":"del")+" "+e.toLocaleLowerCase(),weekText:"Sm",weekTextLong:"Semana",allDayText:"Todo el día",moreLinkText:"más",moreLinkHint:e=>`Mostrar ${e} eventos más`,noEventsText:"No hay eventos para mostrar",navLinkHint:"Ir al $0",closeHint:"Cerrar",timeHint:"La hora",eventHint:"Evento"},{code:"et",week:{dow:1,doy:4},buttonText:{prev:"Eelnev",next:"Järgnev",today:"Täna",year:"Aasta",month:"Kuu",week:"Nädal",day:"Päev",list:"Päevakord"},weekText:"näd",allDayText:"Kogu päev",moreLinkText:e=>"+ veel "+e,noEventsText:"Kuvamiseks puuduvad sündmused"},{code:"eu",week:{dow:1,doy:7},buttonText:{prev:"Aur",next:"Hur",today:"Gaur",year:"Urtea",month:"Hilabetea",week:"Astea",day:"Eguna",list:"Agenda"},weekText:"As",allDayText:"Egun osoa",moreLinkText:"gehiago",noEventsText:"Ez dago ekitaldirik erakusteko"},{code:"fa",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"قبلی",next:"بعدی",today:"امروز",year:"سال",month:"ماه",week:"هفته",day:"روز",list:"برنامه"},weekText:"هف",allDayText:"تمام روز",moreLinkText:e=>"بیش از "+e,noEventsText:"هیچ رویدادی به نمایش"},{code:"fi",week:{dow:1,doy:4},buttonText:{prev:"Edellinen",next:"Seuraava",today:"Tänään",year:"Vuosi",month:"Kuukausi",week:"Viikko",day:"Päivä",list:"Tapahtumat"},weekText:"Vk",allDayText:"Koko päivä",moreLinkText:"lisää",noEventsText:"Ei näytettäviä tapahtumia"},{code:"fr",buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekText:"Sem.",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun évènement à afficher"},{code:"fr-ch",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Courant",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekText:"Sm",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun évènement à afficher"},{code:"fr",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Planning"},weekText:"Sem.",weekTextLong:"Semaine",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun évènement à afficher"},{code:"gl",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Seg",today:"Hoxe",year:"Ano",month:"Mes",week:"Semana",day:"Día",list:"Axenda"},buttonHints:{prev:"$0 antes",next:"$0 seguinte",today:e=>"Día"===e?"Hoxe":("Semana"===e?"Esta":"Este")+" "+e.toLocaleLowerCase()},viewHint:e=>"Vista "+("Semana"===e?"da":"do")+" "+e.toLocaleLowerCase(),weekText:"Sm",weekTextLong:"Semana",allDayText:"Todo o día",moreLinkText:"máis",moreLinkHint:e=>`Amosar ${e} eventos máis`,noEventsText:"Non hai eventos para amosar",navLinkHint:"Ir ao $0",closeHint:"Pechar",timeHint:"A hora",eventHint:"Evento"},{code:"he",direction:"rtl",buttonText:{prev:"הקודם",next:"הבא",today:"היום",year:"שנה",month:"חודש",week:"שבוע",day:"יום",list:"סדר יום"},allDayText:"כל היום",moreLinkText:"נוספים",noEventsText:"אין אירועים להצגה",weekText:"שבוע"},{code:"hi",week:{dow:0,doy:6},buttonText:{prev:"पिछला",next:"अगला",today:"आज",year:"वर्ष",month:"महीना",week:"सप्ताह",day:"दिन",list:"कार्यसूची"},weekText:"हफ्ता",allDayText:"सभी दिन",moreLinkText:e=>"+अधिक "+e,noEventsText:"कोई घटनाओं को प्रदर्शित करने के लिए"},{code:"hr",week:{dow:1,doy:7},buttonText:{prev:"Prijašnji",next:"Sljedeći",today:"Danas",year:"Godina",month:"Mjesec",week:"Tjedan",day:"Dan",list:"Raspored"},weekText:"Tje",allDayText:"Cijeli dan",moreLinkText:e=>"+ još "+e,noEventsText:"Nema događaja za prikaz"},{code:"hu",week:{dow:1,doy:4},buttonText:{prev:"vissza",next:"előre",today:"ma",year:"Év",month:"Hónap",week:"Hét",day:"Nap",list:"Lista"},weekText:"Hét",allDayText:"Egész nap",moreLinkText:"további",noEventsText:"Nincs megjeleníthető esemény"},{code:"hy-am",week:{dow:1,doy:4},buttonText:{prev:"Նախորդ",next:"Հաջորդ",today:"Այսօր",year:"Տարի",month:"Ամիս",week:"Շաբաթ",day:"Օր",list:"Օրվա ցուցակ"},weekText:"Շաբ",allDayText:"Ամբողջ օր",moreLinkText:e=>"+ ևս "+e,noEventsText:"Բացակայում է իրադարձությունը ցուցադրելու"},{code:"id",week:{dow:1,doy:7},buttonText:{prev:"mundur",next:"maju",today:"hari ini",year:"Tahun",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekText:"Mg",allDayText:"Sehari penuh",moreLinkText:"lebih",noEventsText:"Tidak ada acara untuk ditampilkan"},{code:"is",week:{dow:1,doy:4},buttonText:{prev:"Fyrri",next:"Næsti",today:"Í dag",year:"Ár",month:"Mánuður",week:"Vika",day:"Dagur",list:"Dagskrá"},weekText:"Vika",allDayText:"Allan daginn",moreLinkText:"meira",noEventsText:"Engir viðburðir til að sýna"},{code:"it",week:{dow:1,doy:4},buttonText:{prev:"Prec",next:"Succ",today:"Oggi",year:"Anno",month:"Mese",week:"Settimana",day:"Giorno",list:"Agenda"},weekText:"Sm",allDayText:"Tutto il giorno",moreLinkText:e=>"+altri "+e,noEventsText:"Non ci sono eventi da visualizzare"},{code:"ja",buttonText:{prev:"前",next:"次",today:"今日",year:"年",month:"月",week:"週",day:"日",list:"予定リスト"},weekText:"週",allDayText:"終日",moreLinkText:e=>"他 "+e+" 件",noEventsText:"表示する予定はありません"},{code:"ka",week:{dow:1,doy:7},buttonText:{prev:"წინა",next:"შემდეგი",today:"დღეს",year:"წელიწადი",month:"თვე",week:"კვირა",day:"დღე",list:"დღის წესრიგი"},weekText:"კვ",allDayText:"მთელი დღე",moreLinkText:e=>"+ კიდევ "+e,noEventsText:"ღონისძიებები არ არის"},{code:"kk",week:{dow:1,doy:7},buttonText:{prev:"Алдыңғы",next:"Келесі",today:"Бүгін",year:"Жыл",month:"Ай",week:"Апта",day:"Күн",list:"Күн тәртібі"},weekText:"Не",allDayText:"Күні бойы",moreLinkText:e=>"+ тағы "+e,noEventsText:"Көрсету үшін оқиғалар жоқ"},{code:"km",week:{dow:1,doy:4},buttonText:{prev:"មុន",next:"បន្ទាប់",today:"ថ្ងៃនេះ",year:"ឆ្នាំ",month:"ខែ",week:"សប្តាហ៍",day:"ថ្ងៃ",list:"បញ្ជី"},weekText:"សប្តាហ៍",allDayText:"ពេញមួយថ្ងៃ",moreLinkText:"ច្រើនទៀត",noEventsText:"គ្មានព្រឹត្តិការណ៍ត្រូវបង្ហាញ"},{code:"ko",buttonText:{prev:"이전달",next:"다음달",today:"오늘",year:"년도",month:"월",week:"주",day:"일",list:"일정목록"},weekText:"주",allDayText:"종일",moreLinkText:"개",noEventsText:"일정이 없습니다"},{code:"ku",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"پێشتر",next:"دواتر",today:"ئەمڕو",year:"ساڵ",month:"مانگ",week:"هەفتە",day:"ڕۆژ",list:"بەرنامە"},weekText:"هەفتە",allDayText:"هەموو ڕۆژەکە",moreLinkText:"زیاتر",noEventsText:"هیچ ڕووداوێك نیە"},{code:"lb",week:{dow:1,doy:4},buttonText:{prev:"Zréck",next:"Weider",today:"Haut",year:"Joer",month:"Mount",week:"Woch",day:"Dag",list:"Terminiwwersiicht"},weekText:"W",allDayText:"Ganzen Dag",moreLinkText:"méi",noEventsText:"Nee Evenementer ze affichéieren"},{code:"lt",week:{dow:1,doy:4},buttonText:{prev:"Atgal",next:"Pirmyn",today:"Šiandien",year:"Metai",month:"Mėnuo",week:"Savaitė",day:"Diena",list:"Darbotvarkė"},weekText:"SAV",allDayText:"Visą dieną",moreLinkText:"daugiau",noEventsText:"Nėra įvykių rodyti"},{code:"lv",week:{dow:1,doy:4},buttonText:{prev:"Iepr.",next:"Nāk.",today:"Šodien",year:"Gads",month:"Mēnesis",week:"Nedēļa",day:"Diena",list:"Dienas kārtība"},weekText:"Ned.",allDayText:"Visu dienu",moreLinkText:e=>"+vēl "+e,noEventsText:"Nav notikumu"},{code:"mk",buttonText:{prev:"претходно",next:"следно",today:"Денес",year:"година",month:"Месец",week:"Недела",day:"Ден",list:"График"},weekText:"Сед",allDayText:"Цел ден",moreLinkText:e=>"+повеќе "+e,noEventsText:"Нема настани за прикажување"},{code:"ms",week:{dow:1,doy:7},buttonText:{prev:"Sebelum",next:"Selepas",today:"hari ini",year:"Tahun",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekText:"Mg",allDayText:"Sepanjang hari",moreLinkText:e=>"masih ada "+e+" acara",noEventsText:"Tiada peristiwa untuk dipaparkan"},{code:"nb",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Neste",today:"I dag",year:"År",month:"Måned",week:"Uke",day:"Dag",list:"Agenda"},weekText:"Uke",weekTextLong:"Uke",allDayText:"Hele dagen",moreLinkText:"til",noEventsText:"Ingen hendelser å vise",buttonHints:{prev:"Forrige $0",next:"Neste $0",today:"Nåværende $0"},viewHint:"$0 visning",navLinkHint:"Gå til $0",moreLinkHint:e=>`Vis ${e} flere hendelse${1===e?"":"r"}`},{code:"ne",week:{dow:7,doy:1},buttonText:{prev:"अघिल्लो",next:"अर्को",today:"आज",year:"वर्ष",month:"महिना",week:"हप्ता",day:"दिन",list:"सूची"},weekText:"हप्ता",allDayText:"दिनभरि",moreLinkText:"थप लिंक",noEventsText:"देखाउनको लागि कुनै घटनाहरू छैनन्"},{code:"nl",week:{dow:1,doy:4},buttonText:{prev:"Vorige",next:"Volgende",today:"Vandaag",year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Hele dag",moreLinkText:"extra",noEventsText:"Geen evenementen om te laten zien"},{code:"nn",week:{dow:1,doy:4},buttonText:{prev:"Førre",next:"Neste",today:"I dag",year:"År",month:"Månad",week:"Veke",day:"Dag",list:"Agenda"},weekText:"Veke",allDayText:"Heile dagen",moreLinkText:"til",noEventsText:"Ingen hendelser å vise"},{code:"pl",week:{dow:1,doy:4},buttonText:{prev:"Poprzedni",next:"Następny",today:"Dziś",year:"Rok",month:"Miesiąc",week:"Tydzień",day:"Dzień",list:"Plan dnia"},weekText:"Tydz",allDayText:"Cały dzień",moreLinkText:"więcej",noEventsText:"Brak wydarzeń do wyświetlenia"},{code:"pt-br",buttonText:{prev:"Anterior",next:"Próximo",prevYear:"Ano anterior",nextYear:"Próximo ano",year:"Ano",today:"Hoje",month:"Mês",week:"Semana",day:"Dia",list:"Lista"},buttonHints:{prev:"$0 Anterior",next:"Próximo $0",today:e=>"Dia"===e?"Hoje":("Semana"===e?"Esta":"Este")+" "+e.toLocaleLowerCase()},viewHint:e=>"Visualizar "+("Semana"===e?"a":"o")+" "+e.toLocaleLowerCase(),weekText:"Sm",weekTextLong:"Semana",allDayText:"dia inteiro",moreLinkText:e=>"mais +"+e,moreLinkHint:e=>`Mostrar mais ${e} eventos`,noEventsText:"Não há eventos para mostrar",navLinkHint:"Ir para $0",closeHint:"Fechar",timeHint:"A hora",eventHint:"Evento"},{code:"pt",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Seguinte",today:"Hoje",year:"Ano",month:"Mês",week:"Semana",day:"Dia",list:"Agenda"},weekText:"Sem",allDayText:"Todo o dia",moreLinkText:"mais",noEventsText:"Não há eventos para mostrar"},{code:"ro",week:{dow:1,doy:7},buttonText:{prev:"precedentă",next:"următoare",today:"Azi",year:"An",month:"Lună",week:"Săptămână",day:"Zi",list:"Agendă"},weekText:"Săpt",allDayText:"Toată ziua",moreLinkText:e=>"+alte "+e,noEventsText:"Nu există evenimente de afișat"},{code:"ru",week:{dow:1,doy:4},buttonText:{prev:"Пред",next:"След",today:"Сегодня",year:"Год",month:"Месяц",week:"Неделя",day:"День",list:"Повестка дня"},weekText:"Нед",allDayText:"Весь день",moreLinkText:e=>"+ ещё "+e,noEventsText:"Нет событий для отображения"},{code:"si-lk",week:{dow:1,doy:4},buttonText:{prev:"පෙර",next:"පසු",today:"අද",year:"අවුරුදු",month:"මාසය",week:"සතිය",day:"දවස",list:"ලැයිස්තුව"},weekText:"සති",allDayText:"සියලු",moreLinkText:"තවත්",noEventsText:"මුකුත් නැත"},{code:"sk",week:{dow:1,doy:4},buttonText:{prev:"Predchádzajúci",next:"Nasledujúci",today:"Dnes",year:"Rok",month:"Mesiac",week:"Týždeň",day:"Deň",list:"Rozvrh"},weekText:"Ty",allDayText:"Celý deň",moreLinkText:e=>"+ďalšie: "+e,noEventsText:"Žiadne akcie na zobrazenie"},{code:"sl",week:{dow:1,doy:7},buttonText:{prev:"Prejšnji",next:"Naslednji",today:"Trenutni",year:"Leto",month:"Mesec",week:"Teden",day:"Dan",list:"Dnevni red"},weekText:"Teden",allDayText:"Ves dan",moreLinkText:"več",noEventsText:"Ni dogodkov za prikaz"},{code:"sm",buttonText:{prev:"Talu ai",next:"Mulimuli atu",today:"Aso nei",year:"Tausaga",month:"Masina",week:"Vaiaso",day:"Aso",list:"Faasologa"},weekText:"Vaiaso",allDayText:"Aso atoa",moreLinkText:"sili atu",noEventsText:"Leai ni mea na tutupu"},{code:"sq",week:{dow:1,doy:4},buttonText:{prev:"mbrapa",next:"Përpara",today:"Sot",year:"Viti",month:"Muaj",week:"Javë",day:"Ditë",list:"Listë"},weekText:"Ja",allDayText:"Gjithë ditën",moreLinkText:e=>"+më tepër "+e,noEventsText:"Nuk ka evente për të shfaqur"},{code:"sr-cyrl",week:{dow:1,doy:7},buttonText:{prev:"Претходна",next:"следећи",today:"Данас",year:"Година",month:"Месец",week:"Недеља",day:"Дан",list:"Планер"},weekText:"Сед",allDayText:"Цео дан",moreLinkText:e=>"+ још "+e,noEventsText:"Нема догађаја за приказ"},{code:"sr",week:{dow:1,doy:7},buttonText:{prev:"Prethodna",next:"Sledeći",today:"Danas",year:"Godina",month:"Mеsеc",week:"Nеdеlja",day:"Dan",list:"Planеr"},weekText:"Sed",allDayText:"Cеo dan",moreLinkText:e=>"+ još "+e,noEventsText:"Nеma događaja za prikaz"},{code:"sv",week:{dow:1,doy:4},buttonText:{prev:"Förra",next:"Nästa",today:"Idag",year:"År",month:"Månad",week:"Vecka",day:"Dag",list:"Program"},buttonHints:{prev:e=>"Föregående "+e.toLocaleLowerCase(),next:e=>"Nästa "+e.toLocaleLowerCase(),today:e=>("Program"===e?"Detta":"Denna")+" "+e.toLocaleLowerCase()},viewHint:"$0 vy",navLinkHint:"Gå till $0",moreLinkHint:e=>`Visa ytterligare ${e} händelse${1===e?"":"r"}`,weekText:"v.",weekTextLong:"Vecka",allDayText:"Heldag",moreLinkText:"till",noEventsText:"Inga händelser att visa",closeHint:"Stäng",timeHint:"Klockan",eventHint:"Händelse"},{code:"ta-in",week:{dow:1,doy:4},buttonText:{prev:"முந்தைய",next:"அடுத்தது",today:"இன்று",year:"ஆண்டு",month:"மாதம்",week:"வாரம்",day:"நாள்",list:"தினசரி அட்டவணை"},weekText:"வாரம்",allDayText:"நாள் முழுவதும்",moreLinkText:e=>"+ மேலும் "+e,noEventsText:"காண்பிக்க நிகழ்வுகள் இல்லை"},{code:"th",week:{dow:1,doy:4},buttonText:{prev:"ก่อนหน้า",next:"ถัดไป",prevYear:"ปีก่อนหน้า",nextYear:"ปีถัดไป",year:"ปี",today:"วันนี้",month:"เดือน",week:"สัปดาห์",day:"วัน",list:"กำหนดการ"},weekText:"สัปดาห์",allDayText:"ตลอดวัน",moreLinkText:"เพิ่มเติม",noEventsText:"ไม่มีกิจกรรมที่จะแสดง"},{code:"tr",week:{dow:1,doy:7},buttonText:{prev:"geri",next:"ileri",today:"bugün",year:"Yıl",month:"Ay",week:"Hafta",day:"Gün",list:"Ajanda"},weekText:"Hf",allDayText:"Tüm gün",moreLinkText:"daha fazla",noEventsText:"Gösterilecek etkinlik yok"},{code:"ug",buttonText:{prev:"ئالدىنقى",next:"كېيىنكى",today:"بۈگۈن",year:"يىل",month:"ئاي",week:"ھەپتە",day:"كۈن",list:"كۈنتەرتىپ"},allDayText:"پۈتۈن كۈن"},{code:"uk",week:{dow:1,doy:7},buttonText:{prev:"Попередній",next:"далі",today:"Сьогодні",year:"рік",month:"Місяць",week:"Тиждень",day:"День",list:"Порядок денний"},weekText:"Тиж",allDayText:"Увесь день",moreLinkText:e=>"+ще "+e+"...",noEventsText:"Немає подій для відображення"},{code:"uz-cy",week:{dow:1,doy:4},buttonText:{prev:"Олин",next:"Кейин",today:"Бугун",month:"Ой",week:"Ҳафта",day:"Кун",list:"Кун тартиби"},weekText:"Ҳафта",allDayText:"Кун бўйича",moreLinkText:e=>"+ яна "+e,noEventsText:"Кўрсатиш учун воқеалар йўқ"},{code:"uz",week:{dow:1,doy:4},buttonText:{prev:"Oldingi",next:"Keyingi",today:"Bugun",year:"Yil",month:"Oy",week:"Xafta",day:"Kun",list:"Kun tartibi"},allDayText:"Kun bo'yi",moreLinkText:e=>"+ yana "+e,noEventsText:"Ko'rsatish uchun voqealar yo'q"},{code:"vi",week:{dow:1,doy:4},buttonText:{prev:"Trước",next:"Tiếp",today:"Hôm nay",year:"Năm",month:"Tháng",week:"Tuần",day:"Ngày",list:"Lịch biểu"},weekText:"Tu",allDayText:"Cả ngày",moreLinkText:e=>"+ thêm "+e,noEventsText:"Không có sự kiện để hiển thị"},{code:"zh-cn",week:{dow:1,doy:4},buttonText:{prev:"上月",next:"下月",today:"今天",year:"年",month:"月",week:"周",day:"日",list:"日程"},weekText:"周",allDayText:"全天",moreLinkText:e=>"另外 "+e+" 个",noEventsText:"没有事件显示"},{code:"zh-tw",buttonText:{prev:"上個",next:"下個",today:"今天",year:"年",month:"月",week:"週",day:"天",list:"活動列表"},weekText:"週",allDayText:"整天",moreLinkText:"顯示更多",noEventsText:"沒有任何活動"}];FullCalendar.globalLocales.push(...o)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/af.global.js b/library/fullcalendar/packages/core/locales/af.global.js
index c5bed4dd4..eb46ac6a2 100644
--- a/library/fullcalendar/packages/core/locales/af.global.js
+++ b/library/fullcalendar/packages/core/locales/af.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
diff --git a/library/fullcalendar/packages/core/locales/af.global.min.js b/library/fullcalendar/packages/core/locales/af.global.min.js
index 7e3b2af8f..56eee9bba 100644
--- a/library/fullcalendar/packages/core/locales/af.global.min.js
+++ b/library/fullcalendar/packages/core/locales/af.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
!function(e){"use strict";FullCalendar.globalLocales.push({code:"af",week:{dow:1,doy:4},buttonText:{prev:"Vorige",next:"Volgende",today:"Vandag",year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Heeldag",moreLinkText:"Addisionele",noEventsText:"Daar is geen gebeurtenisse nie"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/ar-dz.global.js b/library/fullcalendar/packages/core/locales/ar-dz.global.js
index b72beb79c..e5df6e2f8 100644
--- a/library/fullcalendar/packages/core/locales/ar-dz.global.js
+++ b/library/fullcalendar/packages/core/locales/ar-dz.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -17,6 +17,7 @@ Docs & License: https://fullcalendar.io
prev: 'السابق',
next: 'التالي',
today: 'اليوم',
+ year: 'سنة',
month: 'شهر',
week: 'أسبوع',
day: 'يوم',
diff --git a/library/fullcalendar/packages/core/locales/ar-dz.global.min.js b/library/fullcalendar/packages/core/locales/ar-dz.global.min.js
index 1fde2ea1a..77f66cca0 100644
--- a/library/fullcalendar/packages/core/locales/ar-dz.global.min.js
+++ b/library/fullcalendar/packages/core/locales/ar-dz.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"ar-dz",week:{dow:0,doy:4},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"ar-dz",week:{dow:0,doy:4},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",year:"سنة",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/ar-kw.global.js b/library/fullcalendar/packages/core/locales/ar-kw.global.js
index 41a3c10d5..934e9b0cc 100644
--- a/library/fullcalendar/packages/core/locales/ar-kw.global.js
+++ b/library/fullcalendar/packages/core/locales/ar-kw.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -17,6 +17,7 @@ Docs & License: https://fullcalendar.io
prev: 'السابق',
next: 'التالي',
today: 'اليوم',
+ year: 'سنة',
month: 'شهر',
week: 'أسبوع',
day: 'يوم',
diff --git a/library/fullcalendar/packages/core/locales/ar-kw.global.min.js b/library/fullcalendar/packages/core/locales/ar-kw.global.min.js
index 4be50b9df..75cf91c8e 100644
--- a/library/fullcalendar/packages/core/locales/ar-kw.global.min.js
+++ b/library/fullcalendar/packages/core/locales/ar-kw.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"ar-kw",week:{dow:0,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"ar-kw",week:{dow:0,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",year:"سنة",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/ar-ly.global.js b/library/fullcalendar/packages/core/locales/ar-ly.global.js
index 4d60121df..f5e85c394 100644
--- a/library/fullcalendar/packages/core/locales/ar-ly.global.js
+++ b/library/fullcalendar/packages/core/locales/ar-ly.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -17,6 +17,7 @@ Docs & License: https://fullcalendar.io
prev: 'السابق',
next: 'التالي',
today: 'اليوم',
+ year: 'سنة',
month: 'شهر',
week: 'أسبوع',
day: 'يوم',
diff --git a/library/fullcalendar/packages/core/locales/ar-ly.global.min.js b/library/fullcalendar/packages/core/locales/ar-ly.global.min.js
index 5f8257659..c5059dc8a 100644
--- a/library/fullcalendar/packages/core/locales/ar-ly.global.min.js
+++ b/library/fullcalendar/packages/core/locales/ar-ly.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"ar-ly",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"ar-ly",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",year:"سنة",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/ar-ma.global.js b/library/fullcalendar/packages/core/locales/ar-ma.global.js
index a38250dfb..74da76824 100644
--- a/library/fullcalendar/packages/core/locales/ar-ma.global.js
+++ b/library/fullcalendar/packages/core/locales/ar-ma.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -17,6 +17,7 @@ Docs & License: https://fullcalendar.io
prev: 'السابق',
next: 'التالي',
today: 'اليوم',
+ year: 'سنة',
month: 'شهر',
week: 'أسبوع',
day: 'يوم',
diff --git a/library/fullcalendar/packages/core/locales/ar-ma.global.min.js b/library/fullcalendar/packages/core/locales/ar-ma.global.min.js
index 87f3c5cc0..ac4a94c49 100644
--- a/library/fullcalendar/packages/core/locales/ar-ma.global.min.js
+++ b/library/fullcalendar/packages/core/locales/ar-ma.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"ar-ma",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"ar-ma",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",year:"سنة",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/ar-sa.global.js b/library/fullcalendar/packages/core/locales/ar-sa.global.js
index aca72e1dc..e5496d733 100644
--- a/library/fullcalendar/packages/core/locales/ar-sa.global.js
+++ b/library/fullcalendar/packages/core/locales/ar-sa.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -17,6 +17,7 @@ Docs & License: https://fullcalendar.io
prev: 'السابق',
next: 'التالي',
today: 'اليوم',
+ year: 'سنة',
month: 'شهر',
week: 'أسبوع',
day: 'يوم',
diff --git a/library/fullcalendar/packages/core/locales/ar-sa.global.min.js b/library/fullcalendar/packages/core/locales/ar-sa.global.min.js
index e0e0753b0..3e33db7e6 100644
--- a/library/fullcalendar/packages/core/locales/ar-sa.global.min.js
+++ b/library/fullcalendar/packages/core/locales/ar-sa.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"ar-sa",week:{dow:0,doy:6},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"ar-sa",week:{dow:0,doy:6},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",year:"سنة",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/ar-tn.global.js b/library/fullcalendar/packages/core/locales/ar-tn.global.js
index 20fbe7962..18f925be0 100644
--- a/library/fullcalendar/packages/core/locales/ar-tn.global.js
+++ b/library/fullcalendar/packages/core/locales/ar-tn.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -17,6 +17,7 @@ Docs & License: https://fullcalendar.io
prev: 'السابق',
next: 'التالي',
today: 'اليوم',
+ year: 'سنة',
month: 'شهر',
week: 'أسبوع',
day: 'يوم',
diff --git a/library/fullcalendar/packages/core/locales/ar-tn.global.min.js b/library/fullcalendar/packages/core/locales/ar-tn.global.min.js
index d5a256ee0..a657dd911 100644
--- a/library/fullcalendar/packages/core/locales/ar-tn.global.min.js
+++ b/library/fullcalendar/packages/core/locales/ar-tn.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"ar-tn",week:{dow:1,doy:4},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"ar-tn",week:{dow:1,doy:4},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",year:"سنة",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/ar.global.js b/library/fullcalendar/packages/core/locales/ar.global.js
index 8124d0280..9458a0417 100644
--- a/library/fullcalendar/packages/core/locales/ar.global.js
+++ b/library/fullcalendar/packages/core/locales/ar.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -17,6 +17,7 @@ Docs & License: https://fullcalendar.io
prev: 'السابق',
next: 'التالي',
today: 'اليوم',
+ year: 'سنة',
month: 'شهر',
week: 'أسبوع',
day: 'يوم',
diff --git a/library/fullcalendar/packages/core/locales/ar.global.min.js b/library/fullcalendar/packages/core/locales/ar.global.min.js
index 92abaf1c6..4b4de97db 100644
--- a/library/fullcalendar/packages/core/locales/ar.global.min.js
+++ b/library/fullcalendar/packages/core/locales/ar.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"ar",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"ar",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",year:"سنة",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/az.global.js b/library/fullcalendar/packages/core/locales/az.global.js
index 5239e1b4b..235396f3c 100644
--- a/library/fullcalendar/packages/core/locales/az.global.js
+++ b/library/fullcalendar/packages/core/locales/az.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Əvvəl',
next: 'Sonra',
today: 'Bu Gün',
+ year: 'Il',
month: 'Ay',
week: 'Həftə',
day: 'Gün',
diff --git a/library/fullcalendar/packages/core/locales/az.global.min.js b/library/fullcalendar/packages/core/locales/az.global.min.js
index 9d52bec21..fc37f967c 100644
--- a/library/fullcalendar/packages/core/locales/az.global.min.js
+++ b/library/fullcalendar/packages/core/locales/az.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"az",week:{dow:1,doy:4},buttonText:{prev:"Əvvəl",next:"Sonra",today:"Bu Gün",month:"Ay",week:"Həftə",day:"Gün",list:"Gündəm"},weekText:"Həftə",allDayText:"Bütün Gün",moreLinkText:e=>"+ daha çox "+e,noEventsText:"Göstərmək üçün hadisə yoxdur"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var t={code:"az",week:{dow:1,doy:4},buttonText:{prev:"Əvvəl",next:"Sonra",today:"Bu Gün",year:"Il",month:"Ay",week:"Həftə",day:"Gün",list:"Gündəm"},weekText:"Həftə",allDayText:"Bütün Gün",moreLinkText:e=>"+ daha çox "+e,noEventsText:"Göstərmək üçün hadisə yoxdur"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/bg.global.js b/library/fullcalendar/packages/core/locales/bg.global.js
index aeb494975..3cc52c693 100644
--- a/library/fullcalendar/packages/core/locales/bg.global.js
+++ b/library/fullcalendar/packages/core/locales/bg.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'назад',
next: 'напред',
today: 'днес',
+ year: 'година',
month: 'Месец',
week: 'Седмица',
day: 'Ден',
diff --git a/library/fullcalendar/packages/core/locales/bg.global.min.js b/library/fullcalendar/packages/core/locales/bg.global.min.js
index d919c704f..26b24196e 100644
--- a/library/fullcalendar/packages/core/locales/bg.global.min.js
+++ b/library/fullcalendar/packages/core/locales/bg.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"bg",week:{dow:1,doy:7},buttonText:{prev:"назад",next:"напред",today:"днес",month:"Месец",week:"Седмица",day:"Ден",list:"График"},allDayText:"Цял ден",moreLinkText:e=>"+още "+e,noEventsText:"Няма събития за показване"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var t={code:"bg",week:{dow:1,doy:7},buttonText:{prev:"назад",next:"напред",today:"днес",year:"година",month:"Месец",week:"Седмица",day:"Ден",list:"График"},allDayText:"Цял ден",moreLinkText:e=>"+още "+e,noEventsText:"Няма събития за показване"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/bn.global.js b/library/fullcalendar/packages/core/locales/bn.global.js
index f6d2ca483..192efebcd 100644
--- a/library/fullcalendar/packages/core/locales/bn.global.js
+++ b/library/fullcalendar/packages/core/locales/bn.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'পেছনে',
next: 'সামনে',
today: 'আজ',
+ year: 'বছর',
month: 'মাস',
week: 'সপ্তাহ',
day: 'দিন',
diff --git a/library/fullcalendar/packages/core/locales/bn.global.min.js b/library/fullcalendar/packages/core/locales/bn.global.min.js
index d41880bb3..6d0a78b1d 100644
--- a/library/fullcalendar/packages/core/locales/bn.global.min.js
+++ b/library/fullcalendar/packages/core/locales/bn.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"bn",week:{dow:0,doy:6},buttonText:{prev:"পেছনে",next:"সামনে",today:"আজ",month:"মাস",week:"সপ্তাহ",day:"দিন",list:"তালিকা"},weekText:"সপ্তাহ",allDayText:"সারাদিন",moreLinkText:e=>"+অন্যান্য "+e,noEventsText:"কোনো ইভেন্ট নেই"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var t={code:"bn",week:{dow:0,doy:6},buttonText:{prev:"পেছনে",next:"সামনে",today:"আজ",year:"বছর",month:"মাস",week:"সপ্তাহ",day:"দিন",list:"তালিকা"},weekText:"সপ্তাহ",allDayText:"সারাদিন",moreLinkText:e=>"+অন্যান্য "+e,noEventsText:"কোনো ইভেন্ট নেই"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/bs.global.js b/library/fullcalendar/packages/core/locales/bs.global.js
index d7de947c2..c01115ae9 100644
--- a/library/fullcalendar/packages/core/locales/bs.global.js
+++ b/library/fullcalendar/packages/core/locales/bs.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Prošli',
next: 'Sljedeći',
today: 'Danas',
+ year: 'Godina',
month: 'Mjesec',
week: 'Sedmica',
day: 'Dan',
diff --git a/library/fullcalendar/packages/core/locales/bs.global.min.js b/library/fullcalendar/packages/core/locales/bs.global.min.js
index 8815724cd..3997471ff 100644
--- a/library/fullcalendar/packages/core/locales/bs.global.min.js
+++ b/library/fullcalendar/packages/core/locales/bs.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var a={code:"bs",week:{dow:1,doy:7},buttonText:{prev:"Prošli",next:"Sljedeći",today:"Danas",month:"Mjesec",week:"Sedmica",day:"Dan",list:"Raspored"},weekText:"Sed",allDayText:"Cijeli dan",moreLinkText:e=>"+ još "+e,noEventsText:"Nema događaja za prikazivanje"};FullCalendar.globalLocales.push(a)}(); \ No newline at end of file
+!function(e){"use strict";var a={code:"bs",week:{dow:1,doy:7},buttonText:{prev:"Prošli",next:"Sljedeći",today:"Danas",year:"Godina",month:"Mjesec",week:"Sedmica",day:"Dan",list:"Raspored"},weekText:"Sed",allDayText:"Cijeli dan",moreLinkText:e=>"+ još "+e,noEventsText:"Nema događaja za prikazivanje"};FullCalendar.globalLocales.push(a)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/ca.global.js b/library/fullcalendar/packages/core/locales/ca.global.js
index b65d6630f..e14a7dad9 100644
--- a/library/fullcalendar/packages/core/locales/ca.global.js
+++ b/library/fullcalendar/packages/core/locales/ca.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Anterior',
next: 'Següent',
today: 'Avui',
+ year: 'Curs',
month: 'Mes',
week: 'Setmana',
day: 'Dia',
diff --git a/library/fullcalendar/packages/core/locales/ca.global.min.js b/library/fullcalendar/packages/core/locales/ca.global.min.js
index 92b9047aa..582f0bdf7 100644
--- a/library/fullcalendar/packages/core/locales/ca.global.min.js
+++ b/library/fullcalendar/packages/core/locales/ca.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"ca",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Següent",today:"Avui",month:"Mes",week:"Setmana",day:"Dia",list:"Agenda"},weekText:"Set",allDayText:"Tot el dia",moreLinkText:"més",noEventsText:"No hi ha esdeveniments per mostrar"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"ca",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Següent",today:"Avui",year:"Curs",month:"Mes",week:"Setmana",day:"Dia",list:"Agenda"},weekText:"Set",allDayText:"Tot el dia",moreLinkText:"més",noEventsText:"No hi ha esdeveniments per mostrar"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/cs.global.js b/library/fullcalendar/packages/core/locales/cs.global.js
index bd105ca3b..2254b8677 100644
--- a/library/fullcalendar/packages/core/locales/cs.global.js
+++ b/library/fullcalendar/packages/core/locales/cs.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Dříve',
next: 'Později',
today: 'Nyní',
+ year: 'Rok',
month: 'Měsíc',
week: 'Týden',
day: 'Den',
diff --git a/library/fullcalendar/packages/core/locales/cs.global.min.js b/library/fullcalendar/packages/core/locales/cs.global.min.js
index eaf37f366..faca24939 100644
--- a/library/fullcalendar/packages/core/locales/cs.global.min.js
+++ b/library/fullcalendar/packages/core/locales/cs.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var n={code:"cs",week:{dow:1,doy:4},buttonText:{prev:"Dříve",next:"Později",today:"Nyní",month:"Měsíc",week:"Týden",day:"Den",list:"Agenda"},weekText:"Týd",allDayText:"Celý den",moreLinkText:e=>"+další: "+e,noEventsText:"Žádné akce k zobrazení"};FullCalendar.globalLocales.push(n)}(); \ No newline at end of file
+!function(e){"use strict";var n={code:"cs",week:{dow:1,doy:4},buttonText:{prev:"Dříve",next:"Později",today:"Nyní",year:"Rok",month:"Měsíc",week:"Týden",day:"Den",list:"Agenda"},weekText:"Týd",allDayText:"Celý den",moreLinkText:e=>"+další: "+e,noEventsText:"Žádné akce k zobrazení"};FullCalendar.globalLocales.push(n)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/cy.global.js b/library/fullcalendar/packages/core/locales/cy.global.js
index ac1e612ed..fc3f4278d 100644
--- a/library/fullcalendar/packages/core/locales/cy.global.js
+++ b/library/fullcalendar/packages/core/locales/cy.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
diff --git a/library/fullcalendar/packages/core/locales/cy.global.min.js b/library/fullcalendar/packages/core/locales/cy.global.min.js
index 2599b40dd..4ad732b4e 100644
--- a/library/fullcalendar/packages/core/locales/cy.global.min.js
+++ b/library/fullcalendar/packages/core/locales/cy.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
!function(e){"use strict";FullCalendar.globalLocales.push({code:"cy",week:{dow:1,doy:4},buttonText:{prev:"Blaenorol",next:"Nesaf",today:"Heddiw",year:"Blwyddyn",month:"Mis",week:"Wythnos",day:"Dydd",list:"Rhestr"},weekText:"Wythnos",allDayText:"Trwy'r dydd",moreLinkText:"Mwy",noEventsText:"Dim digwyddiadau"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/da.global.js b/library/fullcalendar/packages/core/locales/da.global.js
index b5e1e4095..804cb69ad 100644
--- a/library/fullcalendar/packages/core/locales/da.global.js
+++ b/library/fullcalendar/packages/core/locales/da.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Forrige',
next: 'Næste',
today: 'I dag',
+ year: 'År',
month: 'Måned',
week: 'Uge',
day: 'Dag',
diff --git a/library/fullcalendar/packages/core/locales/da.global.min.js b/library/fullcalendar/packages/core/locales/da.global.min.js
index 907d0f989..7d5024bdb 100644
--- a/library/fullcalendar/packages/core/locales/da.global.min.js
+++ b/library/fullcalendar/packages/core/locales/da.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"da",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Næste",today:"I dag",month:"Måned",week:"Uge",day:"Dag",list:"Agenda"},weekText:"Uge",allDayText:"Hele dagen",moreLinkText:"flere",noEventsText:"Ingen arrangementer at vise"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"da",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Næste",today:"I dag",year:"År",month:"Måned",week:"Uge",day:"Dag",list:"Agenda"},weekText:"Uge",allDayText:"Hele dagen",moreLinkText:"flere",noEventsText:"Ingen arrangementer at vise"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/de-at.global.js b/library/fullcalendar/packages/core/locales/de-at.global.js
index 1e449591d..99bda10c5 100644
--- a/library/fullcalendar/packages/core/locales/de-at.global.js
+++ b/library/fullcalendar/packages/core/locales/de-at.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
diff --git a/library/fullcalendar/packages/core/locales/de-at.global.min.js b/library/fullcalendar/packages/core/locales/de-at.global.min.js
index c9eff3f67..9c9d6e2c3 100644
--- a/library/fullcalendar/packages/core/locales/de-at.global.min.js
+++ b/library/fullcalendar/packages/core/locales/de-at.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
!function(e){"use strict";function t(e){return"Tag"===e||"Monat"===e?"r":"Jahr"===e?"s":""}var n={code:"de-at",week:{dow:1,doy:4},buttonText:{prev:"Zurück",next:"Vor",today:"Heute",year:"Jahr",month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},weekText:"KW",weekTextLong:"Woche",allDayText:"Ganztägig",moreLinkText:e=>"+ weitere "+e,noEventsText:"Keine Ereignisse anzuzeigen",buttonHints:{prev:e=>`Vorherige${t(e)} ${e}`,next:e=>`Nächste${t(e)} ${e}`,today:e=>"Tag"===e?"Heute":`Diese${t(e)} ${e}`},viewHint:e=>e+("Woche"===e?"n":"Monat"===e?"s":"es")+"ansicht",navLinkHint:"Gehe zu $0",moreLinkHint:e=>"Zeige "+(1===e?"ein weiteres Ereignis":e+" weitere Ereignisse"),closeHint:"Schließen",timeHint:"Uhrzeit",eventHint:"Ereignis"};FullCalendar.globalLocales.push(n)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/de.global.js b/library/fullcalendar/packages/core/locales/de.global.js
index 09d1b3074..8f7bdc71a 100644
--- a/library/fullcalendar/packages/core/locales/de.global.js
+++ b/library/fullcalendar/packages/core/locales/de.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
diff --git a/library/fullcalendar/packages/core/locales/de.global.min.js b/library/fullcalendar/packages/core/locales/de.global.min.js
index 907861094..9c535d5d1 100644
--- a/library/fullcalendar/packages/core/locales/de.global.min.js
+++ b/library/fullcalendar/packages/core/locales/de.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
!function(e){"use strict";function t(e){return"Tag"===e||"Monat"===e?"r":"Jahr"===e?"s":""}var n={code:"de",week:{dow:1,doy:4},buttonText:{prev:"Zurück",next:"Vor",today:"Heute",year:"Jahr",month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},weekText:"KW",weekTextLong:"Woche",allDayText:"Ganztägig",moreLinkText:e=>"+ weitere "+e,noEventsText:"Keine Ereignisse anzuzeigen",buttonHints:{prev:e=>`Vorherige${t(e)} ${e}`,next:e=>`Nächste${t(e)} ${e}`,today:e=>"Tag"===e?"Heute":`Diese${t(e)} ${e}`},viewHint:e=>e+("Woche"===e?"n":"Monat"===e?"s":"es")+"ansicht",navLinkHint:"Gehe zu $0",moreLinkHint:e=>"Zeige "+(1===e?"ein weiteres Ereignis":e+" weitere Ereignisse"),closeHint:"Schließen",timeHint:"Uhrzeit",eventHint:"Ereignis"};FullCalendar.globalLocales.push(n)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/el.global.js b/library/fullcalendar/packages/core/locales/el.global.js
index 8b6a656c7..59f5239cb 100644
--- a/library/fullcalendar/packages/core/locales/el.global.js
+++ b/library/fullcalendar/packages/core/locales/el.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Προηγούμενος',
next: 'Επόμενος',
today: 'Σήμερα',
+ year: 'Ετος',
month: 'Μήνας',
week: 'Εβδομάδα',
day: 'Ημέρα',
diff --git a/library/fullcalendar/packages/core/locales/el.global.min.js b/library/fullcalendar/packages/core/locales/el.global.min.js
index f976bd2fd..39413897d 100644
--- a/library/fullcalendar/packages/core/locales/el.global.min.js
+++ b/library/fullcalendar/packages/core/locales/el.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"el",week:{dow:1,doy:4},buttonText:{prev:"Προηγούμενος",next:"Επόμενος",today:"Σήμερα",month:"Μήνας",week:"Εβδομάδα",day:"Ημέρα",list:"Ατζέντα"},weekText:"Εβδ",allDayText:"Ολοήμερο",moreLinkText:"περισσότερα",noEventsText:"Δεν υπάρχουν γεγονότα προς εμφάνιση"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"el",week:{dow:1,doy:4},buttonText:{prev:"Προηγούμενος",next:"Επόμενος",today:"Σήμερα",year:"Ετος",month:"Μήνας",week:"Εβδομάδα",day:"Ημέρα",list:"Ατζέντα"},weekText:"Εβδ",allDayText:"Ολοήμερο",moreLinkText:"περισσότερα",noEventsText:"Δεν υπάρχουν γεγονότα προς εμφάνιση"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/en-au.global.js b/library/fullcalendar/packages/core/locales/en-au.global.js
index 74464ebe9..e58d8eb0b 100644
--- a/library/fullcalendar/packages/core/locales/en-au.global.js
+++ b/library/fullcalendar/packages/core/locales/en-au.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
diff --git a/library/fullcalendar/packages/core/locales/en-au.global.min.js b/library/fullcalendar/packages/core/locales/en-au.global.min.js
index 4a192f9cf..504cdff39 100644
--- a/library/fullcalendar/packages/core/locales/en-au.global.min.js
+++ b/library/fullcalendar/packages/core/locales/en-au.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
!function(e){"use strict";var n={code:"en-au",week:{dow:1,doy:4},buttonHints:{prev:"Previous $0",next:"Next $0",today:"This $0"},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:e=>`Show ${e} more event${1===e?"":"s"}`};FullCalendar.globalLocales.push(n)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/en-gb.global.js b/library/fullcalendar/packages/core/locales/en-gb.global.js
index dd325f55d..7fddf3fb3 100644
--- a/library/fullcalendar/packages/core/locales/en-gb.global.js
+++ b/library/fullcalendar/packages/core/locales/en-gb.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
diff --git a/library/fullcalendar/packages/core/locales/en-gb.global.min.js b/library/fullcalendar/packages/core/locales/en-gb.global.min.js
index 1157e7b6c..67679eacc 100644
--- a/library/fullcalendar/packages/core/locales/en-gb.global.min.js
+++ b/library/fullcalendar/packages/core/locales/en-gb.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
!function(e){"use strict";var n={code:"en-gb",week:{dow:1,doy:4},buttonHints:{prev:"Previous $0",next:"Next $0",today:"This $0"},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:e=>`Show ${e} more event${1===e?"":"s"}`};FullCalendar.globalLocales.push(n)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/en-nz.global.js b/library/fullcalendar/packages/core/locales/en-nz.global.js
index 78b180a2a..70308da3f 100644
--- a/library/fullcalendar/packages/core/locales/en-nz.global.js
+++ b/library/fullcalendar/packages/core/locales/en-nz.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
diff --git a/library/fullcalendar/packages/core/locales/en-nz.global.min.js b/library/fullcalendar/packages/core/locales/en-nz.global.min.js
index 03bf9b01a..65b93ec68 100644
--- a/library/fullcalendar/packages/core/locales/en-nz.global.min.js
+++ b/library/fullcalendar/packages/core/locales/en-nz.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
!function(e){"use strict";var n={code:"en-nz",week:{dow:1,doy:4},buttonHints:{prev:"Previous $0",next:"Next $0",today:"This $0"},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:e=>`Show ${e} more event${1===e?"":"s"}`};FullCalendar.globalLocales.push(n)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/eo.global.js b/library/fullcalendar/packages/core/locales/eo.global.js
index 92ac916bd..2f3c5bca9 100644
--- a/library/fullcalendar/packages/core/locales/eo.global.js
+++ b/library/fullcalendar/packages/core/locales/eo.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Antaŭa',
next: 'Sekva',
today: 'Hodiaŭ',
+ year: 'Jaro',
month: 'Monato',
week: 'Semajno',
day: 'Tago',
diff --git a/library/fullcalendar/packages/core/locales/eo.global.min.js b/library/fullcalendar/packages/core/locales/eo.global.min.js
index fc77391ee..1c7c6fdad 100644
--- a/library/fullcalendar/packages/core/locales/eo.global.min.js
+++ b/library/fullcalendar/packages/core/locales/eo.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"eo",week:{dow:1,doy:4},buttonText:{prev:"Antaŭa",next:"Sekva",today:"Hodiaŭ",month:"Monato",week:"Semajno",day:"Tago",list:"Tagordo"},weekText:"Sm",allDayText:"Tuta tago",moreLinkText:"pli",noEventsText:"Neniuj eventoj por montri"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"eo",week:{dow:1,doy:4},buttonText:{prev:"Antaŭa",next:"Sekva",today:"Hodiaŭ",year:"Jaro",month:"Monato",week:"Semajno",day:"Tago",list:"Tagordo"},weekText:"Sm",allDayText:"Tuta tago",moreLinkText:"pli",noEventsText:"Neniuj eventoj por montri"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/es-us.global.js b/library/fullcalendar/packages/core/locales/es-us.global.js
index e6dfe9612..7102e43e5 100644
--- a/library/fullcalendar/packages/core/locales/es-us.global.js
+++ b/library/fullcalendar/packages/core/locales/es-us.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Ant',
next: 'Sig',
today: 'Hoy',
+ year: 'Año',
month: 'Mes',
week: 'Semana',
day: 'Día',
diff --git a/library/fullcalendar/packages/core/locales/es-us.global.min.js b/library/fullcalendar/packages/core/locales/es-us.global.min.js
index e66c8273b..74b28e29a 100644
--- a/library/fullcalendar/packages/core/locales/es-us.global.min.js
+++ b/library/fullcalendar/packages/core/locales/es-us.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"es",week:{dow:0,doy:6},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},weekText:"Sm",allDayText:"Todo el día",moreLinkText:"más",noEventsText:"No hay eventos para mostrar"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"es",week:{dow:0,doy:6},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",year:"Año",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},weekText:"Sm",allDayText:"Todo el día",moreLinkText:"más",noEventsText:"No hay eventos para mostrar"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/es.global.js b/library/fullcalendar/packages/core/locales/es.global.js
index ab2740f5f..189a9ebb7 100644
--- a/library/fullcalendar/packages/core/locales/es.global.js
+++ b/library/fullcalendar/packages/core/locales/es.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Ant',
next: 'Sig',
today: 'Hoy',
+ year: 'Año',
month: 'Mes',
week: 'Semana',
day: 'Día',
diff --git a/library/fullcalendar/packages/core/locales/es.global.min.js b/library/fullcalendar/packages/core/locales/es.global.min.js
index b474665b3..9af789abd 100644
--- a/library/fullcalendar/packages/core/locales/es.global.min.js
+++ b/library/fullcalendar/packages/core/locales/es.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"es",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},buttonHints:{prev:"$0 antes",next:"$0 siguiente",today:e=>"Día"===e?"Hoy":("Semana"===e?"Esta":"Este")+" "+e.toLocaleLowerCase()},viewHint:e=>"Vista "+("Semana"===e?"de la":"del")+" "+e.toLocaleLowerCase(),weekText:"Sm",weekTextLong:"Semana",allDayText:"Todo el día",moreLinkText:"más",moreLinkHint:e=>`Mostrar ${e} eventos más`,noEventsText:"No hay eventos para mostrar",navLinkHint:"Ir al $0",closeHint:"Cerrar",timeHint:"La hora",eventHint:"Evento"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var t={code:"es",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",year:"Año",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},buttonHints:{prev:"$0 antes",next:"$0 siguiente",today:e=>"Día"===e?"Hoy":("Semana"===e?"Esta":"Este")+" "+e.toLocaleLowerCase()},viewHint:e=>"Vista "+("Semana"===e?"de la":"del")+" "+e.toLocaleLowerCase(),weekText:"Sm",weekTextLong:"Semana",allDayText:"Todo el día",moreLinkText:"más",moreLinkHint:e=>`Mostrar ${e} eventos más`,noEventsText:"No hay eventos para mostrar",navLinkHint:"Ir al $0",closeHint:"Cerrar",timeHint:"La hora",eventHint:"Evento"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/et.global.js b/library/fullcalendar/packages/core/locales/et.global.js
index 7c6afd619..8a094adf7 100644
--- a/library/fullcalendar/packages/core/locales/et.global.js
+++ b/library/fullcalendar/packages/core/locales/et.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Eelnev',
next: 'Järgnev',
today: 'Täna',
+ year: 'Aasta',
month: 'Kuu',
week: 'Nädal',
day: 'Päev',
diff --git a/library/fullcalendar/packages/core/locales/et.global.min.js b/library/fullcalendar/packages/core/locales/et.global.min.js
index 5da61b489..38734ba6d 100644
--- a/library/fullcalendar/packages/core/locales/et.global.min.js
+++ b/library/fullcalendar/packages/core/locales/et.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"et",week:{dow:1,doy:4},buttonText:{prev:"Eelnev",next:"Järgnev",today:"Täna",month:"Kuu",week:"Nädal",day:"Päev",list:"Päevakord"},weekText:"näd",allDayText:"Kogu päev",moreLinkText:e=>"+ veel "+e,noEventsText:"Kuvamiseks puuduvad sündmused"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var a={code:"et",week:{dow:1,doy:4},buttonText:{prev:"Eelnev",next:"Järgnev",today:"Täna",year:"Aasta",month:"Kuu",week:"Nädal",day:"Päev",list:"Päevakord"},weekText:"näd",allDayText:"Kogu päev",moreLinkText:e=>"+ veel "+e,noEventsText:"Kuvamiseks puuduvad sündmused"};FullCalendar.globalLocales.push(a)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/eu.global.js b/library/fullcalendar/packages/core/locales/eu.global.js
index f5621bcea..0e7864b4a 100644
--- a/library/fullcalendar/packages/core/locales/eu.global.js
+++ b/library/fullcalendar/packages/core/locales/eu.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Aur',
next: 'Hur',
today: 'Gaur',
+ year: 'Urtea',
month: 'Hilabetea',
week: 'Astea',
day: 'Eguna',
diff --git a/library/fullcalendar/packages/core/locales/eu.global.min.js b/library/fullcalendar/packages/core/locales/eu.global.min.js
index 30e38e562..36698e5c9 100644
--- a/library/fullcalendar/packages/core/locales/eu.global.min.js
+++ b/library/fullcalendar/packages/core/locales/eu.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"eu",week:{dow:1,doy:7},buttonText:{prev:"Aur",next:"Hur",today:"Gaur",month:"Hilabetea",week:"Astea",day:"Eguna",list:"Agenda"},weekText:"As",allDayText:"Egun osoa",moreLinkText:"gehiago",noEventsText:"Ez dago ekitaldirik erakusteko"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"eu",week:{dow:1,doy:7},buttonText:{prev:"Aur",next:"Hur",today:"Gaur",year:"Urtea",month:"Hilabetea",week:"Astea",day:"Eguna",list:"Agenda"},weekText:"As",allDayText:"Egun osoa",moreLinkText:"gehiago",noEventsText:"Ez dago ekitaldirik erakusteko"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/fa.global.js b/library/fullcalendar/packages/core/locales/fa.global.js
index 3416dee17..acfa6e7f0 100644
--- a/library/fullcalendar/packages/core/locales/fa.global.js
+++ b/library/fullcalendar/packages/core/locales/fa.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -17,6 +17,7 @@ Docs & License: https://fullcalendar.io
prev: 'قبلی',
next: 'بعدی',
today: 'امروز',
+ year: 'سال',
month: 'ماه',
week: 'هفته',
day: 'روز',
diff --git a/library/fullcalendar/packages/core/locales/fa.global.min.js b/library/fullcalendar/packages/core/locales/fa.global.min.js
index ad3504b72..fb92dd254 100644
--- a/library/fullcalendar/packages/core/locales/fa.global.min.js
+++ b/library/fullcalendar/packages/core/locales/fa.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"fa",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"قبلی",next:"بعدی",today:"امروز",month:"ماه",week:"هفته",day:"روز",list:"برنامه"},weekText:"هف",allDayText:"تمام روز",moreLinkText:e=>"بیش از "+e,noEventsText:"هیچ رویدادی به نمایش"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var t={code:"fa",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"قبلی",next:"بعدی",today:"امروز",year:"سال",month:"ماه",week:"هفته",day:"روز",list:"برنامه"},weekText:"هف",allDayText:"تمام روز",moreLinkText:e=>"بیش از "+e,noEventsText:"هیچ رویدادی به نمایش"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/fi.global.js b/library/fullcalendar/packages/core/locales/fi.global.js
index 9fa2cfa92..e5f3fea1a 100644
--- a/library/fullcalendar/packages/core/locales/fi.global.js
+++ b/library/fullcalendar/packages/core/locales/fi.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Edellinen',
next: 'Seuraava',
today: 'Tänään',
+ year: 'Vuosi',
month: 'Kuukausi',
week: 'Viikko',
day: 'Päivä',
diff --git a/library/fullcalendar/packages/core/locales/fi.global.min.js b/library/fullcalendar/packages/core/locales/fi.global.min.js
index 43fe9ec5d..0b16750c7 100644
--- a/library/fullcalendar/packages/core/locales/fi.global.min.js
+++ b/library/fullcalendar/packages/core/locales/fi.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"fi",week:{dow:1,doy:4},buttonText:{prev:"Edellinen",next:"Seuraava",today:"Tänään",month:"Kuukausi",week:"Viikko",day:"Päivä",list:"Tapahtumat"},weekText:"Vk",allDayText:"Koko päivä",moreLinkText:"lisää",noEventsText:"Ei näytettäviä tapahtumia"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"fi",week:{dow:1,doy:4},buttonText:{prev:"Edellinen",next:"Seuraava",today:"Tänään",year:"Vuosi",month:"Kuukausi",week:"Viikko",day:"Päivä",list:"Tapahtumat"},weekText:"Vk",allDayText:"Koko päivä",moreLinkText:"lisää",noEventsText:"Ei näytettäviä tapahtumia"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/fr-ca.global.js b/library/fullcalendar/packages/core/locales/fr-ca.global.js
index 86d9b06ba..09a3fd345 100644
--- a/library/fullcalendar/packages/core/locales/fr-ca.global.js
+++ b/library/fullcalendar/packages/core/locales/fr-ca.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -21,7 +21,7 @@ Docs & License: https://fullcalendar.io
weekText: 'Sem.',
allDayText: 'Toute la journée',
moreLinkText: 'en plus',
- noEventsText: 'Aucun événement à afficher',
+ noEventsText: 'Aucun évènement à afficher',
};
index_js.globalLocales.push(locale);
diff --git a/library/fullcalendar/packages/core/locales/fr-ca.global.min.js b/library/fullcalendar/packages/core/locales/fr-ca.global.min.js
index c859af816..fac2b12ba 100644
--- a/library/fullcalendar/packages/core/locales/fr-ca.global.min.js
+++ b/library/fullcalendar/packages/core/locales/fr-ca.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"fr",buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekText:"Sem.",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun événement à afficher"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"fr",buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekText:"Sem.",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun évènement à afficher"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/fr-ch.global.js b/library/fullcalendar/packages/core/locales/fr-ch.global.js
index 7291bc156..1591ca68e 100644
--- a/library/fullcalendar/packages/core/locales/fr-ch.global.js
+++ b/library/fullcalendar/packages/core/locales/fr-ch.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -25,7 +25,7 @@ Docs & License: https://fullcalendar.io
weekText: 'Sm',
allDayText: 'Toute la journée',
moreLinkText: 'en plus',
- noEventsText: 'Aucun événement à afficher',
+ noEventsText: 'Aucun évènement à afficher',
};
index_js.globalLocales.push(locale);
diff --git a/library/fullcalendar/packages/core/locales/fr-ch.global.min.js b/library/fullcalendar/packages/core/locales/fr-ch.global.min.js
index 154dd9340..7e641ca0b 100644
--- a/library/fullcalendar/packages/core/locales/fr-ch.global.min.js
+++ b/library/fullcalendar/packages/core/locales/fr-ch.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"fr-ch",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Courant",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekText:"Sm",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun événement à afficher"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"fr-ch",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Courant",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekText:"Sm",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun évènement à afficher"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/fr.global.js b/library/fullcalendar/packages/core/locales/fr.global.js
index d63b2e5dc..7aa684ba9 100644
--- a/library/fullcalendar/packages/core/locales/fr.global.js
+++ b/library/fullcalendar/packages/core/locales/fr.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -23,9 +23,10 @@ Docs & License: https://fullcalendar.io
list: 'Planning',
},
weekText: 'Sem.',
+ weekTextLong: 'Semaine',
allDayText: 'Toute la journée',
moreLinkText: 'en plus',
- noEventsText: 'Aucun événement à afficher',
+ noEventsText: 'Aucun évènement à afficher',
};
index_js.globalLocales.push(locale);
diff --git a/library/fullcalendar/packages/core/locales/fr.global.min.js b/library/fullcalendar/packages/core/locales/fr.global.min.js
index 68968a1eb..cdb5c5382 100644
--- a/library/fullcalendar/packages/core/locales/fr.global.min.js
+++ b/library/fullcalendar/packages/core/locales/fr.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"fr",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Planning"},weekText:"Sem.",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun événement à afficher"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"fr",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Planning"},weekText:"Sem.",weekTextLong:"Semaine",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun évènement à afficher"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/gl.global.js b/library/fullcalendar/packages/core/locales/gl.global.js
index de8ed6996..c53143e63 100644
--- a/library/fullcalendar/packages/core/locales/gl.global.js
+++ b/library/fullcalendar/packages/core/locales/gl.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,15 +16,35 @@ Docs & License: https://fullcalendar.io
prev: 'Ant',
next: 'Seg',
today: 'Hoxe',
+ year: 'Ano',
month: 'Mes',
week: 'Semana',
day: 'Día',
list: 'Axenda',
},
+ buttonHints: {
+ prev: '$0 antes',
+ next: '$0 seguinte',
+ today(buttonText) {
+ return (buttonText === 'Día') ? 'Hoxe' :
+ ((buttonText === 'Semana') ? 'Esta' : 'Este') + ' ' + buttonText.toLocaleLowerCase();
+ },
+ },
+ viewHint(buttonText) {
+ return 'Vista ' + (buttonText === 'Semana' ? 'da' : 'do') + ' ' + buttonText.toLocaleLowerCase();
+ },
weekText: 'Sm',
+ weekTextLong: 'Semana',
allDayText: 'Todo o día',
moreLinkText: 'máis',
+ moreLinkHint(eventCnt) {
+ return `Amosar ${eventCnt} eventos máis`;
+ },
noEventsText: 'Non hai eventos para amosar',
+ navLinkHint: 'Ir ao $0',
+ closeHint: 'Pechar',
+ timeHint: 'A hora',
+ eventHint: 'Evento',
};
index_js.globalLocales.push(locale);
diff --git a/library/fullcalendar/packages/core/locales/gl.global.min.js b/library/fullcalendar/packages/core/locales/gl.global.min.js
index 1bae51a3b..5f419a627 100644
--- a/library/fullcalendar/packages/core/locales/gl.global.min.js
+++ b/library/fullcalendar/packages/core/locales/gl.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"gl",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Seg",today:"Hoxe",month:"Mes",week:"Semana",day:"Día",list:"Axenda"},weekText:"Sm",allDayText:"Todo o día",moreLinkText:"máis",noEventsText:"Non hai eventos para amosar"})}(); \ No newline at end of file
+!function(e){"use strict";var a={code:"gl",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Seg",today:"Hoxe",year:"Ano",month:"Mes",week:"Semana",day:"Día",list:"Axenda"},buttonHints:{prev:"$0 antes",next:"$0 seguinte",today:e=>"Día"===e?"Hoxe":("Semana"===e?"Esta":"Este")+" "+e.toLocaleLowerCase()},viewHint:e=>"Vista "+("Semana"===e?"da":"do")+" "+e.toLocaleLowerCase(),weekText:"Sm",weekTextLong:"Semana",allDayText:"Todo o día",moreLinkText:"máis",moreLinkHint:e=>`Amosar ${e} eventos máis`,noEventsText:"Non hai eventos para amosar",navLinkHint:"Ir ao $0",closeHint:"Pechar",timeHint:"A hora",eventHint:"Evento"};FullCalendar.globalLocales.push(a)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/he.global.js b/library/fullcalendar/packages/core/locales/he.global.js
index 1b6dd6acf..a9d1d173f 100644
--- a/library/fullcalendar/packages/core/locales/he.global.js
+++ b/library/fullcalendar/packages/core/locales/he.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -13,13 +13,14 @@ Docs & License: https://fullcalendar.io
prev: 'הקודם',
next: 'הבא',
today: 'היום',
+ year: 'שנה',
month: 'חודש',
week: 'שבוע',
day: 'יום',
list: 'סדר יום',
},
allDayText: 'כל היום',
- moreLinkText: 'אחר',
+ moreLinkText: 'נוספים',
noEventsText: 'אין אירועים להצגה',
weekText: 'שבוע',
};
diff --git a/library/fullcalendar/packages/core/locales/he.global.min.js b/library/fullcalendar/packages/core/locales/he.global.min.js
index 8f8f4bd78..0b8ff4f9d 100644
--- a/library/fullcalendar/packages/core/locales/he.global.min.js
+++ b/library/fullcalendar/packages/core/locales/he.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"he",direction:"rtl",buttonText:{prev:"הקודם",next:"הבא",today:"היום",month:"חודש",week:"שבוע",day:"יום",list:"סדר יום"},allDayText:"כל היום",moreLinkText:"אחר",noEventsText:"אין אירועים להצגה",weekText:"שבוע"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"he",direction:"rtl",buttonText:{prev:"הקודם",next:"הבא",today:"היום",year:"שנה",month:"חודש",week:"שבוע",day:"יום",list:"סדר יום"},allDayText:"כל היום",moreLinkText:"נוספים",noEventsText:"אין אירועים להצגה",weekText:"שבוע"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/hi.global.js b/library/fullcalendar/packages/core/locales/hi.global.js
index a63d5d790..78e7cf180 100644
--- a/library/fullcalendar/packages/core/locales/hi.global.js
+++ b/library/fullcalendar/packages/core/locales/hi.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'पिछला',
next: 'अगला',
today: 'आज',
+ year: 'वर्ष',
month: 'महीना',
week: 'सप्ताह',
day: 'दिन',
diff --git a/library/fullcalendar/packages/core/locales/hi.global.min.js b/library/fullcalendar/packages/core/locales/hi.global.min.js
index ef318e488..96e707447 100644
--- a/library/fullcalendar/packages/core/locales/hi.global.min.js
+++ b/library/fullcalendar/packages/core/locales/hi.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"hi",week:{dow:0,doy:6},buttonText:{prev:"पिछला",next:"अगला",today:"आज",month:"महीना",week:"सप्ताह",day:"दिन",list:"कार्यसूची"},weekText:"हफ्ता",allDayText:"सभी दिन",moreLinkText:e=>"+अधिक "+e,noEventsText:"कोई घटनाओं को प्रदर्शित करने के लिए"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var t={code:"hi",week:{dow:0,doy:6},buttonText:{prev:"पिछला",next:"अगला",today:"आज",year:"वर्ष",month:"महीना",week:"सप्ताह",day:"दिन",list:"कार्यसूची"},weekText:"हफ्ता",allDayText:"सभी दिन",moreLinkText:e=>"+अधिक "+e,noEventsText:"कोई घटनाओं को प्रदर्शित करने के लिए"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/hr.global.js b/library/fullcalendar/packages/core/locales/hr.global.js
index 7a1e5c12b..cca1454e8 100644
--- a/library/fullcalendar/packages/core/locales/hr.global.js
+++ b/library/fullcalendar/packages/core/locales/hr.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Prijašnji',
next: 'Sljedeći',
today: 'Danas',
+ year: 'Godina',
month: 'Mjesec',
week: 'Tjedan',
day: 'Dan',
diff --git a/library/fullcalendar/packages/core/locales/hr.global.min.js b/library/fullcalendar/packages/core/locales/hr.global.min.js
index e28d75b96..583895150 100644
--- a/library/fullcalendar/packages/core/locales/hr.global.min.js
+++ b/library/fullcalendar/packages/core/locales/hr.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var a={code:"hr",week:{dow:1,doy:7},buttonText:{prev:"Prijašnji",next:"Sljedeći",today:"Danas",month:"Mjesec",week:"Tjedan",day:"Dan",list:"Raspored"},weekText:"Tje",allDayText:"Cijeli dan",moreLinkText:e=>"+ još "+e,noEventsText:"Nema događaja za prikaz"};FullCalendar.globalLocales.push(a)}(); \ No newline at end of file
+!function(e){"use strict";var a={code:"hr",week:{dow:1,doy:7},buttonText:{prev:"Prijašnji",next:"Sljedeći",today:"Danas",year:"Godina",month:"Mjesec",week:"Tjedan",day:"Dan",list:"Raspored"},weekText:"Tje",allDayText:"Cijeli dan",moreLinkText:e=>"+ još "+e,noEventsText:"Nema događaja za prikaz"};FullCalendar.globalLocales.push(a)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/hu.global.js b/library/fullcalendar/packages/core/locales/hu.global.js
index d4f5a3f2d..83792167f 100644
--- a/library/fullcalendar/packages/core/locales/hu.global.js
+++ b/library/fullcalendar/packages/core/locales/hu.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'vissza',
next: 'előre',
today: 'ma',
+ year: 'Év',
month: 'Hónap',
week: 'Hét',
day: 'Nap',
diff --git a/library/fullcalendar/packages/core/locales/hu.global.min.js b/library/fullcalendar/packages/core/locales/hu.global.min.js
index e235a1a9f..7d61fa9e5 100644
--- a/library/fullcalendar/packages/core/locales/hu.global.min.js
+++ b/library/fullcalendar/packages/core/locales/hu.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"hu",week:{dow:1,doy:4},buttonText:{prev:"vissza",next:"előre",today:"ma",month:"Hónap",week:"Hét",day:"Nap",list:"Lista"},weekText:"Hét",allDayText:"Egész nap",moreLinkText:"további",noEventsText:"Nincs megjeleníthető esemény"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"hu",week:{dow:1,doy:4},buttonText:{prev:"vissza",next:"előre",today:"ma",year:"Év",month:"Hónap",week:"Hét",day:"Nap",list:"Lista"},weekText:"Hét",allDayText:"Egész nap",moreLinkText:"további",noEventsText:"Nincs megjeleníthető esemény"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/hy-am.global.js b/library/fullcalendar/packages/core/locales/hy-am.global.js
index d1d950cc8..c92ed83aa 100644
--- a/library/fullcalendar/packages/core/locales/hy-am.global.js
+++ b/library/fullcalendar/packages/core/locales/hy-am.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Նախորդ',
next: 'Հաջորդ',
today: 'Այսօր',
+ year: 'Տարի',
month: 'Ամիս',
week: 'Շաբաթ',
day: 'Օր',
diff --git a/library/fullcalendar/packages/core/locales/hy-am.global.min.js b/library/fullcalendar/packages/core/locales/hy-am.global.min.js
index 59a9a5386..8845248ff 100644
--- a/library/fullcalendar/packages/core/locales/hy-am.global.min.js
+++ b/library/fullcalendar/packages/core/locales/hy-am.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"hy-am",week:{dow:1,doy:4},buttonText:{prev:"Նախորդ",next:"Հաջորդ",today:"Այսօր",month:"Ամիս",week:"Շաբաթ",day:"Օր",list:"Օրվա ցուցակ"},weekText:"Շաբ",allDayText:"Ամբողջ օր",moreLinkText:e=>"+ ևս "+e,noEventsText:"Բացակայում է իրադարձությունը ցուցադրելու"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var t={code:"hy-am",week:{dow:1,doy:4},buttonText:{prev:"Նախորդ",next:"Հաջորդ",today:"Այսօր",year:"Տարի",month:"Ամիս",week:"Շաբաթ",day:"Օր",list:"Օրվա ցուցակ"},weekText:"Շաբ",allDayText:"Ամբողջ օր",moreLinkText:e=>"+ ևս "+e,noEventsText:"Բացակայում է իրադարձությունը ցուցադրելու"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/id.global.js b/library/fullcalendar/packages/core/locales/id.global.js
index 9547051f2..3ba8b9e02 100644
--- a/library/fullcalendar/packages/core/locales/id.global.js
+++ b/library/fullcalendar/packages/core/locales/id.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'mundur',
next: 'maju',
today: 'hari ini',
+ year: 'Tahun',
month: 'Bulan',
week: 'Minggu',
day: 'Hari',
diff --git a/library/fullcalendar/packages/core/locales/id.global.min.js b/library/fullcalendar/packages/core/locales/id.global.min.js
index e2992c296..15226a703 100644
--- a/library/fullcalendar/packages/core/locales/id.global.min.js
+++ b/library/fullcalendar/packages/core/locales/id.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"id",week:{dow:1,doy:7},buttonText:{prev:"mundur",next:"maju",today:"hari ini",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekText:"Mg",allDayText:"Sehari penuh",moreLinkText:"lebih",noEventsText:"Tidak ada acara untuk ditampilkan"})}(); \ No newline at end of file
+!function(a){"use strict";FullCalendar.globalLocales.push({code:"id",week:{dow:1,doy:7},buttonText:{prev:"mundur",next:"maju",today:"hari ini",year:"Tahun",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekText:"Mg",allDayText:"Sehari penuh",moreLinkText:"lebih",noEventsText:"Tidak ada acara untuk ditampilkan"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/is.global.js b/library/fullcalendar/packages/core/locales/is.global.js
index 834978af6..29d200b57 100644
--- a/library/fullcalendar/packages/core/locales/is.global.js
+++ b/library/fullcalendar/packages/core/locales/is.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Fyrri',
next: 'Næsti',
today: 'Í dag',
+ year: 'Ár',
month: 'Mánuður',
week: 'Vika',
day: 'Dagur',
diff --git a/library/fullcalendar/packages/core/locales/is.global.min.js b/library/fullcalendar/packages/core/locales/is.global.min.js
index 4af1f65a3..ce54cf209 100644
--- a/library/fullcalendar/packages/core/locales/is.global.min.js
+++ b/library/fullcalendar/packages/core/locales/is.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"is",week:{dow:1,doy:4},buttonText:{prev:"Fyrri",next:"Næsti",today:"Í dag",month:"Mánuður",week:"Vika",day:"Dagur",list:"Dagskrá"},weekText:"Vika",allDayText:"Allan daginn",moreLinkText:"meira",noEventsText:"Engir viðburðir til að sýna"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"is",week:{dow:1,doy:4},buttonText:{prev:"Fyrri",next:"Næsti",today:"Í dag",year:"Ár",month:"Mánuður",week:"Vika",day:"Dagur",list:"Dagskrá"},weekText:"Vika",allDayText:"Allan daginn",moreLinkText:"meira",noEventsText:"Engir viðburðir til að sýna"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/it.global.js b/library/fullcalendar/packages/core/locales/it.global.js
index 987e8570a..b898b2a30 100644
--- a/library/fullcalendar/packages/core/locales/it.global.js
+++ b/library/fullcalendar/packages/core/locales/it.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Prec',
next: 'Succ',
today: 'Oggi',
+ year: 'Anno',
month: 'Mese',
week: 'Settimana',
day: 'Giorno',
diff --git a/library/fullcalendar/packages/core/locales/it.global.min.js b/library/fullcalendar/packages/core/locales/it.global.min.js
index 61ea08b70..399e3ee23 100644
--- a/library/fullcalendar/packages/core/locales/it.global.min.js
+++ b/library/fullcalendar/packages/core/locales/it.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"it",week:{dow:1,doy:4},buttonText:{prev:"Prec",next:"Succ",today:"Oggi",month:"Mese",week:"Settimana",day:"Giorno",list:"Agenda"},weekText:"Sm",allDayText:"Tutto il giorno",moreLinkText:e=>"+altri "+e,noEventsText:"Non ci sono eventi da visualizzare"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var t={code:"it",week:{dow:1,doy:4},buttonText:{prev:"Prec",next:"Succ",today:"Oggi",year:"Anno",month:"Mese",week:"Settimana",day:"Giorno",list:"Agenda"},weekText:"Sm",allDayText:"Tutto il giorno",moreLinkText:e=>"+altri "+e,noEventsText:"Non ci sono eventi da visualizzare"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/ja.global.js b/library/fullcalendar/packages/core/locales/ja.global.js
index d6d8a3cea..83dadd4f3 100644
--- a/library/fullcalendar/packages/core/locales/ja.global.js
+++ b/library/fullcalendar/packages/core/locales/ja.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -12,6 +12,7 @@ Docs & License: https://fullcalendar.io
prev: '前',
next: '次',
today: '今日',
+ year: '年',
month: '月',
week: '週',
day: '日',
diff --git a/library/fullcalendar/packages/core/locales/ja.global.min.js b/library/fullcalendar/packages/core/locales/ja.global.min.js
index 472f96141..cd2625391 100644
--- a/library/fullcalendar/packages/core/locales/ja.global.min.js
+++ b/library/fullcalendar/packages/core/locales/ja.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"ja",buttonText:{prev:"前",next:"次",today:"今日",month:"月",week:"週",day:"日",list:"予定リスト"},weekText:"週",allDayText:"終日",moreLinkText:e=>"他 "+e+" 件",noEventsText:"表示する予定はありません"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var t={code:"ja",buttonText:{prev:"前",next:"次",today:"今日",year:"年",month:"月",week:"週",day:"日",list:"予定リスト"},weekText:"週",allDayText:"終日",moreLinkText:e=>"他 "+e+" 件",noEventsText:"表示する予定はありません"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/ka.global.js b/library/fullcalendar/packages/core/locales/ka.global.js
index 4c94baf2f..e8ef67ad8 100644
--- a/library/fullcalendar/packages/core/locales/ka.global.js
+++ b/library/fullcalendar/packages/core/locales/ka.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'წინა',
next: 'შემდეგი',
today: 'დღეს',
+ year: 'წელიწადი',
month: 'თვე',
week: 'კვირა',
day: 'დღე',
diff --git a/library/fullcalendar/packages/core/locales/ka.global.min.js b/library/fullcalendar/packages/core/locales/ka.global.min.js
index d097866de..3c8bda51c 100644
--- a/library/fullcalendar/packages/core/locales/ka.global.min.js
+++ b/library/fullcalendar/packages/core/locales/ka.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"ka",week:{dow:1,doy:7},buttonText:{prev:"წინა",next:"შემდეგი",today:"დღეს",month:"თვე",week:"კვირა",day:"დღე",list:"დღის წესრიგი"},weekText:"კვ",allDayText:"მთელი დღე",moreLinkText:e=>"+ კიდევ "+e,noEventsText:"ღონისძიებები არ არის"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var t={code:"ka",week:{dow:1,doy:7},buttonText:{prev:"წინა",next:"შემდეგი",today:"დღეს",year:"წელიწადი",month:"თვე",week:"კვირა",day:"დღე",list:"დღის წესრიგი"},weekText:"კვ",allDayText:"მთელი დღე",moreLinkText:e=>"+ კიდევ "+e,noEventsText:"ღონისძიებები არ არის"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/kk.global.js b/library/fullcalendar/packages/core/locales/kk.global.js
index 156f3fd96..86aa50d0b 100644
--- a/library/fullcalendar/packages/core/locales/kk.global.js
+++ b/library/fullcalendar/packages/core/locales/kk.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Алдыңғы',
next: 'Келесі',
today: 'Бүгін',
+ year: 'Жыл',
month: 'Ай',
week: 'Апта',
day: 'Күн',
diff --git a/library/fullcalendar/packages/core/locales/kk.global.min.js b/library/fullcalendar/packages/core/locales/kk.global.min.js
index c08d73b20..63d3484e5 100644
--- a/library/fullcalendar/packages/core/locales/kk.global.min.js
+++ b/library/fullcalendar/packages/core/locales/kk.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"kk",week:{dow:1,doy:7},buttonText:{prev:"Алдыңғы",next:"Келесі",today:"Бүгін",month:"Ай",week:"Апта",day:"Күн",list:"Күн тәртібі"},weekText:"Не",allDayText:"Күні бойы",moreLinkText:e=>"+ тағы "+e,noEventsText:"Көрсету үшін оқиғалар жоқ"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var t={code:"kk",week:{dow:1,doy:7},buttonText:{prev:"Алдыңғы",next:"Келесі",today:"Бүгін",year:"Жыл",month:"Ай",week:"Апта",day:"Күн",list:"Күн тәртібі"},weekText:"Не",allDayText:"Күні бойы",moreLinkText:e=>"+ тағы "+e,noEventsText:"Көрсету үшін оқиғалар жоқ"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/km.global.js b/library/fullcalendar/packages/core/locales/km.global.js
index fd4dc3baa..d149f75c0 100644
--- a/library/fullcalendar/packages/core/locales/km.global.js
+++ b/library/fullcalendar/packages/core/locales/km.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
diff --git a/library/fullcalendar/packages/core/locales/km.global.min.js b/library/fullcalendar/packages/core/locales/km.global.min.js
index 73523f8e3..5bbdeb668 100644
--- a/library/fullcalendar/packages/core/locales/km.global.min.js
+++ b/library/fullcalendar/packages/core/locales/km.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
!function(e){"use strict";FullCalendar.globalLocales.push({code:"km",week:{dow:1,doy:4},buttonText:{prev:"មុន",next:"បន្ទាប់",today:"ថ្ងៃនេះ",year:"ឆ្នាំ",month:"ខែ",week:"សប្តាហ៍",day:"ថ្ងៃ",list:"បញ្ជី"},weekText:"សប្តាហ៍",allDayText:"ពេញមួយថ្ងៃ",moreLinkText:"ច្រើនទៀត",noEventsText:"គ្មានព្រឹត្តិការណ៍ត្រូវបង្ហាញ"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/ko.global.js b/library/fullcalendar/packages/core/locales/ko.global.js
index 58b71797a..b1e246a97 100644
--- a/library/fullcalendar/packages/core/locales/ko.global.js
+++ b/library/fullcalendar/packages/core/locales/ko.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -12,6 +12,7 @@ Docs & License: https://fullcalendar.io
prev: '이전달',
next: '다음달',
today: '오늘',
+ year: '년도',
month: '월',
week: '주',
day: '일',
diff --git a/library/fullcalendar/packages/core/locales/ko.global.min.js b/library/fullcalendar/packages/core/locales/ko.global.min.js
index 0930818b8..b4b122f5d 100644
--- a/library/fullcalendar/packages/core/locales/ko.global.min.js
+++ b/library/fullcalendar/packages/core/locales/ko.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"ko",buttonText:{prev:"이전달",next:"다음달",today:"오늘",month:"월",week:"주",day:"일",list:"일정목록"},weekText:"주",allDayText:"종일",moreLinkText:"개",noEventsText:"일정이 없습니다"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"ko",buttonText:{prev:"이전달",next:"다음달",today:"오늘",year:"년도",month:"월",week:"주",day:"일",list:"일정목록"},weekText:"주",allDayText:"종일",moreLinkText:"개",noEventsText:"일정이 없습니다"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/ku.global.js b/library/fullcalendar/packages/core/locales/ku.global.js
index 279d0aa4d..7b5436048 100644
--- a/library/fullcalendar/packages/core/locales/ku.global.js
+++ b/library/fullcalendar/packages/core/locales/ku.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -17,6 +17,7 @@ Docs & License: https://fullcalendar.io
prev: 'پێشتر',
next: 'دواتر',
today: 'ئەمڕو',
+ year: 'ساڵ',
month: 'مانگ',
week: 'هەفتە',
day: 'ڕۆژ',
diff --git a/library/fullcalendar/packages/core/locales/ku.global.min.js b/library/fullcalendar/packages/core/locales/ku.global.min.js
index fff5b8414..01951ea1e 100644
--- a/library/fullcalendar/packages/core/locales/ku.global.min.js
+++ b/library/fullcalendar/packages/core/locales/ku.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"ku",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"پێشتر",next:"دواتر",today:"ئەمڕو",month:"مانگ",week:"هەفتە",day:"ڕۆژ",list:"بەرنامە"},weekText:"هەفتە",allDayText:"هەموو ڕۆژەکە",moreLinkText:"زیاتر",noEventsText:"هیچ ڕووداوێك نیە"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"ku",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"پێشتر",next:"دواتر",today:"ئەمڕو",year:"ساڵ",month:"مانگ",week:"هەفتە",day:"ڕۆژ",list:"بەرنامە"},weekText:"هەفتە",allDayText:"هەموو ڕۆژەکە",moreLinkText:"زیاتر",noEventsText:"هیچ ڕووداوێك نیە"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/lb.global.js b/library/fullcalendar/packages/core/locales/lb.global.js
index 21e280093..cefd6ccde 100644
--- a/library/fullcalendar/packages/core/locales/lb.global.js
+++ b/library/fullcalendar/packages/core/locales/lb.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Zréck',
next: 'Weider',
today: 'Haut',
+ year: 'Joer',
month: 'Mount',
week: 'Woch',
day: 'Dag',
diff --git a/library/fullcalendar/packages/core/locales/lb.global.min.js b/library/fullcalendar/packages/core/locales/lb.global.min.js
index 80b2a77cc..f08a4ecf3 100644
--- a/library/fullcalendar/packages/core/locales/lb.global.min.js
+++ b/library/fullcalendar/packages/core/locales/lb.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"lb",week:{dow:1,doy:4},buttonText:{prev:"Zréck",next:"Weider",today:"Haut",month:"Mount",week:"Woch",day:"Dag",list:"Terminiwwersiicht"},weekText:"W",allDayText:"Ganzen Dag",moreLinkText:"méi",noEventsText:"Nee Evenementer ze affichéieren"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"lb",week:{dow:1,doy:4},buttonText:{prev:"Zréck",next:"Weider",today:"Haut",year:"Joer",month:"Mount",week:"Woch",day:"Dag",list:"Terminiwwersiicht"},weekText:"W",allDayText:"Ganzen Dag",moreLinkText:"méi",noEventsText:"Nee Evenementer ze affichéieren"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/lt.global.js b/library/fullcalendar/packages/core/locales/lt.global.js
index 826d70d23..9e5d28a97 100644
--- a/library/fullcalendar/packages/core/locales/lt.global.js
+++ b/library/fullcalendar/packages/core/locales/lt.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Atgal',
next: 'Pirmyn',
today: 'Šiandien',
+ year: 'Metai',
month: 'Mėnuo',
week: 'Savaitė',
day: 'Diena',
diff --git a/library/fullcalendar/packages/core/locales/lt.global.min.js b/library/fullcalendar/packages/core/locales/lt.global.min.js
index 09a7cae46..502b956f7 100644
--- a/library/fullcalendar/packages/core/locales/lt.global.min.js
+++ b/library/fullcalendar/packages/core/locales/lt.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"lt",week:{dow:1,doy:4},buttonText:{prev:"Atgal",next:"Pirmyn",today:"Šiandien",month:"Mėnuo",week:"Savaitė",day:"Diena",list:"Darbotvarkė"},weekText:"SAV",allDayText:"Visą dieną",moreLinkText:"daugiau",noEventsText:"Nėra įvykių rodyti"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"lt",week:{dow:1,doy:4},buttonText:{prev:"Atgal",next:"Pirmyn",today:"Šiandien",year:"Metai",month:"Mėnuo",week:"Savaitė",day:"Diena",list:"Darbotvarkė"},weekText:"SAV",allDayText:"Visą dieną",moreLinkText:"daugiau",noEventsText:"Nėra įvykių rodyti"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/lv.global.js b/library/fullcalendar/packages/core/locales/lv.global.js
index 14b808c53..e6679845f 100644
--- a/library/fullcalendar/packages/core/locales/lv.global.js
+++ b/library/fullcalendar/packages/core/locales/lv.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Iepr.',
next: 'Nāk.',
today: 'Šodien',
+ year: 'Gads',
month: 'Mēnesis',
week: 'Nedēļa',
day: 'Diena',
diff --git a/library/fullcalendar/packages/core/locales/lv.global.min.js b/library/fullcalendar/packages/core/locales/lv.global.min.js
index 599d84c82..befa4c092 100644
--- a/library/fullcalendar/packages/core/locales/lv.global.min.js
+++ b/library/fullcalendar/packages/core/locales/lv.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"lv",week:{dow:1,doy:4},buttonText:{prev:"Iepr.",next:"Nāk.",today:"Šodien",month:"Mēnesis",week:"Nedēļa",day:"Diena",list:"Dienas kārtība"},weekText:"Ned.",allDayText:"Visu dienu",moreLinkText:e=>"+vēl "+e,noEventsText:"Nav notikumu"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var t={code:"lv",week:{dow:1,doy:4},buttonText:{prev:"Iepr.",next:"Nāk.",today:"Šodien",year:"Gads",month:"Mēnesis",week:"Nedēļa",day:"Diena",list:"Dienas kārtība"},weekText:"Ned.",allDayText:"Visu dienu",moreLinkText:e=>"+vēl "+e,noEventsText:"Nav notikumu"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/mk.global.js b/library/fullcalendar/packages/core/locales/mk.global.js
index 5f15d7f09..a91dcc55c 100644
--- a/library/fullcalendar/packages/core/locales/mk.global.js
+++ b/library/fullcalendar/packages/core/locales/mk.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -12,6 +12,7 @@ Docs & License: https://fullcalendar.io
prev: 'претходно',
next: 'следно',
today: 'Денес',
+ year: 'година',
month: 'Месец',
week: 'Недела',
day: 'Ден',
diff --git a/library/fullcalendar/packages/core/locales/mk.global.min.js b/library/fullcalendar/packages/core/locales/mk.global.min.js
index f32043a9d..8aac1f00f 100644
--- a/library/fullcalendar/packages/core/locales/mk.global.min.js
+++ b/library/fullcalendar/packages/core/locales/mk.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"mk",buttonText:{prev:"претходно",next:"следно",today:"Денес",month:"Месец",week:"Недела",day:"Ден",list:"График"},weekText:"Сед",allDayText:"Цел ден",moreLinkText:e=>"+повеќе "+e,noEventsText:"Нема настани за прикажување"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var t={code:"mk",buttonText:{prev:"претходно",next:"следно",today:"Денес",year:"година",month:"Месец",week:"Недела",day:"Ден",list:"График"},weekText:"Сед",allDayText:"Цел ден",moreLinkText:e=>"+повеќе "+e,noEventsText:"Нема настани за прикажување"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/ms.global.js b/library/fullcalendar/packages/core/locales/ms.global.js
index 46e3bc78a..d43026780 100644
--- a/library/fullcalendar/packages/core/locales/ms.global.js
+++ b/library/fullcalendar/packages/core/locales/ms.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Sebelum',
next: 'Selepas',
today: 'hari ini',
+ year: 'Tahun',
month: 'Bulan',
week: 'Minggu',
day: 'Hari',
diff --git a/library/fullcalendar/packages/core/locales/ms.global.min.js b/library/fullcalendar/packages/core/locales/ms.global.min.js
index 3626ca8b5..8c4db4d4c 100644
--- a/library/fullcalendar/packages/core/locales/ms.global.min.js
+++ b/library/fullcalendar/packages/core/locales/ms.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(a){"use strict";var e={code:"ms",week:{dow:1,doy:7},buttonText:{prev:"Sebelum",next:"Selepas",today:"hari ini",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekText:"Mg",allDayText:"Sepanjang hari",moreLinkText:a=>"masih ada "+a+" acara",noEventsText:"Tiada peristiwa untuk dipaparkan"};FullCalendar.globalLocales.push(e)}(); \ No newline at end of file
+!function(a){"use strict";var e={code:"ms",week:{dow:1,doy:7},buttonText:{prev:"Sebelum",next:"Selepas",today:"hari ini",year:"Tahun",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekText:"Mg",allDayText:"Sepanjang hari",moreLinkText:a=>"masih ada "+a+" acara",noEventsText:"Tiada peristiwa untuk dipaparkan"};FullCalendar.globalLocales.push(e)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/nb.global.js b/library/fullcalendar/packages/core/locales/nb.global.js
index 28e0e4375..edc6e0487 100644
--- a/library/fullcalendar/packages/core/locales/nb.global.js
+++ b/library/fullcalendar/packages/core/locales/nb.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Forrige',
next: 'Neste',
today: 'I dag',
+ year: 'År',
month: 'Måned',
week: 'Uke',
day: 'Dag',
diff --git a/library/fullcalendar/packages/core/locales/nb.global.min.js b/library/fullcalendar/packages/core/locales/nb.global.min.js
index 103bcee1f..ee164e6c2 100644
--- a/library/fullcalendar/packages/core/locales/nb.global.min.js
+++ b/library/fullcalendar/packages/core/locales/nb.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var n={code:"nb",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Neste",today:"I dag",month:"Måned",week:"Uke",day:"Dag",list:"Agenda"},weekText:"Uke",weekTextLong:"Uke",allDayText:"Hele dagen",moreLinkText:"til",noEventsText:"Ingen hendelser å vise",buttonHints:{prev:"Forrige $0",next:"Neste $0",today:"Nåværende $0"},viewHint:"$0 visning",navLinkHint:"Gå til $0",moreLinkHint:e=>`Vis ${e} flere hendelse${1===e?"":"r"}`};FullCalendar.globalLocales.push(n)}(); \ No newline at end of file
+!function(e){"use strict";var n={code:"nb",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Neste",today:"I dag",year:"År",month:"Måned",week:"Uke",day:"Dag",list:"Agenda"},weekText:"Uke",weekTextLong:"Uke",allDayText:"Hele dagen",moreLinkText:"til",noEventsText:"Ingen hendelser å vise",buttonHints:{prev:"Forrige $0",next:"Neste $0",today:"Nåværende $0"},viewHint:"$0 visning",navLinkHint:"Gå til $0",moreLinkHint:e=>`Vis ${e} flere hendelse${1===e?"":"r"}`};FullCalendar.globalLocales.push(n)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/ne.global.js b/library/fullcalendar/packages/core/locales/ne.global.js
index 22f073997..536ab10db 100644
--- a/library/fullcalendar/packages/core/locales/ne.global.js
+++ b/library/fullcalendar/packages/core/locales/ne.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'अघिल्लो',
next: 'अर्को',
today: 'आज',
+ year: 'वर्ष',
month: 'महिना',
week: 'हप्ता',
day: 'दिन',
diff --git a/library/fullcalendar/packages/core/locales/ne.global.min.js b/library/fullcalendar/packages/core/locales/ne.global.min.js
index 4e51355d8..91d223ff8 100644
--- a/library/fullcalendar/packages/core/locales/ne.global.min.js
+++ b/library/fullcalendar/packages/core/locales/ne.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"ne",week:{dow:7,doy:1},buttonText:{prev:"अघिल्लो",next:"अर्को",today:"आज",month:"महिना",week:"हप्ता",day:"दिन",list:"सूची"},weekText:"हप्ता",allDayText:"दिनभरि",moreLinkText:"थप लिंक",noEventsText:"देखाउनको लागि कुनै घटनाहरू छैनन्"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"ne",week:{dow:7,doy:1},buttonText:{prev:"अघिल्लो",next:"अर्को",today:"आज",year:"वर्ष",month:"महिना",week:"हप्ता",day:"दिन",list:"सूची"},weekText:"हप्ता",allDayText:"दिनभरि",moreLinkText:"थप लिंक",noEventsText:"देखाउनको लागि कुनै घटनाहरू छैनन्"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/nl.global.js b/library/fullcalendar/packages/core/locales/nl.global.js
index 9e9c87640..cb0bf1046 100644
--- a/library/fullcalendar/packages/core/locales/nl.global.js
+++ b/library/fullcalendar/packages/core/locales/nl.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
diff --git a/library/fullcalendar/packages/core/locales/nl.global.min.js b/library/fullcalendar/packages/core/locales/nl.global.min.js
index ba5d10e32..5c31d21ea 100644
--- a/library/fullcalendar/packages/core/locales/nl.global.min.js
+++ b/library/fullcalendar/packages/core/locales/nl.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
!function(e){"use strict";FullCalendar.globalLocales.push({code:"nl",week:{dow:1,doy:4},buttonText:{prev:"Vorige",next:"Volgende",today:"Vandaag",year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Hele dag",moreLinkText:"extra",noEventsText:"Geen evenementen om te laten zien"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/nn.global.js b/library/fullcalendar/packages/core/locales/nn.global.js
index e50e0c7fb..44fec4eae 100644
--- a/library/fullcalendar/packages/core/locales/nn.global.js
+++ b/library/fullcalendar/packages/core/locales/nn.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Førre',
next: 'Neste',
today: 'I dag',
+ year: 'År',
month: 'Månad',
week: 'Veke',
day: 'Dag',
diff --git a/library/fullcalendar/packages/core/locales/nn.global.min.js b/library/fullcalendar/packages/core/locales/nn.global.min.js
index d40c209e6..3d07b8c27 100644
--- a/library/fullcalendar/packages/core/locales/nn.global.min.js
+++ b/library/fullcalendar/packages/core/locales/nn.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"nn",week:{dow:1,doy:4},buttonText:{prev:"Førre",next:"Neste",today:"I dag",month:"Månad",week:"Veke",day:"Dag",list:"Agenda"},weekText:"Veke",allDayText:"Heile dagen",moreLinkText:"til",noEventsText:"Ingen hendelser å vise"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"nn",week:{dow:1,doy:4},buttonText:{prev:"Førre",next:"Neste",today:"I dag",year:"År",month:"Månad",week:"Veke",day:"Dag",list:"Agenda"},weekText:"Veke",allDayText:"Heile dagen",moreLinkText:"til",noEventsText:"Ingen hendelser å vise"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/pl.global.js b/library/fullcalendar/packages/core/locales/pl.global.js
index c07270a0c..52b120525 100644
--- a/library/fullcalendar/packages/core/locales/pl.global.js
+++ b/library/fullcalendar/packages/core/locales/pl.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Poprzedni',
next: 'Następny',
today: 'Dziś',
+ year: 'Rok',
month: 'Miesiąc',
week: 'Tydzień',
day: 'Dzień',
diff --git a/library/fullcalendar/packages/core/locales/pl.global.min.js b/library/fullcalendar/packages/core/locales/pl.global.min.js
index 3e2e1fc3f..1cccaa33b 100644
--- a/library/fullcalendar/packages/core/locales/pl.global.min.js
+++ b/library/fullcalendar/packages/core/locales/pl.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"pl",week:{dow:1,doy:4},buttonText:{prev:"Poprzedni",next:"Następny",today:"Dziś",month:"Miesiąc",week:"Tydzień",day:"Dzień",list:"Plan dnia"},weekText:"Tydz",allDayText:"Cały dzień",moreLinkText:"więcej",noEventsText:"Brak wydarzeń do wyświetlenia"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"pl",week:{dow:1,doy:4},buttonText:{prev:"Poprzedni",next:"Następny",today:"Dziś",year:"Rok",month:"Miesiąc",week:"Tydzień",day:"Dzień",list:"Plan dnia"},weekText:"Tydz",allDayText:"Cały dzień",moreLinkText:"więcej",noEventsText:"Brak wydarzeń do wyświetlenia"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/pt-br.global.js b/library/fullcalendar/packages/core/locales/pt-br.global.js
index 7ec6f79f3..267c6634b 100644
--- a/library/fullcalendar/packages/core/locales/pt-br.global.js
+++ b/library/fullcalendar/packages/core/locales/pt-br.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -11,18 +11,40 @@ Docs & License: https://fullcalendar.io
buttonText: {
prev: 'Anterior',
next: 'Próximo',
+ prevYear: 'Ano anterior',
+ nextYear: 'Próximo ano',
+ year: 'Ano',
today: 'Hoje',
month: 'Mês',
week: 'Semana',
day: 'Dia',
list: 'Lista',
},
+ buttonHints: {
+ prev: '$0 Anterior',
+ next: 'Próximo $0',
+ today(buttonText) {
+ return (buttonText === 'Dia') ? 'Hoje' :
+ ((buttonText === 'Semana') ? 'Esta' : 'Este') + ' ' + buttonText.toLocaleLowerCase();
+ },
+ },
+ viewHint(buttonText) {
+ return 'Visualizar ' + (buttonText === 'Semana' ? 'a' : 'o') + ' ' + buttonText.toLocaleLowerCase();
+ },
weekText: 'Sm',
+ weekTextLong: 'Semana',
allDayText: 'dia inteiro',
moreLinkText(n) {
return 'mais +' + n;
},
+ moreLinkHint(eventCnt) {
+ return `Mostrar mais ${eventCnt} eventos`;
+ },
noEventsText: 'Não há eventos para mostrar',
+ navLinkHint: 'Ir para $0',
+ closeHint: 'Fechar',
+ timeHint: 'A hora',
+ eventHint: 'Evento',
};
index_js.globalLocales.push(locale);
diff --git a/library/fullcalendar/packages/core/locales/pt-br.global.min.js b/library/fullcalendar/packages/core/locales/pt-br.global.min.js
index 32315bcaf..8d98ba523 100644
--- a/library/fullcalendar/packages/core/locales/pt-br.global.min.js
+++ b/library/fullcalendar/packages/core/locales/pt-br.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"pt-br",buttonText:{prev:"Anterior",next:"Próximo",today:"Hoje",month:"Mês",week:"Semana",day:"Dia",list:"Lista"},weekText:"Sm",allDayText:"dia inteiro",moreLinkText:e=>"mais +"+e,noEventsText:"Não há eventos para mostrar"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var a={code:"pt-br",buttonText:{prev:"Anterior",next:"Próximo",prevYear:"Ano anterior",nextYear:"Próximo ano",year:"Ano",today:"Hoje",month:"Mês",week:"Semana",day:"Dia",list:"Lista"},buttonHints:{prev:"$0 Anterior",next:"Próximo $0",today:e=>"Dia"===e?"Hoje":("Semana"===e?"Esta":"Este")+" "+e.toLocaleLowerCase()},viewHint:e=>"Visualizar "+("Semana"===e?"a":"o")+" "+e.toLocaleLowerCase(),weekText:"Sm",weekTextLong:"Semana",allDayText:"dia inteiro",moreLinkText:e=>"mais +"+e,moreLinkHint:e=>`Mostrar mais ${e} eventos`,noEventsText:"Não há eventos para mostrar",navLinkHint:"Ir para $0",closeHint:"Fechar",timeHint:"A hora",eventHint:"Evento"};FullCalendar.globalLocales.push(a)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/pt.global.js b/library/fullcalendar/packages/core/locales/pt.global.js
index 15aafa853..7bf19f8ea 100644
--- a/library/fullcalendar/packages/core/locales/pt.global.js
+++ b/library/fullcalendar/packages/core/locales/pt.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Anterior',
next: 'Seguinte',
today: 'Hoje',
+ year: 'Ano',
month: 'Mês',
week: 'Semana',
day: 'Dia',
diff --git a/library/fullcalendar/packages/core/locales/pt.global.min.js b/library/fullcalendar/packages/core/locales/pt.global.min.js
index c4d0e1f45..5ed2ddfe5 100644
--- a/library/fullcalendar/packages/core/locales/pt.global.min.js
+++ b/library/fullcalendar/packages/core/locales/pt.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"pt",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Seguinte",today:"Hoje",month:"Mês",week:"Semana",day:"Dia",list:"Agenda"},weekText:"Sem",allDayText:"Todo o dia",moreLinkText:"mais",noEventsText:"Não há eventos para mostrar"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"pt",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Seguinte",today:"Hoje",year:"Ano",month:"Mês",week:"Semana",day:"Dia",list:"Agenda"},weekText:"Sem",allDayText:"Todo o dia",moreLinkText:"mais",noEventsText:"Não há eventos para mostrar"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/ro.global.js b/library/fullcalendar/packages/core/locales/ro.global.js
index 701641cb0..b259412b1 100644
--- a/library/fullcalendar/packages/core/locales/ro.global.js
+++ b/library/fullcalendar/packages/core/locales/ro.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'precedentă',
next: 'următoare',
today: 'Azi',
+ year: 'An',
month: 'Lună',
week: 'Săptămână',
day: 'Zi',
diff --git a/library/fullcalendar/packages/core/locales/ro.global.min.js b/library/fullcalendar/packages/core/locales/ro.global.min.js
index cdba34e09..890418038 100644
--- a/library/fullcalendar/packages/core/locales/ro.global.min.js
+++ b/library/fullcalendar/packages/core/locales/ro.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"ro",week:{dow:1,doy:7},buttonText:{prev:"precedentă",next:"următoare",today:"Azi",month:"Lună",week:"Săptămână",day:"Zi",list:"Agendă"},weekText:"Săpt",allDayText:"Toată ziua",moreLinkText:e=>"+alte "+e,noEventsText:"Nu există evenimente de afișat"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var t={code:"ro",week:{dow:1,doy:7},buttonText:{prev:"precedentă",next:"următoare",today:"Azi",year:"An",month:"Lună",week:"Săptămână",day:"Zi",list:"Agendă"},weekText:"Săpt",allDayText:"Toată ziua",moreLinkText:e=>"+alte "+e,noEventsText:"Nu există evenimente de afișat"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/ru.global.js b/library/fullcalendar/packages/core/locales/ru.global.js
index 8c42c2e92..5450367b4 100644
--- a/library/fullcalendar/packages/core/locales/ru.global.js
+++ b/library/fullcalendar/packages/core/locales/ru.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Пред',
next: 'След',
today: 'Сегодня',
+ year: 'Год',
month: 'Месяц',
week: 'Неделя',
day: 'День',
diff --git a/library/fullcalendar/packages/core/locales/ru.global.min.js b/library/fullcalendar/packages/core/locales/ru.global.min.js
index 0131510aa..5743a8c6b 100644
--- a/library/fullcalendar/packages/core/locales/ru.global.min.js
+++ b/library/fullcalendar/packages/core/locales/ru.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"ru",week:{dow:1,doy:4},buttonText:{prev:"Пред",next:"След",today:"Сегодня",month:"Месяц",week:"Неделя",day:"День",list:"Повестка дня"},weekText:"Нед",allDayText:"Весь день",moreLinkText:e=>"+ ещё "+e,noEventsText:"Нет событий для отображения"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var t={code:"ru",week:{dow:1,doy:4},buttonText:{prev:"Пред",next:"След",today:"Сегодня",year:"Год",month:"Месяц",week:"Неделя",day:"День",list:"Повестка дня"},weekText:"Нед",allDayText:"Весь день",moreLinkText:e=>"+ ещё "+e,noEventsText:"Нет событий для отображения"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/si-lk.global.js b/library/fullcalendar/packages/core/locales/si-lk.global.js
index d33ea52e5..619abcc33 100644
--- a/library/fullcalendar/packages/core/locales/si-lk.global.js
+++ b/library/fullcalendar/packages/core/locales/si-lk.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'පෙර',
next: 'පසු',
today: 'අද',
+ year: 'අවුරුදු',
month: 'මාසය',
week: 'සතිය',
day: 'දවස',
diff --git a/library/fullcalendar/packages/core/locales/si-lk.global.min.js b/library/fullcalendar/packages/core/locales/si-lk.global.min.js
index 17c40a277..76ba77b43 100644
--- a/library/fullcalendar/packages/core/locales/si-lk.global.min.js
+++ b/library/fullcalendar/packages/core/locales/si-lk.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"si-lk",week:{dow:1,doy:4},buttonText:{prev:"පෙර",next:"පසු",today:"අද",month:"මාසය",week:"සතිය",day:"දවස",list:"ලැයිස්තුව"},weekText:"සති",allDayText:"සියලු",moreLinkText:"තවත්",noEventsText:"මුකුත් නැත"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"si-lk",week:{dow:1,doy:4},buttonText:{prev:"පෙර",next:"පසු",today:"අද",year:"අවුරුදු",month:"මාසය",week:"සතිය",day:"දවස",list:"ලැයිස්තුව"},weekText:"සති",allDayText:"සියලු",moreLinkText:"තවත්",noEventsText:"මුකුත් නැත"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/sk.global.js b/library/fullcalendar/packages/core/locales/sk.global.js
index c49662f71..a1b59f807 100644
--- a/library/fullcalendar/packages/core/locales/sk.global.js
+++ b/library/fullcalendar/packages/core/locales/sk.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Predchádzajúci',
next: 'Nasledujúci',
today: 'Dnes',
+ year: 'Rok',
month: 'Mesiac',
week: 'Týždeň',
day: 'Deň',
diff --git a/library/fullcalendar/packages/core/locales/sk.global.min.js b/library/fullcalendar/packages/core/locales/sk.global.min.js
index 58b969106..dab945212 100644
--- a/library/fullcalendar/packages/core/locales/sk.global.min.js
+++ b/library/fullcalendar/packages/core/locales/sk.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var a={code:"sk",week:{dow:1,doy:4},buttonText:{prev:"Predchádzajúci",next:"Nasledujúci",today:"Dnes",month:"Mesiac",week:"Týždeň",day:"Deň",list:"Rozvrh"},weekText:"Ty",allDayText:"Celý deň",moreLinkText:e=>"+ďalšie: "+e,noEventsText:"Žiadne akcie na zobrazenie"};FullCalendar.globalLocales.push(a)}(); \ No newline at end of file
+!function(e){"use strict";var a={code:"sk",week:{dow:1,doy:4},buttonText:{prev:"Predchádzajúci",next:"Nasledujúci",today:"Dnes",year:"Rok",month:"Mesiac",week:"Týždeň",day:"Deň",list:"Rozvrh"},weekText:"Ty",allDayText:"Celý deň",moreLinkText:e=>"+ďalšie: "+e,noEventsText:"Žiadne akcie na zobrazenie"};FullCalendar.globalLocales.push(a)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/sl.global.js b/library/fullcalendar/packages/core/locales/sl.global.js
index f4a372e02..f6cea8f0b 100644
--- a/library/fullcalendar/packages/core/locales/sl.global.js
+++ b/library/fullcalendar/packages/core/locales/sl.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Prejšnji',
next: 'Naslednji',
today: 'Trenutni',
+ year: 'Leto',
month: 'Mesec',
week: 'Teden',
day: 'Dan',
diff --git a/library/fullcalendar/packages/core/locales/sl.global.min.js b/library/fullcalendar/packages/core/locales/sl.global.min.js
index 0f3045a26..05daa2ffc 100644
--- a/library/fullcalendar/packages/core/locales/sl.global.min.js
+++ b/library/fullcalendar/packages/core/locales/sl.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"sl",week:{dow:1,doy:7},buttonText:{prev:"Prejšnji",next:"Naslednji",today:"Trenutni",month:"Mesec",week:"Teden",day:"Dan",list:"Dnevni red"},weekText:"Teden",allDayText:"Ves dan",moreLinkText:"več",noEventsText:"Ni dogodkov za prikaz"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"sl",week:{dow:1,doy:7},buttonText:{prev:"Prejšnji",next:"Naslednji",today:"Trenutni",year:"Leto",month:"Mesec",week:"Teden",day:"Dan",list:"Dnevni red"},weekText:"Teden",allDayText:"Ves dan",moreLinkText:"več",noEventsText:"Ni dogodkov za prikaz"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/sm.global.js b/library/fullcalendar/packages/core/locales/sm.global.js
index 3eb5c176a..b0ed0a735 100644
--- a/library/fullcalendar/packages/core/locales/sm.global.js
+++ b/library/fullcalendar/packages/core/locales/sm.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -12,6 +12,7 @@ Docs & License: https://fullcalendar.io
prev: 'Talu ai',
next: 'Mulimuli atu',
today: 'Aso nei',
+ year: 'Tausaga',
month: 'Masina',
week: 'Vaiaso',
day: 'Aso',
diff --git a/library/fullcalendar/packages/core/locales/sm.global.min.js b/library/fullcalendar/packages/core/locales/sm.global.min.js
index 48baeb25d..27b2f376d 100644
--- a/library/fullcalendar/packages/core/locales/sm.global.min.js
+++ b/library/fullcalendar/packages/core/locales/sm.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(a){"use strict";FullCalendar.globalLocales.push({code:"sm",buttonText:{prev:"Talu ai",next:"Mulimuli atu",today:"Aso nei",month:"Masina",week:"Vaiaso",day:"Aso",list:"Faasologa"},weekText:"Vaiaso",allDayText:"Aso atoa",moreLinkText:"sili atu",noEventsText:"Leai ni mea na tutupu"})}(); \ No newline at end of file
+!function(a){"use strict";FullCalendar.globalLocales.push({code:"sm",buttonText:{prev:"Talu ai",next:"Mulimuli atu",today:"Aso nei",year:"Tausaga",month:"Masina",week:"Vaiaso",day:"Aso",list:"Faasologa"},weekText:"Vaiaso",allDayText:"Aso atoa",moreLinkText:"sili atu",noEventsText:"Leai ni mea na tutupu"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/sq.global.js b/library/fullcalendar/packages/core/locales/sq.global.js
index 08338fec3..48f2a4222 100644
--- a/library/fullcalendar/packages/core/locales/sq.global.js
+++ b/library/fullcalendar/packages/core/locales/sq.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -15,7 +15,8 @@ Docs & License: https://fullcalendar.io
buttonText: {
prev: 'mbrapa',
next: 'Përpara',
- today: 'sot',
+ today: 'Sot',
+ year: 'Viti',
month: 'Muaj',
week: 'Javë',
day: 'Ditë',
diff --git a/library/fullcalendar/packages/core/locales/sq.global.min.js b/library/fullcalendar/packages/core/locales/sq.global.min.js
index 11abe5474..2e4189454 100644
--- a/library/fullcalendar/packages/core/locales/sq.global.min.js
+++ b/library/fullcalendar/packages/core/locales/sq.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"sq",week:{dow:1,doy:4},buttonText:{prev:"mbrapa",next:"Përpara",today:"sot",month:"Muaj",week:"Javë",day:"Ditë",list:"Listë"},weekText:"Ja",allDayText:"Gjithë ditën",moreLinkText:e=>"+më tepër "+e,noEventsText:"Nuk ka evente për të shfaqur"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var t={code:"sq",week:{dow:1,doy:4},buttonText:{prev:"mbrapa",next:"Përpara",today:"Sot",year:"Viti",month:"Muaj",week:"Javë",day:"Ditë",list:"Listë"},weekText:"Ja",allDayText:"Gjithë ditën",moreLinkText:e=>"+më tepër "+e,noEventsText:"Nuk ka evente për të shfaqur"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/sr-cyrl.global.js b/library/fullcalendar/packages/core/locales/sr-cyrl.global.js
index 957ed5399..eed73bf0d 100644
--- a/library/fullcalendar/packages/core/locales/sr-cyrl.global.js
+++ b/library/fullcalendar/packages/core/locales/sr-cyrl.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Претходна',
next: 'следећи',
today: 'Данас',
+ year: 'Година',
month: 'Месец',
week: 'Недеља',
day: 'Дан',
diff --git a/library/fullcalendar/packages/core/locales/sr-cyrl.global.min.js b/library/fullcalendar/packages/core/locales/sr-cyrl.global.min.js
index 6a5d2ef9c..6c86c1c37 100644
--- a/library/fullcalendar/packages/core/locales/sr-cyrl.global.min.js
+++ b/library/fullcalendar/packages/core/locales/sr-cyrl.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"sr-cyrl",week:{dow:1,doy:7},buttonText:{prev:"Претходна",next:"следећи",today:"Данас",month:"Месец",week:"Недеља",day:"Дан",list:"Планер"},weekText:"Сед",allDayText:"Цео дан",moreLinkText:e=>"+ још "+e,noEventsText:"Нема догађаја за приказ"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var t={code:"sr-cyrl",week:{dow:1,doy:7},buttonText:{prev:"Претходна",next:"следећи",today:"Данас",year:"Година",month:"Месец",week:"Недеља",day:"Дан",list:"Планер"},weekText:"Сед",allDayText:"Цео дан",moreLinkText:e=>"+ још "+e,noEventsText:"Нема догађаја за приказ"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/sr.global.js b/library/fullcalendar/packages/core/locales/sr.global.js
index 6dfc7f730..a2ef0f3d5 100644
--- a/library/fullcalendar/packages/core/locales/sr.global.js
+++ b/library/fullcalendar/packages/core/locales/sr.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Prethodna',
next: 'Sledeći',
today: 'Danas',
+ year: 'Godina',
month: 'Mеsеc',
week: 'Nеdеlja',
day: 'Dan',
diff --git a/library/fullcalendar/packages/core/locales/sr.global.min.js b/library/fullcalendar/packages/core/locales/sr.global.min.js
index 425f4210e..41a62c8d5 100644
--- a/library/fullcalendar/packages/core/locales/sr.global.min.js
+++ b/library/fullcalendar/packages/core/locales/sr.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var a={code:"sr",week:{dow:1,doy:7},buttonText:{prev:"Prethodna",next:"Sledeći",today:"Danas",month:"Mеsеc",week:"Nеdеlja",day:"Dan",list:"Planеr"},weekText:"Sed",allDayText:"Cеo dan",moreLinkText:e=>"+ još "+e,noEventsText:"Nеma događaja za prikaz"};FullCalendar.globalLocales.push(a)}(); \ No newline at end of file
+!function(a){"use strict";var e={code:"sr",week:{dow:1,doy:7},buttonText:{prev:"Prethodna",next:"Sledeći",today:"Danas",year:"Godina",month:"Mеsеc",week:"Nеdеlja",day:"Dan",list:"Planеr"},weekText:"Sed",allDayText:"Cеo dan",moreLinkText:a=>"+ još "+a,noEventsText:"Nеma događaja za prikaz"};FullCalendar.globalLocales.push(e)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/sv.global.js b/library/fullcalendar/packages/core/locales/sv.global.js
index 3439a7d7d..0e7403803 100644
--- a/library/fullcalendar/packages/core/locales/sv.global.js
+++ b/library/fullcalendar/packages/core/locales/sv.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Förra',
next: 'Nästa',
today: 'Idag',
+ year: 'År',
month: 'Månad',
week: 'Vecka',
day: 'Dag',
diff --git a/library/fullcalendar/packages/core/locales/sv.global.min.js b/library/fullcalendar/packages/core/locales/sv.global.min.js
index 91b597728..33286819f 100644
--- a/library/fullcalendar/packages/core/locales/sv.global.min.js
+++ b/library/fullcalendar/packages/core/locales/sv.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"sv",week:{dow:1,doy:4},buttonText:{prev:"Förra",next:"Nästa",today:"Idag",month:"Månad",week:"Vecka",day:"Dag",list:"Program"},buttonHints:{prev:e=>"Föregående "+e.toLocaleLowerCase(),next:e=>"Nästa "+e.toLocaleLowerCase(),today:e=>("Program"===e?"Detta":"Denna")+" "+e.toLocaleLowerCase()},viewHint:"$0 vy",navLinkHint:"Gå till $0",moreLinkHint:e=>`Visa ytterligare ${e} händelse${1===e?"":"r"}`,weekText:"v.",weekTextLong:"Vecka",allDayText:"Heldag",moreLinkText:"till",noEventsText:"Inga händelser att visa",closeHint:"Stäng",timeHint:"Klockan",eventHint:"Händelse"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var t={code:"sv",week:{dow:1,doy:4},buttonText:{prev:"Förra",next:"Nästa",today:"Idag",year:"År",month:"Månad",week:"Vecka",day:"Dag",list:"Program"},buttonHints:{prev:e=>"Föregående "+e.toLocaleLowerCase(),next:e=>"Nästa "+e.toLocaleLowerCase(),today:e=>("Program"===e?"Detta":"Denna")+" "+e.toLocaleLowerCase()},viewHint:"$0 vy",navLinkHint:"Gå till $0",moreLinkHint:e=>`Visa ytterligare ${e} händelse${1===e?"":"r"}`,weekText:"v.",weekTextLong:"Vecka",allDayText:"Heldag",moreLinkText:"till",noEventsText:"Inga händelser att visa",closeHint:"Stäng",timeHint:"Klockan",eventHint:"Händelse"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/ta-in.global.js b/library/fullcalendar/packages/core/locales/ta-in.global.js
index e565db852..ca050ea2d 100644
--- a/library/fullcalendar/packages/core/locales/ta-in.global.js
+++ b/library/fullcalendar/packages/core/locales/ta-in.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'முந்தைய',
next: 'அடுத்தது',
today: 'இன்று',
+ year: 'ஆண்டு',
month: 'மாதம்',
week: 'வாரம்',
day: 'நாள்',
diff --git a/library/fullcalendar/packages/core/locales/ta-in.global.min.js b/library/fullcalendar/packages/core/locales/ta-in.global.min.js
index fd1879031..9f982752a 100644
--- a/library/fullcalendar/packages/core/locales/ta-in.global.min.js
+++ b/library/fullcalendar/packages/core/locales/ta-in.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"ta-in",week:{dow:1,doy:4},buttonText:{prev:"முந்தைய",next:"அடுத்தது",today:"இன்று",month:"மாதம்",week:"வாரம்",day:"நாள்",list:"தினசரி அட்டவணை"},weekText:"வாரம்",allDayText:"நாள் முழுவதும்",moreLinkText:e=>"+ மேலும் "+e,noEventsText:"காண்பிக்க நிகழ்வுகள் இல்லை"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var t={code:"ta-in",week:{dow:1,doy:4},buttonText:{prev:"முந்தைய",next:"அடுத்தது",today:"இன்று",year:"ஆண்டு",month:"மாதம்",week:"வாரம்",day:"நாள்",list:"தினசரி அட்டவணை"},weekText:"வாரம்",allDayText:"நாள் முழுவதும்",moreLinkText:e=>"+ மேலும் "+e,noEventsText:"காண்பிக்க நிகழ்வுகள் இல்லை"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/th.global.js b/library/fullcalendar/packages/core/locales/th.global.js
index e2d4a5bf2..394a6b79a 100644
--- a/library/fullcalendar/packages/core/locales/th.global.js
+++ b/library/fullcalendar/packages/core/locales/th.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
diff --git a/library/fullcalendar/packages/core/locales/th.global.min.js b/library/fullcalendar/packages/core/locales/th.global.min.js
index ef7e6dbd2..8574d2e4a 100644
--- a/library/fullcalendar/packages/core/locales/th.global.min.js
+++ b/library/fullcalendar/packages/core/locales/th.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
!function(e){"use strict";FullCalendar.globalLocales.push({code:"th",week:{dow:1,doy:4},buttonText:{prev:"ก่อนหน้า",next:"ถัดไป",prevYear:"ปีก่อนหน้า",nextYear:"ปีถัดไป",year:"ปี",today:"วันนี้",month:"เดือน",week:"สัปดาห์",day:"วัน",list:"กำหนดการ"},weekText:"สัปดาห์",allDayText:"ตลอดวัน",moreLinkText:"เพิ่มเติม",noEventsText:"ไม่มีกิจกรรมที่จะแสดง"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/tr.global.js b/library/fullcalendar/packages/core/locales/tr.global.js
index 95b158954..da9e821c3 100644
--- a/library/fullcalendar/packages/core/locales/tr.global.js
+++ b/library/fullcalendar/packages/core/locales/tr.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'geri',
next: 'ileri',
today: 'bugün',
+ year: 'Yıl',
month: 'Ay',
week: 'Hafta',
day: 'Gün',
diff --git a/library/fullcalendar/packages/core/locales/tr.global.min.js b/library/fullcalendar/packages/core/locales/tr.global.min.js
index 06811503a..334697c21 100644
--- a/library/fullcalendar/packages/core/locales/tr.global.min.js
+++ b/library/fullcalendar/packages/core/locales/tr.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"tr",week:{dow:1,doy:7},buttonText:{prev:"geri",next:"ileri",today:"bugün",month:"Ay",week:"Hafta",day:"Gün",list:"Ajanda"},weekText:"Hf",allDayText:"Tüm gün",moreLinkText:"daha fazla",noEventsText:"Gösterilecek etkinlik yok"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"tr",week:{dow:1,doy:7},buttonText:{prev:"geri",next:"ileri",today:"bugün",year:"Yıl",month:"Ay",week:"Hafta",day:"Gün",list:"Ajanda"},weekText:"Hf",allDayText:"Tüm gün",moreLinkText:"daha fazla",noEventsText:"Gösterilecek etkinlik yok"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/ug.global.js b/library/fullcalendar/packages/core/locales/ug.global.js
index 4930d1302..397218062 100644
--- a/library/fullcalendar/packages/core/locales/ug.global.js
+++ b/library/fullcalendar/packages/core/locales/ug.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -9,6 +9,10 @@ Docs & License: https://fullcalendar.io
var locale = {
code: 'ug',
buttonText: {
+ prev: 'ئالدىنقى',
+ next: 'كېيىنكى',
+ today: 'بۈگۈن',
+ year: 'يىل',
month: 'ئاي',
week: 'ھەپتە',
day: 'كۈن',
diff --git a/library/fullcalendar/packages/core/locales/ug.global.min.js b/library/fullcalendar/packages/core/locales/ug.global.min.js
index 308e2d782..927e15cad 100644
--- a/library/fullcalendar/packages/core/locales/ug.global.min.js
+++ b/library/fullcalendar/packages/core/locales/ug.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(l){"use strict";FullCalendar.globalLocales.push({code:"ug",buttonText:{month:"ئاي",week:"ھەپتە",day:"كۈن",list:"كۈنتەرتىپ"},allDayText:"پۈتۈن كۈن"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"ug",buttonText:{prev:"ئالدىنقى",next:"كېيىنكى",today:"بۈگۈن",year:"يىل",month:"ئاي",week:"ھەپتە",day:"كۈن",list:"كۈنتەرتىپ"},allDayText:"پۈتۈن كۈن"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/uk.global.js b/library/fullcalendar/packages/core/locales/uk.global.js
index 36fd3b02a..e3a20ac5e 100644
--- a/library/fullcalendar/packages/core/locales/uk.global.js
+++ b/library/fullcalendar/packages/core/locales/uk.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Попередній',
next: 'далі',
today: 'Сьогодні',
+ year: 'рік',
month: 'Місяць',
week: 'Тиждень',
day: 'День',
diff --git a/library/fullcalendar/packages/core/locales/uk.global.min.js b/library/fullcalendar/packages/core/locales/uk.global.min.js
index 1b0511592..36a81f31a 100644
--- a/library/fullcalendar/packages/core/locales/uk.global.min.js
+++ b/library/fullcalendar/packages/core/locales/uk.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"uk",week:{dow:1,doy:7},buttonText:{prev:"Попередній",next:"далі",today:"Сьогодні",month:"Місяць",week:"Тиждень",day:"День",list:"Порядок денний"},weekText:"Тиж",allDayText:"Увесь день",moreLinkText:e=>"+ще "+e+"...",noEventsText:"Немає подій для відображення"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var t={code:"uk",week:{dow:1,doy:7},buttonText:{prev:"Попередній",next:"далі",today:"Сьогодні",year:"рік",month:"Місяць",week:"Тиждень",day:"День",list:"Порядок денний"},weekText:"Тиж",allDayText:"Увесь день",moreLinkText:e=>"+ще "+e+"...",noEventsText:"Немає подій для відображення"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/uz-cy.global.js b/library/fullcalendar/packages/core/locales/uz-cy.global.js
new file mode 100644
index 000000000..1e1db4da3
--- /dev/null
+++ b/library/fullcalendar/packages/core/locales/uz-cy.global.js
@@ -0,0 +1,34 @@
+/*!
+FullCalendar Core v6.1.8
+Docs & License: https://fullcalendar.io
+(c) 2023 Adam Shaw
+*/
+(function (index_js) {
+ 'use strict';
+
+ var locale = {
+ code: 'uz-cy',
+ week: {
+ dow: 1,
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ buttonText: {
+ prev: 'Олин',
+ next: 'Кейин',
+ today: 'Бугун',
+ month: 'Ой',
+ week: 'Ҳафта',
+ day: 'Кун',
+ list: 'Кун тартиби',
+ },
+ weekText: 'Ҳафта',
+ allDayText: 'Кун бўйича',
+ moreLinkText(n) {
+ return '+ яна ' + n;
+ },
+ noEventsText: 'Кўрсатиш учун воқеалар йўқ',
+ };
+
+ index_js.globalLocales.push(locale);
+
+})(FullCalendar);
diff --git a/library/fullcalendar/packages/core/locales/uz-cy.global.min.js b/library/fullcalendar/packages/core/locales/uz-cy.global.min.js
new file mode 100644
index 000000000..bfd7e4261
--- /dev/null
+++ b/library/fullcalendar/packages/core/locales/uz-cy.global.min.js
@@ -0,0 +1,6 @@
+/*!
+FullCalendar Core v6.1.8
+Docs & License: https://fullcalendar.io
+(c) 2023 Adam Shaw
+*/
+!function(e){"use strict";var t={code:"uz-cy",week:{dow:1,doy:4},buttonText:{prev:"Олин",next:"Кейин",today:"Бугун",month:"Ой",week:"Ҳафта",day:"Кун",list:"Кун тартиби"},weekText:"Ҳафта",allDayText:"Кун бўйича",moreLinkText:e=>"+ яна "+e,noEventsText:"Кўрсатиш учун воқеалар йўқ"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/uz.global.js b/library/fullcalendar/packages/core/locales/uz.global.js
index 7e49abb68..f7acfb031 100644
--- a/library/fullcalendar/packages/core/locales/uz.global.js
+++ b/library/fullcalendar/packages/core/locales/uz.global.js
@@ -1,14 +1,22 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
var locale = {
code: 'uz',
+ week: {
+ dow: 1,
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
buttonText: {
+ prev: 'Oldingi',
+ next: 'Keyingi',
+ today: 'Bugun',
+ year: 'Yil',
month: 'Oy',
week: 'Xafta',
day: 'Kun',
diff --git a/library/fullcalendar/packages/core/locales/uz.global.min.js b/library/fullcalendar/packages/core/locales/uz.global.min.js
index e840a6014..109a84098 100644
--- a/library/fullcalendar/packages/core/locales/uz.global.min.js
+++ b/library/fullcalendar/packages/core/locales/uz.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(a){"use strict";var t={code:"uz",buttonText:{month:"Oy",week:"Xafta",day:"Kun",list:"Kun tartibi"},allDayText:"Kun bo'yi",moreLinkText:a=>"+ yana "+a,noEventsText:"Ko'rsatish uchun voqealar yo'q"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var a={code:"uz",week:{dow:1,doy:4},buttonText:{prev:"Oldingi",next:"Keyingi",today:"Bugun",year:"Yil",month:"Oy",week:"Xafta",day:"Kun",list:"Kun tartibi"},allDayText:"Kun bo'yi",moreLinkText:e=>"+ yana "+e,noEventsText:"Ko'rsatish uchun voqealar yo'q"};FullCalendar.globalLocales.push(a)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/vi.global.js b/library/fullcalendar/packages/core/locales/vi.global.js
index 48e572df7..6644eb1f3 100644
--- a/library/fullcalendar/packages/core/locales/vi.global.js
+++ b/library/fullcalendar/packages/core/locales/vi.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -16,6 +16,7 @@ Docs & License: https://fullcalendar.io
prev: 'Trước',
next: 'Tiếp',
today: 'Hôm nay',
+ year: 'Năm',
month: 'Tháng',
week: 'Tuần',
day: 'Ngày',
diff --git a/library/fullcalendar/packages/core/locales/vi.global.min.js b/library/fullcalendar/packages/core/locales/vi.global.min.js
index 1ea5848d5..b48927200 100644
--- a/library/fullcalendar/packages/core/locales/vi.global.min.js
+++ b/library/fullcalendar/packages/core/locales/vi.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"vi",week:{dow:1,doy:4},buttonText:{prev:"Trước",next:"Tiếp",today:"Hôm nay",month:"Tháng",week:"Tuần",day:"Ngày",list:"Lịch biểu"},weekText:"Tu",allDayText:"Cả ngày",moreLinkText:e=>"+ thêm "+e,noEventsText:"Không có sự kiện để hiển thị"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var t={code:"vi",week:{dow:1,doy:4},buttonText:{prev:"Trước",next:"Tiếp",today:"Hôm nay",year:"Năm",month:"Tháng",week:"Tuần",day:"Ngày",list:"Lịch biểu"},weekText:"Tu",allDayText:"Cả ngày",moreLinkText:e=>"+ thêm "+e,noEventsText:"Không có sự kiện để hiển thị"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/zh-cn.global.js b/library/fullcalendar/packages/core/locales/zh-cn.global.js
index 347dc6c3a..117f685ea 100644
--- a/library/fullcalendar/packages/core/locales/zh-cn.global.js
+++ b/library/fullcalendar/packages/core/locales/zh-cn.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -17,6 +17,7 @@ Docs & License: https://fullcalendar.io
prev: '上月',
next: '下月',
today: '今天',
+ year: '年',
month: '月',
week: '周',
day: '日',
diff --git a/library/fullcalendar/packages/core/locales/zh-cn.global.min.js b/library/fullcalendar/packages/core/locales/zh-cn.global.min.js
index 8e8b859c5..e87479328 100644
--- a/library/fullcalendar/packages/core/locales/zh-cn.global.min.js
+++ b/library/fullcalendar/packages/core/locales/zh-cn.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";var t={code:"zh-cn",week:{dow:1,doy:4},buttonText:{prev:"上月",next:"下月",today:"今天",month:"月",week:"周",day:"日",list:"日程"},weekText:"周",allDayText:"全天",moreLinkText:e=>"另外 "+e+" 个",noEventsText:"没有事件显示"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
+!function(e){"use strict";var t={code:"zh-cn",week:{dow:1,doy:4},buttonText:{prev:"上月",next:"下月",today:"今天",year:"年",month:"月",week:"周",day:"日",list:"日程"},weekText:"周",allDayText:"全天",moreLinkText:e=>"另外 "+e+" 个",noEventsText:"没有事件显示"};FullCalendar.globalLocales.push(t)}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/core/locales/zh-tw.global.js b/library/fullcalendar/packages/core/locales/zh-tw.global.js
index dcedbc7f2..12c6f8ffa 100644
--- a/library/fullcalendar/packages/core/locales/zh-tw.global.js
+++ b/library/fullcalendar/packages/core/locales/zh-tw.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
(function (index_js) {
'use strict';
@@ -9,18 +9,19 @@ Docs & License: https://fullcalendar.io
var locale = {
code: 'zh-tw',
buttonText: {
- prev: '上月',
- next: '下月',
+ prev: '上個',
+ next: '下個',
today: '今天',
+ year: '年',
month: '月',
week: '週',
day: '天',
list: '活動列表',
},
- weekText: '周',
+ weekText: '週',
allDayText: '整天',
moreLinkText: '顯示更多',
- noEventsText: '没有任何活動',
+ noEventsText: '沒有任何活動',
};
index_js.globalLocales.push(locale);
diff --git a/library/fullcalendar/packages/core/locales/zh-tw.global.min.js b/library/fullcalendar/packages/core/locales/zh-tw.global.min.js
index 44ee5a70c..ee7cd2680 100644
--- a/library/fullcalendar/packages/core/locales/zh-tw.global.min.js
+++ b/library/fullcalendar/packages/core/locales/zh-tw.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Core v6.0.3
+FullCalendar Core v6.1.8
Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-!function(e){"use strict";FullCalendar.globalLocales.push({code:"zh-tw",buttonText:{prev:"上月",next:"下月",today:"今天",month:"月",week:"週",day:"天",list:"活動列表"},weekText:"周",allDayText:"整天",moreLinkText:"顯示更多",noEventsText:"没有任何活動"})}(); \ No newline at end of file
+!function(e){"use strict";FullCalendar.globalLocales.push({code:"zh-tw",buttonText:{prev:"上個",next:"下個",today:"今天",year:"年",month:"月",week:"週",day:"天",list:"活動列表"},weekText:"週",allDayText:"整天",moreLinkText:"顯示更多",noEventsText:"沒有任何活動"})}(); \ No newline at end of file
diff --git a/library/fullcalendar/packages/daygrid/index.global.js b/library/fullcalendar/packages/daygrid/index.global.js
index 58c6a55cf..2f96df948 100644
--- a/library/fullcalendar/packages/daygrid/index.global.js
+++ b/library/fullcalendar/packages/daygrid/index.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Day Grid Plugin v6.0.3
+FullCalendar Day Grid Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/month-view
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
'use strict';
@@ -83,7 +83,7 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
});
}
return (preact.createElement(internal$1.ViewContainer, { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec },
- preact.createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, colGroups: [{ cols: [{ span: colCnt, minWidth: dayMinWidth }] }], sections: sections })));
+ preact.createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, forPrint: props.forPrint, collapsibleWidth: props.forPrint, colGroups: [{ cols: [{ span: colCnt, minWidth: dayMinWidth }] }], sections: sections })));
}
}
@@ -217,16 +217,25 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
}
render() {
let { context, props, state, rootElRef } = this;
- let { options } = context;
+ let { options, dateEnv } = context;
let { date, dateProfile } = props;
+ // TODO: memoize this?
+ const isMonthStart = props.showDayNumber &&
+ shouldDisplayMonthStart(date, dateProfile.currentRange, dateEnv);
return (preact.createElement(internal$1.DayCellContainer, { elTag: "td", elRef: this.handleRootEl, elClasses: [
'fc-daygrid-day',
...(props.extraClassNames || []),
- ], elAttrs: Object.assign(Object.assign(Object.assign({}, props.extraDataAttrs), (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})), { role: 'gridcell' }), defaultGenerator: renderTopInner, date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, extraRenderProps: props.extraRenderProps }, (InnerContent, renderProps) => (preact.createElement("div", { className: "fc-daygrid-day-frame fc-scrollgrid-sync-inner", ref: props.innerElRef },
+ ], elAttrs: Object.assign(Object.assign(Object.assign({}, props.extraDataAttrs), (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})), { role: 'gridcell' }), defaultGenerator: renderTopInner, date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, isMonthStart: isMonthStart, extraRenderProps: props.extraRenderProps }, (InnerContent, renderProps) => (preact.createElement("div", { ref: props.innerElRef, className: "fc-daygrid-day-frame fc-scrollgrid-sync-inner", style: { minHeight: props.minHeight } },
props.showWeekNumber && (preact.createElement(internal$1.WeekNumberContainer, { elTag: "a", elClasses: ['fc-daygrid-week-number'], elAttrs: internal$1.buildNavLinkAttrs(context, date, 'week'), date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT })),
- Boolean(!renderProps.isDisabled &&
- (props.showDayNumber || internal$1.hasCustomDayCellContent(options) || props.forceDayTop)) && (preact.createElement("div", { className: "fc-daygrid-day-top" },
- preact.createElement(InnerContent, { elTag: "a", elClasses: ['fc-daygrid-day-number'], elAttrs: Object.assign(Object.assign({}, internal$1.buildNavLinkAttrs(context, date)), { id: state.dayNumberId }) }))),
+ !renderProps.isDisabled &&
+ (props.showDayNumber || internal$1.hasCustomDayCellContent(options) || props.forceDayTop) ? (preact.createElement("div", { className: "fc-daygrid-day-top" },
+ preact.createElement(InnerContent, { elTag: "a", elClasses: [
+ 'fc-daygrid-day-number',
+ isMonthStart && 'fc-daygrid-month-start',
+ ], elAttrs: Object.assign(Object.assign({}, internal$1.buildNavLinkAttrs(context, date)), { id: state.dayNumberId }) }))) : props.showDayNumber ? (
+ // for creating correct amount of space (see issue #7162)
+ preact.createElement("div", { className: "fc-daygrid-day-top", style: { visibility: 'hidden' } },
+ preact.createElement("a", { className: "fc-daygrid-day-number" }, "\u00A0"))) : undefined,
preact.createElement("div", { className: "fc-daygrid-day-events", ref: props.fgContentElRef },
props.fgContent,
preact.createElement("div", { className: "fc-daygrid-day-bottom", style: { marginTop: props.moreMarginTop } },
@@ -237,6 +246,21 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
function renderTopInner(props) {
return props.dayNumberText || preact.createElement(preact.Fragment, null, "\u00A0");
}
+ function shouldDisplayMonthStart(date, currentRange, dateEnv) {
+ const { start: currentStart, end: currentEnd } = currentRange;
+ const currentEndIncl = internal$1.addMs(currentEnd, -1);
+ const currentFirstYear = dateEnv.getYear(currentStart);
+ const currentFirstMonth = dateEnv.getMonth(currentStart);
+ const currentLastYear = dateEnv.getYear(currentEndIncl);
+ const currentLastMonth = dateEnv.getMonth(currentEndIncl);
+ // spans more than one month?
+ return !(currentFirstYear === currentLastYear && currentFirstMonth === currentLastMonth) &&
+ Boolean(
+ // first date in current view?
+ date.valueOf() === currentStart.valueOf() ||
+ // a month-start that's within the current range?
+ (dateEnv.getDay(date) === 1 && date.valueOf() < currentEnd.valueOf()));
+ }
function computeFgSegPlacement(segs, // assumed already sorted
dayMaxEvents, dayMaxEventRows, strictOrder, eventInstanceHeights, maxContentHeight, cells) {
@@ -507,7 +531,7 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
preact.createElement(preact.Fragment, null,
this.renderFillSegs(highlightSegsByCol[col], 'highlight'),
this.renderFillSegs(businessHoursByCol[col], 'non-business'),
- this.renderFillSegs(bgEventSegsByCol[col], 'bg-event'))) }));
+ this.renderFillSegs(bgEventSegsByCol[col], 'bg-event'))), minHeight: props.cellMinHeight }));
})));
}
componentDidMount() {
@@ -679,7 +703,7 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
return topsByInstanceId;
}
- class Table extends internal$1.DateComponent {
+ class TableRows extends internal$1.DateComponent {
constructor() {
super(...arguments);
this.splitBusinessHourSegs = internal$1.memoize(splitSegsByRow);
@@ -689,22 +713,9 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
this.splitEventDrag = internal$1.memoize(splitInteractionByRow);
this.splitEventResize = internal$1.memoize(splitInteractionByRow);
this.rowRefs = new internal$1.RefMap();
- this.handleRootEl = (rootEl) => {
- this.rootEl = rootEl;
- if (rootEl) {
- this.context.registerInteractiveComponent(this, {
- el: rootEl,
- isHitComboAllowed: this.props.isHitComboAllowed,
- });
- }
- else {
- this.context.unregisterInteractiveComponent(this);
- }
- };
}
render() {
- let { props } = this;
- let { dateProfile, dayMaxEventRows, dayMaxEvents, expandRows } = props;
+ let { props, context } = this;
let rowCnt = props.cells.length;
let businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, rowCnt);
let bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, rowCnt);
@@ -712,36 +723,33 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
let dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, rowCnt);
let eventDragByRow = this.splitEventDrag(props.eventDrag, rowCnt);
let eventResizeByRow = this.splitEventResize(props.eventResize, rowCnt);
- let limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true;
- // if rows can't expand to fill fixed height, can't do balanced-height event limit
- // TODO: best place to normalize these options?
- if (limitViaBalanced && !expandRows) {
- limitViaBalanced = false;
- dayMaxEventRows = null;
- dayMaxEvents = null;
+ // for DayGrid view with many rows, force a min-height on cells so doesn't appear squished
+ // choose 7 because a month view will have max 6 rows
+ let cellMinHeight = (rowCnt >= 7 && props.clientWidth) ?
+ props.clientWidth / context.options.aspectRatio / 6 :
+ null;
+ return (preact.createElement(internal$1.NowTimer, { unit: "day" }, (nowDate, todayRange) => (preact.createElement(preact.Fragment, null, props.cells.map((cells, row) => (preact.createElement(TableRow, { ref: this.rowRefs.createRef(row), key: cells.length
+ ? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */
+ : row // in case there are no cells (like when resource view is loading)
+ , showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: props.dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, cellMinHeight: cellMinHeight, forPrint: props.forPrint })))))));
+ }
+ componentDidMount() {
+ // HACK: need a daygrid wrapper parent to do positioning
+ // NOTE: a daygrid resource view w/o resources can have zero cells
+ const firstCellEl = this.rowRefs.currentMap[0].getCellEls()[0];
+ this.rootEl = firstCellEl ? firstCellEl.closest('.fc-daygrid-body') : null;
+ if (this.rootEl) {
+ this.context.registerInteractiveComponent(this, {
+ el: this.rootEl,
+ isHitComboAllowed: this.props.isHitComboAllowed,
+ });
+ }
+ }
+ componentWillUnmount() {
+ if (this.rootEl) {
+ this.context.unregisterInteractiveComponent(this);
+ this.rootEl = null;
}
- let classNames = [
- 'fc-daygrid-body',
- limitViaBalanced ? 'fc-daygrid-body-balanced' : 'fc-daygrid-body-unbalanced',
- expandRows ? '' : 'fc-daygrid-body-natural', // will height of one row depend on the others?
- ];
- return (preact.createElement("div", { className: classNames.join(' '), ref: this.handleRootEl, style: {
- // these props are important to give this wrapper correct dimensions for interactions
- // TODO: if we set it here, can we avoid giving to inner tables?
- width: props.clientWidth,
- minWidth: props.tableMinWidth,
- } },
- preact.createElement(internal$1.NowTimer, { unit: "day" }, (nowDate, todayRange) => (preact.createElement(preact.Fragment, null,
- preact.createElement("table", { role: "presentation", className: "fc-scrollgrid-sync-table", style: {
- width: props.clientWidth,
- minWidth: props.tableMinWidth,
- height: expandRows ? props.clientHeight : '',
- } },
- props.colGroupNode,
- preact.createElement("tbody", { role: "presentation" }, props.cells.map((cells, row) => (preact.createElement(TableRow, { ref: this.rowRefs.createRef(row), key: cells.length
- ? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */
- : row // in case there are no cells (like when resource view is loading)
- , showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint }))))))))));
}
// Hit System
// ----------------------------------------------------------------------------------------------------
@@ -786,6 +794,87 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
return seg.eventRange.def.allDay;
}
+ class Table extends internal$1.DateComponent {
+ constructor() {
+ super(...arguments);
+ this.elRef = preact.createRef();
+ this.needsScrollReset = false;
+ }
+ render() {
+ let { props } = this;
+ let { dayMaxEventRows, dayMaxEvents, expandRows } = props;
+ let limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true;
+ // if rows can't expand to fill fixed height, can't do balanced-height event limit
+ // TODO: best place to normalize these options?
+ if (limitViaBalanced && !expandRows) {
+ limitViaBalanced = false;
+ dayMaxEventRows = null;
+ dayMaxEvents = null;
+ }
+ let classNames = [
+ 'fc-daygrid-body',
+ limitViaBalanced ? 'fc-daygrid-body-balanced' : 'fc-daygrid-body-unbalanced',
+ expandRows ? '' : 'fc-daygrid-body-natural', // will height of one row depend on the others?
+ ];
+ return (preact.createElement("div", { ref: this.elRef, className: classNames.join(' '), style: {
+ // these props are important to give this wrapper correct dimensions for interactions
+ // TODO: if we set it here, can we avoid giving to inner tables?
+ width: props.clientWidth,
+ minWidth: props.tableMinWidth,
+ } },
+ preact.createElement("table", { role: "presentation", className: "fc-scrollgrid-sync-table", style: {
+ width: props.clientWidth,
+ minWidth: props.tableMinWidth,
+ height: expandRows ? props.clientHeight : '',
+ } },
+ props.colGroupNode,
+ preact.createElement("tbody", { role: "presentation" },
+ preact.createElement(TableRows, { dateProfile: props.dateProfile, cells: props.cells, renderRowIntro: props.renderRowIntro, showWeekNumbers: props.showWeekNumbers, clientWidth: props.clientWidth, clientHeight: props.clientHeight, businessHourSegs: props.businessHourSegs, bgEventSegs: props.bgEventSegs, fgEventSegs: props.fgEventSegs, dateSelectionSegs: props.dateSelectionSegs, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, forPrint: props.forPrint, isHitComboAllowed: props.isHitComboAllowed })))));
+ }
+ componentDidMount() {
+ this.requestScrollReset();
+ }
+ componentDidUpdate(prevProps) {
+ if (prevProps.dateProfile !== this.props.dateProfile) {
+ this.requestScrollReset();
+ }
+ else {
+ this.flushScrollReset();
+ }
+ }
+ requestScrollReset() {
+ this.needsScrollReset = true;
+ this.flushScrollReset();
+ }
+ flushScrollReset() {
+ if (this.needsScrollReset &&
+ this.props.clientWidth // sizes computed?
+ ) {
+ const subjectEl = getScrollSubjectEl(this.elRef.current, this.props.dateProfile);
+ if (subjectEl) {
+ const originEl = subjectEl.closest('.fc-daygrid-body');
+ const scrollEl = originEl.closest('.fc-scroller');
+ const scrollTop = subjectEl.getBoundingClientRect().top -
+ originEl.getBoundingClientRect().top;
+ scrollEl.scrollTop = scrollTop ? (scrollTop + 1) : 0; // overcome border
+ }
+ this.needsScrollReset = false;
+ }
+ }
+ }
+ function getScrollSubjectEl(containerEl, dateProfile) {
+ let el;
+ if (dateProfile.currentRangeUnit.match(/year|month/)) {
+ el = containerEl.querySelector(`[data-date="${internal$1.formatIsoMonthStr(dateProfile.currentDate)}-01"]`);
+ // even if view is month-based, first-of-month might be hidden...
+ }
+ if (!el) {
+ el = containerEl.querySelector(`[data-date="${internal$1.formatDayString(dateProfile.currentDate)}"]`);
+ // could still be hidden if an interior-view hidden day
+ }
+ return el;
+ }
+
class DayTableSlicer extends internal$1.Slicer {
constructor() {
super(...arguments);
@@ -814,6 +903,7 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
this.buildDayTableModel = internal$1.memoize(buildDayTableModel);
this.headerRef = preact.createRef();
this.tableRef = preact.createRef();
+ // can't override any lifecycle methods from parent
}
render() {
let { options, dateProfileGenerator } = this.context;
@@ -832,34 +922,44 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
}
class TableDateProfileGenerator extends internal$1.DateProfileGenerator {
- // Computes the date range that will be rendered.
+ // Computes the date range that will be rendered
buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay) {
- let { dateEnv } = this.props;
let renderRange = super.buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay);
- let start = renderRange.start;
- let end = renderRange.end;
- let endOfWeek;
- // year and month views should be aligned with weeks. this is already done for week
- if (/^(year|month)$/.test(currentRangeUnit)) {
- start = dateEnv.startOfWeek(start);
- // make end-of-week if not already
- endOfWeek = dateEnv.startOfWeek(end);
- if (endOfWeek.valueOf() !== end.valueOf()) {
- end = internal$1.addWeeks(endOfWeek, 1);
- }
- }
- // ensure 6 weeks
- if (this.props.monthMode &&
- this.props.fixedWeekCount) {
- let rowCnt = Math.ceil(// could be partial weeks due to hiddenDays
- internal$1.diffWeeks(start, end));
- end = internal$1.addWeeks(end, 6 - rowCnt);
+ let { props } = this;
+ return buildDayTableRenderRange({
+ currentRange: renderRange,
+ snapToWeek: /^(year|month)$/.test(currentRangeUnit),
+ fixedWeekCount: props.fixedWeekCount,
+ dateEnv: props.dateEnv,
+ });
+ }
+ }
+ function buildDayTableRenderRange(props) {
+ let { dateEnv, currentRange } = props;
+ let { start, end } = currentRange;
+ let endOfWeek;
+ // year and month views should be aligned with weeks. this is already done for week
+ if (props.snapToWeek) {
+ start = dateEnv.startOfWeek(start);
+ // make end-of-week if not already
+ endOfWeek = dateEnv.startOfWeek(end);
+ if (endOfWeek.valueOf() !== end.valueOf()) {
+ end = internal$1.addWeeks(endOfWeek, 1);
}
- return { start, end };
}
+ // ensure 6 weeks
+ if (props.fixedWeekCount) {
+ // TODO: instead of these date-math gymnastics (for multimonth view),
+ // compute dateprofiles of all months, then use start of first and end of last.
+ let lastMonthRenderStart = dateEnv.startOfWeek(dateEnv.startOfMonth(internal$1.addDays(currentRange.end, -1)));
+ let rowCnt = Math.ceil(// could be partial weeks due to hiddenDays
+ internal$1.diffWeeks(lastMonthRenderStart, end));
+ end = internal$1.addWeeks(end, 6 - rowCnt);
+ }
+ return { start, end };
}
- var css_248z = ":root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;padding:2px 3px 0}.fc .fc-daygrid-day-bottom:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-more-link{cursor:pointer;position:relative;z-index:4}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}";
+ var css_248z = ":root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:0 2px}.fc .fc-daygrid-day-bottom:after,.fc .fc-daygrid-day-bottom:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-more-link{border-radius:3px;cursor:pointer;line-height:1;margin-top:1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap;z-index:4}.fc .fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-more-link{float:left}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-more-link{float:right}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}";
internal$1.injectStyles(css_248z);
var plugin = core.createPlugin({
@@ -881,9 +981,12 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
dayGridMonth: {
type: 'dayGrid',
duration: { months: 1 },
- monthMode: true,
fixedWeekCount: true,
},
+ dayGridYear: {
+ type: 'dayGrid',
+ duration: { years: 1 },
+ },
},
});
@@ -891,7 +994,10 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
__proto__: null,
DayTable: DayTable,
DayTableSlicer: DayTableSlicer,
+ TableDateProfileGenerator: TableDateProfileGenerator,
+ buildDayTableRenderRange: buildDayTableRenderRange,
Table: Table,
+ TableRows: TableRows,
TableView: TableView,
buildDayTableModel: buildDayTableModel,
DayGridView: DayTableView
diff --git a/library/fullcalendar/packages/daygrid/index.global.min.js b/library/fullcalendar/packages/daygrid/index.global.min.js
index 5a3aa763e..d754e0e34 100644
--- a/library/fullcalendar/packages/daygrid/index.global.min.js
+++ b/library/fullcalendar/packages/daygrid/index.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Day Grid Plugin v6.0.3
+FullCalendar Day Grid Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/month-view
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-FullCalendar.DayGrid=function(e,t,n,s){"use strict";class i extends n.DateComponent{constructor(){super(...arguments),this.headerElRef=s.createRef()}renderSimpleLayout(e,t){let{props:i,context:r}=this,a=[],l=n.getStickyHeaderDates(r.options);return e&&a.push({type:"header",key:"header",isSticky:l,chunk:{elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}}),a.push({type:"body",key:"body",liquid:!0,chunk:{content:t}}),s.createElement(n.ViewContainer,{elClasses:["fc-daygrid"],viewSpec:r.viewSpec},s.createElement(n.SimpleScrollGrid,{liquid:!i.isHeightAuto&&!i.forPrint,collapsibleWidth:i.forPrint,cols:[],sections:a}))}renderHScrollLayout(e,t,i,r){let a=this.context.pluginHooks.scrollGridImpl;if(!a)throw new Error("No ScrollGrid implementation");let{props:l,context:o}=this,d=!l.forPrint&&n.getStickyHeaderDates(o.options),c=!l.forPrint&&n.getStickyFooterScrollbar(o.options),g=[];return e&&g.push({type:"header",key:"header",isSticky:d,chunks:[{key:"main",elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}]}),g.push({type:"body",key:"body",liquid:!0,chunks:[{key:"main",content:t}]}),c&&g.push({type:"footer",key:"footer",isSticky:!0,chunks:[{key:"main",content:n.renderScrollShim}]}),s.createElement(n.ViewContainer,{elClasses:["fc-daygrid"],viewSpec:o.viewSpec},s.createElement(a,{liquid:!l.isHeightAuto&&!l.forPrint,collapsibleWidth:l.forPrint,colGroups:[{cols:[{span:i,minWidth:r}]}],sections:g}))}}function r(e,t){let n=[];for(let e=0;e<t;e+=1)n[e]=[];for(let t of e)n[t.row].push(t);return n}function a(e,t){let n=[];for(let e=0;e<t;e+=1)n[e]=[];for(let t of e)n[t.firstCol].push(t);return n}function l(e,t){let n=[];if(e){for(let s=0;s<t;s+=1)n[s]={affectedInstances:e.affectedInstances,isEvent:e.isEvent,segs:[]};for(let t of e.segs)n[t.row].segs.push(t)}else for(let e=0;e<t;e+=1)n[e]=null;return n}const o=n.createFormatter({hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"narrow"});function d(e){let{display:t}=e.eventRange.ui;return"list-item"===t||"auto"===t&&!e.eventRange.def.allDay&&e.firstCol===e.lastCol&&e.isStart&&e.isEnd}class c extends n.BaseComponent{render(){let{props:e}=this;return s.createElement(n.StandardEvent,Object.assign({},e,{elClasses:["fc-daygrid-event","fc-daygrid-block-event","fc-h-event"],defaultTimeFormat:o,defaultDisplayEventEnd:e.defaultDisplayEventEnd,disableResizing:!e.seg.eventRange.def.allDay}))}}class g extends n.BaseComponent{render(){let{props:e,context:t}=this,{options:i}=t,{seg:r}=e,a=i.eventTimeFormat||o,l=n.buildSegTimeText(r,a,t,!0,e.defaultDisplayEventEnd);return s.createElement(n.EventContainer,Object.assign({},e,{elTag:"a",elClasses:["fc-daygrid-event","fc-daygrid-dot-event"],elAttrs:n.getSegAnchorAttrs(e.seg,t),defaultGenerator:f,timeText:l,isResizing:!1,isDateSelecting:!1}))}}function f(e){return s.createElement(s.Fragment,null,s.createElement("div",{className:"fc-daygrid-event-dot",style:{borderColor:e.borderColor||e.backgroundColor}}),e.timeText&&s.createElement("div",{className:"fc-event-time"},e.timeText),s.createElement("div",{className:"fc-event-title"},e.event.title||s.createElement(s.Fragment,null," ")))}class h extends n.BaseComponent{constructor(){super(...arguments),this.compileSegs=n.memoize(u)}render(){let{props:e}=this,{allSegs:t,invisibleSegs:i}=this.compileSegs(e.singlePlacements);return s.createElement(n.MoreLinkContainer,{elClasses:["fc-daygrid-more-link"],dateProfile:e.dateProfile,todayRange:e.todayRange,allDayDate:e.allDayDate,moreCnt:e.moreCnt,allSegs:t,hiddenSegs:i,alignmentElRef:e.alignmentElRef,alignGridTop:e.alignGridTop,extraDateSpan:e.extraDateSpan,popoverContent:()=>{let i=(e.eventDrag?e.eventDrag.affectedInstances:null)||(e.eventResize?e.eventResize.affectedInstances:null)||{};return s.createElement(s.Fragment,null,t.map(t=>{let r=t.eventRange.instance.instanceId;return s.createElement("div",{className:"fc-daygrid-event-harness",key:r,style:{visibility:i[r]?"hidden":""}},d(t)?s.createElement(g,Object.assign({seg:t,isDragging:!1,isSelected:r===e.eventSelection,defaultDisplayEventEnd:!1},n.getSegMeta(t,e.todayRange))):s.createElement(c,Object.assign({seg:t,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:r===e.eventSelection,defaultDisplayEventEnd:!1},n.getSegMeta(t,e.todayRange))))}))}})}}function u(e){let t=[],n=[];for(let s of e)t.push(s.seg),s.isVisible||n.push(s.seg);return{allSegs:t,invisibleSegs:n}}const p=n.createFormatter({week:"narrow"});class m extends n.DateComponent{constructor(){super(...arguments),this.rootElRef=s.createRef(),this.state={dayNumberId:n.getUniqueDomId()},this.handleRootEl=e=>{n.setRef(this.rootElRef,e),n.setRef(this.props.elRef,e)}}render(){let{context:e,props:t,state:i,rootElRef:r}=this,{options:a}=e,{date:l,dateProfile:o}=t;return s.createElement(n.DayCellContainer,{elTag:"td",elRef:this.handleRootEl,elClasses:["fc-daygrid-day",...t.extraClassNames||[]],elAttrs:Object.assign(Object.assign(Object.assign({},t.extraDataAttrs),t.showDayNumber?{"aria-labelledby":i.dayNumberId}:{}),{role:"gridcell"}),defaultGenerator:y,date:l,dateProfile:o,todayRange:t.todayRange,showDayNumber:t.showDayNumber,extraRenderProps:t.extraRenderProps},(o,d)=>s.createElement("div",{className:"fc-daygrid-day-frame fc-scrollgrid-sync-inner",ref:t.innerElRef},t.showWeekNumber&&s.createElement(n.WeekNumberContainer,{elTag:"a",elClasses:["fc-daygrid-week-number"],elAttrs:n.buildNavLinkAttrs(e,l,"week"),date:l,defaultFormat:p}),Boolean(!d.isDisabled&&(t.showDayNumber||n.hasCustomDayCellContent(a)||t.forceDayTop))&&s.createElement("div",{className:"fc-daygrid-day-top"},s.createElement(o,{elTag:"a",elClasses:["fc-daygrid-day-number"],elAttrs:Object.assign(Object.assign({},n.buildNavLinkAttrs(e,l)),{id:i.dayNumberId})})),s.createElement("div",{className:"fc-daygrid-day-events",ref:t.fgContentElRef},t.fgContent,s.createElement("div",{className:"fc-daygrid-day-bottom",style:{marginTop:t.moreMarginTop}},s.createElement(h,{allDayDate:l,singlePlacements:t.singlePlacements,moreCnt:t.moreCnt,alignmentElRef:r,alignGridTop:!t.showDayNumber,extraDateSpan:t.extraDateSpan,dateProfile:t.dateProfile,eventSelection:t.eventSelection,eventDrag:t.eventDrag,eventResize:t.eventResize,todayRange:t.todayRange}))),s.createElement("div",{className:"fc-daygrid-day-bg"},t.bgContent)))}}function y(e){return e.dayNumberText||s.createElement(s.Fragment,null," ")}function v(e,t,n,s,i,r,a){let l=new R;l.allowReslicing=!0,l.strictOrder=s,!0===t||!0===n?(l.maxCoord=r,l.hiddenConsumes=!0):"number"==typeof t?l.maxStackCnt=t:"number"==typeof n&&(l.maxStackCnt=n,l.hiddenConsumes=!0);let o=[],d=[];for(let t=0;t<e.length;t+=1){let n=e[t],{instanceId:s}=n.eventRange.instance,r=i[s];null!=r?o.push({index:t,thickness:r,span:{start:n.firstCol,end:n.lastCol+1}}):d.push(n)}let c=l.addSegs(o),g=l.toRects(),{singleColPlacements:f,multiColPlacements:h,leftoverMargins:u}=function(e,t,n){let s=function(e,t){let n=[];for(let e=0;e<t;e+=1)n.push([]);for(let t of e)for(let e=t.span.start;e<t.span.end;e+=1)n[e].push(t);return n}(e,n.length),i=[],r=[],a=[];for(let e=0;e<n.length;e+=1){let l=s[e],o=[],d=0,c=0;for(let s of l){let i=t[s.index];o.push({seg:b(i,e,e+1,n),isVisible:!0,isAbsolute:!1,absoluteTop:s.levelCoord,marginTop:s.levelCoord-d}),d=s.levelCoord+s.thickness}let g=[];d=0,c=0;for(let s of l){let i=t[s.index],r=s.span.end-s.span.start>1,a=s.span.start===e;c+=s.levelCoord-d,d=s.levelCoord+s.thickness,r?(c+=s.thickness,a&&g.push({seg:b(i,s.span.start,s.span.end,n),isVisible:!0,isAbsolute:!0,absoluteTop:s.levelCoord,marginTop:0})):a&&(g.push({seg:b(i,s.span.start,s.span.end,n),isVisible:!0,isAbsolute:!1,absoluteTop:s.levelCoord,marginTop:c}),c=0)}i.push(o),r.push(g),a.push(c)}return{singleColPlacements:i,multiColPlacements:r,leftoverMargins:a}}(g,e,a),p=[],m=[];for(let e of d){h[e.firstCol].push({seg:e,isVisible:!1,isAbsolute:!0,absoluteTop:0,marginTop:0});for(let t=e.firstCol;t<=e.lastCol;t+=1)f[t].push({seg:b(e,t,t+1,a),isVisible:!1,isAbsolute:!1,absoluteTop:0,marginTop:0})}for(let e=0;e<a.length;e+=1)p.push(0);for(let t of c){let n=e[t.index],s=t.span;h[s.start].push({seg:b(n,s.start,s.end,a),isVisible:!1,isAbsolute:!0,absoluteTop:0,marginTop:0});for(let e=s.start;e<s.end;e+=1)p[e]+=1,f[e].push({seg:b(n,e,e+1,a),isVisible:!1,isAbsolute:!1,absoluteTop:0,marginTop:0})}for(let e=0;e<a.length;e+=1)m.push(u[e]);return{singleColPlacements:f,multiColPlacements:h,moreCnts:p,moreMarginTops:m}}function b(e,t,s,i){if(e.firstCol===t&&e.lastCol===s-1)return e;let r=e.eventRange,a=r.range,l=n.intersectRanges(a,{start:i[t].date,end:n.addDays(i[s-1].date,1)});return Object.assign(Object.assign({},e),{firstCol:t,lastCol:s-1,eventRange:{def:r.def,ui:Object.assign(Object.assign({},r.ui),{durationEditable:!1}),instance:r.instance,range:l},isStart:e.isStart&&l.start.valueOf()===a.start.valueOf(),isEnd:e.isEnd&&l.end.valueOf()===a.end.valueOf()})}class R extends n.SegHierarchy{constructor(){super(...arguments),this.hiddenConsumes=!1,this.forceHidden={}}addSegs(e){const t=super.addSegs(e),{entriesByLevel:s}=this,i=e=>!this.forceHidden[n.buildEntryKey(e)];for(let e=0;e<s.length;e+=1)s[e]=s[e].filter(i);return t}handleInvalidInsertion(e,t,s){const{entriesByLevel:i,forceHidden:r}=this,{touchingEntry:a,touchingLevel:l,touchingLateral:o}=e;if(this.hiddenConsumes&&a){const e=n.buildEntryKey(a);if(!r[e])if(this.allowReslicing){const e=Object.assign(Object.assign({},a),{span:n.intersectSpans(a.span,t.span)});r[n.buildEntryKey(e)]=!0,i[l][o]=e,this.splitEntry(a,t,s)}else r[e]=!0,s.push(a)}return super.handleInvalidInsertion(e,t,s)}}class E extends n.DateComponent{constructor(){super(...arguments),this.cellElRefs=new n.RefMap,this.frameElRefs=new n.RefMap,this.fgElRefs=new n.RefMap,this.segHarnessRefs=new n.RefMap,this.rootElRef=s.createRef(),this.state={framePositions:null,maxContentHeight:null,eventInstanceHeights:{}},this.handleResize=e=>{e&&this.updateSizing(!0)}}render(){let{props:e,state:t,context:i}=this,{options:r}=i,l=e.cells.length,o=a(e.businessHourSegs,l),d=a(e.bgEventSegs,l),c=a(this.getHighlightSegs(),l),g=a(this.getMirrorSegs(),l),{singleColPlacements:f,multiColPlacements:h,moreCnts:u,moreMarginTops:p}=v(n.sortEventSegs(e.fgEventSegs,r.eventOrder),e.dayMaxEvents,e.dayMaxEventRows,r.eventOrderStrict,t.eventInstanceHeights,t.maxContentHeight,e.cells),y=e.eventDrag&&e.eventDrag.affectedInstances||e.eventResize&&e.eventResize.affectedInstances||{};return s.createElement("tr",{ref:this.rootElRef,role:"row"},e.renderIntro&&e.renderIntro(),e.cells.map((t,n)=>{let i=this.renderFgSegs(n,e.forPrint?f[n]:h[n],e.todayRange,y),r=this.renderFgSegs(n,function(e,t){if(!e.length)return[];let n=function(e){let t={};for(let n of e)for(let e of n)t[e.seg.eventRange.instance.instanceId]=e.absoluteTop;return t}(t);return e.map(e=>({seg:e,isVisible:!0,isAbsolute:!0,absoluteTop:n[e.eventRange.instance.instanceId],marginTop:0}))}(g[n],h),e.todayRange,{},Boolean(e.eventDrag),Boolean(e.eventResize),!1);return s.createElement(m,{key:t.key,elRef:this.cellElRefs.createRef(t.key),innerElRef:this.frameElRefs.createRef(t.key),dateProfile:e.dateProfile,date:t.date,showDayNumber:e.showDayNumbers,showWeekNumber:e.showWeekNumbers&&0===n,forceDayTop:e.showWeekNumbers,todayRange:e.todayRange,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,extraRenderProps:t.extraRenderProps,extraDataAttrs:t.extraDataAttrs,extraClassNames:t.extraClassNames,extraDateSpan:t.extraDateSpan,moreCnt:u[n],moreMarginTop:p[n],singlePlacements:f[n],fgContentElRef:this.fgElRefs.createRef(t.key),fgContent:s.createElement(s.Fragment,null,s.createElement(s.Fragment,null,i),s.createElement(s.Fragment,null,r)),bgContent:s.createElement(s.Fragment,null,this.renderFillSegs(c[n],"highlight"),this.renderFillSegs(o[n],"non-business"),this.renderFillSegs(d[n],"bg-event"))})}))}componentDidMount(){this.updateSizing(!0),this.context.addResizeHandler(this.handleResize)}componentDidUpdate(e,t){let s=this.props;this.updateSizing(!n.isPropsEqual(e,s))}componentWillUnmount(){this.context.removeResizeHandler(this.handleResize)}getHighlightSegs(){let{props:e}=this;return e.eventDrag&&e.eventDrag.segs.length?e.eventDrag.segs:e.eventResize&&e.eventResize.segs.length?e.eventResize.segs:e.dateSelectionSegs}getMirrorSegs(){let{props:e}=this;return e.eventResize&&e.eventResize.segs.length?e.eventResize.segs:[]}renderFgSegs(e,t,i,r,a,l,o){let{context:f}=this,{eventSelection:h}=this.props,{framePositions:u}=this.state,p=1===this.props.cells.length,m=a||l||o,y=[];if(u)for(let v of t){let{seg:t}=v,{instanceId:b}=t.eventRange.instance,R=b+":"+e,E=v.isVisible&&!r[b],S=v.isAbsolute,x="",C="";S&&(f.isRtl?(C=0,x=u.lefts[t.lastCol]-u.lefts[t.firstCol]):(x=0,C=u.rights[t.firstCol]-u.rights[t.lastCol])),y.push(s.createElement("div",{className:"fc-daygrid-event-harness"+(S?" fc-daygrid-event-harness-abs":""),key:R,ref:m?null:this.segHarnessRefs.createRef(R),style:{visibility:E?"":"hidden",marginTop:S?"":v.marginTop,top:S?v.absoluteTop:"",left:x,right:C}},d(t)?s.createElement(g,Object.assign({seg:t,isDragging:a,isSelected:b===h,defaultDisplayEventEnd:p},n.getSegMeta(t,i))):s.createElement(c,Object.assign({seg:t,isDragging:a,isResizing:l,isDateSelecting:o,isSelected:b===h,defaultDisplayEventEnd:p},n.getSegMeta(t,i)))))}return y}renderFillSegs(e,t){let{isRtl:i}=this.context,{todayRange:r}=this.props,{framePositions:a}=this.state,l=[];if(a)for(let o of e){let e=i?{right:0,left:a.lefts[o.lastCol]-a.lefts[o.firstCol]}:{left:0,right:a.rights[o.firstCol]-a.rights[o.lastCol]};l.push(s.createElement("div",{key:n.buildEventRangeKey(o.eventRange),className:"fc-daygrid-bg-harness",style:e},"bg-event"===t?s.createElement(n.BgEvent,Object.assign({seg:o},n.getSegMeta(o,r))):n.renderFill(t)))}return s.createElement(s.Fragment,{},...l)}updateSizing(e){let{props:t,state:s,frameElRefs:i}=this;if(!t.forPrint&&null!==t.clientWidth){if(e){let e=t.cells.map(e=>i.currentMap[e.key]);if(e.length){let t=this.rootElRef.current,i=new n.PositionCache(t,e,!0,!1);s.framePositions&&s.framePositions.similarTo(i)||this.setState({framePositions:new n.PositionCache(t,e,!0,!1)})}}const r=this.state.eventInstanceHeights,a=this.queryEventInstanceHeights(),l=!0===t.dayMaxEvents||!0===t.dayMaxEventRows;this.safeSetState({eventInstanceHeights:Object.assign(Object.assign({},r),a),maxContentHeight:l?this.computeMaxContentHeight():null})}}queryEventInstanceHeights(){let e=this.segHarnessRefs.currentMap,t={};for(let n in e){let s=Math.round(e[n].getBoundingClientRect().height),i=n.split(":")[0];t[i]=Math.max(t[i]||0,s)}return t}computeMaxContentHeight(){let e=this.props.cells[0].key,t=this.cellElRefs.currentMap[e],n=this.fgElRefs.currentMap[e];return t.getBoundingClientRect().bottom-n.getBoundingClientRect().top}getCellEls(){let e=this.cellElRefs.currentMap;return this.props.cells.map(t=>e[t.key])}}E.addStateEquality({eventInstanceHeights:n.isPropsEqual});class S extends n.DateComponent{constructor(){super(...arguments),this.splitBusinessHourSegs=n.memoize(r),this.splitBgEventSegs=n.memoize(r),this.splitFgEventSegs=n.memoize(r),this.splitDateSelectionSegs=n.memoize(r),this.splitEventDrag=n.memoize(l),this.splitEventResize=n.memoize(l),this.rowRefs=new n.RefMap,this.handleRootEl=e=>{this.rootEl=e,e?this.context.registerInteractiveComponent(this,{el:e,isHitComboAllowed:this.props.isHitComboAllowed}):this.context.unregisterInteractiveComponent(this)}}render(){let{props:e}=this,{dateProfile:t,dayMaxEventRows:i,dayMaxEvents:r,expandRows:a}=e,l=e.cells.length,o=this.splitBusinessHourSegs(e.businessHourSegs,l),d=this.splitBgEventSegs(e.bgEventSegs,l),c=this.splitFgEventSegs(e.fgEventSegs,l),g=this.splitDateSelectionSegs(e.dateSelectionSegs,l),f=this.splitEventDrag(e.eventDrag,l),h=this.splitEventResize(e.eventResize,l),u=!0===r||!0===i;u&&!a&&(u=!1,i=null,r=null);let p=["fc-daygrid-body",u?"fc-daygrid-body-balanced":"fc-daygrid-body-unbalanced",a?"":"fc-daygrid-body-natural"];return s.createElement("div",{className:p.join(" "),ref:this.handleRootEl,style:{width:e.clientWidth,minWidth:e.tableMinWidth}},s.createElement(n.NowTimer,{unit:"day"},(n,u)=>s.createElement(s.Fragment,null,s.createElement("table",{role:"presentation",className:"fc-scrollgrid-sync-table",style:{width:e.clientWidth,minWidth:e.tableMinWidth,height:a?e.clientHeight:""}},e.colGroupNode,s.createElement("tbody",{role:"presentation"},e.cells.map((n,a)=>s.createElement(E,{ref:this.rowRefs.createRef(a),key:n.length?n[0].date.toISOString():a,showDayNumbers:l>1,showWeekNumbers:e.showWeekNumbers,todayRange:u,dateProfile:t,cells:n,renderIntro:e.renderRowIntro,businessHourSegs:o[a],eventSelection:e.eventSelection,bgEventSegs:d[a].filter(x),fgEventSegs:c[a],dateSelectionSegs:g[a],eventDrag:f[a],eventResize:h[a],dayMaxEvents:r,dayMaxEventRows:i,clientWidth:e.clientWidth,clientHeight:e.clientHeight,forPrint:e.forPrint})))))))}prepareHits(){this.rowPositions=new n.PositionCache(this.rootEl,this.rowRefs.collect().map(e=>e.getCellEls()[0]),!1,!0),this.colPositions=new n.PositionCache(this.rootEl,this.rowRefs.currentMap[0].getCellEls(),!0,!1)}queryHit(e,t){let{colPositions:n,rowPositions:s}=this,i=n.leftToIndex(e),r=s.topToIndex(t);if(null!=r&&null!=i){let e=this.props.cells[r][i];return{dateProfile:this.props.dateProfile,dateSpan:Object.assign({range:this.getCellRange(r,i),allDay:!0},e.extraDateSpan),dayEl:this.getCellEl(r,i),rect:{left:n.lefts[i],right:n.rights[i],top:s.tops[r],bottom:s.bottoms[r]},layer:0}}return null}getCellEl(e,t){return this.rowRefs.currentMap[e].getCellEls()[t]}getCellRange(e,t){let s=this.props.cells[e][t].date;return{start:s,end:n.addDays(s,1)}}}function x(e){return e.eventRange.def.allDay}class C extends n.Slicer{constructor(){super(...arguments),this.forceDayIfListItem=!0}sliceRange(e,t){return t.sliceRange(e)}}class w extends n.DateComponent{constructor(){super(...arguments),this.slicer=new C,this.tableRef=s.createRef()}render(){let{props:e,context:t}=this;return s.createElement(S,Object.assign({ref:this.tableRef},this.slicer.sliceProps(e,e.dateProfile,e.nextDayThreshold,t,e.dayTableModel),{dateProfile:e.dateProfile,cells:e.dayTableModel.cells,colGroupNode:e.colGroupNode,tableMinWidth:e.tableMinWidth,renderRowIntro:e.renderRowIntro,dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,showWeekNumbers:e.showWeekNumbers,expandRows:e.expandRows,headerAlignElRef:e.headerAlignElRef,clientWidth:e.clientWidth,clientHeight:e.clientHeight,forPrint:e.forPrint}))}}class D extends i{constructor(){super(...arguments),this.buildDayTableModel=n.memoize(k),this.headerRef=s.createRef(),this.tableRef=s.createRef()}render(){let{options:e,dateProfileGenerator:t}=this.context,{props:i}=this,r=this.buildDayTableModel(i.dateProfile,t),a=e.dayHeaders&&s.createElement(n.DayHeader,{ref:this.headerRef,dateProfile:i.dateProfile,dates:r.headerDates,datesRepDistinctDays:1===r.rowCnt}),l=t=>s.createElement(w,{ref:this.tableRef,dateProfile:i.dateProfile,dayTableModel:r,businessHours:i.businessHours,dateSelection:i.dateSelection,eventStore:i.eventStore,eventUiBases:i.eventUiBases,eventSelection:i.eventSelection,eventDrag:i.eventDrag,eventResize:i.eventResize,nextDayThreshold:e.nextDayThreshold,colGroupNode:t.tableColGroupNode,tableMinWidth:t.tableMinWidth,dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,showWeekNumbers:e.weekNumbers,expandRows:!i.isHeightAuto,headerAlignElRef:this.headerElRef,clientWidth:t.clientWidth,clientHeight:t.clientHeight,forPrint:i.forPrint});return e.dayMinWidth?this.renderHScrollLayout(a,l,r.colCnt,e.dayMinWidth):this.renderSimpleLayout(a,l)}}function k(e,t){let s=new n.DaySeriesModel(e.renderRange,t);return new n.DayTableModel(s,/year|month|week/.test(e.currentRangeUnit))}class P extends n.DateProfileGenerator{buildRenderRange(e,t,s){let i,{dateEnv:r}=this.props,a=super.buildRenderRange(e,t,s),l=a.start,o=a.end;if(/^(year|month)$/.test(t)&&(l=r.startOfWeek(l),i=r.startOfWeek(o),i.valueOf()!==o.valueOf()&&(o=n.addWeeks(i,1))),this.props.monthMode&&this.props.fixedWeekCount){let e=Math.ceil(n.diffWeeks(l,o));o=n.addWeeks(o,6-e)}return{start:l,end:o}}}n.injectStyles(':root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:"";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;padding:2px 3px 0}.fc .fc-daygrid-day-bottom:before{clear:both;content:"";display:table}.fc .fc-daygrid-more-link{cursor:pointer;position:relative;z-index:4}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}');var M=t.createPlugin({name:"@fullcalendar/daygrid",initialView:"dayGridMonth",views:{dayGrid:{component:D,dateProfileGeneratorClass:P},dayGridDay:{type:"dayGrid",duration:{days:1}},dayGridWeek:{type:"dayGrid",duration:{weeks:1}},dayGridMonth:{type:"dayGrid",duration:{months:1},monthMode:!0,fixedWeekCount:!0}}}),T={__proto__:null,DayTable:w,DayTableSlicer:C,Table:S,TableView:i,buildDayTableModel:k,DayGridView:D};return t.globalPlugins.push(M),e.Internal=T,e.default=M,Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar,FullCalendar.Internal,FullCalendar.Preact); \ No newline at end of file
+FullCalendar.DayGrid=function(e,t,n,s){"use strict";class i extends n.DateComponent{constructor(){super(...arguments),this.headerElRef=s.createRef()}renderSimpleLayout(e,t){let{props:i,context:r}=this,a=[],l=n.getStickyHeaderDates(r.options);return e&&a.push({type:"header",key:"header",isSticky:l,chunk:{elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}}),a.push({type:"body",key:"body",liquid:!0,chunk:{content:t}}),s.createElement(n.ViewContainer,{elClasses:["fc-daygrid"],viewSpec:r.viewSpec},s.createElement(n.SimpleScrollGrid,{liquid:!i.isHeightAuto&&!i.forPrint,collapsibleWidth:i.forPrint,cols:[],sections:a}))}renderHScrollLayout(e,t,i,r){let a=this.context.pluginHooks.scrollGridImpl;if(!a)throw new Error("No ScrollGrid implementation");let{props:l,context:o}=this,d=!l.forPrint&&n.getStickyHeaderDates(o.options),c=!l.forPrint&&n.getStickyFooterScrollbar(o.options),g=[];return e&&g.push({type:"header",key:"header",isSticky:d,chunks:[{key:"main",elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}]}),g.push({type:"body",key:"body",liquid:!0,chunks:[{key:"main",content:t}]}),c&&g.push({type:"footer",key:"footer",isSticky:!0,chunks:[{key:"main",content:n.renderScrollShim}]}),s.createElement(n.ViewContainer,{elClasses:["fc-daygrid"],viewSpec:o.viewSpec},s.createElement(a,{liquid:!l.isHeightAuto&&!l.forPrint,forPrint:l.forPrint,collapsibleWidth:l.forPrint,colGroups:[{cols:[{span:i,minWidth:r}]}],sections:g}))}}function r(e,t){let n=[];for(let e=0;e<t;e+=1)n[e]=[];for(let t of e)n[t.row].push(t);return n}function a(e,t){let n=[];for(let e=0;e<t;e+=1)n[e]=[];for(let t of e)n[t.firstCol].push(t);return n}function l(e,t){let n=[];if(e){for(let s=0;s<t;s+=1)n[s]={affectedInstances:e.affectedInstances,isEvent:e.isEvent,segs:[]};for(let t of e.segs)n[t.row].segs.push(t)}else for(let e=0;e<t;e+=1)n[e]=null;return n}const o=n.createFormatter({hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"narrow"});function d(e){let{display:t}=e.eventRange.ui;return"list-item"===t||"auto"===t&&!e.eventRange.def.allDay&&e.firstCol===e.lastCol&&e.isStart&&e.isEnd}class c extends n.BaseComponent{render(){let{props:e}=this;return s.createElement(n.StandardEvent,Object.assign({},e,{elClasses:["fc-daygrid-event","fc-daygrid-block-event","fc-h-event"],defaultTimeFormat:o,defaultDisplayEventEnd:e.defaultDisplayEventEnd,disableResizing:!e.seg.eventRange.def.allDay}))}}class g extends n.BaseComponent{render(){let{props:e,context:t}=this,{options:i}=t,{seg:r}=e,a=i.eventTimeFormat||o,l=n.buildSegTimeText(r,a,t,!0,e.defaultDisplayEventEnd);return s.createElement(n.EventContainer,Object.assign({},e,{elTag:"a",elClasses:["fc-daygrid-event","fc-daygrid-dot-event"],elAttrs:n.getSegAnchorAttrs(e.seg,t),defaultGenerator:f,timeText:l,isResizing:!1,isDateSelecting:!1}))}}function f(e){return s.createElement(s.Fragment,null,s.createElement("div",{className:"fc-daygrid-event-dot",style:{borderColor:e.borderColor||e.backgroundColor}}),e.timeText&&s.createElement("div",{className:"fc-event-time"},e.timeText),s.createElement("div",{className:"fc-event-title"},e.event.title||s.createElement(s.Fragment,null," ")))}class h extends n.BaseComponent{constructor(){super(...arguments),this.compileSegs=n.memoize(u)}render(){let{props:e}=this,{allSegs:t,invisibleSegs:i}=this.compileSegs(e.singlePlacements);return s.createElement(n.MoreLinkContainer,{elClasses:["fc-daygrid-more-link"],dateProfile:e.dateProfile,todayRange:e.todayRange,allDayDate:e.allDayDate,moreCnt:e.moreCnt,allSegs:t,hiddenSegs:i,alignmentElRef:e.alignmentElRef,alignGridTop:e.alignGridTop,extraDateSpan:e.extraDateSpan,popoverContent:()=>{let i=(e.eventDrag?e.eventDrag.affectedInstances:null)||(e.eventResize?e.eventResize.affectedInstances:null)||{};return s.createElement(s.Fragment,null,t.map(t=>{let r=t.eventRange.instance.instanceId;return s.createElement("div",{className:"fc-daygrid-event-harness",key:r,style:{visibility:i[r]?"hidden":""}},d(t)?s.createElement(g,Object.assign({seg:t,isDragging:!1,isSelected:r===e.eventSelection,defaultDisplayEventEnd:!1},n.getSegMeta(t,e.todayRange))):s.createElement(c,Object.assign({seg:t,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:r===e.eventSelection,defaultDisplayEventEnd:!1},n.getSegMeta(t,e.todayRange))))}))}})}}function u(e){let t=[],n=[];for(let s of e)t.push(s.seg),s.isVisible||n.push(s.seg);return{allSegs:t,invisibleSegs:n}}const p=n.createFormatter({week:"narrow"});class y extends n.DateComponent{constructor(){super(...arguments),this.rootElRef=s.createRef(),this.state={dayNumberId:n.getUniqueDomId()},this.handleRootEl=e=>{n.setRef(this.rootElRef,e),n.setRef(this.props.elRef,e)}}render(){let{context:e,props:t,state:i,rootElRef:r}=this,{options:a,dateEnv:l}=e,{date:o,dateProfile:d}=t;const c=t.showDayNumber&&function(e,t,s){const{start:i,end:r}=t,a=n.addMs(r,-1),l=s.getYear(i),o=s.getMonth(i),d=s.getYear(a),c=s.getMonth(a);return!(l===d&&o===c)&&Boolean(e.valueOf()===i.valueOf()||1===s.getDay(e)&&e.valueOf()<r.valueOf())}(o,d.currentRange,l);return s.createElement(n.DayCellContainer,{elTag:"td",elRef:this.handleRootEl,elClasses:["fc-daygrid-day",...t.extraClassNames||[]],elAttrs:Object.assign(Object.assign(Object.assign({},t.extraDataAttrs),t.showDayNumber?{"aria-labelledby":i.dayNumberId}:{}),{role:"gridcell"}),defaultGenerator:m,date:o,dateProfile:d,todayRange:t.todayRange,showDayNumber:t.showDayNumber,isMonthStart:c,extraRenderProps:t.extraRenderProps},(l,d)=>s.createElement("div",{ref:t.innerElRef,className:"fc-daygrid-day-frame fc-scrollgrid-sync-inner",style:{minHeight:t.minHeight}},t.showWeekNumber&&s.createElement(n.WeekNumberContainer,{elTag:"a",elClasses:["fc-daygrid-week-number"],elAttrs:n.buildNavLinkAttrs(e,o,"week"),date:o,defaultFormat:p}),!d.isDisabled&&(t.showDayNumber||n.hasCustomDayCellContent(a)||t.forceDayTop)?s.createElement("div",{className:"fc-daygrid-day-top"},s.createElement(l,{elTag:"a",elClasses:["fc-daygrid-day-number",c&&"fc-daygrid-month-start"],elAttrs:Object.assign(Object.assign({},n.buildNavLinkAttrs(e,o)),{id:i.dayNumberId})})):t.showDayNumber?s.createElement("div",{className:"fc-daygrid-day-top",style:{visibility:"hidden"}},s.createElement("a",{className:"fc-daygrid-day-number"}," ")):void 0,s.createElement("div",{className:"fc-daygrid-day-events",ref:t.fgContentElRef},t.fgContent,s.createElement("div",{className:"fc-daygrid-day-bottom",style:{marginTop:t.moreMarginTop}},s.createElement(h,{allDayDate:o,singlePlacements:t.singlePlacements,moreCnt:t.moreCnt,alignmentElRef:r,alignGridTop:!t.showDayNumber,extraDateSpan:t.extraDateSpan,dateProfile:t.dateProfile,eventSelection:t.eventSelection,eventDrag:t.eventDrag,eventResize:t.eventResize,todayRange:t.todayRange}))),s.createElement("div",{className:"fc-daygrid-day-bg"},t.bgContent)))}}function m(e){return e.dayNumberText||s.createElement(s.Fragment,null," ")}function v(e,t,n,s,i,r,a){let l=new R;l.allowReslicing=!0,l.strictOrder=s,!0===t||!0===n?(l.maxCoord=r,l.hiddenConsumes=!0):"number"==typeof t?l.maxStackCnt=t:"number"==typeof n&&(l.maxStackCnt=n,l.hiddenConsumes=!0);let o=[],d=[];for(let t=0;t<e.length;t+=1){let n=e[t],{instanceId:s}=n.eventRange.instance,r=i[s];null!=r?o.push({index:t,thickness:r,span:{start:n.firstCol,end:n.lastCol+1}}):d.push(n)}let c=l.addSegs(o),g=l.toRects(),{singleColPlacements:f,multiColPlacements:h,leftoverMargins:u}=function(e,t,n){let s=function(e,t){let n=[];for(let e=0;e<t;e+=1)n.push([]);for(let t of e)for(let e=t.span.start;e<t.span.end;e+=1)n[e].push(t);return n}(e,n.length),i=[],r=[],a=[];for(let e=0;e<n.length;e+=1){let l=s[e],o=[],d=0,c=0;for(let s of l){let i=t[s.index];o.push({seg:b(i,e,e+1,n),isVisible:!0,isAbsolute:!1,absoluteTop:s.levelCoord,marginTop:s.levelCoord-d}),d=s.levelCoord+s.thickness}let g=[];d=0,c=0;for(let s of l){let i=t[s.index],r=s.span.end-s.span.start>1,a=s.span.start===e;c+=s.levelCoord-d,d=s.levelCoord+s.thickness,r?(c+=s.thickness,a&&g.push({seg:b(i,s.span.start,s.span.end,n),isVisible:!0,isAbsolute:!0,absoluteTop:s.levelCoord,marginTop:0})):a&&(g.push({seg:b(i,s.span.start,s.span.end,n),isVisible:!0,isAbsolute:!1,absoluteTop:s.levelCoord,marginTop:c}),c=0)}i.push(o),r.push(g),a.push(c)}return{singleColPlacements:i,multiColPlacements:r,leftoverMargins:a}}(g,e,a),p=[],y=[];for(let e of d){h[e.firstCol].push({seg:e,isVisible:!1,isAbsolute:!0,absoluteTop:0,marginTop:0});for(let t=e.firstCol;t<=e.lastCol;t+=1)f[t].push({seg:b(e,t,t+1,a),isVisible:!1,isAbsolute:!1,absoluteTop:0,marginTop:0})}for(let e=0;e<a.length;e+=1)p.push(0);for(let t of c){let n=e[t.index],s=t.span;h[s.start].push({seg:b(n,s.start,s.end,a),isVisible:!1,isAbsolute:!0,absoluteTop:0,marginTop:0});for(let e=s.start;e<s.end;e+=1)p[e]+=1,f[e].push({seg:b(n,e,e+1,a),isVisible:!1,isAbsolute:!1,absoluteTop:0,marginTop:0})}for(let e=0;e<a.length;e+=1)y.push(u[e]);return{singleColPlacements:f,multiColPlacements:h,moreCnts:p,moreMarginTops:y}}function b(e,t,s,i){if(e.firstCol===t&&e.lastCol===s-1)return e;let r=e.eventRange,a=r.range,l=n.intersectRanges(a,{start:i[t].date,end:n.addDays(i[s-1].date,1)});return Object.assign(Object.assign({},e),{firstCol:t,lastCol:s-1,eventRange:{def:r.def,ui:Object.assign(Object.assign({},r.ui),{durationEditable:!1}),instance:r.instance,range:l},isStart:e.isStart&&l.start.valueOf()===a.start.valueOf(),isEnd:e.isEnd&&l.end.valueOf()===a.end.valueOf()})}class R extends n.SegHierarchy{constructor(){super(...arguments),this.hiddenConsumes=!1,this.forceHidden={}}addSegs(e){const t=super.addSegs(e),{entriesByLevel:s}=this,i=e=>!this.forceHidden[n.buildEntryKey(e)];for(let e=0;e<s.length;e+=1)s[e]=s[e].filter(i);return t}handleInvalidInsertion(e,t,s){const{entriesByLevel:i,forceHidden:r}=this,{touchingEntry:a,touchingLevel:l,touchingLateral:o}=e;if(this.hiddenConsumes&&a){const e=n.buildEntryKey(a);if(!r[e])if(this.allowReslicing){const e=Object.assign(Object.assign({},a),{span:n.intersectSpans(a.span,t.span)});r[n.buildEntryKey(e)]=!0,i[l][o]=e,this.splitEntry(a,t,s)}else r[e]=!0,s.push(a)}return super.handleInvalidInsertion(e,t,s)}}class E extends n.DateComponent{constructor(){super(...arguments),this.cellElRefs=new n.RefMap,this.frameElRefs=new n.RefMap,this.fgElRefs=new n.RefMap,this.segHarnessRefs=new n.RefMap,this.rootElRef=s.createRef(),this.state={framePositions:null,maxContentHeight:null,eventInstanceHeights:{}},this.handleResize=e=>{e&&this.updateSizing(!0)}}render(){let{props:e,state:t,context:i}=this,{options:r}=i,l=e.cells.length,o=a(e.businessHourSegs,l),d=a(e.bgEventSegs,l),c=a(this.getHighlightSegs(),l),g=a(this.getMirrorSegs(),l),{singleColPlacements:f,multiColPlacements:h,moreCnts:u,moreMarginTops:p}=v(n.sortEventSegs(e.fgEventSegs,r.eventOrder),e.dayMaxEvents,e.dayMaxEventRows,r.eventOrderStrict,t.eventInstanceHeights,t.maxContentHeight,e.cells),m=e.eventDrag&&e.eventDrag.affectedInstances||e.eventResize&&e.eventResize.affectedInstances||{};return s.createElement("tr",{ref:this.rootElRef,role:"row"},e.renderIntro&&e.renderIntro(),e.cells.map((t,n)=>{let i=this.renderFgSegs(n,e.forPrint?f[n]:h[n],e.todayRange,m),r=this.renderFgSegs(n,function(e,t){if(!e.length)return[];let n=function(e){let t={};for(let n of e)for(let e of n)t[e.seg.eventRange.instance.instanceId]=e.absoluteTop;return t}(t);return e.map(e=>({seg:e,isVisible:!0,isAbsolute:!0,absoluteTop:n[e.eventRange.instance.instanceId],marginTop:0}))}(g[n],h),e.todayRange,{},Boolean(e.eventDrag),Boolean(e.eventResize),!1);return s.createElement(y,{key:t.key,elRef:this.cellElRefs.createRef(t.key),innerElRef:this.frameElRefs.createRef(t.key),dateProfile:e.dateProfile,date:t.date,showDayNumber:e.showDayNumbers,showWeekNumber:e.showWeekNumbers&&0===n,forceDayTop:e.showWeekNumbers,todayRange:e.todayRange,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,extraRenderProps:t.extraRenderProps,extraDataAttrs:t.extraDataAttrs,extraClassNames:t.extraClassNames,extraDateSpan:t.extraDateSpan,moreCnt:u[n],moreMarginTop:p[n],singlePlacements:f[n],fgContentElRef:this.fgElRefs.createRef(t.key),fgContent:s.createElement(s.Fragment,null,s.createElement(s.Fragment,null,i),s.createElement(s.Fragment,null,r)),bgContent:s.createElement(s.Fragment,null,this.renderFillSegs(c[n],"highlight"),this.renderFillSegs(o[n],"non-business"),this.renderFillSegs(d[n],"bg-event")),minHeight:e.cellMinHeight})}))}componentDidMount(){this.updateSizing(!0),this.context.addResizeHandler(this.handleResize)}componentDidUpdate(e,t){let s=this.props;this.updateSizing(!n.isPropsEqual(e,s))}componentWillUnmount(){this.context.removeResizeHandler(this.handleResize)}getHighlightSegs(){let{props:e}=this;return e.eventDrag&&e.eventDrag.segs.length?e.eventDrag.segs:e.eventResize&&e.eventResize.segs.length?e.eventResize.segs:e.dateSelectionSegs}getMirrorSegs(){let{props:e}=this;return e.eventResize&&e.eventResize.segs.length?e.eventResize.segs:[]}renderFgSegs(e,t,i,r,a,l,o){let{context:f}=this,{eventSelection:h}=this.props,{framePositions:u}=this.state,p=1===this.props.cells.length,y=a||l||o,m=[];if(u)for(let v of t){let{seg:t}=v,{instanceId:b}=t.eventRange.instance,R=b+":"+e,E=v.isVisible&&!r[b],S=v.isAbsolute,x="",C="";S&&(f.isRtl?(C=0,x=u.lefts[t.lastCol]-u.lefts[t.firstCol]):(x=0,C=u.rights[t.firstCol]-u.rights[t.lastCol])),m.push(s.createElement("div",{className:"fc-daygrid-event-harness"+(S?" fc-daygrid-event-harness-abs":""),key:R,ref:y?null:this.segHarnessRefs.createRef(R),style:{visibility:E?"":"hidden",marginTop:S?"":v.marginTop,top:S?v.absoluteTop:"",left:x,right:C}},d(t)?s.createElement(g,Object.assign({seg:t,isDragging:a,isSelected:b===h,defaultDisplayEventEnd:p},n.getSegMeta(t,i))):s.createElement(c,Object.assign({seg:t,isDragging:a,isResizing:l,isDateSelecting:o,isSelected:b===h,defaultDisplayEventEnd:p},n.getSegMeta(t,i)))))}return m}renderFillSegs(e,t){let{isRtl:i}=this.context,{todayRange:r}=this.props,{framePositions:a}=this.state,l=[];if(a)for(let o of e){let e=i?{right:0,left:a.lefts[o.lastCol]-a.lefts[o.firstCol]}:{left:0,right:a.rights[o.firstCol]-a.rights[o.lastCol]};l.push(s.createElement("div",{key:n.buildEventRangeKey(o.eventRange),className:"fc-daygrid-bg-harness",style:e},"bg-event"===t?s.createElement(n.BgEvent,Object.assign({seg:o},n.getSegMeta(o,r))):n.renderFill(t)))}return s.createElement(s.Fragment,{},...l)}updateSizing(e){let{props:t,state:s,frameElRefs:i}=this;if(!t.forPrint&&null!==t.clientWidth){if(e){let e=t.cells.map(e=>i.currentMap[e.key]);if(e.length){let t=this.rootElRef.current,i=new n.PositionCache(t,e,!0,!1);s.framePositions&&s.framePositions.similarTo(i)||this.setState({framePositions:new n.PositionCache(t,e,!0,!1)})}}const r=this.state.eventInstanceHeights,a=this.queryEventInstanceHeights(),l=!0===t.dayMaxEvents||!0===t.dayMaxEventRows;this.safeSetState({eventInstanceHeights:Object.assign(Object.assign({},r),a),maxContentHeight:l?this.computeMaxContentHeight():null})}}queryEventInstanceHeights(){let e=this.segHarnessRefs.currentMap,t={};for(let n in e){let s=Math.round(e[n].getBoundingClientRect().height),i=n.split(":")[0];t[i]=Math.max(t[i]||0,s)}return t}computeMaxContentHeight(){let e=this.props.cells[0].key,t=this.cellElRefs.currentMap[e],n=this.fgElRefs.currentMap[e];return t.getBoundingClientRect().bottom-n.getBoundingClientRect().top}getCellEls(){let e=this.cellElRefs.currentMap;return this.props.cells.map(t=>e[t.key])}}E.addStateEquality({eventInstanceHeights:n.isPropsEqual});class S extends n.DateComponent{constructor(){super(...arguments),this.splitBusinessHourSegs=n.memoize(r),this.splitBgEventSegs=n.memoize(r),this.splitFgEventSegs=n.memoize(r),this.splitDateSelectionSegs=n.memoize(r),this.splitEventDrag=n.memoize(l),this.splitEventResize=n.memoize(l),this.rowRefs=new n.RefMap}render(){let{props:e,context:t}=this,i=e.cells.length,r=this.splitBusinessHourSegs(e.businessHourSegs,i),a=this.splitBgEventSegs(e.bgEventSegs,i),l=this.splitFgEventSegs(e.fgEventSegs,i),o=this.splitDateSelectionSegs(e.dateSelectionSegs,i),d=this.splitEventDrag(e.eventDrag,i),c=this.splitEventResize(e.eventResize,i),g=i>=7&&e.clientWidth?e.clientWidth/t.options.aspectRatio/6:null;return s.createElement(n.NowTimer,{unit:"day"},(t,n)=>s.createElement(s.Fragment,null,e.cells.map((t,f)=>s.createElement(E,{ref:this.rowRefs.createRef(f),key:t.length?t[0].date.toISOString():f,showDayNumbers:i>1,showWeekNumbers:e.showWeekNumbers,todayRange:n,dateProfile:e.dateProfile,cells:t,renderIntro:e.renderRowIntro,businessHourSegs:r[f],eventSelection:e.eventSelection,bgEventSegs:a[f].filter(x),fgEventSegs:l[f],dateSelectionSegs:o[f],eventDrag:d[f],eventResize:c[f],dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,clientWidth:e.clientWidth,clientHeight:e.clientHeight,cellMinHeight:g,forPrint:e.forPrint}))))}componentDidMount(){const e=this.rowRefs.currentMap[0].getCellEls()[0];this.rootEl=e?e.closest(".fc-daygrid-body"):null,this.rootEl&&this.context.registerInteractiveComponent(this,{el:this.rootEl,isHitComboAllowed:this.props.isHitComboAllowed})}componentWillUnmount(){this.rootEl&&(this.context.unregisterInteractiveComponent(this),this.rootEl=null)}prepareHits(){this.rowPositions=new n.PositionCache(this.rootEl,this.rowRefs.collect().map(e=>e.getCellEls()[0]),!1,!0),this.colPositions=new n.PositionCache(this.rootEl,this.rowRefs.currentMap[0].getCellEls(),!0,!1)}queryHit(e,t){let{colPositions:n,rowPositions:s}=this,i=n.leftToIndex(e),r=s.topToIndex(t);if(null!=r&&null!=i){let e=this.props.cells[r][i];return{dateProfile:this.props.dateProfile,dateSpan:Object.assign({range:this.getCellRange(r,i),allDay:!0},e.extraDateSpan),dayEl:this.getCellEl(r,i),rect:{left:n.lefts[i],right:n.rights[i],top:s.tops[r],bottom:s.bottoms[r]},layer:0}}return null}getCellEl(e,t){return this.rowRefs.currentMap[e].getCellEls()[t]}getCellRange(e,t){let s=this.props.cells[e][t].date;return{start:s,end:n.addDays(s,1)}}}function x(e){return e.eventRange.def.allDay}class C extends n.DateComponent{constructor(){super(...arguments),this.elRef=s.createRef(),this.needsScrollReset=!1}render(){let{props:e}=this,{dayMaxEventRows:t,dayMaxEvents:n,expandRows:i}=e,r=!0===n||!0===t;r&&!i&&(r=!1,t=null,n=null);let a=["fc-daygrid-body",r?"fc-daygrid-body-balanced":"fc-daygrid-body-unbalanced",i?"":"fc-daygrid-body-natural"];return s.createElement("div",{ref:this.elRef,className:a.join(" "),style:{width:e.clientWidth,minWidth:e.tableMinWidth}},s.createElement("table",{role:"presentation",className:"fc-scrollgrid-sync-table",style:{width:e.clientWidth,minWidth:e.tableMinWidth,height:i?e.clientHeight:""}},e.colGroupNode,s.createElement("tbody",{role:"presentation"},s.createElement(S,{dateProfile:e.dateProfile,cells:e.cells,renderRowIntro:e.renderRowIntro,showWeekNumbers:e.showWeekNumbers,clientWidth:e.clientWidth,clientHeight:e.clientHeight,businessHourSegs:e.businessHourSegs,bgEventSegs:e.bgEventSegs,fgEventSegs:e.fgEventSegs,dateSelectionSegs:e.dateSelectionSegs,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,dayMaxEvents:n,dayMaxEventRows:t,forPrint:e.forPrint,isHitComboAllowed:e.isHitComboAllowed}))))}componentDidMount(){this.requestScrollReset()}componentDidUpdate(e){e.dateProfile!==this.props.dateProfile?this.requestScrollReset():this.flushScrollReset()}requestScrollReset(){this.needsScrollReset=!0,this.flushScrollReset()}flushScrollReset(){if(this.needsScrollReset&&this.props.clientWidth){const e=function(e,t){let s;t.currentRangeUnit.match(/year|month/)&&(s=e.querySelector(`[data-date="${n.formatIsoMonthStr(t.currentDate)}-01"]`));s||(s=e.querySelector(`[data-date="${n.formatDayString(t.currentDate)}"]`));return s}(this.elRef.current,this.props.dateProfile);if(e){const t=e.closest(".fc-daygrid-body"),n=t.closest(".fc-scroller"),s=e.getBoundingClientRect().top-t.getBoundingClientRect().top;n.scrollTop=s?s+1:0}this.needsScrollReset=!1}}}class w extends n.Slicer{constructor(){super(...arguments),this.forceDayIfListItem=!0}sliceRange(e,t){return t.sliceRange(e)}}class D extends n.DateComponent{constructor(){super(...arguments),this.slicer=new w,this.tableRef=s.createRef()}render(){let{props:e,context:t}=this;return s.createElement(C,Object.assign({ref:this.tableRef},this.slicer.sliceProps(e,e.dateProfile,e.nextDayThreshold,t,e.dayTableModel),{dateProfile:e.dateProfile,cells:e.dayTableModel.cells,colGroupNode:e.colGroupNode,tableMinWidth:e.tableMinWidth,renderRowIntro:e.renderRowIntro,dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,showWeekNumbers:e.showWeekNumbers,expandRows:e.expandRows,headerAlignElRef:e.headerAlignElRef,clientWidth:e.clientWidth,clientHeight:e.clientHeight,forPrint:e.forPrint}))}}class k extends i{constructor(){super(...arguments),this.buildDayTableModel=n.memoize(P),this.headerRef=s.createRef(),this.tableRef=s.createRef()}render(){let{options:e,dateProfileGenerator:t}=this.context,{props:i}=this,r=this.buildDayTableModel(i.dateProfile,t),a=e.dayHeaders&&s.createElement(n.DayHeader,{ref:this.headerRef,dateProfile:i.dateProfile,dates:r.headerDates,datesRepDistinctDays:1===r.rowCnt}),l=t=>s.createElement(D,{ref:this.tableRef,dateProfile:i.dateProfile,dayTableModel:r,businessHours:i.businessHours,dateSelection:i.dateSelection,eventStore:i.eventStore,eventUiBases:i.eventUiBases,eventSelection:i.eventSelection,eventDrag:i.eventDrag,eventResize:i.eventResize,nextDayThreshold:e.nextDayThreshold,colGroupNode:t.tableColGroupNode,tableMinWidth:t.tableMinWidth,dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,showWeekNumbers:e.weekNumbers,expandRows:!i.isHeightAuto,headerAlignElRef:this.headerElRef,clientWidth:t.clientWidth,clientHeight:t.clientHeight,forPrint:i.forPrint});return e.dayMinWidth?this.renderHScrollLayout(a,l,r.colCnt,e.dayMinWidth):this.renderSimpleLayout(a,l)}}function P(e,t){let s=new n.DaySeriesModel(e.renderRange,t);return new n.DayTableModel(s,/year|month|week/.test(e.currentRangeUnit))}class M extends n.DateProfileGenerator{buildRenderRange(e,t,n){let s=super.buildRenderRange(e,t,n),{props:i}=this;return T({currentRange:s,snapToWeek:/^(year|month)$/.test(t),fixedWeekCount:i.fixedWeekCount,dateEnv:i.dateEnv})}}function T(e){let t,{dateEnv:s,currentRange:i}=e,{start:r,end:a}=i;if(e.snapToWeek&&(r=s.startOfWeek(r),t=s.startOfWeek(a),t.valueOf()!==a.valueOf()&&(a=n.addWeeks(t,1))),e.fixedWeekCount){let e=s.startOfWeek(s.startOfMonth(n.addDays(i.end,-1))),t=Math.ceil(n.diffWeeks(e,a));a=n.addWeeks(a,6-t)}return{start:r,end:a}}n.injectStyles(':root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:"";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:0 2px}.fc .fc-daygrid-day-bottom:after,.fc .fc-daygrid-day-bottom:before{clear:both;content:"";display:table}.fc .fc-daygrid-more-link{border-radius:3px;cursor:pointer;line-height:1;margin-top:1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap;z-index:4}.fc .fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-more-link{float:left}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-more-link{float:right}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}');var H=t.createPlugin({name:"@fullcalendar/daygrid",initialView:"dayGridMonth",views:{dayGrid:{component:k,dateProfileGeneratorClass:M},dayGridDay:{type:"dayGrid",duration:{days:1}},dayGridWeek:{type:"dayGrid",duration:{weeks:1}},dayGridMonth:{type:"dayGrid",duration:{months:1},fixedWeekCount:!0},dayGridYear:{type:"dayGrid",duration:{years:1}}}}),z={__proto__:null,DayTable:D,DayTableSlicer:w,TableDateProfileGenerator:M,buildDayTableRenderRange:T,Table:C,TableRows:S,TableView:i,buildDayTableModel:P,DayGridView:k};return t.globalPlugins.push(H),e.Internal=z,e.default=H,Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar,FullCalendar.Internal,FullCalendar.Preact); \ No newline at end of file
diff --git a/library/fullcalendar/packages/google-calendar/index.global.js b/library/fullcalendar/packages/google-calendar/index.global.js
index 4e091c1d6..092934ea4 100644
--- a/library/fullcalendar/packages/google-calendar/index.global.js
+++ b/library/fullcalendar/packages/google-calendar/index.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Google Calendar Plugin v6.0.3
+FullCalendar Google Calendar Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/google-calendar
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
FullCalendar.GoogleCalendar = (function (exports, core, internal) {
'use strict';
diff --git a/library/fullcalendar/packages/google-calendar/index.global.min.js b/library/fullcalendar/packages/google-calendar/index.global.min.js
index 7ed4c9ab0..eb3583f8d 100644
--- a/library/fullcalendar/packages/google-calendar/index.global.min.js
+++ b/library/fullcalendar/packages/google-calendar/index.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Google Calendar Plugin v6.0.3
+FullCalendar Google Calendar Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/google-calendar
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
FullCalendar.GoogleCalendar=function(e,a,t){"use strict";const n={parseMeta(e){let{googleCalendarId:a}=e;return!a&&e.url&&(a=function(e){let a;if(/^[^/]+@([^/.]+\.)*(google|googlemail|gmail)\.com$/.test(e))return e;if((a=/^https:\/\/www.googleapis.com\/calendar\/v3\/calendars\/([^/]*)/.exec(e))||(a=/^https?:\/\/www.google.com\/calendar\/feeds\/([^/]*)/.exec(e)))return decodeURIComponent(a[1]);return null}(e.url)),a?{googleCalendarId:a,googleCalendarApiKey:e.googleCalendarApiKey,googleCalendarApiBase:e.googleCalendarApiBase,extraParams:e.extraParams}:null},fetch(e,n,r){let{dateEnv:o,options:l}=e.context,s=e.eventSource.meta,i=s.googleCalendarApiKey||l.googleCalendarApiKey;if(i){let l=function(e){let a=e.googleCalendarApiBase;a||(a="https://www.googleapis.com/calendar/v3/calendars");return a+"/"+encodeURIComponent(e.googleCalendarId)+"/events"}(s),{extraParams:d}=s,g="function"==typeof d?d():d,c=function(e,a,n,r){let o,l,s;r.canComputeOffset?(l=r.formatIso(e.start),s=r.formatIso(e.end)):(l=t.addDays(e.start,-1).toISOString(),s=t.addDays(e.end,1).toISOString());o=Object.assign(Object.assign({},n||{}),{key:a,timeMin:l,timeMax:s,singleEvents:!0,maxResults:9999}),"local"!==r.timeZone&&(o.timeZone=r.timeZone);return o}(e.range,i,g,o);return t.requestJson("GET",l,c).then(([e,t])=>{var o,l;e.error?r(new a.JsonRequestError("Google Calendar API: "+e.error.message,t)):n({rawEvents:(o=e.items,l=c.timeZone,o.map(e=>function(e,a){let t=e.htmlLink||null;t&&a&&(t=function(e,a){return e.replace(/(\?.*?)?(#|$)/,(e,t,n)=>(t?t+"&":"?")+a+n)}(t,"ctz="+a));return{id:e.id,title:e.summary,start:e.start.dateTime||e.start.date,end:e.end.dateTime||e.end.date,url:t,location:e.location,description:e.description,attachments:e.attachments||[],extendedProps:(e.extendedProperties||{}).shared||{}}}(e,l))),response:t})},r)}r(new Error("Specify a googleCalendarApiKey. See https://fullcalendar.io/docs/google-calendar"))}};const r={googleCalendarApiKey:String},o={googleCalendarApiKey:String,googleCalendarId:String,googleCalendarApiBase:String,extraParams:t.identity};var l=a.createPlugin({name:"@fullcalendar/google-calendar",eventSourceDefs:[n],optionRefiners:r,eventSourceRefiners:o});return a.globalPlugins.push(l),e.default=l,Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar,FullCalendar.Internal); \ No newline at end of file
diff --git a/library/fullcalendar/packages/icalendar/index.global.js b/library/fullcalendar/packages/icalendar/index.global.js
index c92e09e54..73fcea946 100644
--- a/library/fullcalendar/packages/icalendar/index.global.js
+++ b/library/fullcalendar/packages/icalendar/index.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar iCalendar Plugin v6.0.3
+FullCalendar iCalendar Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/icalendar
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
FullCalendar.ICalendar = (function (exports, core, internal, ICAL) {
'use strict';
diff --git a/library/fullcalendar/packages/icalendar/index.global.min.js b/library/fullcalendar/packages/icalendar/index.global.min.js
index 01d7e81ec..4bb3dd9cc 100644
--- a/library/fullcalendar/packages/icalendar/index.global.min.js
+++ b/library/fullcalendar/packages/icalendar/index.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar iCalendar Plugin v6.0.3
+FullCalendar iCalendar Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/icalendar
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
FullCalendar.ICalendar=function(e,t,n,r){"use strict";function a(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,t}var s=a(r);class i{constructor(e){this.maxIterations=null!=e.maxIterations?e.maxIterations:1e3,this.skipInvalidDates=null!=e.skipInvalidDates&&e.skipInvalidDates,this.jCalData=s.parse(e.ics),this.component=new s.Component(this.jCalData),this.events=this.component.getAllSubcomponents("vevent").map(e=>new s.Event(e)),this.skipInvalidDates&&(this.events=this.events.filter(e=>{try{return e.startDate.toJSDate(),e.endDate.toJSDate(),!0}catch(e){return!1}}))}between(e,t){function n(n,r){return(!e||r>=e.getTime())&&(!t||n<=t.getTime())}function r(e){const t=e.startDate.toJSDate().getTime();let n=e.endDate.toJSDate().getTime();return e.endDate.isDate&&n>t&&(n-=1),{startTime:t,endTime:n}}const a=[];this.events.forEach(e=>{e.isRecurrenceException()&&a.push(e)});const s={events:[],occurrences:[]};return this.events.filter(e=>!e.isRecurrenceException()).forEach(e=>{const i=[];if(e.component.getAllProperties("exdate").forEach(e=>{const t=e.getFirstValue();i.push(t.toJSDate().getTime())}),e.isRecurring()){const o=e.iterator();let c,l=0;do{if(l+=1,c=o.next(),c){const o=e.getOccurrenceDetails(c),{startTime:l,endTime:u}=r(o),d=-1!==i.indexOf(l),p=a.find(t=>t.uid===e.uid&&t.recurrenceId.toJSDate().getTime()===o.startDate.toJSDate().getTime());if(t&&l>t.getTime())break;n(l,u)&&(p?s.events.push(p):d||s.occurrences.push(o))}}while(c&&(!this.maxIterations||l<this.maxIterations));return}const{startTime:o,endTime:c}=r(e);n(o,c)&&s.events.push(e)}),s}before(e){return this.between(void 0,e)}after(e){return this.between(e)}all(){return this.between()}}const o={parseMeta:e=>e.url&&"ics"===e.format?{url:e.url,format:"ics"}:null,fetch(e,t,n){let r=e.eventSource.meta,{internalState:a}=r;a&&!e.isRefetch||(a=r.internalState={response:null,iCalExpanderPromise:fetch(r.url,{method:"GET"}).then(e=>e.text().then(t=>(a.response=e,new i({ics:t,skipInvalidDates:!0}))))}),a.iCalExpanderPromise.then(n=>{t({rawEvents:c(n,e.range),response:a.response})},n)}};function c(e,t){let r=n.addDays(t.start,-1),a=n.addDays(t.end,1),s=e.between(r,a),i=[];for(let e of s.events)i.push(Object.assign(Object.assign({},l(e)),{start:e.startDate.toString(),end:d(e)&&e.endDate?e.endDate.toString():null}));for(let e of s.occurrences){let t=e.item;i.push(Object.assign(Object.assign({},l(t)),{start:e.startDate.toString(),end:d(t)&&e.endDate?e.endDate.toString():null}))}return i}function l(e){return{title:e.summary,url:u(e),extendedProps:{location:e.location,organizer:e.organizer,description:e.description}}}function u(e){let t=e.component.getFirstProperty("url");return t?t.getFirstValue():""}function d(e){return Boolean(e.component.getFirstProperty("dtend"))||Boolean(e.component.getFirstProperty("duration"))}var p=t.createPlugin({name:"@fullcalendar/icalendar",eventSourceDefs:[o]});return t.globalPlugins.push(p),e.default=p,Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar,FullCalendar.Internal,ICAL); \ No newline at end of file
diff --git a/library/fullcalendar/packages/interaction/index.global.js b/library/fullcalendar/packages/interaction/index.global.js
index 296460d0e..5691ad90d 100644
--- a/library/fullcalendar/packages/interaction/index.global.js
+++ b/library/fullcalendar/packages/interaction/index.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Interaction Plugin v6.0.3
+FullCalendar Interaction Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/editable
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
FullCalendar.Interaction = (function (exports, core, internal) {
'use strict';
@@ -380,7 +380,7 @@ FullCalendar.Interaction = (function (exports, core, internal) {
mirrorEl = this.mirrorEl = this.sourceEl.cloneNode(true); // cloneChildren=true
// we don't want long taps or any mouse interaction causing selection/menus.
// would use preventSelection(), but that prevents selectstart, causing problems.
- mirrorEl.classList.add('fc-unselectable');
+ mirrorEl.style.userSelect = 'none';
mirrorEl.classList.add('fc-event-dragging');
internal.applyStyle(mirrorEl, {
position: 'fixed',
@@ -670,7 +670,7 @@ FullCalendar.Interaction = (function (exports, core, internal) {
els.push(query);
}
else {
- els.push(...Array.prototype.slice.call(internal.getElRoot(scrollStartEl).querySelectorAll(query)));
+ els.push(...Array.prototype.slice.call(scrollStartEl.getRootNode().querySelectorAll(query)));
}
}
return els;
@@ -1330,7 +1330,7 @@ FullCalendar.Interaction = (function (exports, core, internal) {
this.dragging.setMirrorNeedsRevert(!mutation);
// render the mirror if no already-rendered mirror
// TODO: wish we could somehow wait for dispatch to guarantee render
- this.dragging.setMirrorIsVisible(!hit || !internal.getElRoot(this.subjectEl).querySelector('.fc-event-mirror'));
+ this.dragging.setMirrorIsVisible(!hit || !this.subjectEl.getRootNode().querySelector('.fc-event-mirror'));
// assign states based on new hit
this.receivingContext = receivingContext;
this.validMutation = mutation;
diff --git a/library/fullcalendar/packages/interaction/index.global.min.js b/library/fullcalendar/packages/interaction/index.global.min.js
index 4c240143c..ed3f6a6e6 100644
--- a/library/fullcalendar/packages/interaction/index.global.min.js
+++ b/library/fullcalendar/packages/interaction/index.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Interaction Plugin v6.0.3
+FullCalendar Interaction Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/editable
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-FullCalendar.Interaction=function(t,e,i){"use strict";i.config.touchMouseIgnoreWait=500;let n=0,s=0,r=!1;class o{constructor(t){this.subjectEl=null,this.selector="",this.handleSelector="",this.shouldIgnoreMove=!1,this.shouldWatchScroll=!0,this.isDragging=!1,this.isTouchDragging=!1,this.wasTouchScroll=!1,this.handleMouseDown=t=>{if(!this.shouldIgnoreMouse()&&function(t){return 0===t.button&&!t.ctrlKey}(t)&&this.tryStart(t)){let e=this.createEventFromMouse(t,!0);this.emitter.trigger("pointerdown",e),this.initScrollWatch(e),this.shouldIgnoreMove||document.addEventListener("mousemove",this.handleMouseMove),document.addEventListener("mouseup",this.handleMouseUp)}},this.handleMouseMove=t=>{let e=this.createEventFromMouse(t);this.recordCoords(e),this.emitter.trigger("pointermove",e)},this.handleMouseUp=t=>{document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("mouseup",this.handleMouseUp),this.emitter.trigger("pointerup",this.createEventFromMouse(t)),this.cleanup()},this.handleTouchStart=t=>{if(this.tryStart(t)){this.isTouchDragging=!0;let e=this.createEventFromTouch(t,!0);this.emitter.trigger("pointerdown",e),this.initScrollWatch(e);let i=t.target;this.shouldIgnoreMove||i.addEventListener("touchmove",this.handleTouchMove),i.addEventListener("touchend",this.handleTouchEnd),i.addEventListener("touchcancel",this.handleTouchEnd),window.addEventListener("scroll",this.handleTouchScroll,!0)}},this.handleTouchMove=t=>{let e=this.createEventFromTouch(t);this.recordCoords(e),this.emitter.trigger("pointermove",e)},this.handleTouchEnd=t=>{if(this.isDragging){let e=t.target;e.removeEventListener("touchmove",this.handleTouchMove),e.removeEventListener("touchend",this.handleTouchEnd),e.removeEventListener("touchcancel",this.handleTouchEnd),window.removeEventListener("scroll",this.handleTouchScroll,!0),this.emitter.trigger("pointerup",this.createEventFromTouch(t)),this.cleanup(),this.isTouchDragging=!1,n+=1,setTimeout(()=>{n-=1},i.config.touchMouseIgnoreWait)}},this.handleTouchScroll=()=>{this.wasTouchScroll=!0},this.handleScroll=t=>{if(!this.shouldIgnoreMove){let e=window.pageXOffset-this.prevScrollX+this.prevPageX,i=window.pageYOffset-this.prevScrollY+this.prevPageY;this.emitter.trigger("pointermove",{origEvent:t,isTouch:this.isTouchDragging,subjectEl:this.subjectEl,pageX:e,pageY:i,deltaX:e-this.origPageX,deltaY:i-this.origPageY})}},this.containerEl=t,this.emitter=new i.Emitter,t.addEventListener("mousedown",this.handleMouseDown),t.addEventListener("touchstart",this.handleTouchStart,{passive:!0}),s+=1,1===s&&window.addEventListener("touchmove",l,{passive:!1})}destroy(){this.containerEl.removeEventListener("mousedown",this.handleMouseDown),this.containerEl.removeEventListener("touchstart",this.handleTouchStart,{passive:!0}),s-=1,s||window.removeEventListener("touchmove",l,{passive:!1})}tryStart(t){let e=this.querySubjectEl(t),n=t.target;return!(!e||this.handleSelector&&!i.elementClosest(n,this.handleSelector))&&(this.subjectEl=e,this.isDragging=!0,this.wasTouchScroll=!1,!0)}cleanup(){r=!1,this.isDragging=!1,this.subjectEl=null,this.destroyScrollWatch()}querySubjectEl(t){return this.selector?i.elementClosest(t.target,this.selector):this.containerEl}shouldIgnoreMouse(){return n||this.isTouchDragging}cancelTouchScroll(){this.isDragging&&(r=!0)}initScrollWatch(t){this.shouldWatchScroll&&(this.recordCoords(t),window.addEventListener("scroll",this.handleScroll,!0))}recordCoords(t){this.shouldWatchScroll&&(this.prevPageX=t.pageX,this.prevPageY=t.pageY,this.prevScrollX=window.pageXOffset,this.prevScrollY=window.pageYOffset)}destroyScrollWatch(){this.shouldWatchScroll&&window.removeEventListener("scroll",this.handleScroll,!0)}createEventFromMouse(t,e){let i=0,n=0;return e?(this.origPageX=t.pageX,this.origPageY=t.pageY):(i=t.pageX-this.origPageX,n=t.pageY-this.origPageY),{origEvent:t,isTouch:!1,subjectEl:this.subjectEl,pageX:t.pageX,pageY:t.pageY,deltaX:i,deltaY:n}}createEventFromTouch(t,e){let i,n,s=t.touches,r=0,o=0;return s&&s.length?(i=s[0].pageX,n=s[0].pageY):(i=t.pageX,n=t.pageY),e?(this.origPageX=i,this.origPageY=n):(r=i-this.origPageX,o=n-this.origPageY),{origEvent:t,isTouch:!0,subjectEl:this.subjectEl,pageX:i,pageY:n,deltaX:r,deltaY:o}}}function l(t){r&&t.preventDefault()}class a{constructor(){this.isVisible=!1,this.sourceEl=null,this.mirrorEl=null,this.sourceElRect=null,this.parentNode=document.body,this.zIndex=9999,this.revertDuration=0}start(t,e,i){this.sourceEl=t,this.sourceElRect=this.sourceEl.getBoundingClientRect(),this.origScreenX=e-window.pageXOffset,this.origScreenY=i-window.pageYOffset,this.deltaX=0,this.deltaY=0,this.updateElPosition()}handleMove(t,e){this.deltaX=t-window.pageXOffset-this.origScreenX,this.deltaY=e-window.pageYOffset-this.origScreenY,this.updateElPosition()}setIsVisible(t){t?this.isVisible||(this.mirrorEl&&(this.mirrorEl.style.display=""),this.isVisible=t,this.updateElPosition()):this.isVisible&&(this.mirrorEl&&(this.mirrorEl.style.display="none"),this.isVisible=t)}stop(t,e){let i=()=>{this.cleanup(),e()};t&&this.mirrorEl&&this.isVisible&&this.revertDuration&&(this.deltaX||this.deltaY)?this.doRevertAnimation(i,this.revertDuration):setTimeout(i,0)}doRevertAnimation(t,e){let n=this.mirrorEl,s=this.sourceEl.getBoundingClientRect();n.style.transition="top "+e+"ms,left "+e+"ms",i.applyStyle(n,{left:s.left,top:s.top}),i.whenTransitionDone(n,()=>{n.style.transition="",t()})}cleanup(){this.mirrorEl&&(i.removeElement(this.mirrorEl),this.mirrorEl=null),this.sourceEl=null}updateElPosition(){this.sourceEl&&this.isVisible&&i.applyStyle(this.getMirrorEl(),{left:this.sourceElRect.left+this.deltaX,top:this.sourceElRect.top+this.deltaY})}getMirrorEl(){let t=this.sourceElRect,e=this.mirrorEl;return e||(e=this.mirrorEl=this.sourceEl.cloneNode(!0),e.classList.add("fc-unselectable"),e.classList.add("fc-event-dragging"),i.applyStyle(e,{position:"fixed",zIndex:this.zIndex,visibility:"",boxSizing:"border-box",width:t.right-t.left,height:t.bottom-t.top,right:"auto",bottom:"auto",margin:0}),this.parentNode.appendChild(e)),e}}class h extends i.ScrollController{constructor(t,e){super(),this.handleScroll=()=>{this.scrollTop=this.scrollController.getScrollTop(),this.scrollLeft=this.scrollController.getScrollLeft(),this.handleScrollChange()},this.scrollController=t,this.doesListening=e,this.scrollTop=this.origScrollTop=t.getScrollTop(),this.scrollLeft=this.origScrollLeft=t.getScrollLeft(),this.scrollWidth=t.getScrollWidth(),this.scrollHeight=t.getScrollHeight(),this.clientWidth=t.getClientWidth(),this.clientHeight=t.getClientHeight(),this.clientRect=this.computeClientRect(),this.doesListening&&this.getEventTarget().addEventListener("scroll",this.handleScroll)}destroy(){this.doesListening&&this.getEventTarget().removeEventListener("scroll",this.handleScroll)}getScrollTop(){return this.scrollTop}getScrollLeft(){return this.scrollLeft}setScrollTop(t){this.scrollController.setScrollTop(t),this.doesListening||(this.scrollTop=Math.max(Math.min(t,this.getMaxScrollTop()),0),this.handleScrollChange())}setScrollLeft(t){this.scrollController.setScrollLeft(t),this.doesListening||(this.scrollLeft=Math.max(Math.min(t,this.getMaxScrollLeft()),0),this.handleScrollChange())}getClientWidth(){return this.clientWidth}getClientHeight(){return this.clientHeight}getScrollWidth(){return this.scrollWidth}getScrollHeight(){return this.scrollHeight}handleScrollChange(){}}class c extends h{constructor(t,e){super(new i.ElementScrollController(t),e)}getEventTarget(){return this.scrollController.el}computeClientRect(){return i.computeInnerRect(this.scrollController.el)}}class d extends h{constructor(t){super(new i.WindowScrollController,t)}getEventTarget(){return window}computeClientRect(){return{left:this.scrollLeft,right:this.scrollLeft+this.clientWidth,top:this.scrollTop,bottom:this.scrollTop+this.clientHeight}}handleScrollChange(){this.clientRect=this.computeClientRect()}}const g="function"==typeof performance?performance.now:Date.now;class u{constructor(){this.isEnabled=!0,this.scrollQuery=[window,".fc-scroller"],this.edgeThreshold=50,this.maxVelocity=300,this.pointerScreenX=null,this.pointerScreenY=null,this.isAnimating=!1,this.scrollCaches=null,this.everMovedUp=!1,this.everMovedDown=!1,this.everMovedLeft=!1,this.everMovedRight=!1,this.animate=()=>{if(this.isAnimating){let t=this.computeBestEdge(this.pointerScreenX+window.pageXOffset,this.pointerScreenY+window.pageYOffset);if(t){let e=g();this.handleSide(t,(e-this.msSinceRequest)/1e3),this.requestAnimation(e)}else this.isAnimating=!1}}}start(t,e,i){this.isEnabled&&(this.scrollCaches=this.buildCaches(i),this.pointerScreenX=null,this.pointerScreenY=null,this.everMovedUp=!1,this.everMovedDown=!1,this.everMovedLeft=!1,this.everMovedRight=!1,this.handleMove(t,e))}handleMove(t,e){if(this.isEnabled){let i=t-window.pageXOffset,n=e-window.pageYOffset,s=null===this.pointerScreenY?0:n-this.pointerScreenY,r=null===this.pointerScreenX?0:i-this.pointerScreenX;s<0?this.everMovedUp=!0:s>0&&(this.everMovedDown=!0),r<0?this.everMovedLeft=!0:r>0&&(this.everMovedRight=!0),this.pointerScreenX=i,this.pointerScreenY=n,this.isAnimating||(this.isAnimating=!0,this.requestAnimation(g()))}}stop(){if(this.isEnabled){this.isAnimating=!1;for(let t of this.scrollCaches)t.destroy();this.scrollCaches=null}}requestAnimation(t){this.msSinceRequest=t,requestAnimationFrame(this.animate)}handleSide(t,e){let{scrollCache:i}=t,{edgeThreshold:n}=this,s=n-t.distance,r=s*s/(n*n)*this.maxVelocity*e,o=1;switch(t.name){case"left":o=-1;case"right":i.setScrollLeft(i.getScrollLeft()+r*o);break;case"top":o=-1;case"bottom":i.setScrollTop(i.getScrollTop()+r*o)}}computeBestEdge(t,e){let{edgeThreshold:i}=this,n=null,s=this.scrollCaches||[];for(let r of s){let s=r.clientRect,o=t-s.left,l=s.right-t,a=e-s.top,h=s.bottom-e;o>=0&&l>=0&&a>=0&&h>=0&&(a<=i&&this.everMovedUp&&r.canScrollUp()&&(!n||n.distance>a)&&(n={scrollCache:r,name:"top",distance:a}),h<=i&&this.everMovedDown&&r.canScrollDown()&&(!n||n.distance>h)&&(n={scrollCache:r,name:"bottom",distance:h}),o<=i&&this.everMovedLeft&&r.canScrollLeft()&&(!n||n.distance>o)&&(n={scrollCache:r,name:"left",distance:o}),l<=i&&this.everMovedRight&&r.canScrollRight()&&(!n||n.distance>l)&&(n={scrollCache:r,name:"right",distance:l}))}return n}buildCaches(t){return this.queryScrollEls(t).map(t=>t===window?new d(!1):new c(t,!1))}queryScrollEls(t){let e=[];for(let n of this.scrollQuery)"object"==typeof n?e.push(n):e.push(...Array.prototype.slice.call(i.getElRoot(t).querySelectorAll(n)));return e}}class p extends i.ElementDragging{constructor(t,e){super(t),this.containerEl=t,this.delay=null,this.minDistance=0,this.touchScrollAllowed=!0,this.mirrorNeedsRevert=!1,this.isInteracting=!1,this.isDragging=!1,this.isDelayEnded=!1,this.isDistanceSurpassed=!1,this.delayTimeoutId=null,this.onPointerDown=t=>{this.isDragging||(this.isInteracting=!0,this.isDelayEnded=!1,this.isDistanceSurpassed=!1,i.preventSelection(document.body),i.preventContextMenu(document.body),t.isTouch||t.origEvent.preventDefault(),this.emitter.trigger("pointerdown",t),this.isInteracting&&!this.pointer.shouldIgnoreMove&&(this.mirror.setIsVisible(!1),this.mirror.start(t.subjectEl,t.pageX,t.pageY),this.startDelay(t),this.minDistance||this.handleDistanceSurpassed(t)))},this.onPointerMove=t=>{if(this.isInteracting){if(this.emitter.trigger("pointermove",t),!this.isDistanceSurpassed){let e,i=this.minDistance,{deltaX:n,deltaY:s}=t;e=n*n+s*s,e>=i*i&&this.handleDistanceSurpassed(t)}this.isDragging&&("scroll"!==t.origEvent.type&&(this.mirror.handleMove(t.pageX,t.pageY),this.autoScroller.handleMove(t.pageX,t.pageY)),this.emitter.trigger("dragmove",t))}},this.onPointerUp=t=>{this.isInteracting&&(this.isInteracting=!1,i.allowSelection(document.body),i.allowContextMenu(document.body),this.emitter.trigger("pointerup",t),this.isDragging&&(this.autoScroller.stop(),this.tryStopDrag(t)),this.delayTimeoutId&&(clearTimeout(this.delayTimeoutId),this.delayTimeoutId=null))};let n=this.pointer=new o(t);n.emitter.on("pointerdown",this.onPointerDown),n.emitter.on("pointermove",this.onPointerMove),n.emitter.on("pointerup",this.onPointerUp),e&&(n.selector=e),this.mirror=new a,this.autoScroller=new u}destroy(){this.pointer.destroy(),this.onPointerUp({})}startDelay(t){"number"==typeof this.delay?this.delayTimeoutId=setTimeout(()=>{this.delayTimeoutId=null,this.handleDelayEnd(t)},this.delay):this.handleDelayEnd(t)}handleDelayEnd(t){this.isDelayEnded=!0,this.tryStartDrag(t)}handleDistanceSurpassed(t){this.isDistanceSurpassed=!0,this.tryStartDrag(t)}tryStartDrag(t){this.isDelayEnded&&this.isDistanceSurpassed&&(this.pointer.wasTouchScroll&&!this.touchScrollAllowed||(this.isDragging=!0,this.mirrorNeedsRevert=!1,this.autoScroller.start(t.pageX,t.pageY,this.containerEl),this.emitter.trigger("dragstart",t),!1===this.touchScrollAllowed&&this.pointer.cancelTouchScroll()))}tryStopDrag(t){this.mirror.stop(this.mirrorNeedsRevert,this.stopDrag.bind(this,t))}stopDrag(t){this.isDragging=!1,this.emitter.trigger("dragend",t)}setIgnoreMove(t){this.pointer.shouldIgnoreMove=t}setMirrorIsVisible(t){this.mirror.setIsVisible(t)}setMirrorNeedsRevert(t){this.mirrorNeedsRevert=t}setAutoScrollEnabled(t){this.autoScroller.isEnabled=t}}class v{constructor(t){this.origRect=i.computeRect(t),this.scrollCaches=i.getClippingParents(t).map(t=>new c(t,!0))}destroy(){for(let t of this.scrollCaches)t.destroy()}computeLeft(){let t=this.origRect.left;for(let e of this.scrollCaches)t+=e.origScrollLeft-e.getScrollLeft();return t}computeTop(){let t=this.origRect.top;for(let e of this.scrollCaches)t+=e.origScrollTop-e.getScrollTop();return t}isWithinClipping(t,e){let n={left:t,top:e};for(let t of this.scrollCaches)if(!E(t.getEventTarget())&&!i.pointInsideRect(n,t.clientRect))return!1;return!0}}function E(t){let e=t.tagName;return"HTML"===e||"BODY"===e}class m{constructor(t,e){this.useSubjectCenter=!1,this.requireInitial=!0,this.initialHit=null,this.movingHit=null,this.finalHit=null,this.handlePointerDown=t=>{let{dragging:e}=this;this.initialHit=null,this.movingHit=null,this.finalHit=null,this.prepareHits(),this.processFirstCoord(t),this.initialHit||!this.requireInitial?(e.setIgnoreMove(!1),this.emitter.trigger("pointerdown",t)):e.setIgnoreMove(!0)},this.handleDragStart=t=>{this.emitter.trigger("dragstart",t),this.handleMove(t,!0)},this.handleDragMove=t=>{this.emitter.trigger("dragmove",t),this.handleMove(t)},this.handlePointerUp=t=>{this.releaseHits(),this.emitter.trigger("pointerup",t)},this.handleDragEnd=t=>{this.movingHit&&this.emitter.trigger("hitupdate",null,!0,t),this.finalHit=this.movingHit,this.movingHit=null,this.emitter.trigger("dragend",t)},this.droppableStore=e,t.emitter.on("pointerdown",this.handlePointerDown),t.emitter.on("dragstart",this.handleDragStart),t.emitter.on("dragmove",this.handleDragMove),t.emitter.on("pointerup",this.handlePointerUp),t.emitter.on("dragend",this.handleDragEnd),this.dragging=t,this.emitter=new i.Emitter}processFirstCoord(t){let e,n={left:t.pageX,top:t.pageY},s=n,r=t.subjectEl;r instanceof HTMLElement&&(e=i.computeRect(r),s=i.constrainPoint(s,e));let o=this.initialHit=this.queryHitForOffset(s.left,s.top);if(o){if(this.useSubjectCenter&&e){let t=i.intersectRects(e,o.rect);t&&(s=i.getRectCenter(t))}this.coordAdjust=i.diffPoints(s,n)}else this.coordAdjust={left:0,top:0}}handleMove(t,e){let i=this.queryHitForOffset(t.pageX+this.coordAdjust.left,t.pageY+this.coordAdjust.top);!e&&S(this.movingHit,i)||(this.movingHit=i,this.emitter.trigger("hitupdate",i,!1,t))}prepareHits(){this.offsetTrackers=i.mapHash(this.droppableStore,t=>(t.component.prepareHits(),new v(t.el)))}releaseHits(){let{offsetTrackers:t}=this;for(let e in t)t[e].destroy();this.offsetTrackers={}}queryHitForOffset(t,e){let{droppableStore:n,offsetTrackers:s}=this,r=null;for(let o in n){let l=n[o].component,a=s[o];if(a&&a.isWithinClipping(t,e)){let n=a.computeLeft(),s=a.computeTop(),h=t-n,c=e-s,{origRect:d}=a,g=d.right-d.left,u=d.bottom-d.top;if(h>=0&&h<g&&c>=0&&c<u){let t=l.queryHit(h,c,g,u);t&&i.rangeContainsRange(t.dateProfile.activeRange,t.dateSpan.range)&&(!r||t.layer>r.layer)&&(t.componentId=o,t.context=l.context,t.rect.left+=n,t.rect.right+=n,t.rect.top+=s,t.rect.bottom+=s,r=t)}}}return r}}function S(t,e){return!t&&!e||Boolean(t)===Boolean(e)&&i.isDateSpansEqual(t.dateSpan,e.dateSpan)}function f(t,e){let i={};for(let n of e.pluginHooks.datePointTransforms)Object.assign(i,n(t,e));var n,s;return Object.assign(i,(n=t,{date:(s=e.dateEnv).toDate(n.range.start),dateStr:s.formatIso(n.range.start,{omitTime:n.allDay}),allDay:n.allDay})),i}class D extends i.Interaction{constructor(t){super(t),this.handlePointerDown=t=>{let{dragging:e}=this,i=t.origEvent.target;e.setIgnoreMove(!this.component.isValidDateDownEl(i))},this.handleDragEnd=t=>{let{component:e}=this,{pointer:i}=this.dragging;if(!i.wasTouchScroll){let{initialHit:i,finalHit:n}=this.hitDragging;if(i&&n&&S(i,n)){let{context:n}=e,s=Object.assign(Object.assign({},f(i.dateSpan,n)),{dayEl:i.dayEl,jsEvent:t.origEvent,view:n.viewApi||n.calendarApi.view});n.emitter.trigger("dateClick",s)}}},this.dragging=new p(t.el),this.dragging.autoScroller.isEnabled=!1;let e=this.hitDragging=new m(this.dragging,i.interactionSettingsToStore(t));e.emitter.on("pointerdown",this.handlePointerDown),e.emitter.on("dragend",this.handleDragEnd)}destroy(){this.dragging.destroy()}}class y extends i.Interaction{constructor(t){super(t),this.dragSelection=null,this.handlePointerDown=t=>{let{component:e,dragging:i}=this,{options:n}=e.context,s=n.selectable&&e.isValidDateDownEl(t.origEvent.target);i.setIgnoreMove(!s),i.delay=t.isTouch?function(t){let{options:e}=t.context,i=e.selectLongPressDelay;null==i&&(i=e.longPressDelay);return i}(e):null},this.handleDragStart=t=>{this.component.context.calendarApi.unselect(t)},this.handleHitUpdate=(t,e)=>{let{context:n}=this.component,s=null,r=!1;if(t){let e=this.hitDragging.initialHit;t.componentId===e.componentId&&this.isHitComboAllowed&&!this.isHitComboAllowed(e,t)||(s=function(t,e,n){let s=t.dateSpan,r=e.dateSpan,o=[s.range.start,s.range.end,r.range.start,r.range.end];o.sort(i.compareNumbers);let l={};for(let i of n){let n=i(t,e);if(!1===n)return null;n&&Object.assign(l,n)}return l.range={start:o[0],end:o[3]},l.allDay=s.allDay,l}(e,t,n.pluginHooks.dateSelectionTransformers)),s&&i.isDateSelectionValid(s,t.dateProfile,n)||(r=!0,s=null)}s?n.dispatch({type:"SELECT_DATES",selection:s}):e||n.dispatch({type:"UNSELECT_DATES"}),r?i.disableCursor():i.enableCursor(),e||(this.dragSelection=s)},this.handlePointerUp=t=>{this.dragSelection&&(i.triggerDateSelect(this.dragSelection,t,this.component.context),this.dragSelection=null)};let{component:e}=t,{options:n}=e.context,s=this.dragging=new p(t.el);s.touchScrollAllowed=!1,s.minDistance=n.selectMinDistance||0,s.autoScroller.isEnabled=n.dragScroll;let r=this.hitDragging=new m(this.dragging,i.interactionSettingsToStore(t));r.emitter.on("pointerdown",this.handlePointerDown),r.emitter.on("dragstart",this.handleDragStart),r.emitter.on("hitupdate",this.handleHitUpdate),r.emitter.on("pointerup",this.handlePointerUp)}destroy(){this.dragging.destroy()}}class w extends i.Interaction{constructor(t){super(t),this.subjectEl=null,this.subjectSeg=null,this.isDragging=!1,this.eventRange=null,this.relevantEvents=null,this.receivingContext=null,this.validMutation=null,this.mutatedRelevantEvents=null,this.handlePointerDown=t=>{let e=t.origEvent.target,{component:n,dragging:s}=this,{mirror:r}=s,{options:o}=n.context,l=n.context;this.subjectEl=t.subjectEl;let a=this.subjectSeg=i.getElSeg(t.subjectEl),h=(this.eventRange=a.eventRange).instance.instanceId;this.relevantEvents=i.getRelevantEvents(l.getCurrentData().eventStore,h),s.minDistance=t.isTouch?0:o.eventDragMinDistance,s.delay=t.isTouch&&h!==n.props.eventSelection?function(t){let{options:e}=t.context,i=e.eventLongPressDelay;null==i&&(i=e.longPressDelay);return i}(n):null,o.fixedMirrorParent?r.parentNode=o.fixedMirrorParent:r.parentNode=i.elementClosest(e,".fc"),r.revertDuration=o.dragRevertDuration;let c=n.isValidSegDownEl(e)&&!i.elementClosest(e,".fc-event-resizer");s.setIgnoreMove(!c),this.isDragging=c&&t.subjectEl.classList.contains("fc-event-draggable")},this.handleDragStart=t=>{let e=this.component.context,n=this.eventRange,s=n.instance.instanceId;t.isTouch?s!==this.component.props.eventSelection&&e.dispatch({type:"SELECT_EVENT",eventInstanceId:s}):e.dispatch({type:"UNSELECT_EVENT"}),this.isDragging&&(e.calendarApi.unselect(t),e.emitter.trigger("eventDragStart",{el:this.subjectEl,event:new i.EventImpl(e,n.def,n.instance),jsEvent:t.origEvent,view:e.viewApi}))},this.handleHitUpdate=(t,e)=>{if(!this.isDragging)return;let n=this.relevantEvents,s=this.hitDragging.initialHit,r=this.component.context,o=null,l=null,a=null,h=!1,c={affectedEvents:n,mutatedEvents:i.createEmptyEventStore(),isEvent:!0};if(t){o=t.context;let e=o.options;r===o||e.editable&&e.droppable?(l=function(t,e,n){let s=t.dateSpan,r=e.dateSpan,o=s.range.start,l=r.range.start,a={};s.allDay!==r.allDay&&(a.allDay=r.allDay,a.hasEnd=e.context.options.allDayMaintainDuration,r.allDay&&(o=i.startOfDay(o)));let h=i.diffDates(o,l,t.context.dateEnv,t.componentId===e.componentId?t.largeUnit:null);h.milliseconds&&(a.allDay=!1);let c={datesDelta:h,standardProps:a};for(let i of n)i(c,t,e);return c}(s,t,o.getCurrentData().pluginHooks.eventDragMutationMassagers),l&&(a=i.applyMutationToEventStore(n,o.getCurrentData().eventUiBases,l,o),c.mutatedEvents=a,i.isInteractionValid(c,t.dateProfile,o)||(h=!0,l=null,a=null,c.mutatedEvents=i.createEmptyEventStore()))):o=null}this.displayDrag(o,c),h?i.disableCursor():i.enableCursor(),e||(r===o&&S(s,t)&&(l=null),this.dragging.setMirrorNeedsRevert(!l),this.dragging.setMirrorIsVisible(!t||!i.getElRoot(this.subjectEl).querySelector(".fc-event-mirror")),this.receivingContext=o,this.validMutation=l,this.mutatedRelevantEvents=a)},this.handlePointerUp=()=>{this.isDragging||this.cleanup()},this.handleDragEnd=t=>{if(this.isDragging){let e=this.component.context,n=e.viewApi,{receivingContext:s,validMutation:r}=this,o=this.eventRange.def,l=this.eventRange.instance,a=new i.EventImpl(e,o,l),h=this.relevantEvents,c=this.mutatedRelevantEvents,{finalHit:d}=this.hitDragging;if(this.clearDrag(),e.emitter.trigger("eventDragStop",{el:this.subjectEl,event:a,jsEvent:t.origEvent,view:n}),r){if(s===e){let s=new i.EventImpl(e,c.defs[o.defId],l?c.instances[l.instanceId]:null);e.dispatch({type:"MERGE_EVENTS",eventStore:c});let d={oldEvent:a,event:s,relatedEvents:i.buildEventApis(c,e,l),revert(){e.dispatch({type:"MERGE_EVENTS",eventStore:h})}},g={};for(let t of e.getCurrentData().pluginHooks.eventDropTransformers)Object.assign(g,t(r,e));e.emitter.trigger("eventDrop",Object.assign(Object.assign(Object.assign({},d),g),{el:t.subjectEl,delta:r.datesDelta,jsEvent:t.origEvent,view:n})),e.emitter.trigger("eventChange",d)}else if(s){let r={event:a,relatedEvents:i.buildEventApis(h,e,l),revert(){e.dispatch({type:"MERGE_EVENTS",eventStore:h})}};e.emitter.trigger("eventLeave",Object.assign(Object.assign({},r),{draggedEl:t.subjectEl,view:n})),e.dispatch({type:"REMOVE_EVENTS",eventStore:h}),e.emitter.trigger("eventRemove",r);let g=c.defs[o.defId],u=c.instances[l.instanceId],p=new i.EventImpl(s,g,u);s.dispatch({type:"MERGE_EVENTS",eventStore:c});let v={event:p,relatedEvents:i.buildEventApis(c,s,u),revert(){s.dispatch({type:"REMOVE_EVENTS",eventStore:c})}};s.emitter.trigger("eventAdd",v),t.isTouch&&s.dispatch({type:"SELECT_EVENT",eventInstanceId:l.instanceId}),s.emitter.trigger("drop",Object.assign(Object.assign({},f(d.dateSpan,s)),{draggedEl:t.subjectEl,jsEvent:t.origEvent,view:d.context.viewApi})),s.emitter.trigger("eventReceive",Object.assign(Object.assign({},v),{draggedEl:t.subjectEl,view:d.context.viewApi}))}}else e.emitter.trigger("_noEventDrop")}this.cleanup()};let{component:e}=this,{options:n}=e.context,s=this.dragging=new p(t.el);s.pointer.selector=w.SELECTOR,s.touchScrollAllowed=!1,s.autoScroller.isEnabled=n.dragScroll;let r=this.hitDragging=new m(this.dragging,i.interactionSettingsStore);r.useSubjectCenter=t.useEventCenter,r.emitter.on("pointerdown",this.handlePointerDown),r.emitter.on("dragstart",this.handleDragStart),r.emitter.on("hitupdate",this.handleHitUpdate),r.emitter.on("pointerup",this.handlePointerUp),r.emitter.on("dragend",this.handleDragEnd)}destroy(){this.dragging.destroy()}displayDrag(t,e){let n=this.component.context,s=this.receivingContext;s&&s!==t&&(s===n?s.dispatch({type:"SET_EVENT_DRAG",state:{affectedEvents:e.affectedEvents,mutatedEvents:i.createEmptyEventStore(),isEvent:!0}}):s.dispatch({type:"UNSET_EVENT_DRAG"})),t&&t.dispatch({type:"SET_EVENT_DRAG",state:e})}clearDrag(){let t=this.component.context,{receivingContext:e}=this;e&&e.dispatch({type:"UNSET_EVENT_DRAG"}),t!==e&&t.dispatch({type:"UNSET_EVENT_DRAG"})}cleanup(){this.subjectSeg=null,this.isDragging=!1,this.eventRange=null,this.relevantEvents=null,this.receivingContext=null,this.validMutation=null,this.mutatedRelevantEvents=null}}w.SELECTOR=".fc-event-draggable, .fc-event-resizable";class T extends i.Interaction{constructor(t){super(t),this.draggingSegEl=null,this.draggingSeg=null,this.eventRange=null,this.relevantEvents=null,this.validMutation=null,this.mutatedRelevantEvents=null,this.handlePointerDown=t=>{let{component:e}=this,n=this.querySegEl(t),s=i.getElSeg(n),r=this.eventRange=s.eventRange;this.dragging.minDistance=e.context.options.eventDragMinDistance,this.dragging.setIgnoreMove(!this.component.isValidSegDownEl(t.origEvent.target)||t.isTouch&&this.component.props.eventSelection!==r.instance.instanceId)},this.handleDragStart=t=>{let{context:e}=this.component,n=this.eventRange;this.relevantEvents=i.getRelevantEvents(e.getCurrentData().eventStore,this.eventRange.instance.instanceId);let s=this.querySegEl(t);this.draggingSegEl=s,this.draggingSeg=i.getElSeg(s),e.calendarApi.unselect(),e.emitter.trigger("eventResizeStart",{el:s,event:new i.EventImpl(e,n.def,n.instance),jsEvent:t.origEvent,view:e.viewApi})},this.handleHitUpdate=(t,e,n)=>{let{context:s}=this.component,r=this.relevantEvents,o=this.hitDragging.initialHit,l=this.eventRange.instance,a=null,h=null,c=!1,d={affectedEvents:r,mutatedEvents:i.createEmptyEventStore(),isEvent:!0};if(t){t.componentId===o.componentId&&this.isHitComboAllowed&&!this.isHitComboAllowed(o,t)||(a=function(t,e,n,s){let r=t.context.dateEnv,o=t.dateSpan.range.start,l=e.dateSpan.range.start,a=i.diffDates(o,l,r,t.largeUnit);if(n){if(r.add(s.start,a)<s.end)return{startDelta:a}}else if(r.add(s.end,a)>s.start)return{endDelta:a};return null}(o,t,n.subjectEl.classList.contains("fc-event-resizer-start"),l.range))}a&&(h=i.applyMutationToEventStore(r,s.getCurrentData().eventUiBases,a,s),d.mutatedEvents=h,i.isInteractionValid(d,t.dateProfile,s)||(c=!0,a=null,h=null,d.mutatedEvents=null)),h?s.dispatch({type:"SET_EVENT_RESIZE",state:d}):s.dispatch({type:"UNSET_EVENT_RESIZE"}),c?i.disableCursor():i.enableCursor(),e||(a&&S(o,t)&&(a=null),this.validMutation=a,this.mutatedRelevantEvents=h)},this.handleDragEnd=t=>{let{context:e}=this.component,n=this.eventRange.def,s=this.eventRange.instance,r=new i.EventImpl(e,n,s),o=this.relevantEvents,l=this.mutatedRelevantEvents;if(e.emitter.trigger("eventResizeStop",{el:this.draggingSegEl,event:r,jsEvent:t.origEvent,view:e.viewApi}),this.validMutation){let a=new i.EventImpl(e,l.defs[n.defId],s?l.instances[s.instanceId]:null);e.dispatch({type:"MERGE_EVENTS",eventStore:l});let h={oldEvent:r,event:a,relatedEvents:i.buildEventApis(l,e,s),revert(){e.dispatch({type:"MERGE_EVENTS",eventStore:o})}};e.emitter.trigger("eventResize",Object.assign(Object.assign({},h),{el:this.draggingSegEl,startDelta:this.validMutation.startDelta||i.createDuration(0),endDelta:this.validMutation.endDelta||i.createDuration(0),jsEvent:t.origEvent,view:e.viewApi})),e.emitter.trigger("eventChange",h)}else e.emitter.trigger("_noEventResize");this.draggingSeg=null,this.relevantEvents=null,this.validMutation=null};let{component:e}=t,n=this.dragging=new p(t.el);n.pointer.selector=".fc-event-resizer",n.touchScrollAllowed=!1,n.autoScroller.isEnabled=e.context.options.dragScroll;let s=this.hitDragging=new m(this.dragging,i.interactionSettingsToStore(t));s.emitter.on("pointerdown",this.handlePointerDown),s.emitter.on("dragstart",this.handleDragStart),s.emitter.on("hitupdate",this.handleHitUpdate),s.emitter.on("dragend",this.handleDragEnd)}destroy(){this.dragging.destroy()}querySegEl(t){return i.elementClosest(t.subjectEl,".fc-event")}}const b={fixedMirrorParent:i.identity},M={dateClick:i.identity,eventDragStart:i.identity,eventDragStop:i.identity,eventDrop:i.identity,eventResizeStart:i.identity,eventResizeStop:i.identity,eventResize:i.identity,drop:i.identity,eventReceive:i.identity,eventLeave:i.identity};class C{constructor(t,e){this.receivingContext=null,this.droppableEvent=null,this.suppliedDragMeta=null,this.dragMeta=null,this.handleDragStart=t=>{this.dragMeta=this.buildDragMeta(t.subjectEl)},this.handleHitUpdate=(t,e,n)=>{let{dragging:s}=this.hitDragging,r=null,o=null,l=!1,a={affectedEvents:i.createEmptyEventStore(),mutatedEvents:i.createEmptyEventStore(),isEvent:this.dragMeta.create};t&&(r=t.context,this.canDropElOnCalendar(n.subjectEl,r)&&(o=function(t,e,n){let s=Object.assign({},e.leftoverProps);for(let i of n.pluginHooks.externalDefTransforms)Object.assign(s,i(t,e));let{refined:r,extra:o}=i.refineEventDef(s,n),l=i.parseEventDef(r,o,e.sourceId,t.allDay,n.options.forceEventDuration||Boolean(e.duration),n),a=t.range.start;t.allDay&&e.startTime&&(a=n.dateEnv.add(a,e.startTime));let h=e.duration?n.dateEnv.add(a,e.duration):i.getDefaultEventEnd(t.allDay,a,n),c=i.createEventInstance(l.defId,{start:a,end:h});return{def:l,instance:c}}(t.dateSpan,this.dragMeta,r),a.mutatedEvents=i.eventTupleToStore(o),l=!i.isInteractionValid(a,t.dateProfile,r),l&&(a.mutatedEvents=i.createEmptyEventStore(),o=null))),this.displayDrag(r,a),s.setMirrorIsVisible(e||!o||!document.querySelector(".fc-event-mirror")),l?i.disableCursor():i.enableCursor(),e||(s.setMirrorNeedsRevert(!o),this.receivingContext=r,this.droppableEvent=o)},this.handleDragEnd=t=>{let{receivingContext:e,droppableEvent:n}=this;if(this.clearDrag(),e&&n){let s=this.hitDragging.finalHit,r=s.context.viewApi,o=this.dragMeta;if(e.emitter.trigger("drop",Object.assign(Object.assign({},f(s.dateSpan,e)),{draggedEl:t.subjectEl,jsEvent:t.origEvent,view:r})),o.create){let s=i.eventTupleToStore(n);e.dispatch({type:"MERGE_EVENTS",eventStore:s}),t.isTouch&&e.dispatch({type:"SELECT_EVENT",eventInstanceId:n.instance.instanceId}),e.emitter.trigger("eventReceive",{event:new i.EventImpl(e,n.def,n.instance),relatedEvents:[],revert(){e.dispatch({type:"REMOVE_EVENTS",eventStore:s})},draggedEl:t.subjectEl,view:r})}}this.receivingContext=null,this.droppableEvent=null};let n=this.hitDragging=new m(t,i.interactionSettingsStore);n.requireInitial=!1,n.emitter.on("dragstart",this.handleDragStart),n.emitter.on("hitupdate",this.handleHitUpdate),n.emitter.on("dragend",this.handleDragEnd),this.suppliedDragMeta=e}buildDragMeta(t){return"object"==typeof this.suppliedDragMeta?i.parseDragMeta(this.suppliedDragMeta):"function"==typeof this.suppliedDragMeta?i.parseDragMeta(this.suppliedDragMeta(t)):function(t){let e=function(t,e){let n=i.config.dataAttrPrefix,s=(n?n+"-":"")+e;return t.getAttribute("data-"+s)||""}(t,"event"),n=e?JSON.parse(e):{create:!1};return i.parseDragMeta(n)}(t)}displayDrag(t,e){let i=this.receivingContext;i&&i!==t&&i.dispatch({type:"UNSET_EVENT_DRAG"}),t&&t.dispatch({type:"SET_EVENT_DRAG",state:e})}clearDrag(){this.receivingContext&&this.receivingContext.dispatch({type:"UNSET_EVENT_DRAG"})}canDropElOnCalendar(t,e){let n=e.options.dropAccept;return"function"==typeof n?n.call(e.calendarApi,t):"string"!=typeof n||!n||Boolean(i.elementMatches(t,n))}}i.config.dataAttrPrefix="";class R extends i.ElementDragging{constructor(t){super(t),this.shouldIgnoreMove=!1,this.mirrorSelector="",this.currentMirrorEl=null,this.handlePointerDown=t=>{this.emitter.trigger("pointerdown",t),this.shouldIgnoreMove||this.emitter.trigger("dragstart",t)},this.handlePointerMove=t=>{this.shouldIgnoreMove||this.emitter.trigger("dragmove",t)},this.handlePointerUp=t=>{this.emitter.trigger("pointerup",t),this.shouldIgnoreMove||this.emitter.trigger("dragend",t)};let e=this.pointer=new o(t);e.emitter.on("pointerdown",this.handlePointerDown),e.emitter.on("pointermove",this.handlePointerMove),e.emitter.on("pointerup",this.handlePointerUp)}destroy(){this.pointer.destroy()}setIgnoreMove(t){this.shouldIgnoreMove=t}setMirrorIsVisible(t){if(t)this.currentMirrorEl&&(this.currentMirrorEl.style.visibility="",this.currentMirrorEl=null);else{let t=this.mirrorSelector?document.querySelector(this.mirrorSelector):null;t&&(this.currentMirrorEl=t,t.style.visibility="hidden")}}}var I=e.createPlugin({name:"@fullcalendar/interaction",componentInteractions:[D,y,w,T],calendarInteractions:[class{constructor(t){this.context=t,this.isRecentPointerDateSelect=!1,this.matchesCancel=!1,this.matchesEvent=!1,this.onSelect=t=>{t.jsEvent&&(this.isRecentPointerDateSelect=!0)},this.onDocumentPointerDown=t=>{let e=this.context.options.unselectCancel,n=i.getEventTargetViaRoot(t.origEvent);this.matchesCancel=!!i.elementClosest(n,e),this.matchesEvent=!!i.elementClosest(n,w.SELECTOR)},this.onDocumentPointerUp=t=>{let{context:e}=this,{documentPointer:i}=this,n=e.getCurrentData();if(!i.wasTouchScroll){if(n.dateSelection&&!this.isRecentPointerDateSelect){let i=e.options.unselectAuto;!i||i&&this.matchesCancel||e.calendarApi.unselect(t)}n.eventSelection&&!this.matchesEvent&&e.dispatch({type:"UNSELECT_EVENT"})}this.isRecentPointerDateSelect=!1};let e=this.documentPointer=new o(document);e.shouldIgnoreMove=!0,e.shouldWatchScroll=!1,e.emitter.on("pointerdown",this.onDocumentPointerDown),e.emitter.on("pointerup",this.onDocumentPointerUp),t.emitter.on("select",this.onSelect)}destroy(){this.context.emitter.off("select",this.onSelect),this.documentPointer.destroy()}}],elementDraggingImpl:p,optionRefiners:b,listenerRefiners:M});return e.globalPlugins.push(I),t.Draggable=class{constructor(t,e={}){this.handlePointerDown=t=>{let{dragging:e}=this,{minDistance:n,longPressDelay:s}=this.settings;e.minDistance=null!=n?n:t.isTouch?0:i.BASE_OPTION_DEFAULTS.eventDragMinDistance,e.delay=t.isTouch?null!=s?s:i.BASE_OPTION_DEFAULTS.longPressDelay:0},this.handleDragStart=t=>{t.isTouch&&this.dragging.delay&&t.subjectEl.classList.contains("fc-event")&&this.dragging.mirror.getMirrorEl().classList.add("fc-event-selected")},this.settings=e;let n=this.dragging=new p(t);n.touchScrollAllowed=!1,null!=e.itemSelector&&(n.pointer.selector=e.itemSelector),null!=e.appendTo&&(n.mirror.parentNode=e.appendTo),n.emitter.on("pointerdown",this.handlePointerDown),n.emitter.on("dragstart",this.handleDragStart),new C(n,e.eventData)}destroy(){this.dragging.destroy()}},t.ThirdPartyDraggable=class{constructor(t,e){let i=document;t===document||t instanceof Element?(i=t,e=e||{}):e=t||{};let n=this.dragging=new R(i);"string"==typeof e.itemSelector?n.pointer.selector=e.itemSelector:i===document&&(n.pointer.selector="[data-event]"),"string"==typeof e.mirrorSelector&&(n.mirrorSelector=e.mirrorSelector),new C(n,e.eventData)}destroy(){this.dragging.destroy()}},t.default=I,Object.defineProperty(t,"__esModule",{value:!0}),t}({},FullCalendar,FullCalendar.Internal); \ No newline at end of file
+FullCalendar.Interaction=function(t,e,i){"use strict";i.config.touchMouseIgnoreWait=500;let n=0,s=0,r=!1;class o{constructor(t){this.subjectEl=null,this.selector="",this.handleSelector="",this.shouldIgnoreMove=!1,this.shouldWatchScroll=!0,this.isDragging=!1,this.isTouchDragging=!1,this.wasTouchScroll=!1,this.handleMouseDown=t=>{if(!this.shouldIgnoreMouse()&&function(t){return 0===t.button&&!t.ctrlKey}(t)&&this.tryStart(t)){let e=this.createEventFromMouse(t,!0);this.emitter.trigger("pointerdown",e),this.initScrollWatch(e),this.shouldIgnoreMove||document.addEventListener("mousemove",this.handleMouseMove),document.addEventListener("mouseup",this.handleMouseUp)}},this.handleMouseMove=t=>{let e=this.createEventFromMouse(t);this.recordCoords(e),this.emitter.trigger("pointermove",e)},this.handleMouseUp=t=>{document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("mouseup",this.handleMouseUp),this.emitter.trigger("pointerup",this.createEventFromMouse(t)),this.cleanup()},this.handleTouchStart=t=>{if(this.tryStart(t)){this.isTouchDragging=!0;let e=this.createEventFromTouch(t,!0);this.emitter.trigger("pointerdown",e),this.initScrollWatch(e);let i=t.target;this.shouldIgnoreMove||i.addEventListener("touchmove",this.handleTouchMove),i.addEventListener("touchend",this.handleTouchEnd),i.addEventListener("touchcancel",this.handleTouchEnd),window.addEventListener("scroll",this.handleTouchScroll,!0)}},this.handleTouchMove=t=>{let e=this.createEventFromTouch(t);this.recordCoords(e),this.emitter.trigger("pointermove",e)},this.handleTouchEnd=t=>{if(this.isDragging){let e=t.target;e.removeEventListener("touchmove",this.handleTouchMove),e.removeEventListener("touchend",this.handleTouchEnd),e.removeEventListener("touchcancel",this.handleTouchEnd),window.removeEventListener("scroll",this.handleTouchScroll,!0),this.emitter.trigger("pointerup",this.createEventFromTouch(t)),this.cleanup(),this.isTouchDragging=!1,n+=1,setTimeout(()=>{n-=1},i.config.touchMouseIgnoreWait)}},this.handleTouchScroll=()=>{this.wasTouchScroll=!0},this.handleScroll=t=>{if(!this.shouldIgnoreMove){let e=window.pageXOffset-this.prevScrollX+this.prevPageX,i=window.pageYOffset-this.prevScrollY+this.prevPageY;this.emitter.trigger("pointermove",{origEvent:t,isTouch:this.isTouchDragging,subjectEl:this.subjectEl,pageX:e,pageY:i,deltaX:e-this.origPageX,deltaY:i-this.origPageY})}},this.containerEl=t,this.emitter=new i.Emitter,t.addEventListener("mousedown",this.handleMouseDown),t.addEventListener("touchstart",this.handleTouchStart,{passive:!0}),s+=1,1===s&&window.addEventListener("touchmove",l,{passive:!1})}destroy(){this.containerEl.removeEventListener("mousedown",this.handleMouseDown),this.containerEl.removeEventListener("touchstart",this.handleTouchStart,{passive:!0}),s-=1,s||window.removeEventListener("touchmove",l,{passive:!1})}tryStart(t){let e=this.querySubjectEl(t),n=t.target;return!(!e||this.handleSelector&&!i.elementClosest(n,this.handleSelector))&&(this.subjectEl=e,this.isDragging=!0,this.wasTouchScroll=!1,!0)}cleanup(){r=!1,this.isDragging=!1,this.subjectEl=null,this.destroyScrollWatch()}querySubjectEl(t){return this.selector?i.elementClosest(t.target,this.selector):this.containerEl}shouldIgnoreMouse(){return n||this.isTouchDragging}cancelTouchScroll(){this.isDragging&&(r=!0)}initScrollWatch(t){this.shouldWatchScroll&&(this.recordCoords(t),window.addEventListener("scroll",this.handleScroll,!0))}recordCoords(t){this.shouldWatchScroll&&(this.prevPageX=t.pageX,this.prevPageY=t.pageY,this.prevScrollX=window.pageXOffset,this.prevScrollY=window.pageYOffset)}destroyScrollWatch(){this.shouldWatchScroll&&window.removeEventListener("scroll",this.handleScroll,!0)}createEventFromMouse(t,e){let i=0,n=0;return e?(this.origPageX=t.pageX,this.origPageY=t.pageY):(i=t.pageX-this.origPageX,n=t.pageY-this.origPageY),{origEvent:t,isTouch:!1,subjectEl:this.subjectEl,pageX:t.pageX,pageY:t.pageY,deltaX:i,deltaY:n}}createEventFromTouch(t,e){let i,n,s=t.touches,r=0,o=0;return s&&s.length?(i=s[0].pageX,n=s[0].pageY):(i=t.pageX,n=t.pageY),e?(this.origPageX=i,this.origPageY=n):(r=i-this.origPageX,o=n-this.origPageY),{origEvent:t,isTouch:!0,subjectEl:this.subjectEl,pageX:i,pageY:n,deltaX:r,deltaY:o}}}function l(t){r&&t.preventDefault()}class a{constructor(){this.isVisible=!1,this.sourceEl=null,this.mirrorEl=null,this.sourceElRect=null,this.parentNode=document.body,this.zIndex=9999,this.revertDuration=0}start(t,e,i){this.sourceEl=t,this.sourceElRect=this.sourceEl.getBoundingClientRect(),this.origScreenX=e-window.pageXOffset,this.origScreenY=i-window.pageYOffset,this.deltaX=0,this.deltaY=0,this.updateElPosition()}handleMove(t,e){this.deltaX=t-window.pageXOffset-this.origScreenX,this.deltaY=e-window.pageYOffset-this.origScreenY,this.updateElPosition()}setIsVisible(t){t?this.isVisible||(this.mirrorEl&&(this.mirrorEl.style.display=""),this.isVisible=t,this.updateElPosition()):this.isVisible&&(this.mirrorEl&&(this.mirrorEl.style.display="none"),this.isVisible=t)}stop(t,e){let i=()=>{this.cleanup(),e()};t&&this.mirrorEl&&this.isVisible&&this.revertDuration&&(this.deltaX||this.deltaY)?this.doRevertAnimation(i,this.revertDuration):setTimeout(i,0)}doRevertAnimation(t,e){let n=this.mirrorEl,s=this.sourceEl.getBoundingClientRect();n.style.transition="top "+e+"ms,left "+e+"ms",i.applyStyle(n,{left:s.left,top:s.top}),i.whenTransitionDone(n,()=>{n.style.transition="",t()})}cleanup(){this.mirrorEl&&(i.removeElement(this.mirrorEl),this.mirrorEl=null),this.sourceEl=null}updateElPosition(){this.sourceEl&&this.isVisible&&i.applyStyle(this.getMirrorEl(),{left:this.sourceElRect.left+this.deltaX,top:this.sourceElRect.top+this.deltaY})}getMirrorEl(){let t=this.sourceElRect,e=this.mirrorEl;return e||(e=this.mirrorEl=this.sourceEl.cloneNode(!0),e.style.userSelect="none",e.classList.add("fc-event-dragging"),i.applyStyle(e,{position:"fixed",zIndex:this.zIndex,visibility:"",boxSizing:"border-box",width:t.right-t.left,height:t.bottom-t.top,right:"auto",bottom:"auto",margin:0}),this.parentNode.appendChild(e)),e}}class h extends i.ScrollController{constructor(t,e){super(),this.handleScroll=()=>{this.scrollTop=this.scrollController.getScrollTop(),this.scrollLeft=this.scrollController.getScrollLeft(),this.handleScrollChange()},this.scrollController=t,this.doesListening=e,this.scrollTop=this.origScrollTop=t.getScrollTop(),this.scrollLeft=this.origScrollLeft=t.getScrollLeft(),this.scrollWidth=t.getScrollWidth(),this.scrollHeight=t.getScrollHeight(),this.clientWidth=t.getClientWidth(),this.clientHeight=t.getClientHeight(),this.clientRect=this.computeClientRect(),this.doesListening&&this.getEventTarget().addEventListener("scroll",this.handleScroll)}destroy(){this.doesListening&&this.getEventTarget().removeEventListener("scroll",this.handleScroll)}getScrollTop(){return this.scrollTop}getScrollLeft(){return this.scrollLeft}setScrollTop(t){this.scrollController.setScrollTop(t),this.doesListening||(this.scrollTop=Math.max(Math.min(t,this.getMaxScrollTop()),0),this.handleScrollChange())}setScrollLeft(t){this.scrollController.setScrollLeft(t),this.doesListening||(this.scrollLeft=Math.max(Math.min(t,this.getMaxScrollLeft()),0),this.handleScrollChange())}getClientWidth(){return this.clientWidth}getClientHeight(){return this.clientHeight}getScrollWidth(){return this.scrollWidth}getScrollHeight(){return this.scrollHeight}handleScrollChange(){}}class c extends h{constructor(t,e){super(new i.ElementScrollController(t),e)}getEventTarget(){return this.scrollController.el}computeClientRect(){return i.computeInnerRect(this.scrollController.el)}}class d extends h{constructor(t){super(new i.WindowScrollController,t)}getEventTarget(){return window}computeClientRect(){return{left:this.scrollLeft,right:this.scrollLeft+this.clientWidth,top:this.scrollTop,bottom:this.scrollTop+this.clientHeight}}handleScrollChange(){this.clientRect=this.computeClientRect()}}const g="function"==typeof performance?performance.now:Date.now;class u{constructor(){this.isEnabled=!0,this.scrollQuery=[window,".fc-scroller"],this.edgeThreshold=50,this.maxVelocity=300,this.pointerScreenX=null,this.pointerScreenY=null,this.isAnimating=!1,this.scrollCaches=null,this.everMovedUp=!1,this.everMovedDown=!1,this.everMovedLeft=!1,this.everMovedRight=!1,this.animate=()=>{if(this.isAnimating){let t=this.computeBestEdge(this.pointerScreenX+window.pageXOffset,this.pointerScreenY+window.pageYOffset);if(t){let e=g();this.handleSide(t,(e-this.msSinceRequest)/1e3),this.requestAnimation(e)}else this.isAnimating=!1}}}start(t,e,i){this.isEnabled&&(this.scrollCaches=this.buildCaches(i),this.pointerScreenX=null,this.pointerScreenY=null,this.everMovedUp=!1,this.everMovedDown=!1,this.everMovedLeft=!1,this.everMovedRight=!1,this.handleMove(t,e))}handleMove(t,e){if(this.isEnabled){let i=t-window.pageXOffset,n=e-window.pageYOffset,s=null===this.pointerScreenY?0:n-this.pointerScreenY,r=null===this.pointerScreenX?0:i-this.pointerScreenX;s<0?this.everMovedUp=!0:s>0&&(this.everMovedDown=!0),r<0?this.everMovedLeft=!0:r>0&&(this.everMovedRight=!0),this.pointerScreenX=i,this.pointerScreenY=n,this.isAnimating||(this.isAnimating=!0,this.requestAnimation(g()))}}stop(){if(this.isEnabled){this.isAnimating=!1;for(let t of this.scrollCaches)t.destroy();this.scrollCaches=null}}requestAnimation(t){this.msSinceRequest=t,requestAnimationFrame(this.animate)}handleSide(t,e){let{scrollCache:i}=t,{edgeThreshold:n}=this,s=n-t.distance,r=s*s/(n*n)*this.maxVelocity*e,o=1;switch(t.name){case"left":o=-1;case"right":i.setScrollLeft(i.getScrollLeft()+r*o);break;case"top":o=-1;case"bottom":i.setScrollTop(i.getScrollTop()+r*o)}}computeBestEdge(t,e){let{edgeThreshold:i}=this,n=null,s=this.scrollCaches||[];for(let r of s){let s=r.clientRect,o=t-s.left,l=s.right-t,a=e-s.top,h=s.bottom-e;o>=0&&l>=0&&a>=0&&h>=0&&(a<=i&&this.everMovedUp&&r.canScrollUp()&&(!n||n.distance>a)&&(n={scrollCache:r,name:"top",distance:a}),h<=i&&this.everMovedDown&&r.canScrollDown()&&(!n||n.distance>h)&&(n={scrollCache:r,name:"bottom",distance:h}),o<=i&&this.everMovedLeft&&r.canScrollLeft()&&(!n||n.distance>o)&&(n={scrollCache:r,name:"left",distance:o}),l<=i&&this.everMovedRight&&r.canScrollRight()&&(!n||n.distance>l)&&(n={scrollCache:r,name:"right",distance:l}))}return n}buildCaches(t){return this.queryScrollEls(t).map(t=>t===window?new d(!1):new c(t,!1))}queryScrollEls(t){let e=[];for(let i of this.scrollQuery)"object"==typeof i?e.push(i):e.push(...Array.prototype.slice.call(t.getRootNode().querySelectorAll(i)));return e}}class p extends i.ElementDragging{constructor(t,e){super(t),this.containerEl=t,this.delay=null,this.minDistance=0,this.touchScrollAllowed=!0,this.mirrorNeedsRevert=!1,this.isInteracting=!1,this.isDragging=!1,this.isDelayEnded=!1,this.isDistanceSurpassed=!1,this.delayTimeoutId=null,this.onPointerDown=t=>{this.isDragging||(this.isInteracting=!0,this.isDelayEnded=!1,this.isDistanceSurpassed=!1,i.preventSelection(document.body),i.preventContextMenu(document.body),t.isTouch||t.origEvent.preventDefault(),this.emitter.trigger("pointerdown",t),this.isInteracting&&!this.pointer.shouldIgnoreMove&&(this.mirror.setIsVisible(!1),this.mirror.start(t.subjectEl,t.pageX,t.pageY),this.startDelay(t),this.minDistance||this.handleDistanceSurpassed(t)))},this.onPointerMove=t=>{if(this.isInteracting){if(this.emitter.trigger("pointermove",t),!this.isDistanceSurpassed){let e,i=this.minDistance,{deltaX:n,deltaY:s}=t;e=n*n+s*s,e>=i*i&&this.handleDistanceSurpassed(t)}this.isDragging&&("scroll"!==t.origEvent.type&&(this.mirror.handleMove(t.pageX,t.pageY),this.autoScroller.handleMove(t.pageX,t.pageY)),this.emitter.trigger("dragmove",t))}},this.onPointerUp=t=>{this.isInteracting&&(this.isInteracting=!1,i.allowSelection(document.body),i.allowContextMenu(document.body),this.emitter.trigger("pointerup",t),this.isDragging&&(this.autoScroller.stop(),this.tryStopDrag(t)),this.delayTimeoutId&&(clearTimeout(this.delayTimeoutId),this.delayTimeoutId=null))};let n=this.pointer=new o(t);n.emitter.on("pointerdown",this.onPointerDown),n.emitter.on("pointermove",this.onPointerMove),n.emitter.on("pointerup",this.onPointerUp),e&&(n.selector=e),this.mirror=new a,this.autoScroller=new u}destroy(){this.pointer.destroy(),this.onPointerUp({})}startDelay(t){"number"==typeof this.delay?this.delayTimeoutId=setTimeout(()=>{this.delayTimeoutId=null,this.handleDelayEnd(t)},this.delay):this.handleDelayEnd(t)}handleDelayEnd(t){this.isDelayEnded=!0,this.tryStartDrag(t)}handleDistanceSurpassed(t){this.isDistanceSurpassed=!0,this.tryStartDrag(t)}tryStartDrag(t){this.isDelayEnded&&this.isDistanceSurpassed&&(this.pointer.wasTouchScroll&&!this.touchScrollAllowed||(this.isDragging=!0,this.mirrorNeedsRevert=!1,this.autoScroller.start(t.pageX,t.pageY,this.containerEl),this.emitter.trigger("dragstart",t),!1===this.touchScrollAllowed&&this.pointer.cancelTouchScroll()))}tryStopDrag(t){this.mirror.stop(this.mirrorNeedsRevert,this.stopDrag.bind(this,t))}stopDrag(t){this.isDragging=!1,this.emitter.trigger("dragend",t)}setIgnoreMove(t){this.pointer.shouldIgnoreMove=t}setMirrorIsVisible(t){this.mirror.setIsVisible(t)}setMirrorNeedsRevert(t){this.mirrorNeedsRevert=t}setAutoScrollEnabled(t){this.autoScroller.isEnabled=t}}class v{constructor(t){this.origRect=i.computeRect(t),this.scrollCaches=i.getClippingParents(t).map(t=>new c(t,!0))}destroy(){for(let t of this.scrollCaches)t.destroy()}computeLeft(){let t=this.origRect.left;for(let e of this.scrollCaches)t+=e.origScrollLeft-e.getScrollLeft();return t}computeTop(){let t=this.origRect.top;for(let e of this.scrollCaches)t+=e.origScrollTop-e.getScrollTop();return t}isWithinClipping(t,e){let n={left:t,top:e};for(let t of this.scrollCaches)if(!E(t.getEventTarget())&&!i.pointInsideRect(n,t.clientRect))return!1;return!0}}function E(t){let e=t.tagName;return"HTML"===e||"BODY"===e}class m{constructor(t,e){this.useSubjectCenter=!1,this.requireInitial=!0,this.initialHit=null,this.movingHit=null,this.finalHit=null,this.handlePointerDown=t=>{let{dragging:e}=this;this.initialHit=null,this.movingHit=null,this.finalHit=null,this.prepareHits(),this.processFirstCoord(t),this.initialHit||!this.requireInitial?(e.setIgnoreMove(!1),this.emitter.trigger("pointerdown",t)):e.setIgnoreMove(!0)},this.handleDragStart=t=>{this.emitter.trigger("dragstart",t),this.handleMove(t,!0)},this.handleDragMove=t=>{this.emitter.trigger("dragmove",t),this.handleMove(t)},this.handlePointerUp=t=>{this.releaseHits(),this.emitter.trigger("pointerup",t)},this.handleDragEnd=t=>{this.movingHit&&this.emitter.trigger("hitupdate",null,!0,t),this.finalHit=this.movingHit,this.movingHit=null,this.emitter.trigger("dragend",t)},this.droppableStore=e,t.emitter.on("pointerdown",this.handlePointerDown),t.emitter.on("dragstart",this.handleDragStart),t.emitter.on("dragmove",this.handleDragMove),t.emitter.on("pointerup",this.handlePointerUp),t.emitter.on("dragend",this.handleDragEnd),this.dragging=t,this.emitter=new i.Emitter}processFirstCoord(t){let e,n={left:t.pageX,top:t.pageY},s=n,r=t.subjectEl;r instanceof HTMLElement&&(e=i.computeRect(r),s=i.constrainPoint(s,e));let o=this.initialHit=this.queryHitForOffset(s.left,s.top);if(o){if(this.useSubjectCenter&&e){let t=i.intersectRects(e,o.rect);t&&(s=i.getRectCenter(t))}this.coordAdjust=i.diffPoints(s,n)}else this.coordAdjust={left:0,top:0}}handleMove(t,e){let i=this.queryHitForOffset(t.pageX+this.coordAdjust.left,t.pageY+this.coordAdjust.top);!e&&S(this.movingHit,i)||(this.movingHit=i,this.emitter.trigger("hitupdate",i,!1,t))}prepareHits(){this.offsetTrackers=i.mapHash(this.droppableStore,t=>(t.component.prepareHits(),new v(t.el)))}releaseHits(){let{offsetTrackers:t}=this;for(let e in t)t[e].destroy();this.offsetTrackers={}}queryHitForOffset(t,e){let{droppableStore:n,offsetTrackers:s}=this,r=null;for(let o in n){let l=n[o].component,a=s[o];if(a&&a.isWithinClipping(t,e)){let n=a.computeLeft(),s=a.computeTop(),h=t-n,c=e-s,{origRect:d}=a,g=d.right-d.left,u=d.bottom-d.top;if(h>=0&&h<g&&c>=0&&c<u){let t=l.queryHit(h,c,g,u);t&&i.rangeContainsRange(t.dateProfile.activeRange,t.dateSpan.range)&&(!r||t.layer>r.layer)&&(t.componentId=o,t.context=l.context,t.rect.left+=n,t.rect.right+=n,t.rect.top+=s,t.rect.bottom+=s,r=t)}}}return r}}function S(t,e){return!t&&!e||Boolean(t)===Boolean(e)&&i.isDateSpansEqual(t.dateSpan,e.dateSpan)}function f(t,e){let i={};for(let n of e.pluginHooks.datePointTransforms)Object.assign(i,n(t,e));var n,s;return Object.assign(i,(n=t,{date:(s=e.dateEnv).toDate(n.range.start),dateStr:s.formatIso(n.range.start,{omitTime:n.allDay}),allDay:n.allDay})),i}class D extends i.Interaction{constructor(t){super(t),this.handlePointerDown=t=>{let{dragging:e}=this,i=t.origEvent.target;e.setIgnoreMove(!this.component.isValidDateDownEl(i))},this.handleDragEnd=t=>{let{component:e}=this,{pointer:i}=this.dragging;if(!i.wasTouchScroll){let{initialHit:i,finalHit:n}=this.hitDragging;if(i&&n&&S(i,n)){let{context:n}=e,s=Object.assign(Object.assign({},f(i.dateSpan,n)),{dayEl:i.dayEl,jsEvent:t.origEvent,view:n.viewApi||n.calendarApi.view});n.emitter.trigger("dateClick",s)}}},this.dragging=new p(t.el),this.dragging.autoScroller.isEnabled=!1;let e=this.hitDragging=new m(this.dragging,i.interactionSettingsToStore(t));e.emitter.on("pointerdown",this.handlePointerDown),e.emitter.on("dragend",this.handleDragEnd)}destroy(){this.dragging.destroy()}}class y extends i.Interaction{constructor(t){super(t),this.dragSelection=null,this.handlePointerDown=t=>{let{component:e,dragging:i}=this,{options:n}=e.context,s=n.selectable&&e.isValidDateDownEl(t.origEvent.target);i.setIgnoreMove(!s),i.delay=t.isTouch?function(t){let{options:e}=t.context,i=e.selectLongPressDelay;null==i&&(i=e.longPressDelay);return i}(e):null},this.handleDragStart=t=>{this.component.context.calendarApi.unselect(t)},this.handleHitUpdate=(t,e)=>{let{context:n}=this.component,s=null,r=!1;if(t){let e=this.hitDragging.initialHit;t.componentId===e.componentId&&this.isHitComboAllowed&&!this.isHitComboAllowed(e,t)||(s=function(t,e,n){let s=t.dateSpan,r=e.dateSpan,o=[s.range.start,s.range.end,r.range.start,r.range.end];o.sort(i.compareNumbers);let l={};for(let i of n){let n=i(t,e);if(!1===n)return null;n&&Object.assign(l,n)}return l.range={start:o[0],end:o[3]},l.allDay=s.allDay,l}(e,t,n.pluginHooks.dateSelectionTransformers)),s&&i.isDateSelectionValid(s,t.dateProfile,n)||(r=!0,s=null)}s?n.dispatch({type:"SELECT_DATES",selection:s}):e||n.dispatch({type:"UNSELECT_DATES"}),r?i.disableCursor():i.enableCursor(),e||(this.dragSelection=s)},this.handlePointerUp=t=>{this.dragSelection&&(i.triggerDateSelect(this.dragSelection,t,this.component.context),this.dragSelection=null)};let{component:e}=t,{options:n}=e.context,s=this.dragging=new p(t.el);s.touchScrollAllowed=!1,s.minDistance=n.selectMinDistance||0,s.autoScroller.isEnabled=n.dragScroll;let r=this.hitDragging=new m(this.dragging,i.interactionSettingsToStore(t));r.emitter.on("pointerdown",this.handlePointerDown),r.emitter.on("dragstart",this.handleDragStart),r.emitter.on("hitupdate",this.handleHitUpdate),r.emitter.on("pointerup",this.handlePointerUp)}destroy(){this.dragging.destroy()}}class w extends i.Interaction{constructor(t){super(t),this.subjectEl=null,this.subjectSeg=null,this.isDragging=!1,this.eventRange=null,this.relevantEvents=null,this.receivingContext=null,this.validMutation=null,this.mutatedRelevantEvents=null,this.handlePointerDown=t=>{let e=t.origEvent.target,{component:n,dragging:s}=this,{mirror:r}=s,{options:o}=n.context,l=n.context;this.subjectEl=t.subjectEl;let a=this.subjectSeg=i.getElSeg(t.subjectEl),h=(this.eventRange=a.eventRange).instance.instanceId;this.relevantEvents=i.getRelevantEvents(l.getCurrentData().eventStore,h),s.minDistance=t.isTouch?0:o.eventDragMinDistance,s.delay=t.isTouch&&h!==n.props.eventSelection?function(t){let{options:e}=t.context,i=e.eventLongPressDelay;null==i&&(i=e.longPressDelay);return i}(n):null,o.fixedMirrorParent?r.parentNode=o.fixedMirrorParent:r.parentNode=i.elementClosest(e,".fc"),r.revertDuration=o.dragRevertDuration;let c=n.isValidSegDownEl(e)&&!i.elementClosest(e,".fc-event-resizer");s.setIgnoreMove(!c),this.isDragging=c&&t.subjectEl.classList.contains("fc-event-draggable")},this.handleDragStart=t=>{let e=this.component.context,n=this.eventRange,s=n.instance.instanceId;t.isTouch?s!==this.component.props.eventSelection&&e.dispatch({type:"SELECT_EVENT",eventInstanceId:s}):e.dispatch({type:"UNSELECT_EVENT"}),this.isDragging&&(e.calendarApi.unselect(t),e.emitter.trigger("eventDragStart",{el:this.subjectEl,event:new i.EventImpl(e,n.def,n.instance),jsEvent:t.origEvent,view:e.viewApi}))},this.handleHitUpdate=(t,e)=>{if(!this.isDragging)return;let n=this.relevantEvents,s=this.hitDragging.initialHit,r=this.component.context,o=null,l=null,a=null,h=!1,c={affectedEvents:n,mutatedEvents:i.createEmptyEventStore(),isEvent:!0};if(t){o=t.context;let e=o.options;r===o||e.editable&&e.droppable?(l=function(t,e,n){let s=t.dateSpan,r=e.dateSpan,o=s.range.start,l=r.range.start,a={};s.allDay!==r.allDay&&(a.allDay=r.allDay,a.hasEnd=e.context.options.allDayMaintainDuration,r.allDay&&(o=i.startOfDay(o)));let h=i.diffDates(o,l,t.context.dateEnv,t.componentId===e.componentId?t.largeUnit:null);h.milliseconds&&(a.allDay=!1);let c={datesDelta:h,standardProps:a};for(let i of n)i(c,t,e);return c}(s,t,o.getCurrentData().pluginHooks.eventDragMutationMassagers),l&&(a=i.applyMutationToEventStore(n,o.getCurrentData().eventUiBases,l,o),c.mutatedEvents=a,i.isInteractionValid(c,t.dateProfile,o)||(h=!0,l=null,a=null,c.mutatedEvents=i.createEmptyEventStore()))):o=null}this.displayDrag(o,c),h?i.disableCursor():i.enableCursor(),e||(r===o&&S(s,t)&&(l=null),this.dragging.setMirrorNeedsRevert(!l),this.dragging.setMirrorIsVisible(!t||!this.subjectEl.getRootNode().querySelector(".fc-event-mirror")),this.receivingContext=o,this.validMutation=l,this.mutatedRelevantEvents=a)},this.handlePointerUp=()=>{this.isDragging||this.cleanup()},this.handleDragEnd=t=>{if(this.isDragging){let e=this.component.context,n=e.viewApi,{receivingContext:s,validMutation:r}=this,o=this.eventRange.def,l=this.eventRange.instance,a=new i.EventImpl(e,o,l),h=this.relevantEvents,c=this.mutatedRelevantEvents,{finalHit:d}=this.hitDragging;if(this.clearDrag(),e.emitter.trigger("eventDragStop",{el:this.subjectEl,event:a,jsEvent:t.origEvent,view:n}),r){if(s===e){let s=new i.EventImpl(e,c.defs[o.defId],l?c.instances[l.instanceId]:null);e.dispatch({type:"MERGE_EVENTS",eventStore:c});let d={oldEvent:a,event:s,relatedEvents:i.buildEventApis(c,e,l),revert(){e.dispatch({type:"MERGE_EVENTS",eventStore:h})}},g={};for(let t of e.getCurrentData().pluginHooks.eventDropTransformers)Object.assign(g,t(r,e));e.emitter.trigger("eventDrop",Object.assign(Object.assign(Object.assign({},d),g),{el:t.subjectEl,delta:r.datesDelta,jsEvent:t.origEvent,view:n})),e.emitter.trigger("eventChange",d)}else if(s){let r={event:a,relatedEvents:i.buildEventApis(h,e,l),revert(){e.dispatch({type:"MERGE_EVENTS",eventStore:h})}};e.emitter.trigger("eventLeave",Object.assign(Object.assign({},r),{draggedEl:t.subjectEl,view:n})),e.dispatch({type:"REMOVE_EVENTS",eventStore:h}),e.emitter.trigger("eventRemove",r);let g=c.defs[o.defId],u=c.instances[l.instanceId],p=new i.EventImpl(s,g,u);s.dispatch({type:"MERGE_EVENTS",eventStore:c});let v={event:p,relatedEvents:i.buildEventApis(c,s,u),revert(){s.dispatch({type:"REMOVE_EVENTS",eventStore:c})}};s.emitter.trigger("eventAdd",v),t.isTouch&&s.dispatch({type:"SELECT_EVENT",eventInstanceId:l.instanceId}),s.emitter.trigger("drop",Object.assign(Object.assign({},f(d.dateSpan,s)),{draggedEl:t.subjectEl,jsEvent:t.origEvent,view:d.context.viewApi})),s.emitter.trigger("eventReceive",Object.assign(Object.assign({},v),{draggedEl:t.subjectEl,view:d.context.viewApi}))}}else e.emitter.trigger("_noEventDrop")}this.cleanup()};let{component:e}=this,{options:n}=e.context,s=this.dragging=new p(t.el);s.pointer.selector=w.SELECTOR,s.touchScrollAllowed=!1,s.autoScroller.isEnabled=n.dragScroll;let r=this.hitDragging=new m(this.dragging,i.interactionSettingsStore);r.useSubjectCenter=t.useEventCenter,r.emitter.on("pointerdown",this.handlePointerDown),r.emitter.on("dragstart",this.handleDragStart),r.emitter.on("hitupdate",this.handleHitUpdate),r.emitter.on("pointerup",this.handlePointerUp),r.emitter.on("dragend",this.handleDragEnd)}destroy(){this.dragging.destroy()}displayDrag(t,e){let n=this.component.context,s=this.receivingContext;s&&s!==t&&(s===n?s.dispatch({type:"SET_EVENT_DRAG",state:{affectedEvents:e.affectedEvents,mutatedEvents:i.createEmptyEventStore(),isEvent:!0}}):s.dispatch({type:"UNSET_EVENT_DRAG"})),t&&t.dispatch({type:"SET_EVENT_DRAG",state:e})}clearDrag(){let t=this.component.context,{receivingContext:e}=this;e&&e.dispatch({type:"UNSET_EVENT_DRAG"}),t!==e&&t.dispatch({type:"UNSET_EVENT_DRAG"})}cleanup(){this.subjectSeg=null,this.isDragging=!1,this.eventRange=null,this.relevantEvents=null,this.receivingContext=null,this.validMutation=null,this.mutatedRelevantEvents=null}}w.SELECTOR=".fc-event-draggable, .fc-event-resizable";class T extends i.Interaction{constructor(t){super(t),this.draggingSegEl=null,this.draggingSeg=null,this.eventRange=null,this.relevantEvents=null,this.validMutation=null,this.mutatedRelevantEvents=null,this.handlePointerDown=t=>{let{component:e}=this,n=this.querySegEl(t),s=i.getElSeg(n),r=this.eventRange=s.eventRange;this.dragging.minDistance=e.context.options.eventDragMinDistance,this.dragging.setIgnoreMove(!this.component.isValidSegDownEl(t.origEvent.target)||t.isTouch&&this.component.props.eventSelection!==r.instance.instanceId)},this.handleDragStart=t=>{let{context:e}=this.component,n=this.eventRange;this.relevantEvents=i.getRelevantEvents(e.getCurrentData().eventStore,this.eventRange.instance.instanceId);let s=this.querySegEl(t);this.draggingSegEl=s,this.draggingSeg=i.getElSeg(s),e.calendarApi.unselect(),e.emitter.trigger("eventResizeStart",{el:s,event:new i.EventImpl(e,n.def,n.instance),jsEvent:t.origEvent,view:e.viewApi})},this.handleHitUpdate=(t,e,n)=>{let{context:s}=this.component,r=this.relevantEvents,o=this.hitDragging.initialHit,l=this.eventRange.instance,a=null,h=null,c=!1,d={affectedEvents:r,mutatedEvents:i.createEmptyEventStore(),isEvent:!0};if(t){t.componentId===o.componentId&&this.isHitComboAllowed&&!this.isHitComboAllowed(o,t)||(a=function(t,e,n,s){let r=t.context.dateEnv,o=t.dateSpan.range.start,l=e.dateSpan.range.start,a=i.diffDates(o,l,r,t.largeUnit);if(n){if(r.add(s.start,a)<s.end)return{startDelta:a}}else if(r.add(s.end,a)>s.start)return{endDelta:a};return null}(o,t,n.subjectEl.classList.contains("fc-event-resizer-start"),l.range))}a&&(h=i.applyMutationToEventStore(r,s.getCurrentData().eventUiBases,a,s),d.mutatedEvents=h,i.isInteractionValid(d,t.dateProfile,s)||(c=!0,a=null,h=null,d.mutatedEvents=null)),h?s.dispatch({type:"SET_EVENT_RESIZE",state:d}):s.dispatch({type:"UNSET_EVENT_RESIZE"}),c?i.disableCursor():i.enableCursor(),e||(a&&S(o,t)&&(a=null),this.validMutation=a,this.mutatedRelevantEvents=h)},this.handleDragEnd=t=>{let{context:e}=this.component,n=this.eventRange.def,s=this.eventRange.instance,r=new i.EventImpl(e,n,s),o=this.relevantEvents,l=this.mutatedRelevantEvents;if(e.emitter.trigger("eventResizeStop",{el:this.draggingSegEl,event:r,jsEvent:t.origEvent,view:e.viewApi}),this.validMutation){let a=new i.EventImpl(e,l.defs[n.defId],s?l.instances[s.instanceId]:null);e.dispatch({type:"MERGE_EVENTS",eventStore:l});let h={oldEvent:r,event:a,relatedEvents:i.buildEventApis(l,e,s),revert(){e.dispatch({type:"MERGE_EVENTS",eventStore:o})}};e.emitter.trigger("eventResize",Object.assign(Object.assign({},h),{el:this.draggingSegEl,startDelta:this.validMutation.startDelta||i.createDuration(0),endDelta:this.validMutation.endDelta||i.createDuration(0),jsEvent:t.origEvent,view:e.viewApi})),e.emitter.trigger("eventChange",h)}else e.emitter.trigger("_noEventResize");this.draggingSeg=null,this.relevantEvents=null,this.validMutation=null};let{component:e}=t,n=this.dragging=new p(t.el);n.pointer.selector=".fc-event-resizer",n.touchScrollAllowed=!1,n.autoScroller.isEnabled=e.context.options.dragScroll;let s=this.hitDragging=new m(this.dragging,i.interactionSettingsToStore(t));s.emitter.on("pointerdown",this.handlePointerDown),s.emitter.on("dragstart",this.handleDragStart),s.emitter.on("hitupdate",this.handleHitUpdate),s.emitter.on("dragend",this.handleDragEnd)}destroy(){this.dragging.destroy()}querySegEl(t){return i.elementClosest(t.subjectEl,".fc-event")}}const M={fixedMirrorParent:i.identity},b={dateClick:i.identity,eventDragStart:i.identity,eventDragStop:i.identity,eventDrop:i.identity,eventResizeStart:i.identity,eventResizeStop:i.identity,eventResize:i.identity,drop:i.identity,eventReceive:i.identity,eventLeave:i.identity};class C{constructor(t,e){this.receivingContext=null,this.droppableEvent=null,this.suppliedDragMeta=null,this.dragMeta=null,this.handleDragStart=t=>{this.dragMeta=this.buildDragMeta(t.subjectEl)},this.handleHitUpdate=(t,e,n)=>{let{dragging:s}=this.hitDragging,r=null,o=null,l=!1,a={affectedEvents:i.createEmptyEventStore(),mutatedEvents:i.createEmptyEventStore(),isEvent:this.dragMeta.create};t&&(r=t.context,this.canDropElOnCalendar(n.subjectEl,r)&&(o=function(t,e,n){let s=Object.assign({},e.leftoverProps);for(let i of n.pluginHooks.externalDefTransforms)Object.assign(s,i(t,e));let{refined:r,extra:o}=i.refineEventDef(s,n),l=i.parseEventDef(r,o,e.sourceId,t.allDay,n.options.forceEventDuration||Boolean(e.duration),n),a=t.range.start;t.allDay&&e.startTime&&(a=n.dateEnv.add(a,e.startTime));let h=e.duration?n.dateEnv.add(a,e.duration):i.getDefaultEventEnd(t.allDay,a,n),c=i.createEventInstance(l.defId,{start:a,end:h});return{def:l,instance:c}}(t.dateSpan,this.dragMeta,r),a.mutatedEvents=i.eventTupleToStore(o),l=!i.isInteractionValid(a,t.dateProfile,r),l&&(a.mutatedEvents=i.createEmptyEventStore(),o=null))),this.displayDrag(r,a),s.setMirrorIsVisible(e||!o||!document.querySelector(".fc-event-mirror")),l?i.disableCursor():i.enableCursor(),e||(s.setMirrorNeedsRevert(!o),this.receivingContext=r,this.droppableEvent=o)},this.handleDragEnd=t=>{let{receivingContext:e,droppableEvent:n}=this;if(this.clearDrag(),e&&n){let s=this.hitDragging.finalHit,r=s.context.viewApi,o=this.dragMeta;if(e.emitter.trigger("drop",Object.assign(Object.assign({},f(s.dateSpan,e)),{draggedEl:t.subjectEl,jsEvent:t.origEvent,view:r})),o.create){let s=i.eventTupleToStore(n);e.dispatch({type:"MERGE_EVENTS",eventStore:s}),t.isTouch&&e.dispatch({type:"SELECT_EVENT",eventInstanceId:n.instance.instanceId}),e.emitter.trigger("eventReceive",{event:new i.EventImpl(e,n.def,n.instance),relatedEvents:[],revert(){e.dispatch({type:"REMOVE_EVENTS",eventStore:s})},draggedEl:t.subjectEl,view:r})}}this.receivingContext=null,this.droppableEvent=null};let n=this.hitDragging=new m(t,i.interactionSettingsStore);n.requireInitial=!1,n.emitter.on("dragstart",this.handleDragStart),n.emitter.on("hitupdate",this.handleHitUpdate),n.emitter.on("dragend",this.handleDragEnd),this.suppliedDragMeta=e}buildDragMeta(t){return"object"==typeof this.suppliedDragMeta?i.parseDragMeta(this.suppliedDragMeta):"function"==typeof this.suppliedDragMeta?i.parseDragMeta(this.suppliedDragMeta(t)):function(t){let e=function(t,e){let n=i.config.dataAttrPrefix,s=(n?n+"-":"")+e;return t.getAttribute("data-"+s)||""}(t,"event"),n=e?JSON.parse(e):{create:!1};return i.parseDragMeta(n)}(t)}displayDrag(t,e){let i=this.receivingContext;i&&i!==t&&i.dispatch({type:"UNSET_EVENT_DRAG"}),t&&t.dispatch({type:"SET_EVENT_DRAG",state:e})}clearDrag(){this.receivingContext&&this.receivingContext.dispatch({type:"UNSET_EVENT_DRAG"})}canDropElOnCalendar(t,e){let n=e.options.dropAccept;return"function"==typeof n?n.call(e.calendarApi,t):"string"!=typeof n||!n||Boolean(i.elementMatches(t,n))}}i.config.dataAttrPrefix="";class R extends i.ElementDragging{constructor(t){super(t),this.shouldIgnoreMove=!1,this.mirrorSelector="",this.currentMirrorEl=null,this.handlePointerDown=t=>{this.emitter.trigger("pointerdown",t),this.shouldIgnoreMove||this.emitter.trigger("dragstart",t)},this.handlePointerMove=t=>{this.shouldIgnoreMove||this.emitter.trigger("dragmove",t)},this.handlePointerUp=t=>{this.emitter.trigger("pointerup",t),this.shouldIgnoreMove||this.emitter.trigger("dragend",t)};let e=this.pointer=new o(t);e.emitter.on("pointerdown",this.handlePointerDown),e.emitter.on("pointermove",this.handlePointerMove),e.emitter.on("pointerup",this.handlePointerUp)}destroy(){this.pointer.destroy()}setIgnoreMove(t){this.shouldIgnoreMove=t}setMirrorIsVisible(t){if(t)this.currentMirrorEl&&(this.currentMirrorEl.style.visibility="",this.currentMirrorEl=null);else{let t=this.mirrorSelector?document.querySelector(this.mirrorSelector):null;t&&(this.currentMirrorEl=t,t.style.visibility="hidden")}}}var I=e.createPlugin({name:"@fullcalendar/interaction",componentInteractions:[D,y,w,T],calendarInteractions:[class{constructor(t){this.context=t,this.isRecentPointerDateSelect=!1,this.matchesCancel=!1,this.matchesEvent=!1,this.onSelect=t=>{t.jsEvent&&(this.isRecentPointerDateSelect=!0)},this.onDocumentPointerDown=t=>{let e=this.context.options.unselectCancel,n=i.getEventTargetViaRoot(t.origEvent);this.matchesCancel=!!i.elementClosest(n,e),this.matchesEvent=!!i.elementClosest(n,w.SELECTOR)},this.onDocumentPointerUp=t=>{let{context:e}=this,{documentPointer:i}=this,n=e.getCurrentData();if(!i.wasTouchScroll){if(n.dateSelection&&!this.isRecentPointerDateSelect){let i=e.options.unselectAuto;!i||i&&this.matchesCancel||e.calendarApi.unselect(t)}n.eventSelection&&!this.matchesEvent&&e.dispatch({type:"UNSELECT_EVENT"})}this.isRecentPointerDateSelect=!1};let e=this.documentPointer=new o(document);e.shouldIgnoreMove=!0,e.shouldWatchScroll=!1,e.emitter.on("pointerdown",this.onDocumentPointerDown),e.emitter.on("pointerup",this.onDocumentPointerUp),t.emitter.on("select",this.onSelect)}destroy(){this.context.emitter.off("select",this.onSelect),this.documentPointer.destroy()}}],elementDraggingImpl:p,optionRefiners:M,listenerRefiners:b});return e.globalPlugins.push(I),t.Draggable=class{constructor(t,e={}){this.handlePointerDown=t=>{let{dragging:e}=this,{minDistance:n,longPressDelay:s}=this.settings;e.minDistance=null!=n?n:t.isTouch?0:i.BASE_OPTION_DEFAULTS.eventDragMinDistance,e.delay=t.isTouch?null!=s?s:i.BASE_OPTION_DEFAULTS.longPressDelay:0},this.handleDragStart=t=>{t.isTouch&&this.dragging.delay&&t.subjectEl.classList.contains("fc-event")&&this.dragging.mirror.getMirrorEl().classList.add("fc-event-selected")},this.settings=e;let n=this.dragging=new p(t);n.touchScrollAllowed=!1,null!=e.itemSelector&&(n.pointer.selector=e.itemSelector),null!=e.appendTo&&(n.mirror.parentNode=e.appendTo),n.emitter.on("pointerdown",this.handlePointerDown),n.emitter.on("dragstart",this.handleDragStart),new C(n,e.eventData)}destroy(){this.dragging.destroy()}},t.ThirdPartyDraggable=class{constructor(t,e){let i=document;t===document||t instanceof Element?(i=t,e=e||{}):e=t||{};let n=this.dragging=new R(i);"string"==typeof e.itemSelector?n.pointer.selector=e.itemSelector:i===document&&(n.pointer.selector="[data-event]"),"string"==typeof e.mirrorSelector&&(n.mirrorSelector=e.mirrorSelector),new C(n,e.eventData)}destroy(){this.dragging.destroy()}},t.default=I,Object.defineProperty(t,"__esModule",{value:!0}),t}({},FullCalendar,FullCalendar.Internal); \ No newline at end of file
diff --git a/library/fullcalendar/packages/list/index.global.js b/library/fullcalendar/packages/list/index.global.js
index 1922e7d93..1896d7979 100644
--- a/library/fullcalendar/packages/list/index.global.js
+++ b/library/fullcalendar/packages/list/index.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar List View Plugin v6.0.3
+FullCalendar List View Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/list-view
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
FullCalendar.List = (function (exports, core, internal$1, preact) {
'use strict';
@@ -31,7 +31,7 @@ FullCalendar.List = (function (exports, core, internal$1, preact) {
...internal$1.getDayClassNames(dayMeta, theme),
], elAttrs: {
'data-date': internal$1.formatDayString(dayDate),
- }, renderProps: renderProps, generatorName: "dayHeaderContent", generator: options.dayHeaderContent || renderInnerContent, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContent) => ( // TODO: force-hide top border based on :first-child
+ }, renderProps: renderProps, generatorName: "dayHeaderContent", customGenerator: options.dayHeaderContent, defaultGenerator: renderInnerContent, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContent) => ( // TODO: force-hide top border based on :first-child
preact.createElement("th", { scope: "colgroup", colSpan: 3, id: cellId, "aria-labelledby": textId },
preact.createElement(InnerContent, { elTag: "div", elClasses: [
'fc-list-day-cushion',
@@ -103,7 +103,7 @@ FullCalendar.List = (function (exports, core, internal$1, preact) {
};
return (preact.createElement(internal$1.ContentContainer, { elTag: "td", elClasses: ['fc-list-event-time'], elAttrs: {
headers: `${timeHeaderId} ${dateHeaderId}`,
- }, renderProps: renderProps, generatorName: "allDayContent", generator: options.allDayContent || renderAllDayInner, classNameGenerator: options.allDayClassNames, didMount: options.allDayDidMount, willUnmount: options.allDayWillUnmount }));
+ }, renderProps: renderProps, generatorName: "allDayContent", customGenerator: options.allDayContent, defaultGenerator: renderAllDayInner, classNameGenerator: options.allDayClassNames, didMount: options.allDayDidMount, willUnmount: options.allDayWillUnmount }));
}
return (preact.createElement("td", { className: "fc-list-event-time" }, timeText));
}
@@ -158,7 +158,7 @@ FullCalendar.List = (function (exports, core, internal$1, preact) {
text: options.noEventsText,
view: viewApi,
};
- return (preact.createElement(internal$1.ContentContainer, { elTag: "div", elClasses: ['fc-list-empty'], renderProps: renderProps, generatorName: "noEventsContent", generator: options.noEventsContent || renderNoEventsInner, classNameGenerator: options.noEventsClassNames, didMount: options.noEventsDidMount, willUnmount: options.noEventsWillUnmount }, (InnerContent) => (preact.createElement(InnerContent, { elTag: "div", elClasses: ['fc-list-empty-cushion'] }))));
+ return (preact.createElement(internal$1.ContentContainer, { elTag: "div", elClasses: ['fc-list-empty'], renderProps: renderProps, generatorName: "noEventsContent", customGenerator: options.noEventsContent, defaultGenerator: renderNoEventsInner, classNameGenerator: options.noEventsClassNames, didMount: options.noEventsDidMount, willUnmount: options.noEventsWillUnmount }, (InnerContent) => (preact.createElement(InnerContent, { elTag: "div", elClasses: ['fc-list-empty-cushion'] }))));
}
renderSegList(allSegs, dayDates) {
let { theme, options } = this.context;
diff --git a/library/fullcalendar/packages/list/index.global.min.js b/library/fullcalendar/packages/list/index.global.min.js
index 3fbd91434..f7a0b5ede 100644
--- a/library/fullcalendar/packages/list/index.global.min.js
+++ b/library/fullcalendar/packages/list/index.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar List View Plugin v6.0.3
+FullCalendar List View Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/list-view
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-FullCalendar.List=function(e,t,n,a){"use strict";class i extends n.BaseComponent{constructor(){super(...arguments),this.state={textId:n.getUniqueDomId()}}render(){let{theme:e,dateEnv:t,options:i,viewApi:s}=this.context,{cellId:l,dayDate:o,todayRange:d}=this.props,{textId:c}=this.state,f=n.getDateMeta(o,d),g=i.listDayFormat?t.format(o,i.listDayFormat):"",u=i.listDaySideFormat?t.format(o,i.listDaySideFormat):"",m=Object.assign({date:t.toDate(o),view:s,textId:c,text:g,sideText:u,navLinkAttrs:n.buildNavLinkAttrs(this.context,o),sideNavLinkAttrs:n.buildNavLinkAttrs(this.context,o,"day",!1)},f);return a.createElement(n.ContentContainer,{elTag:"tr",elClasses:["fc-list-day",...n.getDayClassNames(f,e)],elAttrs:{"data-date":n.formatDayString(o)},renderProps:m,generatorName:"dayHeaderContent",generator:i.dayHeaderContent||r,classNameGenerator:i.dayHeaderClassNames,didMount:i.dayHeaderDidMount,willUnmount:i.dayHeaderWillUnmount},t=>a.createElement("th",{scope:"colgroup",colSpan:3,id:l,"aria-labelledby":c},a.createElement(t,{elTag:"div",elClasses:["fc-list-day-cushion",e.getClass("tableCellShaded")]})))}}function r(e){return a.createElement(a.Fragment,null,e.text&&a.createElement("a",Object.assign({id:e.textId,className:"fc-list-day-text"},e.navLinkAttrs),e.text),e.sideText&&a.createElement("a",Object.assign({"aria-hidden":!0,className:"fc-list-day-side-text"},e.sideNavLinkAttrs),e.sideText))}const s=n.createFormatter({hour:"numeric",minute:"2-digit",meridiem:"short"});class l extends n.BaseComponent{render(){let{props:e,context:t}=this,{options:i}=t,{seg:r,timeHeaderId:l,eventHeaderId:d,dateHeaderId:c}=e,f=i.eventTimeFormat||s;return a.createElement(n.EventContainer,Object.assign({},e,{elTag:"tr",elClasses:["fc-list-event",r.eventRange.def.url&&"fc-event-forced-url"],defaultGenerator:()=>function(e,t){let i=n.getSegAnchorAttrs(e,t);return a.createElement("a",Object.assign({},i),e.eventRange.def.title)}(r,t),seg:r,timeText:"",disableDragging:!0,disableResizing:!0}),(e,i)=>a.createElement(a.Fragment,null,function(e,t,i,r,s){let{options:l}=i;if(!1!==l.displayEventTime){let d,c=e.eventRange.def,f=e.eventRange.instance,g=!1;if(c.allDay?g=!0:n.isMultiDayRange(e.eventRange.range)?e.isStart?d=n.buildSegTimeText(e,t,i,null,null,f.range.start,e.end):e.isEnd?d=n.buildSegTimeText(e,t,i,null,null,e.start,f.range.end):g=!0:d=n.buildSegTimeText(e,t,i),g){let e={text:i.options.allDayText,view:i.viewApi};return a.createElement(n.ContentContainer,{elTag:"td",elClasses:["fc-list-event-time"],elAttrs:{headers:`${r} ${s}`},renderProps:e,generatorName:"allDayContent",generator:l.allDayContent||o,classNameGenerator:l.allDayClassNames,didMount:l.allDayDidMount,willUnmount:l.allDayWillUnmount})}return a.createElement("td",{className:"fc-list-event-time"},d)}return null}(r,f,t,l,c),a.createElement("td",{"aria-hidden":!0,className:"fc-list-event-graphic"},a.createElement("span",{className:"fc-list-event-dot",style:{borderColor:i.borderColor||i.backgroundColor}})),a.createElement(e,{elTag:"td",elClasses:["fc-list-event-title"],elAttrs:{headers:`${d} ${c}`}})))}}function o(e){return e.text}class d extends n.DateComponent{constructor(){super(...arguments),this.computeDateVars=n.memoize(f),this.eventStoreToSegs=n.memoize(this._eventStoreToSegs),this.state={timeHeaderId:n.getUniqueDomId(),eventHeaderId:n.getUniqueDomId(),dateHeaderIdRoot:n.getUniqueDomId()},this.setRootEl=e=>{e?this.context.registerInteractiveComponent(this,{el:e}):this.context.unregisterInteractiveComponent(this)}}render(){let{props:e,context:t}=this,{dayDates:i,dayRanges:r}=this.computeDateVars(e.dateProfile),s=this.eventStoreToSegs(e.eventStore,e.eventUiBases,r);return a.createElement(n.ViewContainer,{elRef:this.setRootEl,elClasses:["fc-list",t.theme.getClass("table"),!1!==t.options.stickyHeaderDates?"fc-list-sticky":""],viewSpec:t.viewSpec},a.createElement(n.Scroller,{liquid:!e.isHeightAuto,overflowX:e.isHeightAuto?"visible":"hidden",overflowY:e.isHeightAuto?"visible":"auto"},s.length>0?this.renderSegList(s,i):this.renderEmptyMessage()))}renderEmptyMessage(){let{options:e,viewApi:t}=this.context,i={text:e.noEventsText,view:t};return a.createElement(n.ContentContainer,{elTag:"div",elClasses:["fc-list-empty"],renderProps:i,generatorName:"noEventsContent",generator:e.noEventsContent||c,classNameGenerator:e.noEventsClassNames,didMount:e.noEventsDidMount,willUnmount:e.noEventsWillUnmount},e=>a.createElement(e,{elTag:"div",elClasses:["fc-list-empty-cushion"]}))}renderSegList(e,t){let{theme:r,options:s}=this.context,{timeHeaderId:o,eventHeaderId:d,dateHeaderIdRoot:c}=this.state,f=function(e){let t,n,a=[];for(t=0;t<e.length;t+=1)n=e[t],(a[n.dayIndex]||(a[n.dayIndex]=[])).push(n);return a}(e);return a.createElement(n.NowTimer,{unit:"day"},(e,g)=>{let u=[];for(let r=0;r<f.length;r+=1){let m=f[r];if(m){let f=n.formatDayString(t[r]),h=c+"-"+f;u.push(a.createElement(i,{key:f,cellId:h,dayDate:t[r],todayRange:g})),m=n.sortEventSegs(m,s.eventOrder);for(let t of m)u.push(a.createElement(l,Object.assign({key:f+":"+t.eventRange.instance.instanceId,seg:t,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:!1,timeHeaderId:o,eventHeaderId:d,dateHeaderId:h},n.getSegMeta(t,g,e))))}}return a.createElement("table",{className:"fc-list-table "+r.getClass("table")},a.createElement("thead",null,a.createElement("tr",null,a.createElement("th",{scope:"col",id:o},s.timeHint),a.createElement("th",{scope:"col","aria-hidden":!0}),a.createElement("th",{scope:"col",id:d},s.eventHint))),a.createElement("tbody",null,u))})}_eventStoreToSegs(e,t,a){return this.eventRangesToSegs(n.sliceEventStore(e,t,this.props.dateProfile.activeRange,this.context.options.nextDayThreshold).fg,a)}eventRangesToSegs(e,t){let n=[];for(let a of e)n.push(...this.eventRangeToSegs(a,t));return n}eventRangeToSegs(e,t){let a,i,r,{dateEnv:s}=this.context,{nextDayThreshold:l}=this.context.options,o=e.range,d=e.def.allDay,c=[];for(a=0;a<t.length;a+=1)if(i=n.intersectRanges(o,t[a]),i&&(r={component:this,eventRange:e,start:i.start,end:i.end,isStart:e.isStart&&i.start.valueOf()===o.start.valueOf(),isEnd:e.isEnd&&i.end.valueOf()===o.end.valueOf(),dayIndex:a},c.push(r),!r.isEnd&&!d&&a+1<t.length&&o.end<s.add(t[a+1].start,l))){r.end=o.end,r.isEnd=!0;break}return c}}function c(e){return e.text}function f(e){let t=n.startOfDay(e.renderRange.start),a=e.renderRange.end,i=[],r=[];for(;t<a;)i.push(t),r.push({start:t,end:n.addDays(t,1)}),t=n.addDays(t,1);return{dayDates:i,dayRanges:r}}const g={listDayFormat:u,listDaySideFormat:u,noEventsClassNames:n.identity,noEventsContent:n.identity,noEventsDidMount:n.identity,noEventsWillUnmount:n.identity};function u(e){return!1===e?null:n.createFormatter(e)}n.injectStyles(':root{--fc-list-event-dot-width:10px;--fc-list-event-hover-bg-color:#f5f5f5}.fc-theme-standard .fc-list{border:1px solid var(--fc-border-color)}.fc .fc-list-empty{align-items:center;background-color:var(--fc-neutral-bg-color);display:flex;height:100%;justify-content:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{border-style:hidden;width:100%}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{background:var(--fc-page-bg-color);position:sticky;top:0}.fc .fc-list-table thead{left:-10000px;position:absolute}.fc .fc-list-table tbody>tr:first-child th{border-top:0}.fc .fc-list-table th{padding:0}.fc .fc-list-day-cushion,.fc .fc-list-table td{padding:8px 14px}.fc .fc-list-day-cushion:after{clear:both;content:"";display:table}.fc-theme-standard .fc-list-day-cushion{background-color:var(--fc-neutral-bg-color)}.fc-direction-ltr .fc-list-day-text,.fc-direction-rtl .fc-list-day-side-text{float:left}.fc-direction-ltr .fc-list-day-side-text,.fc-direction-rtl .fc-list-day-text{float:right}.fc-direction-ltr .fc-list-table .fc-list-event-graphic{padding-right:0}.fc-direction-rtl .fc-list-table .fc-list-event-graphic{padding-left:0}.fc .fc-list-event.fc-event-forced-url{cursor:pointer}.fc .fc-list-event:hover td{background-color:var(--fc-list-event-hover-bg-color)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{border:calc(var(--fc-list-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-list-event-dot-width)/2);box-sizing:content-box;display:inline-block;height:0;width:0}.fc .fc-list-event-title a{color:inherit;text-decoration:none}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline}');var m=t.createPlugin({name:"@fullcalendar/list",optionRefiners:g,views:{list:{component:d,buttonTextKey:"list",listDayFormat:{month:"long",day:"numeric",year:"numeric"}},listDay:{type:"list",duration:{days:1},listDayFormat:{weekday:"long"}},listWeek:{type:"list",duration:{weeks:1},listDayFormat:{weekday:"long"},listDaySideFormat:{month:"long",day:"numeric",year:"numeric"}},listMonth:{type:"list",duration:{month:1},listDaySideFormat:{weekday:"long"}},listYear:{type:"list",duration:{year:1},listDaySideFormat:{weekday:"long"}}}}),h={__proto__:null,ListView:d};return t.globalPlugins.push(m),e.Internal=h,e.default=m,Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar,FullCalendar.Internal,FullCalendar.Preact); \ No newline at end of file
+FullCalendar.List=function(e,t,n,a){"use strict";class r extends n.BaseComponent{constructor(){super(...arguments),this.state={textId:n.getUniqueDomId()}}render(){let{theme:e,dateEnv:t,options:r,viewApi:s}=this.context,{cellId:l,dayDate:o,todayRange:d}=this.props,{textId:c}=this.state,f=n.getDateMeta(o,d),u=r.listDayFormat?t.format(o,r.listDayFormat):"",g=r.listDaySideFormat?t.format(o,r.listDaySideFormat):"",m=Object.assign({date:t.toDate(o),view:s,textId:c,text:u,sideText:g,navLinkAttrs:n.buildNavLinkAttrs(this.context,o),sideNavLinkAttrs:n.buildNavLinkAttrs(this.context,o,"day",!1)},f);return a.createElement(n.ContentContainer,{elTag:"tr",elClasses:["fc-list-day",...n.getDayClassNames(f,e)],elAttrs:{"data-date":n.formatDayString(o)},renderProps:m,generatorName:"dayHeaderContent",customGenerator:r.dayHeaderContent,defaultGenerator:i,classNameGenerator:r.dayHeaderClassNames,didMount:r.dayHeaderDidMount,willUnmount:r.dayHeaderWillUnmount},t=>a.createElement("th",{scope:"colgroup",colSpan:3,id:l,"aria-labelledby":c},a.createElement(t,{elTag:"div",elClasses:["fc-list-day-cushion",e.getClass("tableCellShaded")]})))}}function i(e){return a.createElement(a.Fragment,null,e.text&&a.createElement("a",Object.assign({id:e.textId,className:"fc-list-day-text"},e.navLinkAttrs),e.text),e.sideText&&a.createElement("a",Object.assign({"aria-hidden":!0,className:"fc-list-day-side-text"},e.sideNavLinkAttrs),e.sideText))}const s=n.createFormatter({hour:"numeric",minute:"2-digit",meridiem:"short"});class l extends n.BaseComponent{render(){let{props:e,context:t}=this,{options:r}=t,{seg:i,timeHeaderId:l,eventHeaderId:d,dateHeaderId:c}=e,f=r.eventTimeFormat||s;return a.createElement(n.EventContainer,Object.assign({},e,{elTag:"tr",elClasses:["fc-list-event",i.eventRange.def.url&&"fc-event-forced-url"],defaultGenerator:()=>function(e,t){let r=n.getSegAnchorAttrs(e,t);return a.createElement("a",Object.assign({},r),e.eventRange.def.title)}(i,t),seg:i,timeText:"",disableDragging:!0,disableResizing:!0}),(e,r)=>a.createElement(a.Fragment,null,function(e,t,r,i,s){let{options:l}=r;if(!1!==l.displayEventTime){let d,c=e.eventRange.def,f=e.eventRange.instance,u=!1;if(c.allDay?u=!0:n.isMultiDayRange(e.eventRange.range)?e.isStart?d=n.buildSegTimeText(e,t,r,null,null,f.range.start,e.end):e.isEnd?d=n.buildSegTimeText(e,t,r,null,null,e.start,f.range.end):u=!0:d=n.buildSegTimeText(e,t,r),u){let e={text:r.options.allDayText,view:r.viewApi};return a.createElement(n.ContentContainer,{elTag:"td",elClasses:["fc-list-event-time"],elAttrs:{headers:`${i} ${s}`},renderProps:e,generatorName:"allDayContent",customGenerator:l.allDayContent,defaultGenerator:o,classNameGenerator:l.allDayClassNames,didMount:l.allDayDidMount,willUnmount:l.allDayWillUnmount})}return a.createElement("td",{className:"fc-list-event-time"},d)}return null}(i,f,t,l,c),a.createElement("td",{"aria-hidden":!0,className:"fc-list-event-graphic"},a.createElement("span",{className:"fc-list-event-dot",style:{borderColor:r.borderColor||r.backgroundColor}})),a.createElement(e,{elTag:"td",elClasses:["fc-list-event-title"],elAttrs:{headers:`${d} ${c}`}})))}}function o(e){return e.text}class d extends n.DateComponent{constructor(){super(...arguments),this.computeDateVars=n.memoize(f),this.eventStoreToSegs=n.memoize(this._eventStoreToSegs),this.state={timeHeaderId:n.getUniqueDomId(),eventHeaderId:n.getUniqueDomId(),dateHeaderIdRoot:n.getUniqueDomId()},this.setRootEl=e=>{e?this.context.registerInteractiveComponent(this,{el:e}):this.context.unregisterInteractiveComponent(this)}}render(){let{props:e,context:t}=this,{dayDates:r,dayRanges:i}=this.computeDateVars(e.dateProfile),s=this.eventStoreToSegs(e.eventStore,e.eventUiBases,i);return a.createElement(n.ViewContainer,{elRef:this.setRootEl,elClasses:["fc-list",t.theme.getClass("table"),!1!==t.options.stickyHeaderDates?"fc-list-sticky":""],viewSpec:t.viewSpec},a.createElement(n.Scroller,{liquid:!e.isHeightAuto,overflowX:e.isHeightAuto?"visible":"hidden",overflowY:e.isHeightAuto?"visible":"auto"},s.length>0?this.renderSegList(s,r):this.renderEmptyMessage()))}renderEmptyMessage(){let{options:e,viewApi:t}=this.context,r={text:e.noEventsText,view:t};return a.createElement(n.ContentContainer,{elTag:"div",elClasses:["fc-list-empty"],renderProps:r,generatorName:"noEventsContent",customGenerator:e.noEventsContent,defaultGenerator:c,classNameGenerator:e.noEventsClassNames,didMount:e.noEventsDidMount,willUnmount:e.noEventsWillUnmount},e=>a.createElement(e,{elTag:"div",elClasses:["fc-list-empty-cushion"]}))}renderSegList(e,t){let{theme:i,options:s}=this.context,{timeHeaderId:o,eventHeaderId:d,dateHeaderIdRoot:c}=this.state,f=function(e){let t,n,a=[];for(t=0;t<e.length;t+=1)n=e[t],(a[n.dayIndex]||(a[n.dayIndex]=[])).push(n);return a}(e);return a.createElement(n.NowTimer,{unit:"day"},(e,u)=>{let g=[];for(let i=0;i<f.length;i+=1){let m=f[i];if(m){let f=n.formatDayString(t[i]),h=c+"-"+f;g.push(a.createElement(r,{key:f,cellId:h,dayDate:t[i],todayRange:u})),m=n.sortEventSegs(m,s.eventOrder);for(let t of m)g.push(a.createElement(l,Object.assign({key:f+":"+t.eventRange.instance.instanceId,seg:t,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:!1,timeHeaderId:o,eventHeaderId:d,dateHeaderId:h},n.getSegMeta(t,u,e))))}}return a.createElement("table",{className:"fc-list-table "+i.getClass("table")},a.createElement("thead",null,a.createElement("tr",null,a.createElement("th",{scope:"col",id:o},s.timeHint),a.createElement("th",{scope:"col","aria-hidden":!0}),a.createElement("th",{scope:"col",id:d},s.eventHint))),a.createElement("tbody",null,g))})}_eventStoreToSegs(e,t,a){return this.eventRangesToSegs(n.sliceEventStore(e,t,this.props.dateProfile.activeRange,this.context.options.nextDayThreshold).fg,a)}eventRangesToSegs(e,t){let n=[];for(let a of e)n.push(...this.eventRangeToSegs(a,t));return n}eventRangeToSegs(e,t){let a,r,i,{dateEnv:s}=this.context,{nextDayThreshold:l}=this.context.options,o=e.range,d=e.def.allDay,c=[];for(a=0;a<t.length;a+=1)if(r=n.intersectRanges(o,t[a]),r&&(i={component:this,eventRange:e,start:r.start,end:r.end,isStart:e.isStart&&r.start.valueOf()===o.start.valueOf(),isEnd:e.isEnd&&r.end.valueOf()===o.end.valueOf(),dayIndex:a},c.push(i),!i.isEnd&&!d&&a+1<t.length&&o.end<s.add(t[a+1].start,l))){i.end=o.end,i.isEnd=!0;break}return c}}function c(e){return e.text}function f(e){let t=n.startOfDay(e.renderRange.start),a=e.renderRange.end,r=[],i=[];for(;t<a;)r.push(t),i.push({start:t,end:n.addDays(t,1)}),t=n.addDays(t,1);return{dayDates:r,dayRanges:i}}const u={listDayFormat:g,listDaySideFormat:g,noEventsClassNames:n.identity,noEventsContent:n.identity,noEventsDidMount:n.identity,noEventsWillUnmount:n.identity};function g(e){return!1===e?null:n.createFormatter(e)}n.injectStyles(':root{--fc-list-event-dot-width:10px;--fc-list-event-hover-bg-color:#f5f5f5}.fc-theme-standard .fc-list{border:1px solid var(--fc-border-color)}.fc .fc-list-empty{align-items:center;background-color:var(--fc-neutral-bg-color);display:flex;height:100%;justify-content:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{border-style:hidden;width:100%}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{background:var(--fc-page-bg-color);position:sticky;top:0}.fc .fc-list-table thead{left:-10000px;position:absolute}.fc .fc-list-table tbody>tr:first-child th{border-top:0}.fc .fc-list-table th{padding:0}.fc .fc-list-day-cushion,.fc .fc-list-table td{padding:8px 14px}.fc .fc-list-day-cushion:after{clear:both;content:"";display:table}.fc-theme-standard .fc-list-day-cushion{background-color:var(--fc-neutral-bg-color)}.fc-direction-ltr .fc-list-day-text,.fc-direction-rtl .fc-list-day-side-text{float:left}.fc-direction-ltr .fc-list-day-side-text,.fc-direction-rtl .fc-list-day-text{float:right}.fc-direction-ltr .fc-list-table .fc-list-event-graphic{padding-right:0}.fc-direction-rtl .fc-list-table .fc-list-event-graphic{padding-left:0}.fc .fc-list-event.fc-event-forced-url{cursor:pointer}.fc .fc-list-event:hover td{background-color:var(--fc-list-event-hover-bg-color)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{border:calc(var(--fc-list-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-list-event-dot-width)/2);box-sizing:content-box;display:inline-block;height:0;width:0}.fc .fc-list-event-title a{color:inherit;text-decoration:none}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline}');var m=t.createPlugin({name:"@fullcalendar/list",optionRefiners:u,views:{list:{component:d,buttonTextKey:"list",listDayFormat:{month:"long",day:"numeric",year:"numeric"}},listDay:{type:"list",duration:{days:1},listDayFormat:{weekday:"long"}},listWeek:{type:"list",duration:{weeks:1},listDayFormat:{weekday:"long"},listDaySideFormat:{month:"long",day:"numeric",year:"numeric"}},listMonth:{type:"list",duration:{month:1},listDaySideFormat:{weekday:"long"}},listYear:{type:"list",duration:{year:1},listDaySideFormat:{weekday:"long"}}}}),h={__proto__:null,ListView:d};return t.globalPlugins.push(m),e.Internal=h,e.default=m,Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar,FullCalendar.Internal,FullCalendar.Preact); \ No newline at end of file
diff --git a/library/fullcalendar/packages/luxon1/index.global.js b/library/fullcalendar/packages/luxon1/index.global.js
index b5ecd339b..522af410c 100644
--- a/library/fullcalendar/packages/luxon1/index.global.js
+++ b/library/fullcalendar/packages/luxon1/index.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Luxon 1 Plugin v6.0.3
+FullCalendar Luxon 1 Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/luxon1
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
FullCalendar.Luxon = (function (exports, core, luxon, internal) {
'use strict';
diff --git a/library/fullcalendar/packages/luxon1/index.global.min.js b/library/fullcalendar/packages/luxon1/index.global.min.js
index 90903b544..a31ff2fe7 100644
--- a/library/fullcalendar/packages/luxon1/index.global.min.js
+++ b/library/fullcalendar/packages/luxon1/index.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Luxon 1 Plugin v6.0.3
+FullCalendar Luxon 1 Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/luxon1
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
FullCalendar.Luxon=function(e,t,n,a){"use strict";function l(e,t,a){return n.DateTime.fromObject({zone:t,locale:a,year:e[0],month:e[1]+1,day:e[2],hour:e[3],minute:e[4],second:e[5],millisecond:e[6]})}class r extends a.NamedTimeZoneImpl{offsetForArray(e){return l(e,this.timeZoneName).offset}timestampToArray(e){return[(t=n.DateTime.fromMillis(e,{zone:this.timeZoneName})).year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond];var t}}var o=t.createPlugin({name:"@fullcalendar/luxon",cmdFormatter:function(e,t){let n=function e(t){let n=t.match(/^(.*?)\{(.*)\}(.*)$/);if(n){let t=e(n[2]);return{head:n[1],middle:t,tail:n[3],whole:n[1]+t.whole+n[3]}}return{head:null,middle:null,tail:null,whole:t}}(e);if(t.end){let e=l(t.start.array,t.timeZone,t.localeCodes[0]),a=l(t.end.array,t.timeZone,t.localeCodes[0]);return function e(t,n,a,l){if(t.middle){let r=n(t.head),o=e(t.middle,n,a,l),i=n(t.tail),u=a(t.head),d=e(t.middle,n,a,l),m=a(t.tail);if(r===u&&i===m)return r+(o===d?o:o+l+d)+i}let r=n(t.whole),o=a(t.whole);if(r===o)return r;return r+l+o}(n,e.toFormat.bind(e),a.toFormat.bind(a),t.defaultSeparator)}return l(t.date.array,t.timeZone,t.localeCodes[0]).toFormat(n.whole)},namedTimeZonedImpl:r});return t.globalPlugins.push(o),e.default=o,e.toLuxonDateTime=function(e,t){if(!(t instanceof a.CalendarImpl))throw new Error("must supply a CalendarApi instance");let{dateEnv:l}=t.getCurrentData();return n.DateTime.fromJSDate(e,{zone:l.timeZone,locale:l.locale.codes[0]})},e.toLuxonDuration=function(e,t){if(!(t instanceof a.CalendarImpl))throw new Error("must supply a CalendarApi instance");let{dateEnv:l}=t.getCurrentData();return n.Duration.fromObject(Object.assign(Object.assign({},e),{locale:l.locale.codes[0]}))},Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar,luxon,FullCalendar.Internal); \ No newline at end of file
diff --git a/library/fullcalendar/packages/luxon2/index.global.js b/library/fullcalendar/packages/luxon2/index.global.js
index 01b55f85a..0883f07c0 100644
--- a/library/fullcalendar/packages/luxon2/index.global.js
+++ b/library/fullcalendar/packages/luxon2/index.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Luxon 2 Plugin v6.0.3
+FullCalendar Luxon 2 Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/luxon2
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
FullCalendar.Luxon2 = (function (exports, core, luxon, internal) {
'use strict';
diff --git a/library/fullcalendar/packages/luxon2/index.global.min.js b/library/fullcalendar/packages/luxon2/index.global.min.js
index c639271a8..57713d88b 100644
--- a/library/fullcalendar/packages/luxon2/index.global.min.js
+++ b/library/fullcalendar/packages/luxon2/index.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Luxon 2 Plugin v6.0.3
+FullCalendar Luxon 2 Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/luxon2
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
FullCalendar.Luxon2=function(e,t,n,a){"use strict";function l(e,t,a){return n.DateTime.fromObject({year:e[0],month:e[1]+1,day:e[2],hour:e[3],minute:e[4],second:e[5],millisecond:e[6]},{locale:a,zone:t})}class r extends a.NamedTimeZoneImpl{offsetForArray(e){return l(e,this.timeZoneName).offset}timestampToArray(e){return[(t=n.DateTime.fromMillis(e,{zone:this.timeZoneName})).year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond];var t}}var o=t.createPlugin({name:"@fullcalendar/luxon2",cmdFormatter:function(e,t){let n=function e(t){let n=t.match(/^(.*?)\{(.*)\}(.*)$/);if(n){let t=e(n[2]);return{head:n[1],middle:t,tail:n[3],whole:n[1]+t.whole+n[3]}}return{head:null,middle:null,tail:null,whole:t}}(e);if(t.end){let e=l(t.start.array,t.timeZone,t.localeCodes[0]),a=l(t.end.array,t.timeZone,t.localeCodes[0]);return function e(t,n,a,l){if(t.middle){let r=n(t.head),o=e(t.middle,n,a,l),i=n(t.tail),u=a(t.head),d=e(t.middle,n,a,l),m=a(t.tail);if(r===u&&i===m)return r+(o===d?o:o+l+d)+i}let r=n(t.whole),o=a(t.whole);if(r===o)return r;return r+l+o}(n,e.toFormat.bind(e),a.toFormat.bind(a),t.defaultSeparator)}return l(t.date.array,t.timeZone,t.localeCodes[0]).toFormat(n.whole)},namedTimeZonedImpl:r});return t.globalPlugins.push(o),e.default=o,e.toLuxonDateTime=function(e,t){if(!(t instanceof a.CalendarImpl))throw new Error("must supply a CalendarApi instance");let{dateEnv:l}=t.getCurrentData();return n.DateTime.fromJSDate(e,{zone:l.timeZone,locale:l.locale.codes[0]})},e.toLuxonDuration=function(e,t){if(!(t instanceof a.CalendarImpl))throw new Error("must supply a CalendarApi instance");let{dateEnv:l}=t.getCurrentData();return n.Duration.fromObject(e,{locale:l.locale.codes[0]})},Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar,luxon,FullCalendar.Internal); \ No newline at end of file
diff --git a/library/fullcalendar/packages/luxon3/index.global.js b/library/fullcalendar/packages/luxon3/index.global.js
new file mode 100644
index 000000000..3d19f49fa
--- /dev/null
+++ b/library/fullcalendar/packages/luxon3/index.global.js
@@ -0,0 +1,131 @@
+/*!
+FullCalendar Luxon 3 Plugin v6.1.8
+Docs & License: https://fullcalendar.io/docs/luxon
+(c) 2023 Adam Shaw
+*/
+FullCalendar.Luxon3 = (function (exports, core, luxon, internal) {
+ 'use strict';
+
+ function toLuxonDateTime(date, calendar) {
+ if (!(calendar instanceof internal.CalendarImpl)) {
+ throw new Error('must supply a CalendarApi instance');
+ }
+ let { dateEnv } = calendar.getCurrentData();
+ return luxon.DateTime.fromJSDate(date, {
+ zone: dateEnv.timeZone,
+ locale: dateEnv.locale.codes[0],
+ });
+ }
+ function toLuxonDuration(duration, calendar) {
+ if (!(calendar instanceof internal.CalendarImpl)) {
+ throw new Error('must supply a CalendarApi instance');
+ }
+ let { dateEnv } = calendar.getCurrentData();
+ return luxon.Duration.fromObject(duration, {
+ locale: dateEnv.locale.codes[0],
+ });
+ }
+ // Internal Utils
+ function luxonToArray(datetime) {
+ return [
+ datetime.year,
+ datetime.month - 1,
+ datetime.day,
+ datetime.hour,
+ datetime.minute,
+ datetime.second,
+ datetime.millisecond,
+ ];
+ }
+ function arrayToLuxon(arr, timeZone, locale) {
+ return luxon.DateTime.fromObject({
+ year: arr[0],
+ month: arr[1] + 1,
+ day: arr[2],
+ hour: arr[3],
+ minute: arr[4],
+ second: arr[5],
+ millisecond: arr[6],
+ }, {
+ locale,
+ zone: timeZone,
+ });
+ }
+
+ class LuxonNamedTimeZone extends internal.NamedTimeZoneImpl {
+ offsetForArray(a) {
+ return arrayToLuxon(a, this.timeZoneName).offset;
+ }
+ timestampToArray(ms) {
+ return luxonToArray(luxon.DateTime.fromMillis(ms, {
+ zone: this.timeZoneName,
+ }));
+ }
+ }
+
+ function formatWithCmdStr(cmdStr, arg) {
+ let cmd = parseCmdStr(cmdStr);
+ if (arg.end) {
+ let start = arrayToLuxon(arg.start.array, arg.timeZone, arg.localeCodes[0]);
+ let end = arrayToLuxon(arg.end.array, arg.timeZone, arg.localeCodes[0]);
+ return formatRange(cmd, start.toFormat.bind(start), end.toFormat.bind(end), arg.defaultSeparator);
+ }
+ return arrayToLuxon(arg.date.array, arg.timeZone, arg.localeCodes[0]).toFormat(cmd.whole);
+ }
+ function parseCmdStr(cmdStr) {
+ let parts = cmdStr.match(/^(.*?)\{(.*)\}(.*)$/); // TODO: lookbehinds for escape characters
+ if (parts) {
+ let middle = parseCmdStr(parts[2]);
+ return {
+ head: parts[1],
+ middle,
+ tail: parts[3],
+ whole: parts[1] + middle.whole + parts[3],
+ };
+ }
+ return {
+ head: null,
+ middle: null,
+ tail: null,
+ whole: cmdStr,
+ };
+ }
+ function formatRange(cmd, formatStart, formatEnd, separator) {
+ if (cmd.middle) {
+ let startHead = formatStart(cmd.head);
+ let startMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator);
+ let startTail = formatStart(cmd.tail);
+ let endHead = formatEnd(cmd.head);
+ let endMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator);
+ let endTail = formatEnd(cmd.tail);
+ if (startHead === endHead && startTail === endTail) {
+ return startHead +
+ (startMiddle === endMiddle ? startMiddle : startMiddle + separator + endMiddle) +
+ startTail;
+ }
+ }
+ let startWhole = formatStart(cmd.whole);
+ let endWhole = formatEnd(cmd.whole);
+ if (startWhole === endWhole) {
+ return startWhole;
+ }
+ return startWhole + separator + endWhole;
+ }
+
+ var plugin = core.createPlugin({
+ name: '@fullcalendar/luxon3',
+ cmdFormatter: formatWithCmdStr,
+ namedTimeZonedImpl: LuxonNamedTimeZone,
+ });
+
+ core.globalPlugins.push(plugin);
+
+ exports["default"] = plugin;
+ exports.toLuxonDateTime = toLuxonDateTime;
+ exports.toLuxonDuration = toLuxonDuration;
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ return exports;
+
+})({}, FullCalendar, luxon, FullCalendar.Internal);
diff --git a/library/fullcalendar/packages/luxon3/index.global.min.js b/library/fullcalendar/packages/luxon3/index.global.min.js
new file mode 100644
index 000000000..6c14910ac
--- /dev/null
+++ b/library/fullcalendar/packages/luxon3/index.global.min.js
@@ -0,0 +1,6 @@
+/*!
+FullCalendar Luxon 3 Plugin v6.1.8
+Docs & License: https://fullcalendar.io/docs/luxon
+(c) 2023 Adam Shaw
+*/
+FullCalendar.Luxon3=function(e,t,n,a){"use strict";function l(e,t,a){return n.DateTime.fromObject({year:e[0],month:e[1]+1,day:e[2],hour:e[3],minute:e[4],second:e[5],millisecond:e[6]},{locale:a,zone:t})}class r extends a.NamedTimeZoneImpl{offsetForArray(e){return l(e,this.timeZoneName).offset}timestampToArray(e){return[(t=n.DateTime.fromMillis(e,{zone:this.timeZoneName})).year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond];var t}}var o=t.createPlugin({name:"@fullcalendar/luxon3",cmdFormatter:function(e,t){let n=function e(t){let n=t.match(/^(.*?)\{(.*)\}(.*)$/);if(n){let t=e(n[2]);return{head:n[1],middle:t,tail:n[3],whole:n[1]+t.whole+n[3]}}return{head:null,middle:null,tail:null,whole:t}}(e);if(t.end){let e=l(t.start.array,t.timeZone,t.localeCodes[0]),a=l(t.end.array,t.timeZone,t.localeCodes[0]);return function e(t,n,a,l){if(t.middle){let r=n(t.head),o=e(t.middle,n,a,l),i=n(t.tail),u=a(t.head),d=e(t.middle,n,a,l),m=a(t.tail);if(r===u&&i===m)return r+(o===d?o:o+l+d)+i}let r=n(t.whole),o=a(t.whole);if(r===o)return r;return r+l+o}(n,e.toFormat.bind(e),a.toFormat.bind(a),t.defaultSeparator)}return l(t.date.array,t.timeZone,t.localeCodes[0]).toFormat(n.whole)},namedTimeZonedImpl:r});return t.globalPlugins.push(o),e.default=o,e.toLuxonDateTime=function(e,t){if(!(t instanceof a.CalendarImpl))throw new Error("must supply a CalendarApi instance");let{dateEnv:l}=t.getCurrentData();return n.DateTime.fromJSDate(e,{zone:l.timeZone,locale:l.locale.codes[0]})},e.toLuxonDuration=function(e,t){if(!(t instanceof a.CalendarImpl))throw new Error("must supply a CalendarApi instance");let{dateEnv:l}=t.getCurrentData();return n.Duration.fromObject(e,{locale:l.locale.codes[0]})},Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar,luxon,FullCalendar.Internal); \ No newline at end of file
diff --git a/library/fullcalendar/packages/moment-timezone/index.global.js b/library/fullcalendar/packages/moment-timezone/index.global.js
index dd736679d..6ed7fd94e 100644
--- a/library/fullcalendar/packages/moment-timezone/index.global.js
+++ b/library/fullcalendar/packages/moment-timezone/index.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Moment Timezone Plugin v6.0.3
+FullCalendar Moment Timezone Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/moment-timezone-plugin
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
FullCalendar.MomentTimezone = (function (exports, core, moment, internal) {
'use strict';
diff --git a/library/fullcalendar/packages/moment-timezone/index.global.min.js b/library/fullcalendar/packages/moment-timezone/index.global.min.js
index 0cd5ac444..71bd02848 100644
--- a/library/fullcalendar/packages/moment-timezone/index.global.min.js
+++ b/library/fullcalendar/packages/moment-timezone/index.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Moment Timezone Plugin v6.0.3
+FullCalendar Moment Timezone Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/moment-timezone-plugin
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
FullCalendar.MomentTimezone=function(e,t,n,a){"use strict";function l(e){return e&&e.__esModule?e:{default:e}}var r=l(n);class u extends a.NamedTimeZoneImpl{offsetForArray(e){return r.default.tz(e,this.timeZoneName).utcOffset()}timestampToArray(e){return r.default.tz(e,this.timeZoneName).toArray()}}var m=t.createPlugin({name:"@fullcalendar/moment-timezone",namedTimeZonedImpl:u});return t.globalPlugins.push(m),e.default=m,Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar,moment,FullCalendar.Internal); \ No newline at end of file
diff --git a/library/fullcalendar/packages/moment/index.global.js b/library/fullcalendar/packages/moment/index.global.js
index f06c85200..6384116b6 100644
--- a/library/fullcalendar/packages/moment/index.global.js
+++ b/library/fullcalendar/packages/moment/index.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Moment Plugin v6.0.3
+FullCalendar Moment Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/moment-plugin
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
FullCalendar.Moment = (function (exports, core, moment, internal) {
'use strict';
diff --git a/library/fullcalendar/packages/moment/index.global.min.js b/library/fullcalendar/packages/moment/index.global.min.js
index 438c642f3..60593c3a0 100644
--- a/library/fullcalendar/packages/moment/index.global.min.js
+++ b/library/fullcalendar/packages/moment/index.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Moment Plugin v6.0.3
+FullCalendar Moment Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/moment-plugin
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
FullCalendar.Moment=function(e,t,l,n){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}var r=a(l);function u(e,t,l,n){let a;return"local"===t?a=r.default(e):"UTC"===t?a=r.default.utc(e):r.default.tz?a=r.default.tz(e,t):(a=r.default.utc(e),null!=l&&a.utcOffset(l)),a.locale(n),a}function o(e){return t=>t?e.format(t):""}var d=t.createPlugin({name:"@fullcalendar/moment",cmdFormatter:function(e,t){let l=function e(t){let l=t.match(/^(.*?)\{(.*)\}(.*)$/);if(l){let t=e(l[2]);return{head:l[1],middle:t,tail:l[3],whole:l[1]+t.whole+l[3]}}return{head:null,middle:null,tail:null,whole:t}}(e);if(t.end){let e=u(t.start.array,t.timeZone,t.start.timeZoneOffset,t.localeCodes[0]),n=u(t.end.array,t.timeZone,t.end.timeZoneOffset,t.localeCodes[0]);return function e(t,l,n,a){if(t.middle){let r=l(t.head),u=e(t.middle,l,n,a),o=l(t.tail),d=n(t.head),i=e(t.middle,l,n,a),f=n(t.tail);if(r===d&&o===f)return r+(u===i?u:u+a+i)+o}let r=l(t.whole),u=n(t.whole);if(r===u)return r;return r+a+u}(l,o(e),o(n),t.defaultSeparator)}return u(t.date.array,t.timeZone,t.date.timeZoneOffset,t.localeCodes[0]).format(l.whole)}});return t.globalPlugins.push(d),e.default=d,e.toMoment=function(e,t){if(!(t instanceof n.CalendarImpl))throw new Error("must supply a CalendarApi instance");let{dateEnv:l}=t.getCurrentData();return u(e,l.timeZone,null,l.locale.codes[0])},e.toMomentDuration=function(e){return r.default.duration(e)},Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar,moment,FullCalendar.Internal); \ No newline at end of file
diff --git a/library/fullcalendar/packages/multimonth/index.global.js b/library/fullcalendar/packages/multimonth/index.global.js
new file mode 100644
index 000000000..6bbafadad
--- /dev/null
+++ b/library/fullcalendar/packages/multimonth/index.global.js
@@ -0,0 +1,249 @@
+/*!
+FullCalendar Multi-Month Plugin v6.1.8
+Docs & License: https://fullcalendar.io/docs/multimonth-grid
+(c) 2023 Adam Shaw
+*/
+FullCalendar.MultiMonth = (function (exports, core, internal$1, internal, preact) {
+ 'use strict';
+
+ class SingleMonth extends internal.DateComponent {
+ constructor() {
+ super(...arguments);
+ this.buildDayTableModel = internal.memoize(internal$1.buildDayTableModel);
+ this.slicer = new internal$1.DayTableSlicer();
+ this.state = {
+ labelId: internal.getUniqueDomId(),
+ };
+ }
+ render() {
+ const { props, state, context } = this;
+ const { dateProfile, forPrint } = props;
+ const { options } = context;
+ const dayTableModel = this.buildDayTableModel(dateProfile, context.dateProfileGenerator);
+ const slicedProps = this.slicer.sliceProps(props, dateProfile, options.nextDayThreshold, context, dayTableModel);
+ // ensure single-month has aspect ratio
+ const tableHeight = props.tableWidth != null ? props.tableWidth / options.aspectRatio : null;
+ const rowCnt = dayTableModel.cells.length;
+ const rowHeight = tableHeight != null ? tableHeight / rowCnt : null;
+ return (preact.createElement("div", { ref: props.elRef, "data-date": props.isoDateStr, className: "fc-multimonth-month", style: { width: props.width }, role: "grid", "aria-labelledby": state.labelId },
+ preact.createElement("div", { className: "fc-multimonth-header", style: { marginBottom: rowHeight }, role: "presentation" },
+ preact.createElement("div", { className: "fc-multimonth-title", id: state.labelId }, context.dateEnv.format(props.dateProfile.currentRange.start, props.titleFormat)),
+ preact.createElement("table", { className: [
+ 'fc-multimonth-header-table',
+ context.theme.getClass('table'),
+ ].join(' '), role: "presentation" },
+ preact.createElement("thead", { role: "rowgroup" },
+ preact.createElement(internal.DayHeader, { dateProfile: props.dateProfile, dates: dayTableModel.headerDates, datesRepDistinctDays: false })))),
+ preact.createElement("div", { className: [
+ 'fc-multimonth-daygrid',
+ 'fc-daygrid',
+ 'fc-daygrid-body',
+ !forPrint && 'fc-daygrid-body-balanced',
+ forPrint && 'fc-daygrid-body-unbalanced',
+ forPrint && 'fc-daygrid-body-natural',
+ ].join(' '), style: { marginTop: -rowHeight } },
+ preact.createElement("table", { className: [
+ 'fc-multimonth-daygrid-table',
+ context.theme.getClass('table'),
+ ].join(' '), style: { height: forPrint ? '' : tableHeight }, role: "presentation" },
+ preact.createElement("tbody", { role: "rowgroup" },
+ preact.createElement(internal$1.TableRows, Object.assign({}, slicedProps, { dateProfile: dateProfile, cells: dayTableModel.cells, eventSelection: props.eventSelection, dayMaxEvents: !forPrint, dayMaxEventRows: !forPrint, showWeekNumbers: options.weekNumbers, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: forPrint })))))));
+ }
+ }
+
+ class MultiMonthView extends internal.DateComponent {
+ constructor() {
+ super(...arguments);
+ this.splitDateProfileByMonth = internal.memoize(splitDateProfileByMonth);
+ this.buildMonthFormat = internal.memoize(buildMonthFormat);
+ this.scrollElRef = preact.createRef();
+ this.firstMonthElRef = preact.createRef();
+ this.needsScrollReset = false;
+ this.handleSizing = (isForced) => {
+ if (isForced) {
+ this.updateSize();
+ }
+ };
+ }
+ render() {
+ const { context, props, state } = this;
+ const { options } = context;
+ const { clientWidth, clientHeight } = state;
+ const monthHPadding = state.monthHPadding || 0;
+ const colCount = Math.min(clientWidth != null ?
+ Math.floor(clientWidth / (options.multiMonthMinWidth + monthHPadding)) :
+ 1, options.multiMonthMaxColumns) || 1;
+ const monthWidthPct = (100 / colCount) + '%';
+ const monthTableWidth = clientWidth == null ? null :
+ (clientWidth / colCount) - monthHPadding;
+ const isLegitSingleCol = clientWidth != null && colCount === 1;
+ const monthDateProfiles = this.splitDateProfileByMonth(context.dateProfileGenerator, props.dateProfile, context.dateEnv, isLegitSingleCol ? false : options.fixedWeekCount, options.showNonCurrentDates);
+ const monthTitleFormat = this.buildMonthFormat(options.multiMonthTitleFormat, monthDateProfiles);
+ const rootClassNames = [
+ 'fc-multimonth',
+ isLegitSingleCol ?
+ 'fc-multimonth-singlecol' :
+ 'fc-multimonth-multicol',
+ (monthTableWidth != null && monthTableWidth < 400) ?
+ 'fc-multimonth-compact' :
+ '',
+ ];
+ return (preact.createElement(internal.ViewContainer, { elRef: this.scrollElRef, elClasses: rootClassNames, viewSpec: context.viewSpec }, monthDateProfiles.map((monthDateProfile, i) => {
+ const monthStr = internal.formatIsoMonthStr(monthDateProfile.currentRange.start);
+ return (preact.createElement(SingleMonth, Object.assign({}, props, { key: monthStr, isoDateStr: monthStr, elRef: i === 0 ? this.firstMonthElRef : undefined, titleFormat: monthTitleFormat, dateProfile: monthDateProfile, width: monthWidthPct, tableWidth: monthTableWidth, clientWidth: clientWidth, clientHeight: clientHeight })));
+ })));
+ }
+ componentDidMount() {
+ this.updateSize();
+ this.context.addResizeHandler(this.handleSizing);
+ this.requestScrollReset();
+ }
+ componentDidUpdate(prevProps) {
+ if (!internal.isPropsEqual(prevProps, this.props)) { // an external change?
+ this.handleSizing(false);
+ }
+ if (prevProps.dateProfile !== this.props.dateProfile) {
+ this.requestScrollReset();
+ }
+ else {
+ this.flushScrollReset();
+ }
+ }
+ componentWillUnmount() {
+ this.context.removeResizeHandler(this.handleSizing);
+ }
+ updateSize() {
+ const scrollEl = this.scrollElRef.current;
+ const firstMonthEl = this.firstMonthElRef.current;
+ if (scrollEl) {
+ this.setState({
+ clientWidth: scrollEl.clientWidth,
+ clientHeight: scrollEl.clientHeight,
+ });
+ }
+ if (firstMonthEl && scrollEl) {
+ if (this.state.monthHPadding == null) { // always remember initial non-zero value
+ this.setState({
+ monthHPadding: scrollEl.clientWidth - // go within padding
+ firstMonthEl.firstChild.offsetWidth,
+ });
+ }
+ }
+ }
+ requestScrollReset() {
+ this.needsScrollReset = true;
+ this.flushScrollReset();
+ }
+ flushScrollReset() {
+ if (this.needsScrollReset &&
+ this.state.monthHPadding != null // indicates sizing already happened
+ ) {
+ const { currentDate } = this.props.dateProfile;
+ const scrollEl = this.scrollElRef.current;
+ const monthEl = scrollEl.querySelector(`[data-date="${internal.formatIsoMonthStr(currentDate)}"]`);
+ scrollEl.scrollTop = monthEl.getBoundingClientRect().top -
+ this.firstMonthElRef.current.getBoundingClientRect().top;
+ this.needsScrollReset = false;
+ }
+ }
+ // workaround for when queued setState render (w/ clientWidth) gets cancelled because
+ // subsequent update and shouldComponentUpdate says not to render :(
+ shouldComponentUpdate() {
+ return true;
+ }
+ }
+ // date profile
+ // -------------------------------------------------------------------------------------------------
+ const oneMonthDuration = internal.createDuration(1, 'month');
+ function splitDateProfileByMonth(dateProfileGenerator, dateProfile, dateEnv, fixedWeekCount, showNonCurrentDates) {
+ const { start, end } = dateProfile.currentRange;
+ let monthStart = start;
+ const monthDateProfiles = [];
+ while (monthStart.valueOf() < end.valueOf()) {
+ const monthEnd = dateEnv.add(monthStart, oneMonthDuration);
+ const currentRange = {
+ // yuck
+ start: dateProfileGenerator.skipHiddenDays(monthStart),
+ end: dateProfileGenerator.skipHiddenDays(monthEnd, -1, true),
+ };
+ let renderRange = internal$1.buildDayTableRenderRange({
+ currentRange,
+ snapToWeek: true,
+ fixedWeekCount,
+ dateEnv,
+ });
+ renderRange = {
+ // yuck
+ start: dateProfileGenerator.skipHiddenDays(renderRange.start),
+ end: dateProfileGenerator.skipHiddenDays(renderRange.end, -1, true),
+ };
+ const activeRange = dateProfile.activeRange ?
+ internal.intersectRanges(dateProfile.activeRange, showNonCurrentDates ? renderRange : currentRange) :
+ null;
+ monthDateProfiles.push({
+ currentDate: dateProfile.currentDate,
+ isValid: dateProfile.isValid,
+ validRange: dateProfile.validRange,
+ renderRange,
+ activeRange,
+ currentRange,
+ currentRangeUnit: 'month',
+ isRangeAllDay: true,
+ dateIncrement: dateProfile.dateIncrement,
+ slotMinTime: dateProfile.slotMaxTime,
+ slotMaxTime: dateProfile.slotMinTime,
+ });
+ monthStart = monthEnd;
+ }
+ return monthDateProfiles;
+ }
+ // date formatting
+ // -------------------------------------------------------------------------------------------------
+ const YEAR_MONTH_FORMATTER = internal.createFormatter({ year: 'numeric', month: 'long' });
+ const YEAR_FORMATTER = internal.createFormatter({ month: 'long' });
+ function buildMonthFormat(formatOverride, monthDateProfiles) {
+ return formatOverride ||
+ ((monthDateProfiles[0].currentRange.start.getUTCFullYear() !==
+ monthDateProfiles[monthDateProfiles.length - 1].currentRange.start.getUTCFullYear())
+ ? YEAR_MONTH_FORMATTER
+ : YEAR_FORMATTER);
+ }
+
+ const OPTION_REFINERS = {
+ multiMonthTitleFormat: internal.createFormatter,
+ multiMonthMaxColumns: Number,
+ multiMonthMinWidth: Number,
+ };
+
+ var css_248z = ".fc .fc-multimonth{border:1px solid var(--fc-border-color);display:flex;flex-wrap:wrap;overflow-x:hidden;overflow-y:auto}.fc .fc-multimonth-title{font-size:1.2em;font-weight:700;padding:1em 0;text-align:center}.fc .fc-multimonth-daygrid{background:var(--fc-page-bg-color)}.fc .fc-multimonth-daygrid-table,.fc .fc-multimonth-header-table{table-layout:fixed;width:100%}.fc .fc-multimonth-daygrid-table{border-top-style:hidden!important}.fc .fc-multimonth-singlecol .fc-multimonth{position:relative}.fc .fc-multimonth-singlecol .fc-multimonth-header{background:var(--fc-page-bg-color);position:relative;top:0;z-index:2}.fc .fc-multimonth-singlecol .fc-multimonth-daygrid{position:relative;z-index:1}.fc .fc-multimonth-singlecol .fc-multimonth-daygrid-table,.fc .fc-multimonth-singlecol .fc-multimonth-header-table{border-left-style:hidden;border-right-style:hidden}.fc .fc-multimonth-singlecol .fc-multimonth-month:last-child .fc-multimonth-daygrid-table{border-bottom-style:hidden}.fc .fc-multimonth-multicol{line-height:1}.fc .fc-multimonth-multicol .fc-multimonth-month{padding:0 1.2em 1.2em}.fc .fc-multimonth-multicol .fc-daygrid-more-link{border:1px solid var(--fc-event-border-color);display:block;float:none;padding:1px}.fc .fc-multimonth-compact{line-height:1}.fc .fc-multimonth-compact .fc-multimonth-daygrid-table,.fc .fc-multimonth-compact .fc-multimonth-header-table{font-size:.9em}.fc-media-screen .fc-multimonth-singlecol .fc-multimonth-header{position:sticky}.fc-media-print .fc-multimonth{overflow:visible}";
+ internal.injectStyles(css_248z);
+
+ var plugin = core.createPlugin({
+ name: '@fullcalendar/multimonth',
+ initialView: 'multiMonthYear',
+ optionRefiners: OPTION_REFINERS,
+ views: {
+ multiMonth: {
+ component: MultiMonthView,
+ dateProfileGeneratorClass: internal$1.TableDateProfileGenerator,
+ multiMonthMinWidth: 350,
+ multiMonthMaxColumns: 3,
+ },
+ multiMonthYear: {
+ type: 'multiMonth',
+ duration: { years: 1 },
+ fixedWeekCount: true,
+ showNonCurrentDates: false,
+ },
+ },
+ });
+
+ core.globalPlugins.push(plugin);
+
+ exports["default"] = plugin;
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ return exports;
+
+})({}, FullCalendar, FullCalendar.DayGrid.Internal, FullCalendar.Internal, FullCalendar.Preact);
diff --git a/library/fullcalendar/packages/multimonth/index.global.min.js b/library/fullcalendar/packages/multimonth/index.global.min.js
new file mode 100644
index 000000000..f834e12d6
--- /dev/null
+++ b/library/fullcalendar/packages/multimonth/index.global.min.js
@@ -0,0 +1,6 @@
+/*!
+FullCalendar Multi-Month Plugin v6.1.8
+Docs & License: https://fullcalendar.io/docs/multimonth-grid
+(c) 2023 Adam Shaw
+*/
+FullCalendar.MultiMonth=function(t,e,l,i,n){"use strict";class o extends i.DateComponent{constructor(){super(...arguments),this.buildDayTableModel=i.memoize(l.buildDayTableModel),this.slicer=new l.DayTableSlicer,this.state={labelId:i.getUniqueDomId()}}render(){const{props:t,state:e,context:o}=this,{dateProfile:a,forPrint:r}=t,{options:s}=o,c=this.buildDayTableModel(a,o.dateProfileGenerator),d=this.slicer.sliceProps(t,a,s.nextDayThreshold,o,c),m=null!=t.tableWidth?t.tableWidth/s.aspectRatio:null,h=c.cells.length,u=null!=m?m/h:null;return n.createElement("div",{ref:t.elRef,"data-date":t.isoDateStr,className:"fc-multimonth-month",style:{width:t.width},role:"grid","aria-labelledby":e.labelId},n.createElement("div",{className:"fc-multimonth-header",style:{marginBottom:u},role:"presentation"},n.createElement("div",{className:"fc-multimonth-title",id:e.labelId},o.dateEnv.format(t.dateProfile.currentRange.start,t.titleFormat)),n.createElement("table",{className:["fc-multimonth-header-table",o.theme.getClass("table")].join(" "),role:"presentation"},n.createElement("thead",{role:"rowgroup"},n.createElement(i.DayHeader,{dateProfile:t.dateProfile,dates:c.headerDates,datesRepDistinctDays:!1})))),n.createElement("div",{className:["fc-multimonth-daygrid","fc-daygrid","fc-daygrid-body",!r&&"fc-daygrid-body-balanced",r&&"fc-daygrid-body-unbalanced",r&&"fc-daygrid-body-natural"].join(" "),style:{marginTop:-u}},n.createElement("table",{className:["fc-multimonth-daygrid-table",o.theme.getClass("table")].join(" "),style:{height:r?"":m},role:"presentation"},n.createElement("tbody",{role:"rowgroup"},n.createElement(l.TableRows,Object.assign({},d,{dateProfile:a,cells:c.cells,eventSelection:t.eventSelection,dayMaxEvents:!r,dayMaxEventRows:!r,showWeekNumbers:s.weekNumbers,clientWidth:t.clientWidth,clientHeight:t.clientHeight,forPrint:r}))))))}}class a extends i.DateComponent{constructor(){super(...arguments),this.splitDateProfileByMonth=i.memoize(s),this.buildMonthFormat=i.memoize(m),this.scrollElRef=n.createRef(),this.firstMonthElRef=n.createRef(),this.needsScrollReset=!1,this.handleSizing=t=>{t&&this.updateSize()}}render(){const{context:t,props:e,state:l}=this,{options:a}=t,{clientWidth:r,clientHeight:s}=l,c=l.monthHPadding||0,d=Math.min(null!=r?Math.floor(r/(a.multiMonthMinWidth+c)):1,a.multiMonthMaxColumns)||1,m=100/d+"%",h=null==r?null:r/d-c,u=null!=r&&1===d,f=this.splitDateProfileByMonth(t.dateProfileGenerator,e.dateProfile,t.dateEnv,!u&&a.fixedWeekCount,a.showNonCurrentDates),g=this.buildMonthFormat(a.multiMonthTitleFormat,f),p=["fc-multimonth",u?"fc-multimonth-singlecol":"fc-multimonth-multicol",null!=h&&h<400?"fc-multimonth-compact":""];return n.createElement(i.ViewContainer,{elRef:this.scrollElRef,elClasses:p,viewSpec:t.viewSpec},f.map((t,l)=>{const a=i.formatIsoMonthStr(t.currentRange.start);return n.createElement(o,Object.assign({},e,{key:a,isoDateStr:a,elRef:0===l?this.firstMonthElRef:void 0,titleFormat:g,dateProfile:t,width:m,tableWidth:h,clientWidth:r,clientHeight:s}))}))}componentDidMount(){this.updateSize(),this.context.addResizeHandler(this.handleSizing),this.requestScrollReset()}componentDidUpdate(t){i.isPropsEqual(t,this.props)||this.handleSizing(!1),t.dateProfile!==this.props.dateProfile?this.requestScrollReset():this.flushScrollReset()}componentWillUnmount(){this.context.removeResizeHandler(this.handleSizing)}updateSize(){const t=this.scrollElRef.current,e=this.firstMonthElRef.current;t&&this.setState({clientWidth:t.clientWidth,clientHeight:t.clientHeight}),e&&t&&null==this.state.monthHPadding&&this.setState({monthHPadding:t.clientWidth-e.firstChild.offsetWidth})}requestScrollReset(){this.needsScrollReset=!0,this.flushScrollReset()}flushScrollReset(){if(this.needsScrollReset&&null!=this.state.monthHPadding){const{currentDate:t}=this.props.dateProfile,e=this.scrollElRef.current,l=e.querySelector(`[data-date="${i.formatIsoMonthStr(t)}"]`);e.scrollTop=l.getBoundingClientRect().top-this.firstMonthElRef.current.getBoundingClientRect().top,this.needsScrollReset=!1}}shouldComponentUpdate(){return!0}}const r=i.createDuration(1,"month");function s(t,e,n,o,a){const{start:s,end:c}=e.currentRange;let d=s;const m=[];for(;d.valueOf()<c.valueOf();){const s=n.add(d,r),c={start:t.skipHiddenDays(d),end:t.skipHiddenDays(s,-1,!0)};let h=l.buildDayTableRenderRange({currentRange:c,snapToWeek:!0,fixedWeekCount:o,dateEnv:n});h={start:t.skipHiddenDays(h.start),end:t.skipHiddenDays(h.end,-1,!0)};const u=e.activeRange?i.intersectRanges(e.activeRange,a?h:c):null;m.push({currentDate:e.currentDate,isValid:e.isValid,validRange:e.validRange,renderRange:h,activeRange:u,currentRange:c,currentRangeUnit:"month",isRangeAllDay:!0,dateIncrement:e.dateIncrement,slotMinTime:e.slotMaxTime,slotMaxTime:e.slotMinTime}),d=s}return m}const c=i.createFormatter({year:"numeric",month:"long"}),d=i.createFormatter({month:"long"});function m(t,e){return t||(e[0].currentRange.start.getUTCFullYear()!==e[e.length-1].currentRange.start.getUTCFullYear()?c:d)}const h={multiMonthTitleFormat:i.createFormatter,multiMonthMaxColumns:Number,multiMonthMinWidth:Number};i.injectStyles(".fc .fc-multimonth{border:1px solid var(--fc-border-color);display:flex;flex-wrap:wrap;overflow-x:hidden;overflow-y:auto}.fc .fc-multimonth-title{font-size:1.2em;font-weight:700;padding:1em 0;text-align:center}.fc .fc-multimonth-daygrid{background:var(--fc-page-bg-color)}.fc .fc-multimonth-daygrid-table,.fc .fc-multimonth-header-table{table-layout:fixed;width:100%}.fc .fc-multimonth-daygrid-table{border-top-style:hidden!important}.fc .fc-multimonth-singlecol .fc-multimonth{position:relative}.fc .fc-multimonth-singlecol .fc-multimonth-header{background:var(--fc-page-bg-color);position:relative;top:0;z-index:2}.fc .fc-multimonth-singlecol .fc-multimonth-daygrid{position:relative;z-index:1}.fc .fc-multimonth-singlecol .fc-multimonth-daygrid-table,.fc .fc-multimonth-singlecol .fc-multimonth-header-table{border-left-style:hidden;border-right-style:hidden}.fc .fc-multimonth-singlecol .fc-multimonth-month:last-child .fc-multimonth-daygrid-table{border-bottom-style:hidden}.fc .fc-multimonth-multicol{line-height:1}.fc .fc-multimonth-multicol .fc-multimonth-month{padding:0 1.2em 1.2em}.fc .fc-multimonth-multicol .fc-daygrid-more-link{border:1px solid var(--fc-event-border-color);display:block;float:none;padding:1px}.fc .fc-multimonth-compact{line-height:1}.fc .fc-multimonth-compact .fc-multimonth-daygrid-table,.fc .fc-multimonth-compact .fc-multimonth-header-table{font-size:.9em}.fc-media-screen .fc-multimonth-singlecol .fc-multimonth-header{position:sticky}.fc-media-print .fc-multimonth{overflow:visible}");var u=e.createPlugin({name:"@fullcalendar/multimonth",initialView:"multiMonthYear",optionRefiners:h,views:{multiMonth:{component:a,dateProfileGeneratorClass:l.TableDateProfileGenerator,multiMonthMinWidth:350,multiMonthMaxColumns:3},multiMonthYear:{type:"multiMonth",duration:{years:1},fixedWeekCount:!0,showNonCurrentDates:!1}}});return e.globalPlugins.push(u),t.default=u,Object.defineProperty(t,"__esModule",{value:!0}),t}({},FullCalendar,FullCalendar.DayGrid.Internal,FullCalendar.Internal,FullCalendar.Preact); \ No newline at end of file
diff --git a/library/fullcalendar/packages/rrule/index.global.js b/library/fullcalendar/packages/rrule/index.global.js
index 795d352b5..42916b492 100644
--- a/library/fullcalendar/packages/rrule/index.global.js
+++ b/library/fullcalendar/packages/rrule/index.global.js
@@ -1,11 +1,31 @@
/*!
-FullCalendar RRule Plugin v6.0.3
+FullCalendar RRule Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/rrule-plugin
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-FullCalendar.RRule = (function (exports, core, rrule, internal) {
+FullCalendar.RRule = (function (exports, core, rruleLib, internal) {
'use strict';
+ function _interopNamespace(e) {
+ if (e && e.__esModule) return e;
+ var n = Object.create(null);
+ if (e) {
+ Object.keys(e).forEach(function (k) {
+ if (k !== 'default') {
+ var d = Object.getOwnPropertyDescriptor(e, k);
+ Object.defineProperty(n, k, d.get ? d : {
+ enumerable: true,
+ get: function () { return e[k]; }
+ });
+ }
+ });
+ }
+ n["default"] = e;
+ return n;
+ }
+
+ var rruleLib__namespace = /*#__PURE__*/_interopNamespace(rruleLib);
+
const recurringType = {
parse(eventProps, dateEnv) {
if (eventProps.rrule != null) {
@@ -47,7 +67,7 @@ FullCalendar.RRule = (function (exports, core, rrule, internal) {
}
if (typeof eventProps.rrule === 'object' && eventProps.rrule) { // non-null object
let res = parseRRuleObject(eventProps.rrule, dateEnv);
- rruleSet = new rrule.RRuleSet();
+ rruleSet = new rruleLib__namespace.RRuleSet();
rruleSet.rrule(res.rrule);
isTimeSpecified = res.isTimeSpecified;
isTimeZoneSpecified = res.isTimeZoneSpecified;
@@ -88,10 +108,10 @@ FullCalendar.RRule = (function (exports, core, rrule, internal) {
let rruleOptions = Object.assign(Object.assign({}, rruleInput), { dtstart: processDateInput(rruleInput.dtstart), until: processDateInput(rruleInput.until), freq: convertConstant(rruleInput.freq), wkst: rruleInput.wkst == null
? (dateEnv.weekDow - 1 + 7) % 7 // convert Sunday-first to Monday-first
: convertConstant(rruleInput.wkst), byweekday: convertConstants(rruleInput.byweekday) });
- return { rrule: new rrule.RRule(rruleOptions), isTimeSpecified, isTimeZoneSpecified };
+ return { rrule: new rruleLib__namespace.RRule(rruleOptions), isTimeSpecified, isTimeZoneSpecified };
}
function parseRRuleString(str) {
- let rruleSet = rrule.rrulestr(str, { forceset: true });
+ let rruleSet = rruleLib__namespace.rrulestr(str, { forceset: true });
let analysis = analyzeRRuleString(str);
return Object.assign({ rruleSet }, analysis);
}
@@ -116,7 +136,7 @@ FullCalendar.RRule = (function (exports, core, rrule, internal) {
}
function convertConstant(input) {
if (typeof input === 'string') {
- return rrule.RRule[input.toUpperCase()];
+ return rruleLib__namespace.RRule[input.toUpperCase()];
}
return input;
}
diff --git a/library/fullcalendar/packages/rrule/index.global.min.js b/library/fullcalendar/packages/rrule/index.global.min.js
index 4197cedb2..27574912d 100644
--- a/library/fullcalendar/packages/rrule/index.global.min.js
+++ b/library/fullcalendar/packages/rrule/index.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar RRule Plugin v6.0.3
+FullCalendar RRule Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/rrule-plugin
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-FullCalendar.RRule=function(e,r,t,i){"use strict";const n={parse(e,r){if(null!=e.rrule){let n=function(e,r){let n,u=!1,a=!1;if("string"==typeof e.rrule){let r=function(e){let r=t.rrulestr(e,{forceset:!0}),n=function(e){let r=!1,t=!1;function n(e,n,l){let u=i.parseMarker(l);r=r||!u.isTimeUnspecified,t=t||null!==u.timeZoneOffset}return e.replace(/\b(DTSTART:)([^\n]*)/,n),e.replace(/\b(EXDATE:)([^\n]*)/,n),e.replace(/\b(UNTIL=)([^;\n]*)/,n),{isTimeSpecified:r,isTimeZoneSpecified:t}}(e);return Object.assign({rruleSet:r},n)}(e.rrule);n=r.rruleSet,u=r.isTimeSpecified,a=r.isTimeZoneSpecified}if("object"==typeof e.rrule&&e.rrule){let i=l(e.rrule,r);n=new t.RRuleSet,n.rrule(i.rrule),u=i.isTimeSpecified,a=i.isTimeZoneSpecified}let s=[].concat(e.exdate||[]),f=[].concat(e.exrule||[]);for(let e of s){let r=i.parseMarker(e);u=u||!r.isTimeUnspecified,a=a||null!==r.timeZoneOffset,n.exdate(new Date(r.marker.valueOf()-60*(r.timeZoneOffset||0)*1e3))}for(let e of f){let t=l(e,r);u=u||t.isTimeSpecified,a=a||t.isTimeZoneSpecified,n.exrule(t.rrule)}return{rruleSet:n,isTimeSpecified:u,isTimeZoneSpecified:a}}(e,r);if(n)return{typeData:{rruleSet:n.rruleSet,isTimeZoneSpecified:n.isTimeZoneSpecified},allDayGuess:!n.isTimeSpecified,duration:e.duration}}return null},expand(e,r,t){let i;return i=e.isTimeZoneSpecified?e.rruleSet.between(t.toDate(r.start),t.toDate(r.end),!0).map(e=>t.createMarker(e)):e.rruleSet.between(r.start,r.end,!0),i}};function l(e,r){let n=!1,l=!1;function s(e){if("string"==typeof e){let r=i.parseMarker(e);return r?(n=n||!r.isTimeUnspecified,l=l||null!==r.timeZoneOffset,new Date(r.marker.valueOf()-60*(r.timeZoneOffset||0)*1e3)):null}return e}let f=Object.assign(Object.assign({},e),{dtstart:s(e.dtstart),until:s(e.until),freq:a(e.freq),wkst:null==e.wkst?(r.weekDow-1+7)%7:a(e.wkst),byweekday:u(e.byweekday)});return{rrule:new t.RRule(f),isTimeSpecified:n,isTimeZoneSpecified:l}}function u(e){return Array.isArray(e)?e.map(a):a(e)}function a(e){return"string"==typeof e?t.RRule[e.toUpperCase()]:e}const s={rrule:i.identity,exrule:i.identity,exdate:i.identity,duration:i.createDuration};var f=r.createPlugin({name:"@fullcalendar/rrule",recurringTypes:[n],eventRefiners:s});return r.globalPlugins.push(f),e.default=f,Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar,rrule,FullCalendar.Internal); \ No newline at end of file
+FullCalendar.RRule=function(e,r,t,i){"use strict";function n(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var i=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,i.get?i:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,r}var l=n(t);const u={parse(e,r){if(null!=e.rrule){let t=function(e,r){let t,n=!1,u=!1;if("string"==typeof e.rrule){let r=function(e){let r=l.rrulestr(e,{forceset:!0}),t=function(e){let r=!1,t=!1;function n(e,n,l){let u=i.parseMarker(l);r=r||!u.isTimeUnspecified,t=t||null!==u.timeZoneOffset}return e.replace(/\b(DTSTART:)([^\n]*)/,n),e.replace(/\b(EXDATE:)([^\n]*)/,n),e.replace(/\b(UNTIL=)([^;\n]*)/,n),{isTimeSpecified:r,isTimeZoneSpecified:t}}(e);return Object.assign({rruleSet:r},t)}(e.rrule);t=r.rruleSet,n=r.isTimeSpecified,u=r.isTimeZoneSpecified}if("object"==typeof e.rrule&&e.rrule){let i=a(e.rrule,r);t=new l.RRuleSet,t.rrule(i.rrule),n=i.isTimeSpecified,u=i.isTimeZoneSpecified}let f=[].concat(e.exdate||[]),s=[].concat(e.exrule||[]);for(let e of f){let r=i.parseMarker(e);n=n||!r.isTimeUnspecified,u=u||null!==r.timeZoneOffset,t.exdate(new Date(r.marker.valueOf()-60*(r.timeZoneOffset||0)*1e3))}for(let e of s){let i=a(e,r);n=n||i.isTimeSpecified,u=u||i.isTimeZoneSpecified,t.exrule(i.rrule)}return{rruleSet:t,isTimeSpecified:n,isTimeZoneSpecified:u}}(e,r);if(t)return{typeData:{rruleSet:t.rruleSet,isTimeZoneSpecified:t.isTimeZoneSpecified},allDayGuess:!t.isTimeSpecified,duration:e.duration}}return null},expand(e,r,t){let i;return i=e.isTimeZoneSpecified?e.rruleSet.between(t.toDate(r.start),t.toDate(r.end),!0).map(e=>t.createMarker(e)):e.rruleSet.between(r.start,r.end,!0),i}};function a(e,r){let t=!1,n=!1;function u(e){if("string"==typeof e){let r=i.parseMarker(e);return r?(t=t||!r.isTimeUnspecified,n=n||null!==r.timeZoneOffset,new Date(r.marker.valueOf()-60*(r.timeZoneOffset||0)*1e3)):null}return e}let a=Object.assign(Object.assign({},e),{dtstart:u(e.dtstart),until:u(e.until),freq:s(e.freq),wkst:null==e.wkst?(r.weekDow-1+7)%7:s(e.wkst),byweekday:f(e.byweekday)});return{rrule:new l.RRule(a),isTimeSpecified:t,isTimeZoneSpecified:n}}function f(e){return Array.isArray(e)?e.map(s):s(e)}function s(e){return"string"==typeof e?l.RRule[e.toUpperCase()]:e}const c={rrule:i.identity,exrule:i.identity,exdate:i.identity,duration:i.createDuration};var o=r.createPlugin({name:"@fullcalendar/rrule",recurringTypes:[u],eventRefiners:c});return r.globalPlugins.push(o),e.default=o,Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar,rrule,FullCalendar.Internal); \ No newline at end of file
diff --git a/library/fullcalendar/packages/timegrid/index.global.js b/library/fullcalendar/packages/timegrid/index.global.js
index 830c7ee2c..bf449fc39 100644
--- a/library/fullcalendar/packages/timegrid/index.global.js
+++ b/library/fullcalendar/packages/timegrid/index.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Time Grid Plugin v6.0.3
+FullCalendar Time Grid Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/timegrid-view
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
FullCalendar.TimeGrid = (function (exports, core, internal$1, preact, internal$2) {
'use strict';
@@ -60,7 +60,7 @@ FullCalendar.TimeGrid = (function (exports, core, internal$1, preact, internal$2
};
return (preact.createElement(internal$1.ContentContainer, { elTag: "td", elClasses: classNames, elAttrs: {
'data-time': props.isoTimeStr,
- }, renderProps: renderProps, generatorName: "slotLabelContent", generator: options.slotLabelContent || renderInnerContent, classNameGenerator: options.slotLabelClassNames, didMount: options.slotLabelDidMount, willUnmount: options.slotLabelWillUnmount }, (InnerContent) => (preact.createElement("div", { className: "fc-timegrid-slot-label-frame fc-scrollgrid-shrink-frame" },
+ }, renderProps: renderProps, generatorName: "slotLabelContent", customGenerator: options.slotLabelContent, defaultGenerator: renderInnerContent, classNameGenerator: options.slotLabelClassNames, didMount: options.slotLabelDidMount, willUnmount: options.slotLabelWillUnmount }, (InnerContent) => (preact.createElement("div", { className: "fc-timegrid-slot-label-frame fc-scrollgrid-shrink-frame" },
preact.createElement(InnerContent, { elTag: "div", elClasses: [
'fc-timegrid-slot-label-cushion',
'fc-scrollgrid-shrink-cushion',
@@ -144,7 +144,7 @@ FullCalendar.TimeGrid = (function (exports, core, internal$1, preact, internal$2
'fc-scrollgrid-shrink',
], elAttrs: {
'aria-hidden': true,
- }, renderProps: renderProps, generatorName: "allDayContent", generator: options.allDayContent || renderAllDayInner, classNameGenerator: options.allDayClassNames, didMount: options.allDayDidMount, willUnmount: options.allDayWillUnmount }, (InnerContent) => (preact.createElement("div", { className: [
+ }, renderProps: renderProps, generatorName: "allDayContent", customGenerator: options.allDayContent, defaultGenerator: renderAllDayInner, classNameGenerator: options.allDayClassNames, didMount: options.allDayDidMount, willUnmount: options.allDayWillUnmount }, (InnerContent) => (preact.createElement("div", { className: [
'fc-timegrid-axis-frame',
'fc-scrollgrid-shrink-frame',
rowHeight == null ? ' fc-timegrid-axis-frame-liquid' : '',
@@ -309,7 +309,7 @@ FullCalendar.TimeGrid = (function (exports, core, internal$1, preact, internal$2
});
}
return (preact.createElement(internal$1.ViewContainer, { elRef: this.rootElRef, elClasses: ['fc-timegrid'], viewSpec: context.viewSpec },
- preact.createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: false, colGroups: [
+ preact.createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, forPrint: props.forPrint, collapsibleWidth: false, colGroups: [
{ width: 'shrink', cols: [{ width: 'shrink' }] },
{ cols: [{ span: colCnt, minWidth: dayMinWidth }] },
], sections: sections })));
@@ -401,7 +401,7 @@ FullCalendar.TimeGrid = (function (exports, core, internal$1, preact, internal$2
!slatMeta.isLabeled && 'fc-timegrid-slot-minor',
], elAttrs: {
'data-time': slatMeta.isoTimeStr,
- }, renderProps: renderProps, generatorName: "slotLaneContent", generator: options.slotLaneContent, classNameGenerator: options.slotLaneClassNames, didMount: options.slotLaneDidMount, willUnmount: options.slotLaneWillUnmount })));
+ }, renderProps: renderProps, generatorName: "slotLaneContent", customGenerator: options.slotLaneContent, classNameGenerator: options.slotLaneClassNames, didMount: options.slotLaneDidMount, willUnmount: options.slotLaneWillUnmount })));
})));
}
}
@@ -494,7 +494,7 @@ FullCalendar.TimeGrid = (function (exports, core, internal$1, preact, internal$2
return (preact.createElement(internal$1.MoreLinkContainer, { elClasses: ['fc-timegrid-more-link'], elStyle: {
top: props.top,
bottom: props.bottom,
- }, allDayDate: null, moreCnt: props.hiddenSegs.length, allSegs: props.hiddenSegs, hiddenSegs: props.hiddenSegs, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, todayRange: props.todayRange, popoverContent: () => renderPlainFgSegs(props.hiddenSegs, props), defaultGenerator: renderMoreLinkInner }, (InnerContent) => (preact.createElement(InnerContent, { elTag: "div", elClasses: ['fc-timegrid-more-link-inner', 'fc-sticky'] }))));
+ }, allDayDate: null, moreCnt: props.hiddenSegs.length, allSegs: props.hiddenSegs, hiddenSegs: props.hiddenSegs, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, todayRange: props.todayRange, popoverContent: () => renderPlainFgSegs(props.hiddenSegs, props), defaultGenerator: renderMoreLinkInner, forceTimed: true }, (InnerContent) => (preact.createElement(InnerContent, { elTag: "div", elClasses: ['fc-timegrid-more-link-inner', 'fc-sticky'] }))));
}
}
function renderMoreLinkInner(props) {
@@ -730,19 +730,19 @@ FullCalendar.TimeGrid = (function (exports, core, internal$1, preact, internal$2
this.renderFillSegs(props.bgEventSegs, 'bg-event'),
this.renderFillSegs(props.dateSelectionSegs, 'highlight')),
preact.createElement("div", { className: "fc-timegrid-col-events" }, this.renderFgSegs(sortedFgSegs, interactionAffectedInstances, false, false, false)),
- preact.createElement("div", { className: "fc-timegrid-col-events" }, this.renderFgSegs(mirrorSegs, {}, Boolean(props.eventDrag), Boolean(props.eventResize), Boolean(isSelectMirror))),
+ preact.createElement("div", { className: "fc-timegrid-col-events" }, this.renderFgSegs(mirrorSegs, {}, Boolean(props.eventDrag), Boolean(props.eventResize), Boolean(isSelectMirror), 'mirror')),
preact.createElement("div", { className: "fc-timegrid-now-indicator-container" }, this.renderNowIndicator(props.nowIndicatorSegs)),
internal$1.hasCustomDayCellContent(options) && (preact.createElement(InnerContent, { elTag: "div", elClasses: ['fc-timegrid-col-misc'] }))))));
}
- renderFgSegs(sortedFgSegs, segIsInvisible, isDragging, isResizing, isDateSelecting) {
+ renderFgSegs(sortedFgSegs, segIsInvisible, isDragging, isResizing, isDateSelecting, forcedKey) {
let { props } = this;
if (props.forPrint) {
return renderPlainFgSegs(sortedFgSegs, props);
}
- return this.renderPositionedFgSegs(sortedFgSegs, segIsInvisible, isDragging, isResizing, isDateSelecting);
+ return this.renderPositionedFgSegs(sortedFgSegs, segIsInvisible, isDragging, isResizing, isDateSelecting, forcedKey);
}
renderPositionedFgSegs(segs, // if not mirror, needs to be sorted
- segIsInvisible, isDragging, isResizing, isDateSelecting) {
+ segIsInvisible, isDragging, isResizing, isDateSelecting, forcedKey) {
let { eventMaxStack, eventShortHeight, eventOrderStrict, eventMinHeight } = this.context.options;
let { date, slatCoords, eventSelection, todayRange, nowDate } = this.props;
let isMirror = isDragging || isResizing || isDateSelecting;
@@ -759,7 +759,7 @@ FullCalendar.TimeGrid = (function (exports, core, internal$1, preact, internal$2
let isInset = Boolean(rect) && rect.stackForward > 0;
let isShort = Boolean(rect) && (rect.span.end - rect.span.start) < eventShortHeight; // look at other places for this problem
return (preact.createElement("div", { className: 'fc-timegrid-event-harness' +
- (isInset ? ' fc-timegrid-event-harness-inset' : ''), key: instanceId, style: Object.assign(Object.assign({ visibility: isVisible ? '' : 'hidden' }, vStyle), hStyle) },
+ (isInset ? ' fc-timegrid-event-harness-inset' : ''), key: forcedKey || instanceId, style: Object.assign(Object.assign({ visibility: isVisible ? '' : 'hidden' }, vStyle), hStyle) },
preact.createElement(TimeColEvent, Object.assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, isShort: isShort }, internal$1.getSegMeta(seg, todayRange, nowDate)))));
})));
}
@@ -1050,11 +1050,11 @@ FullCalendar.TimeGrid = (function (exports, core, internal$1, preact, internal$2
render() {
let { props, context } = this;
let { dateProfile, dayTableModel } = props;
- let isNowIndicator = context.options.nowIndicator;
+ let { nowIndicator, nextDayThreshold } = context.options;
let dayRanges = this.buildDayRanges(dayTableModel, dateProfile, context.dateEnv);
// give it the first row of cells
// TODO: would move this further down hierarchy, but sliceNowDate needs it
- return (preact.createElement(internal$1.NowTimer, { unit: isNowIndicator ? 'minute' : 'day' }, (nowDate, todayRange) => (preact.createElement(TimeCols, Object.assign({ ref: this.timeColsRef }, this.slicer.sliceProps(props, dateProfile, null, context, dayRanges), { forPrint: props.forPrint, axis: props.axis, dateProfile: dateProfile, slatMetas: props.slatMetas, slotDuration: props.slotDuration, cells: dayTableModel.cells[0], tableColGroupNode: props.tableColGroupNode, tableMinWidth: props.tableMinWidth, clientWidth: props.clientWidth, clientHeight: props.clientHeight, expandRows: props.expandRows, nowDate: nowDate, nowIndicatorSegs: isNowIndicator && this.slicer.sliceNowDate(nowDate, context, dayRanges), todayRange: todayRange, onScrollTopRequest: props.onScrollTopRequest, onSlatCoords: props.onSlatCoords })))));
+ return (preact.createElement(internal$1.NowTimer, { unit: nowIndicator ? 'minute' : 'day' }, (nowDate, todayRange) => (preact.createElement(TimeCols, Object.assign({ ref: this.timeColsRef }, this.slicer.sliceProps(props, dateProfile, null, context, dayRanges), { forPrint: props.forPrint, axis: props.axis, dateProfile: dateProfile, slatMetas: props.slatMetas, slotDuration: props.slotDuration, cells: dayTableModel.cells[0], tableColGroupNode: props.tableColGroupNode, tableMinWidth: props.tableMinWidth, clientWidth: props.clientWidth, clientHeight: props.clientHeight, expandRows: props.expandRows, nowDate: nowDate, nowIndicatorSegs: nowIndicator && this.slicer.sliceNowDate(nowDate, dateProfile, nextDayThreshold, context, dayRanges), todayRange: todayRange, onScrollTopRequest: props.onScrollTopRequest, onSlatCoords: props.onSlatCoords })))));
}
}
function buildDayRanges(dayTableModel, dateProfile, dateEnv) {
diff --git a/library/fullcalendar/packages/timegrid/index.global.min.js b/library/fullcalendar/packages/timegrid/index.global.min.js
index 3d05a9b1e..2ff33dd58 100644
--- a/library/fullcalendar/packages/timegrid/index.global.min.js
+++ b/library/fullcalendar/packages/timegrid/index.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Time Grid Plugin v6.0.3
+FullCalendar Time Grid Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/timegrid-view
-(c) 2022 Adam Shaw
+(c) 2023 Adam Shaw
*/
-FullCalendar.TimeGrid=function(e,t,i,r,n){"use strict";class o extends i.Splitter{getKeyInfo(){return{allDay:{},timed:{}}}getKeysForDateSpan(e){return e.allDay?["allDay"]:["timed"]}getKeysForEventDef(e){return e.allDay?i.hasBgRendering(e)?["timed","allDay"]:["allDay"]:["timed"]}}const s=i.createFormatter({hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"short"});function l(e){let t=["fc-timegrid-slot","fc-timegrid-slot-label",e.isLabeled?"fc-scrollgrid-shrink":"fc-timegrid-slot-minor"];return r.createElement(i.ViewContextType.Consumer,null,n=>{if(!e.isLabeled)return r.createElement("td",{className:t.join(" "),"data-time":e.isoTimeStr});let{dateEnv:o,options:l,viewApi:c}=n,d=null==l.slotLabelFormat?s:Array.isArray(l.slotLabelFormat)?i.createFormatter(l.slotLabelFormat[0]):i.createFormatter(l.slotLabelFormat),m={level:0,time:e.time,date:o.toDate(e.date),view:c,text:o.format(e.date,d)};return r.createElement(i.ContentContainer,{elTag:"td",elClasses:t,elAttrs:{"data-time":e.isoTimeStr},renderProps:m,generatorName:"slotLabelContent",generator:l.slotLabelContent||a,classNameGenerator:l.slotLabelClassNames,didMount:l.slotLabelDidMount,willUnmount:l.slotLabelWillUnmount},e=>r.createElement("div",{className:"fc-timegrid-slot-label-frame fc-scrollgrid-shrink-frame"},r.createElement(e,{elTag:"div",elClasses:["fc-timegrid-slot-label-cushion","fc-scrollgrid-shrink-cushion"]})))})}function a(e){return e.text}class c extends i.BaseComponent{render(){return this.props.slatMetas.map(e=>r.createElement("tr",{key:e.key},r.createElement(l,Object.assign({},e))))}}const d=i.createFormatter({week:"short"});class m extends i.DateComponent{constructor(){super(...arguments),this.allDaySplitter=new o,this.headerElRef=r.createRef(),this.rootElRef=r.createRef(),this.scrollerElRef=r.createRef(),this.state={slatCoords:null},this.handleScrollTopRequest=e=>{let t=this.scrollerElRef.current;t&&(t.scrollTop=e)},this.renderHeadAxis=(e,t="")=>{let{options:n}=this.context,{dateProfile:o}=this.props,s=o.renderRange,l=1===i.diffDays(s.start,s.end)?i.buildNavLinkAttrs(this.context,s.start,"week"):{};return n.weekNumbers&&"day"===e?r.createElement(i.WeekNumberContainer,{elTag:"th",elClasses:["fc-timegrid-axis","fc-scrollgrid-shrink"],elAttrs:{"aria-hidden":!0},date:s.start,defaultFormat:d},e=>r.createElement("div",{className:["fc-timegrid-axis-frame","fc-scrollgrid-shrink-frame","fc-timegrid-axis-frame-liquid"].join(" "),style:{height:t}},r.createElement(e,{elTag:"a",elClasses:["fc-timegrid-axis-cushion","fc-scrollgrid-shrink-cushion","fc-scrollgrid-sync-inner"],elAttrs:l}))):r.createElement("th",{"aria-hidden":!0,className:"fc-timegrid-axis"},r.createElement("div",{className:"fc-timegrid-axis-frame",style:{height:t}}))},this.renderTableRowAxis=e=>{let{options:t,viewApi:n}=this.context,o={text:t.allDayText,view:n};return r.createElement(i.ContentContainer,{elTag:"td",elClasses:["fc-timegrid-axis","fc-scrollgrid-shrink"],elAttrs:{"aria-hidden":!0},renderProps:o,generatorName:"allDayContent",generator:t.allDayContent||f,classNameGenerator:t.allDayClassNames,didMount:t.allDayDidMount,willUnmount:t.allDayWillUnmount},t=>r.createElement("div",{className:["fc-timegrid-axis-frame","fc-scrollgrid-shrink-frame",null==e?" fc-timegrid-axis-frame-liquid":""].join(" "),style:{height:e}},r.createElement(t,{elTag:"span",elClasses:["fc-timegrid-axis-cushion","fc-scrollgrid-shrink-cushion","fc-scrollgrid-sync-inner"]})))},this.handleSlatCoords=e=>{this.setState({slatCoords:e})}}renderSimpleLayout(e,t,n){let{context:o,props:s}=this,l=[],a=i.getStickyHeaderDates(o.options);return e&&l.push({type:"header",key:"header",isSticky:a,chunk:{elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}}),t&&(l.push({type:"body",key:"all-day",chunk:{content:t}}),l.push({type:"body",key:"all-day-divider",outerContent:r.createElement("tr",{role:"presentation",className:"fc-scrollgrid-section"},r.createElement("td",{className:"fc-timegrid-divider "+o.theme.getClass("tableCellShaded")}))})),l.push({type:"body",key:"body",liquid:!0,expandRows:Boolean(o.options.expandRows),chunk:{scrollerElRef:this.scrollerElRef,content:n}}),r.createElement(i.ViewContainer,{elRef:this.rootElRef,elClasses:["fc-timegrid"],viewSpec:o.viewSpec},r.createElement(i.SimpleScrollGrid,{liquid:!s.isHeightAuto&&!s.forPrint,collapsibleWidth:s.forPrint,cols:[{width:"shrink"}],sections:l}))}renderHScrollLayout(e,t,n,o,s,l,a){let d=this.context.pluginHooks.scrollGridImpl;if(!d)throw new Error("No ScrollGrid implementation");let{context:m,props:f}=this,h=!f.forPrint&&i.getStickyHeaderDates(m.options),g=!f.forPrint&&i.getStickyFooterScrollbar(m.options),p=[];e&&p.push({type:"header",key:"header",isSticky:h,syncRowHeights:!0,chunks:[{key:"axis",rowContent:e=>r.createElement("tr",{role:"presentation"},this.renderHeadAxis("day",e.rowSyncHeights[0]))},{key:"cols",elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}]}),t&&(p.push({type:"body",key:"all-day",syncRowHeights:!0,chunks:[{key:"axis",rowContent:e=>r.createElement("tr",{role:"presentation"},this.renderTableRowAxis(e.rowSyncHeights[0]))},{key:"cols",content:t}]}),p.push({key:"all-day-divider",type:"body",outerContent:r.createElement("tr",{role:"presentation",className:"fc-scrollgrid-section"},r.createElement("td",{colSpan:2,className:"fc-timegrid-divider "+m.theme.getClass("tableCellShaded")}))}));let u=m.options.nowIndicator;return p.push({type:"body",key:"body",liquid:!0,expandRows:Boolean(m.options.expandRows),chunks:[{key:"axis",content:e=>r.createElement("div",{className:"fc-timegrid-axis-chunk"},r.createElement("table",{"aria-hidden":!0,style:{height:e.expandRows?e.clientHeight:""}},e.tableColGroupNode,r.createElement("tbody",null,r.createElement(c,{slatMetas:l}))),r.createElement("div",{className:"fc-timegrid-now-indicator-container"},r.createElement(i.NowTimer,{unit:u?"minute":"day"},e=>{let t=u&&a&&a.safeComputeTop(e);return"number"==typeof t?r.createElement(i.NowIndicatorContainer,{elClasses:["fc-timegrid-now-indicator-arrow"],elStyle:{top:t},isAxis:!0,date:e}):null})))},{key:"cols",scrollerElRef:this.scrollerElRef,content:n}]}),g&&p.push({key:"footer",type:"footer",isSticky:!0,chunks:[{key:"axis",content:i.renderScrollShim},{key:"cols",content:i.renderScrollShim}]}),r.createElement(i.ViewContainer,{elRef:this.rootElRef,elClasses:["fc-timegrid"],viewSpec:m.viewSpec},r.createElement(d,{liquid:!f.isHeightAuto&&!f.forPrint,collapsibleWidth:!1,colGroups:[{width:"shrink",cols:[{width:"shrink"}]},{cols:[{span:o,minWidth:s}]}],sections:p}))}getAllDayMaxEventProps(){let{dayMaxEvents:e,dayMaxEventRows:t}=this.context.options;return!0!==e&&!0!==t||(e=void 0,t=5),{dayMaxEvents:e,dayMaxEventRows:t}}}function f(e){return e.text}class h{constructor(e,t,i){this.positions=e,this.dateProfile=t,this.slotDuration=i}safeComputeTop(e){let{dateProfile:t}=this;if(i.rangeContainsMarker(t.currentRange,e)){let r=i.startOfDay(e),n=e.valueOf()-r.valueOf();if(n>=i.asRoughMs(t.slotMinTime)&&n<i.asRoughMs(t.slotMaxTime))return this.computeTimeTop(i.createDuration(n))}return null}computeDateTop(e,t){return t||(t=i.startOfDay(e)),this.computeTimeTop(i.createDuration(e.valueOf()-t.valueOf()))}computeTimeTop(e){let t,r,{positions:n,dateProfile:o}=this,s=n.els.length,l=(e.milliseconds-i.asRoughMs(o.slotMinTime))/i.asRoughMs(this.slotDuration);return l=Math.max(0,l),l=Math.min(s,l),t=Math.floor(l),t=Math.min(t,s-1),r=l-t,n.tops[t]+n.getHeight(t)*r}}class g extends i.BaseComponent{render(){let{props:e,context:t}=this,{options:n}=t,{slatElRefs:o}=e;return r.createElement("tbody",null,e.slatMetas.map((s,a)=>{let c={time:s.time,date:t.dateEnv.toDate(s.date),view:t.viewApi};return r.createElement("tr",{key:s.key,ref:o.createRef(s.key)},e.axis&&r.createElement(l,Object.assign({},s)),r.createElement(i.ContentContainer,{elTag:"td",elClasses:["fc-timegrid-slot","fc-timegrid-slot-lane",!s.isLabeled&&"fc-timegrid-slot-minor"],elAttrs:{"data-time":s.isoTimeStr},renderProps:c,generatorName:"slotLaneContent",generator:n.slotLaneContent,classNameGenerator:n.slotLaneClassNames,didMount:n.slotLaneDidMount,willUnmount:n.slotLaneWillUnmount}))}))}}class p extends i.BaseComponent{constructor(){super(...arguments),this.rootElRef=r.createRef(),this.slatElRefs=new i.RefMap}render(){let{props:e,context:t}=this;return r.createElement("div",{ref:this.rootElRef,className:"fc-timegrid-slots"},r.createElement("table",{"aria-hidden":!0,className:t.theme.getClass("table"),style:{minWidth:e.tableMinWidth,width:e.clientWidth,height:e.minHeight}},e.tableColGroupNode,r.createElement(g,{slatElRefs:this.slatElRefs,axis:e.axis,slatMetas:e.slatMetas})))}componentDidMount(){this.updateSizing()}componentDidUpdate(){this.updateSizing()}componentWillUnmount(){this.props.onCoords&&this.props.onCoords(null)}updateSizing(){let{context:e,props:t}=this;if(t.onCoords&&null!==t.clientWidth){this.rootElRef.current.offsetHeight&&t.onCoords(new h(new i.PositionCache(this.rootElRef.current,(r=this.slatElRefs.currentMap,t.slatMetas.map(e=>r[e.key])),!1,!0),this.props.dateProfile,e.options.slotDuration))}var r}}function u(e,t){let i,r=[];for(i=0;i<t;i+=1)r.push([]);if(e)for(i=0;i<e.length;i+=1)r[e[i].col].push(e[i]);return r}function v(e,t){let i=[];if(e){for(let r=0;r<t;r+=1)i[r]={affectedInstances:e.affectedInstances,isEvent:e.isEvent,segs:[]};for(let t of e.segs)i[t.col].segs.push(t)}else for(let e=0;e<t;e+=1)i[e]=null;return i}class b extends i.BaseComponent{render(){let{props:e}=this;return r.createElement(i.MoreLinkContainer,{elClasses:["fc-timegrid-more-link"],elStyle:{top:e.top,bottom:e.bottom},allDayDate:null,moreCnt:e.hiddenSegs.length,allSegs:e.hiddenSegs,hiddenSegs:e.hiddenSegs,extraDateSpan:e.extraDateSpan,dateProfile:e.dateProfile,todayRange:e.todayRange,popoverContent:()=>T(e.hiddenSegs,e),defaultGenerator:y},e=>r.createElement(e,{elTag:"div",elClasses:["fc-timegrid-more-link-inner","fc-sticky"]}))}}function y(e){return e.shortText}function x(e,t,r){let n=new i.SegHierarchy;null!=t&&(n.strictOrder=t),null!=r&&(n.maxStackCnt=r);let o=n.addSegs(e),s=i.groupIntersectingEntries(o),l=function(e){const{entriesByLevel:t}=e,r=w((e,t)=>e+":"+t,(n,o)=>{let s=S(function(e,t,r){let{levelCoords:n,entriesByLevel:o}=e,s=o[t][r],l=n[t]+s.thickness,a=n.length,c=t;for(;c<a&&n[c]<l;c+=1);for(;c<a;c+=1){let e,t=o[c],r=i.binarySearch(t,s.span.start,i.getEntrySpanEnd),n=r[0]+r[1],l=n;for(;(e=t[l])&&e.span.start<s.span.end;)l+=1;if(n<l)return{level:c,lateralStart:n,lateralEnd:l}}return null}(e,n,o),r),l=t[n][o];return[Object.assign(Object.assign({},l),{nextLevelNodes:s[0]}),l.thickness+s[1]]});return S(t.length?{level:0,lateralStart:0,lateralEnd:t[0].length}:null,r)[0]}(n);return l=function(e,t){const r=w((e,t,r)=>i.buildEntryKey(e),(e,i,n)=>{let o,{nextLevelNodes:s,thickness:l}=e,a=l+n,c=l/a,d=[];if(s.length)for(let e of s)if(void 0===o){let t=r(e,i,a);o=t[0],d.push(t[1])}else{let t=r(e,o,0);d.push(t[1])}else o=t;let m=(o-i)*c;return[o-m,Object.assign(Object.assign({},e),{thickness:m,nextLevelNodes:d})]});return e.map(e=>r(e,0,0)[1])}(l,1),{segRects:function(e){let t=[];const r=w((e,t,r)=>i.buildEntryKey(e),(e,i,r)=>{let o=Object.assign(Object.assign({},e),{levelCoord:i,stackDepth:r,stackForward:0});return t.push(o),o.stackForward=n(e.nextLevelNodes,i+e.thickness,r+1)+1});function n(e,t,i){let n=0;for(let o of e)n=Math.max(r(o,t,i),n);return n}return n(e,0,0),t}(l),hiddenGroups:s}}function S(e,t){if(!e)return[[],0];let{level:i,lateralStart:r,lateralEnd:n}=e,o=r,s=[];for(;o<n;)s.push(t(i,o)),o+=1;return s.sort(C),[s.map(E),s[0][1]]}function C(e,t){return t[1]-e[1]}function E(e){return e[0]}function w(e,t){const i={};return(...r)=>{let n=e(...r);return n in i?i[n]:i[n]=t(...r)}}function D(e,t,i=null,r=0){let n=[];if(i)for(let o=0;o<e.length;o+=1){let s=e[o],l=i.computeDateTop(s.start,t),a=Math.max(l+(r||0),i.computeDateTop(s.end,t));n.push({start:Math.round(l),end:Math.round(a)})}return n}const R=i.createFormatter({hour:"numeric",minute:"2-digit",meridiem:!1});class k extends i.BaseComponent{render(){return r.createElement(i.StandardEvent,Object.assign({},this.props,{elClasses:["fc-timegrid-event","fc-v-event",this.props.isShort&&"fc-timegrid-event-short"],defaultTimeFormat:R}))}}class M extends i.BaseComponent{constructor(){super(...arguments),this.sortEventSegs=i.memoize(i.sortEventSegs)}render(){let{props:e,context:t}=this,{options:n}=t,o=n.selectMirror,s=e.eventDrag&&e.eventDrag.segs||e.eventResize&&e.eventResize.segs||o&&e.dateSelectionSegs||[],l=e.eventDrag&&e.eventDrag.affectedInstances||e.eventResize&&e.eventResize.affectedInstances||{},a=this.sortEventSegs(e.fgEventSegs,n.eventOrder);return r.createElement(i.DayCellContainer,{elTag:"td",elRef:e.elRef,elClasses:["fc-timegrid-col",...e.extraClassNames||[]],elAttrs:Object.assign({role:"gridcell"},e.extraDataAttrs),date:e.date,dateProfile:e.dateProfile,todayRange:e.todayRange,extraRenderProps:e.extraRenderProps},t=>r.createElement("div",{className:"fc-timegrid-col-frame"},r.createElement("div",{className:"fc-timegrid-col-bg"},this.renderFillSegs(e.businessHourSegs,"non-business"),this.renderFillSegs(e.bgEventSegs,"bg-event"),this.renderFillSegs(e.dateSelectionSegs,"highlight")),r.createElement("div",{className:"fc-timegrid-col-events"},this.renderFgSegs(a,l,!1,!1,!1)),r.createElement("div",{className:"fc-timegrid-col-events"},this.renderFgSegs(s,{},Boolean(e.eventDrag),Boolean(e.eventResize),Boolean(o))),r.createElement("div",{className:"fc-timegrid-now-indicator-container"},this.renderNowIndicator(e.nowIndicatorSegs)),i.hasCustomDayCellContent(n)&&r.createElement(t,{elTag:"div",elClasses:["fc-timegrid-col-misc"]})))}renderFgSegs(e,t,i,r,n){let{props:o}=this;return o.forPrint?T(e,o):this.renderPositionedFgSegs(e,t,i,r,n)}renderPositionedFgSegs(e,t,n,o,s){let{eventMaxStack:l,eventShortHeight:a,eventOrderStrict:c,eventMinHeight:d}=this.context.options,{date:m,slatCoords:f,eventSelection:h,todayRange:g,nowDate:p}=this.props,u=n||o||s,v=D(e,m,f,d),{segPlacements:b,hiddenGroups:y}=function(e,t,i,r){let n=[],o=[];for(let i=0;i<e.length;i+=1){let r=t[i];r?n.push({index:i,thickness:1,span:r}):o.push(e[i])}let{segRects:s,hiddenGroups:l}=x(n,i,r),a=[];for(let t of s)a.push({seg:e[t.index],rect:t});for(let e of o)a.push({seg:e,rect:null});return{segPlacements:a,hiddenGroups:l}}(e,v,c,l);return r.createElement(r.Fragment,null,this.renderHiddenGroups(y,e),b.map(e=>{let{seg:l,rect:c}=e,d=l.eventRange.instance.instanceId,m=u||Boolean(!t[d]&&c),f=N(c&&c.span),v=!u&&c?this.computeSegHStyle(c):{left:0,right:0},b=Boolean(c)&&c.stackForward>0,y=Boolean(c)&&c.span.end-c.span.start<a;return r.createElement("div",{className:"fc-timegrid-event-harness"+(b?" fc-timegrid-event-harness-inset":""),key:d,style:Object.assign(Object.assign({visibility:m?"":"hidden"},f),v)},r.createElement(k,Object.assign({seg:l,isDragging:n,isResizing:o,isDateSelecting:s,isSelected:d===h,isShort:y},i.getSegMeta(l,g,p))))}))}renderHiddenGroups(e,t){let{extraDateSpan:n,dateProfile:o,todayRange:s,nowDate:l,eventSelection:a,eventDrag:c,eventResize:d}=this.props;return r.createElement(r.Fragment,null,e.map(e=>{let m=N(e.span),f=(h=e.entries,g=t,h.map(e=>g[e.index]));var h,g;return r.createElement(b,{key:i.buildIsoString(i.computeEarliestSegStart(f)),hiddenSegs:f,top:m.top,bottom:m.bottom,extraDateSpan:n,dateProfile:o,todayRange:s,nowDate:l,eventSelection:a,eventDrag:c,eventResize:d})}))}renderFillSegs(e,t){let{props:n,context:o}=this,s=D(e,n.date,n.slatCoords,o.options.eventMinHeight).map((o,s)=>{let l=e[s];return r.createElement("div",{key:i.buildEventRangeKey(l.eventRange),className:"fc-timegrid-bg-harness",style:N(o)},"bg-event"===t?r.createElement(i.BgEvent,Object.assign({seg:l},i.getSegMeta(l,n.todayRange,n.nowDate))):i.renderFill(t))});return r.createElement(r.Fragment,null,s)}renderNowIndicator(e){let{slatCoords:t,date:n}=this.props;return t?e.map((e,o)=>r.createElement(i.NowIndicatorContainer,{key:o,elClasses:["fc-timegrid-now-indicator-line"],elStyle:{top:t.computeDateTop(e.start,n)},isAxis:!1,date:n})):null}computeSegHStyle(e){let t,i,{isRtl:r,options:n}=this.context,o=n.slotEventOverlap,s=e.levelCoord,l=e.levelCoord+e.thickness;o&&(l=Math.min(1,s+2*(l-s))),r?(t=1-l,i=s):(t=s,i=1-l);let a={zIndex:e.stackDepth+1,left:100*t+"%",right:100*i+"%"};return o&&!e.stackForward&&(a[r?"marginLeft":"marginRight"]=20),a}}function T(e,{todayRange:t,nowDate:n,eventSelection:o,eventDrag:s,eventResize:l}){let a=(s?s.affectedInstances:null)||(l?l.affectedInstances:null)||{};return r.createElement(r.Fragment,null,e.map(e=>{let s=e.eventRange.instance.instanceId;return r.createElement("div",{key:s,style:{visibility:a[s]?"hidden":""}},r.createElement(k,Object.assign({seg:e,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:s===o,isShort:!1},i.getSegMeta(e,t,n))))}))}function N(e){return e?{top:e.start,bottom:-e.end}:{top:"",bottom:""}}class P extends i.BaseComponent{constructor(){super(...arguments),this.splitFgEventSegs=i.memoize(u),this.splitBgEventSegs=i.memoize(u),this.splitBusinessHourSegs=i.memoize(u),this.splitNowIndicatorSegs=i.memoize(u),this.splitDateSelectionSegs=i.memoize(u),this.splitEventDrag=i.memoize(v),this.splitEventResize=i.memoize(v),this.rootElRef=r.createRef(),this.cellElRefs=new i.RefMap}render(){let{props:e,context:t}=this,n=t.options.nowIndicator&&e.slatCoords&&e.slatCoords.safeComputeTop(e.nowDate),o=e.cells.length,s=this.splitFgEventSegs(e.fgEventSegs,o),l=this.splitBgEventSegs(e.bgEventSegs,o),a=this.splitBusinessHourSegs(e.businessHourSegs,o),c=this.splitNowIndicatorSegs(e.nowIndicatorSegs,o),d=this.splitDateSelectionSegs(e.dateSelectionSegs,o),m=this.splitEventDrag(e.eventDrag,o),f=this.splitEventResize(e.eventResize,o);return r.createElement("div",{className:"fc-timegrid-cols",ref:this.rootElRef},r.createElement("table",{role:"presentation",style:{minWidth:e.tableMinWidth,width:e.clientWidth}},e.tableColGroupNode,r.createElement("tbody",{role:"presentation"},r.createElement("tr",{role:"row"},e.axis&&r.createElement("td",{"aria-hidden":!0,className:"fc-timegrid-col fc-timegrid-axis"},r.createElement("div",{className:"fc-timegrid-col-frame"},r.createElement("div",{className:"fc-timegrid-now-indicator-container"},"number"==typeof n&&r.createElement(i.NowIndicatorContainer,{elClasses:["fc-timegrid-now-indicator-arrow"],elStyle:{top:n},isAxis:!0,date:e.nowDate})))),e.cells.map((t,i)=>r.createElement(M,{key:t.key,elRef:this.cellElRefs.createRef(t.key),dateProfile:e.dateProfile,date:t.date,nowDate:e.nowDate,todayRange:e.todayRange,extraRenderProps:t.extraRenderProps,extraDataAttrs:t.extraDataAttrs,extraClassNames:t.extraClassNames,extraDateSpan:t.extraDateSpan,fgEventSegs:s[i],bgEventSegs:l[i],businessHourSegs:a[i],nowIndicatorSegs:c[i],dateSelectionSegs:d[i],eventDrag:m[i],eventResize:f[i],slatCoords:e.slatCoords,eventSelection:e.eventSelection,forPrint:e.forPrint}))))))}componentDidMount(){this.updateCoords()}componentDidUpdate(){this.updateCoords()}updateCoords(){let{props:e}=this;var t;e.onColCoords&&null!==e.clientWidth&&e.onColCoords(new i.PositionCache(this.rootElRef.current,(t=this.cellElRefs.currentMap,e.cells.map(e=>t[e.key])),!0,!1))}}class z extends i.DateComponent{constructor(){super(...arguments),this.processSlotOptions=i.memoize(H),this.state={slatCoords:null},this.handleRootEl=e=>{e?this.context.registerInteractiveComponent(this,{el:e,isHitComboAllowed:this.props.isHitComboAllowed}):this.context.unregisterInteractiveComponent(this)},this.handleScrollRequest=e=>{let{onScrollTopRequest:t}=this.props,{slatCoords:i}=this.state;if(t&&i){if(e.time){let r=i.computeTimeTop(e.time);r=Math.ceil(r),r&&(r+=1),t(r)}return!0}return!1},this.handleColCoords=e=>{this.colCoords=e},this.handleSlatCoords=e=>{this.setState({slatCoords:e}),this.props.onSlatCoords&&this.props.onSlatCoords(e)}}render(){let{props:e,state:t}=this;return r.createElement("div",{className:"fc-timegrid-body",ref:this.handleRootEl,style:{width:e.clientWidth,minWidth:e.tableMinWidth}},r.createElement(p,{axis:e.axis,dateProfile:e.dateProfile,slatMetas:e.slatMetas,clientWidth:e.clientWidth,minHeight:e.expandRows?e.clientHeight:"",tableMinWidth:e.tableMinWidth,tableColGroupNode:e.axis?e.tableColGroupNode:null,onCoords:this.handleSlatCoords}),r.createElement(P,{cells:e.cells,axis:e.axis,dateProfile:e.dateProfile,businessHourSegs:e.businessHourSegs,bgEventSegs:e.bgEventSegs,fgEventSegs:e.fgEventSegs,dateSelectionSegs:e.dateSelectionSegs,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,todayRange:e.todayRange,nowDate:e.nowDate,nowIndicatorSegs:e.nowIndicatorSegs,clientWidth:e.clientWidth,tableMinWidth:e.tableMinWidth,tableColGroupNode:e.tableColGroupNode,slatCoords:t.slatCoords,onColCoords:this.handleColCoords,forPrint:e.forPrint}))}componentDidMount(){this.scrollResponder=this.context.createScrollResponder(this.handleScrollRequest)}componentDidUpdate(e){this.scrollResponder.update(e.dateProfile!==this.props.dateProfile)}componentWillUnmount(){this.scrollResponder.detach()}queryHit(e,t){let{dateEnv:r,options:n}=this.context,{colCoords:o}=this,{dateProfile:s}=this.props,{slatCoords:l}=this.state,{snapDuration:a,snapsPerSlot:c}=this.processSlotOptions(this.props.slotDuration,n.snapDuration),d=o.leftToIndex(e),m=l.positions.topToIndex(t);if(null!=d&&null!=m){let e=this.props.cells[d],n=l.positions.tops[m],f=l.positions.getHeight(m),h=(t-n)/f,g=m*c+Math.floor(h*c),p=this.props.cells[d].date,u=i.addDurations(s.slotMinTime,i.multiplyDuration(a,g)),v=r.add(p,u),b=r.add(v,a);return{dateProfile:s,dateSpan:Object.assign({range:{start:v,end:b},allDay:!1},e.extraDateSpan),dayEl:o.els[d],rect:{left:o.lefts[d],right:o.rights[d],top:n,bottom:n+f},layer:0}}return null}}function H(e,t){let r=t||e,n=i.wholeDivideDurations(e,r);return null===n&&(r=e,n=1),{snapDuration:r,snapsPerSlot:n}}class W extends i.Slicer{sliceRange(e,t){let r=[];for(let n=0;n<t.length;n+=1){let o=i.intersectRanges(e,t[n]);o&&r.push({start:o.start,end:o.end,isStart:o.start.valueOf()===e.start.valueOf(),isEnd:o.end.valueOf()===e.end.valueOf(),col:n})}return r}}class I extends i.DateComponent{constructor(){super(...arguments),this.buildDayRanges=i.memoize(F),this.slicer=new W,this.timeColsRef=r.createRef()}render(){let{props:e,context:t}=this,{dateProfile:n,dayTableModel:o}=e,s=t.options.nowIndicator,l=this.buildDayRanges(o,n,t.dateEnv);return r.createElement(i.NowTimer,{unit:s?"minute":"day"},(i,a)=>r.createElement(z,Object.assign({ref:this.timeColsRef},this.slicer.sliceProps(e,n,null,t,l),{forPrint:e.forPrint,axis:e.axis,dateProfile:n,slatMetas:e.slatMetas,slotDuration:e.slotDuration,cells:o.cells[0],tableColGroupNode:e.tableColGroupNode,tableMinWidth:e.tableMinWidth,clientWidth:e.clientWidth,clientHeight:e.clientHeight,expandRows:e.expandRows,nowDate:i,nowIndicatorSegs:s&&this.slicer.sliceNowDate(i,t,l),todayRange:a,onScrollTopRequest:e.onScrollTopRequest,onSlatCoords:e.onSlatCoords})))}}function F(e,t,i){let r=[];for(let n of e.headerDates)r.push({start:i.add(n,t.slotMinTime),end:i.add(n,t.slotMaxTime)});return r}const O=[{hours:1},{minutes:30},{minutes:15},{seconds:30},{seconds:15}];function G(e,t,r,n,o){let s=new Date(0),l=e,a=i.createDuration(0),c=r||function(e){let t,r,n;for(t=O.length-1;t>=0;t-=1)if(r=i.createDuration(O[t]),n=i.wholeDivideDurations(r,e),null!==n&&n>1)return r;return e}(n),d=[];for(;i.asRoughMs(l)<i.asRoughMs(t);){let e=o.add(s,l),t=null!==i.wholeDivideDurations(a,c);d.push({date:e,time:l,key:e.toISOString(),isoTimeStr:i.formatIsoTimeString(e),isLabeled:t}),l=i.addDurations(l,n),a=i.addDurations(a,n)}return d}class L extends m{constructor(){super(...arguments),this.buildTimeColsModel=i.memoize(A),this.buildSlatMetas=i.memoize(G)}render(){let{options:e,dateEnv:t,dateProfileGenerator:o}=this.context,{props:s}=this,{dateProfile:l}=s,a=this.buildTimeColsModel(l,o),c=this.allDaySplitter.splitProps(s),d=this.buildSlatMetas(l.slotMinTime,l.slotMaxTime,e.slotLabelInterval,e.slotDuration,t),{dayMinWidth:m}=e,f=!m,h=m,g=e.dayHeaders&&r.createElement(i.DayHeader,{dates:a.headerDates,dateProfile:l,datesRepDistinctDays:!0,renderIntro:f?this.renderHeadAxis:null}),p=!1!==e.allDaySlot&&(t=>r.createElement(n.DayTable,Object.assign({},c.allDay,{dateProfile:l,dayTableModel:a,nextDayThreshold:e.nextDayThreshold,tableMinWidth:t.tableMinWidth,colGroupNode:t.tableColGroupNode,renderRowIntro:f?this.renderTableRowAxis:null,showWeekNumbers:!1,expandRows:!1,headerAlignElRef:this.headerElRef,clientWidth:t.clientWidth,clientHeight:t.clientHeight,forPrint:s.forPrint},this.getAllDayMaxEventProps()))),u=t=>r.createElement(I,Object.assign({},c.timed,{dayTableModel:a,dateProfile:l,axis:f,slotDuration:e.slotDuration,slatMetas:d,forPrint:s.forPrint,tableColGroupNode:t.tableColGroupNode,tableMinWidth:t.tableMinWidth,clientWidth:t.clientWidth,clientHeight:t.clientHeight,onSlatCoords:this.handleSlatCoords,expandRows:t.expandRows,onScrollTopRequest:this.handleScrollTopRequest}));return h?this.renderHScrollLayout(g,p,u,a.colCnt,m,d,this.state.slatCoords):this.renderSimpleLayout(g,p,u)}}function A(e,t){let r=new i.DaySeriesModel(e.renderRange,t);return new i.DayTableModel(r,!1)}const j={allDaySlot:Boolean};i.injectStyles('.fc-v-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-v-event .fc-event-main{color:var(--fc-event-text-color);height:100%}.fc-v-event .fc-event-main-frame{display:flex;flex-direction:column;height:100%}.fc-v-event .fc-event-time{flex-grow:0;flex-shrink:0;max-height:100%;overflow:hidden}.fc-v-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-height:0}.fc-v-event .fc-event-title{bottom:0;max-height:100%;overflow:hidden;top:0}.fc-v-event:not(.fc-event-start){border-top-left-radius:0;border-top-right-radius:0;border-top-width:0}.fc-v-event:not(.fc-event-end){border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-width:0}.fc-v-event.fc-event-selected:before{left:-10px;right:-10px}.fc-v-event .fc-event-resizer-start{cursor:n-resize}.fc-v-event .fc-event-resizer-end{cursor:s-resize}.fc-v-event:not(.fc-event-selected) .fc-event-resizer{height:var(--fc-event-resizer-thickness);left:0;right:0}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start{top:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer{left:50%;margin-left:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-start{top:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc .fc-timegrid .fc-daygrid-body{z-index:2}.fc .fc-timegrid-divider{padding:0 0 2px}.fc .fc-timegrid-body{min-height:100%;position:relative;z-index:1}.fc .fc-timegrid-axis-chunk{position:relative}.fc .fc-timegrid-axis-chunk>table,.fc .fc-timegrid-slots{position:relative;z-index:1}.fc .fc-timegrid-slot{border-bottom:0;height:1.5em}.fc .fc-timegrid-slot:empty:before{content:"\\00a0"}.fc .fc-timegrid-slot-minor{border-top-style:dotted}.fc .fc-timegrid-slot-label-cushion{display:inline-block;white-space:nowrap}.fc .fc-timegrid-slot-label{vertical-align:middle}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{padding:0 4px}.fc .fc-timegrid-axis-frame-liquid{height:100%}.fc .fc-timegrid-axis-frame{align-items:center;display:flex;justify-content:flex-end;overflow:hidden}.fc .fc-timegrid-axis-cushion{flex-shrink:0;max-width:60px}.fc-direction-ltr .fc-timegrid-slot-label-frame{text-align:right}.fc-direction-rtl .fc-timegrid-slot-label-frame{text-align:left}.fc-liquid-hack .fc-timegrid-axis-frame-liquid{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-timegrid-col-frame{min-height:100%;position:relative}.fc-media-screen.fc-liquid-hack .fc-timegrid-col-frame{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols{bottom:0;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols>table{height:100%}.fc-media-screen .fc-timegrid-col-bg,.fc-media-screen .fc-timegrid-col-events,.fc-media-screen .fc-timegrid-now-indicator-container{left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col-bg{z-index:2}.fc .fc-timegrid-col-bg .fc-non-business{z-index:1}.fc .fc-timegrid-col-bg .fc-bg-event{z-index:2}.fc .fc-timegrid-col-bg .fc-highlight{z-index:3}.fc .fc-timegrid-bg-harness{left:0;position:absolute;right:0}.fc .fc-timegrid-col-events{z-index:3}.fc .fc-timegrid-now-indicator-container{bottom:0;overflow:hidden}.fc-direction-ltr .fc-timegrid-col-events{margin:0 2.5% 0 2px}.fc-direction-rtl .fc-timegrid-col-events{margin:0 2px 0 2.5%}.fc-timegrid-event-harness{position:absolute}.fc-timegrid-event-harness>.fc-timegrid-event{bottom:0;left:0;position:absolute;right:0;top:0}.fc-timegrid-event-harness-inset .fc-timegrid-event,.fc-timegrid-event.fc-event-mirror,.fc-timegrid-more-link{box-shadow:0 0 0 1px var(--fc-page-bg-color)}.fc-timegrid-event,.fc-timegrid-more-link{border-radius:3px;font-size:var(--fc-small-font-size)}.fc-timegrid-event{margin-bottom:1px}.fc-timegrid-event .fc-event-main{padding:1px 1px 0}.fc-timegrid-event .fc-event-time{font-size:var(--fc-small-font-size);margin-bottom:1px;white-space:nowrap}.fc-timegrid-event-short .fc-event-main-frame{flex-direction:row;overflow:hidden}.fc-timegrid-event-short .fc-event-time:after{content:"\\00a0-\\00a0"}.fc-timegrid-event-short .fc-event-title{font-size:var(--fc-small-font-size)}.fc-timegrid-more-link{background:var(--fc-more-link-bg-color);color:var(--fc-more-link-text-color);cursor:pointer;margin-bottom:1px;position:absolute;z-index:9999}.fc-timegrid-more-link-inner{padding:3px 2px;top:0}.fc-direction-ltr .fc-timegrid-more-link{right:0}.fc-direction-rtl .fc-timegrid-more-link{left:0}.fc .fc-timegrid-now-indicator-line{border-color:var(--fc-now-indicator-color);border-style:solid;border-width:1px 0 0;left:0;position:absolute;right:0;z-index:4}.fc .fc-timegrid-now-indicator-arrow{border-color:var(--fc-now-indicator-color);border-style:solid;margin-top:-5px;position:absolute;z-index:4}.fc-direction-ltr .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 0 5px 6px;left:0}.fc-direction-rtl .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 6px 5px 0;right:0}');var B=t.createPlugin({name:"@fullcalendar/timegrid",initialView:"timeGridWeek",optionRefiners:j,views:{timeGrid:{component:L,usesMinMaxTime:!0,allDaySlot:!0,slotDuration:"00:30:00",slotEventOverlap:!0},timeGridDay:{type:"timeGrid",duration:{days:1}},timeGridWeek:{type:"timeGrid",duration:{weeks:1}}}}),q={__proto__:null,TimeColsView:m,DayTimeColsView:L,buildTimeColsModel:A,DayTimeCols:I,buildDayRanges:F,DayTimeColsSlicer:W,TimeCols:z,buildSlatMetas:G,TimeColsSlatsCoords:h};return t.globalPlugins.push(B),e.Internal=q,e.default=B,Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar,FullCalendar.Internal,FullCalendar.Preact,FullCalendar.DayGrid.Internal); \ No newline at end of file
+FullCalendar.TimeGrid=function(e,t,i,r,n){"use strict";class o extends i.Splitter{getKeyInfo(){return{allDay:{},timed:{}}}getKeysForDateSpan(e){return e.allDay?["allDay"]:["timed"]}getKeysForEventDef(e){return e.allDay?i.hasBgRendering(e)?["timed","allDay"]:["allDay"]:["timed"]}}const s=i.createFormatter({hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"short"});function l(e){let t=["fc-timegrid-slot","fc-timegrid-slot-label",e.isLabeled?"fc-scrollgrid-shrink":"fc-timegrid-slot-minor"];return r.createElement(i.ViewContextType.Consumer,null,n=>{if(!e.isLabeled)return r.createElement("td",{className:t.join(" "),"data-time":e.isoTimeStr});let{dateEnv:o,options:l,viewApi:c}=n,d=null==l.slotLabelFormat?s:Array.isArray(l.slotLabelFormat)?i.createFormatter(l.slotLabelFormat[0]):i.createFormatter(l.slotLabelFormat),m={level:0,time:e.time,date:o.toDate(e.date),view:c,text:o.format(e.date,d)};return r.createElement(i.ContentContainer,{elTag:"td",elClasses:t,elAttrs:{"data-time":e.isoTimeStr},renderProps:m,generatorName:"slotLabelContent",customGenerator:l.slotLabelContent,defaultGenerator:a,classNameGenerator:l.slotLabelClassNames,didMount:l.slotLabelDidMount,willUnmount:l.slotLabelWillUnmount},e=>r.createElement("div",{className:"fc-timegrid-slot-label-frame fc-scrollgrid-shrink-frame"},r.createElement(e,{elTag:"div",elClasses:["fc-timegrid-slot-label-cushion","fc-scrollgrid-shrink-cushion"]})))})}function a(e){return e.text}class c extends i.BaseComponent{render(){return this.props.slatMetas.map(e=>r.createElement("tr",{key:e.key},r.createElement(l,Object.assign({},e))))}}const d=i.createFormatter({week:"short"});class m extends i.DateComponent{constructor(){super(...arguments),this.allDaySplitter=new o,this.headerElRef=r.createRef(),this.rootElRef=r.createRef(),this.scrollerElRef=r.createRef(),this.state={slatCoords:null},this.handleScrollTopRequest=e=>{let t=this.scrollerElRef.current;t&&(t.scrollTop=e)},this.renderHeadAxis=(e,t="")=>{let{options:n}=this.context,{dateProfile:o}=this.props,s=o.renderRange,l=1===i.diffDays(s.start,s.end)?i.buildNavLinkAttrs(this.context,s.start,"week"):{};return n.weekNumbers&&"day"===e?r.createElement(i.WeekNumberContainer,{elTag:"th",elClasses:["fc-timegrid-axis","fc-scrollgrid-shrink"],elAttrs:{"aria-hidden":!0},date:s.start,defaultFormat:d},e=>r.createElement("div",{className:["fc-timegrid-axis-frame","fc-scrollgrid-shrink-frame","fc-timegrid-axis-frame-liquid"].join(" "),style:{height:t}},r.createElement(e,{elTag:"a",elClasses:["fc-timegrid-axis-cushion","fc-scrollgrid-shrink-cushion","fc-scrollgrid-sync-inner"],elAttrs:l}))):r.createElement("th",{"aria-hidden":!0,className:"fc-timegrid-axis"},r.createElement("div",{className:"fc-timegrid-axis-frame",style:{height:t}}))},this.renderTableRowAxis=e=>{let{options:t,viewApi:n}=this.context,o={text:t.allDayText,view:n};return r.createElement(i.ContentContainer,{elTag:"td",elClasses:["fc-timegrid-axis","fc-scrollgrid-shrink"],elAttrs:{"aria-hidden":!0},renderProps:o,generatorName:"allDayContent",customGenerator:t.allDayContent,defaultGenerator:f,classNameGenerator:t.allDayClassNames,didMount:t.allDayDidMount,willUnmount:t.allDayWillUnmount},t=>r.createElement("div",{className:["fc-timegrid-axis-frame","fc-scrollgrid-shrink-frame",null==e?" fc-timegrid-axis-frame-liquid":""].join(" "),style:{height:e}},r.createElement(t,{elTag:"span",elClasses:["fc-timegrid-axis-cushion","fc-scrollgrid-shrink-cushion","fc-scrollgrid-sync-inner"]})))},this.handleSlatCoords=e=>{this.setState({slatCoords:e})}}renderSimpleLayout(e,t,n){let{context:o,props:s}=this,l=[],a=i.getStickyHeaderDates(o.options);return e&&l.push({type:"header",key:"header",isSticky:a,chunk:{elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}}),t&&(l.push({type:"body",key:"all-day",chunk:{content:t}}),l.push({type:"body",key:"all-day-divider",outerContent:r.createElement("tr",{role:"presentation",className:"fc-scrollgrid-section"},r.createElement("td",{className:"fc-timegrid-divider "+o.theme.getClass("tableCellShaded")}))})),l.push({type:"body",key:"body",liquid:!0,expandRows:Boolean(o.options.expandRows),chunk:{scrollerElRef:this.scrollerElRef,content:n}}),r.createElement(i.ViewContainer,{elRef:this.rootElRef,elClasses:["fc-timegrid"],viewSpec:o.viewSpec},r.createElement(i.SimpleScrollGrid,{liquid:!s.isHeightAuto&&!s.forPrint,collapsibleWidth:s.forPrint,cols:[{width:"shrink"}],sections:l}))}renderHScrollLayout(e,t,n,o,s,l,a){let d=this.context.pluginHooks.scrollGridImpl;if(!d)throw new Error("No ScrollGrid implementation");let{context:m,props:f}=this,h=!f.forPrint&&i.getStickyHeaderDates(m.options),g=!f.forPrint&&i.getStickyFooterScrollbar(m.options),u=[];e&&u.push({type:"header",key:"header",isSticky:h,syncRowHeights:!0,chunks:[{key:"axis",rowContent:e=>r.createElement("tr",{role:"presentation"},this.renderHeadAxis("day",e.rowSyncHeights[0]))},{key:"cols",elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}]}),t&&(u.push({type:"body",key:"all-day",syncRowHeights:!0,chunks:[{key:"axis",rowContent:e=>r.createElement("tr",{role:"presentation"},this.renderTableRowAxis(e.rowSyncHeights[0]))},{key:"cols",content:t}]}),u.push({key:"all-day-divider",type:"body",outerContent:r.createElement("tr",{role:"presentation",className:"fc-scrollgrid-section"},r.createElement("td",{colSpan:2,className:"fc-timegrid-divider "+m.theme.getClass("tableCellShaded")}))}));let p=m.options.nowIndicator;return u.push({type:"body",key:"body",liquid:!0,expandRows:Boolean(m.options.expandRows),chunks:[{key:"axis",content:e=>r.createElement("div",{className:"fc-timegrid-axis-chunk"},r.createElement("table",{"aria-hidden":!0,style:{height:e.expandRows?e.clientHeight:""}},e.tableColGroupNode,r.createElement("tbody",null,r.createElement(c,{slatMetas:l}))),r.createElement("div",{className:"fc-timegrid-now-indicator-container"},r.createElement(i.NowTimer,{unit:p?"minute":"day"},e=>{let t=p&&a&&a.safeComputeTop(e);return"number"==typeof t?r.createElement(i.NowIndicatorContainer,{elClasses:["fc-timegrid-now-indicator-arrow"],elStyle:{top:t},isAxis:!0,date:e}):null})))},{key:"cols",scrollerElRef:this.scrollerElRef,content:n}]}),g&&u.push({key:"footer",type:"footer",isSticky:!0,chunks:[{key:"axis",content:i.renderScrollShim},{key:"cols",content:i.renderScrollShim}]}),r.createElement(i.ViewContainer,{elRef:this.rootElRef,elClasses:["fc-timegrid"],viewSpec:m.viewSpec},r.createElement(d,{liquid:!f.isHeightAuto&&!f.forPrint,forPrint:f.forPrint,collapsibleWidth:!1,colGroups:[{width:"shrink",cols:[{width:"shrink"}]},{cols:[{span:o,minWidth:s}]}],sections:u}))}getAllDayMaxEventProps(){let{dayMaxEvents:e,dayMaxEventRows:t}=this.context.options;return!0!==e&&!0!==t||(e=void 0,t=5),{dayMaxEvents:e,dayMaxEventRows:t}}}function f(e){return e.text}class h{constructor(e,t,i){this.positions=e,this.dateProfile=t,this.slotDuration=i}safeComputeTop(e){let{dateProfile:t}=this;if(i.rangeContainsMarker(t.currentRange,e)){let r=i.startOfDay(e),n=e.valueOf()-r.valueOf();if(n>=i.asRoughMs(t.slotMinTime)&&n<i.asRoughMs(t.slotMaxTime))return this.computeTimeTop(i.createDuration(n))}return null}computeDateTop(e,t){return t||(t=i.startOfDay(e)),this.computeTimeTop(i.createDuration(e.valueOf()-t.valueOf()))}computeTimeTop(e){let t,r,{positions:n,dateProfile:o}=this,s=n.els.length,l=(e.milliseconds-i.asRoughMs(o.slotMinTime))/i.asRoughMs(this.slotDuration);return l=Math.max(0,l),l=Math.min(s,l),t=Math.floor(l),t=Math.min(t,s-1),r=l-t,n.tops[t]+n.getHeight(t)*r}}class g extends i.BaseComponent{render(){let{props:e,context:t}=this,{options:n}=t,{slatElRefs:o}=e;return r.createElement("tbody",null,e.slatMetas.map((s,a)=>{let c={time:s.time,date:t.dateEnv.toDate(s.date),view:t.viewApi};return r.createElement("tr",{key:s.key,ref:o.createRef(s.key)},e.axis&&r.createElement(l,Object.assign({},s)),r.createElement(i.ContentContainer,{elTag:"td",elClasses:["fc-timegrid-slot","fc-timegrid-slot-lane",!s.isLabeled&&"fc-timegrid-slot-minor"],elAttrs:{"data-time":s.isoTimeStr},renderProps:c,generatorName:"slotLaneContent",customGenerator:n.slotLaneContent,classNameGenerator:n.slotLaneClassNames,didMount:n.slotLaneDidMount,willUnmount:n.slotLaneWillUnmount}))}))}}class u extends i.BaseComponent{constructor(){super(...arguments),this.rootElRef=r.createRef(),this.slatElRefs=new i.RefMap}render(){let{props:e,context:t}=this;return r.createElement("div",{ref:this.rootElRef,className:"fc-timegrid-slots"},r.createElement("table",{"aria-hidden":!0,className:t.theme.getClass("table"),style:{minWidth:e.tableMinWidth,width:e.clientWidth,height:e.minHeight}},e.tableColGroupNode,r.createElement(g,{slatElRefs:this.slatElRefs,axis:e.axis,slatMetas:e.slatMetas})))}componentDidMount(){this.updateSizing()}componentDidUpdate(){this.updateSizing()}componentWillUnmount(){this.props.onCoords&&this.props.onCoords(null)}updateSizing(){let{context:e,props:t}=this;if(t.onCoords&&null!==t.clientWidth){this.rootElRef.current.offsetHeight&&t.onCoords(new h(new i.PositionCache(this.rootElRef.current,(r=this.slatElRefs.currentMap,t.slatMetas.map(e=>r[e.key])),!1,!0),this.props.dateProfile,e.options.slotDuration))}var r}}function p(e,t){let i,r=[];for(i=0;i<t;i+=1)r.push([]);if(e)for(i=0;i<e.length;i+=1)r[e[i].col].push(e[i]);return r}function v(e,t){let i=[];if(e){for(let r=0;r<t;r+=1)i[r]={affectedInstances:e.affectedInstances,isEvent:e.isEvent,segs:[]};for(let t of e.segs)i[t.col].segs.push(t)}else for(let e=0;e<t;e+=1)i[e]=null;return i}class b extends i.BaseComponent{render(){let{props:e}=this;return r.createElement(i.MoreLinkContainer,{elClasses:["fc-timegrid-more-link"],elStyle:{top:e.top,bottom:e.bottom},allDayDate:null,moreCnt:e.hiddenSegs.length,allSegs:e.hiddenSegs,hiddenSegs:e.hiddenSegs,extraDateSpan:e.extraDateSpan,dateProfile:e.dateProfile,todayRange:e.todayRange,popoverContent:()=>T(e.hiddenSegs,e),defaultGenerator:y,forceTimed:!0},e=>r.createElement(e,{elTag:"div",elClasses:["fc-timegrid-more-link-inner","fc-sticky"]}))}}function y(e){return e.shortText}function x(e,t,r){let n=new i.SegHierarchy;null!=t&&(n.strictOrder=t),null!=r&&(n.maxStackCnt=r);let o=n.addSegs(e),s=i.groupIntersectingEntries(o),l=function(e){const{entriesByLevel:t}=e,r=w((e,t)=>e+":"+t,(n,o)=>{let s=S(function(e,t,r){let{levelCoords:n,entriesByLevel:o}=e,s=o[t][r],l=n[t]+s.thickness,a=n.length,c=t;for(;c<a&&n[c]<l;c+=1);for(;c<a;c+=1){let e,t=o[c],r=i.binarySearch(t,s.span.start,i.getEntrySpanEnd),n=r[0]+r[1],l=n;for(;(e=t[l])&&e.span.start<s.span.end;)l+=1;if(n<l)return{level:c,lateralStart:n,lateralEnd:l}}return null}(e,n,o),r),l=t[n][o];return[Object.assign(Object.assign({},l),{nextLevelNodes:s[0]}),l.thickness+s[1]]});return S(t.length?{level:0,lateralStart:0,lateralEnd:t[0].length}:null,r)[0]}(n);return l=function(e,t){const r=w((e,t,r)=>i.buildEntryKey(e),(e,i,n)=>{let o,{nextLevelNodes:s,thickness:l}=e,a=l+n,c=l/a,d=[];if(s.length)for(let e of s)if(void 0===o){let t=r(e,i,a);o=t[0],d.push(t[1])}else{let t=r(e,o,0);d.push(t[1])}else o=t;let m=(o-i)*c;return[o-m,Object.assign(Object.assign({},e),{thickness:m,nextLevelNodes:d})]});return e.map(e=>r(e,0,0)[1])}(l,1),{segRects:function(e){let t=[];const r=w((e,t,r)=>i.buildEntryKey(e),(e,i,r)=>{let o=Object.assign(Object.assign({},e),{levelCoord:i,stackDepth:r,stackForward:0});return t.push(o),o.stackForward=n(e.nextLevelNodes,i+e.thickness,r+1)+1});function n(e,t,i){let n=0;for(let o of e)n=Math.max(r(o,t,i),n);return n}return n(e,0,0),t}(l),hiddenGroups:s}}function S(e,t){if(!e)return[[],0];let{level:i,lateralStart:r,lateralEnd:n}=e,o=r,s=[];for(;o<n;)s.push(t(i,o)),o+=1;return s.sort(C),[s.map(E),s[0][1]]}function C(e,t){return t[1]-e[1]}function E(e){return e[0]}function w(e,t){const i={};return(...r)=>{let n=e(...r);return n in i?i[n]:i[n]=t(...r)}}function D(e,t,i=null,r=0){let n=[];if(i)for(let o=0;o<e.length;o+=1){let s=e[o],l=i.computeDateTop(s.start,t),a=Math.max(l+(r||0),i.computeDateTop(s.end,t));n.push({start:Math.round(l),end:Math.round(a)})}return n}const R=i.createFormatter({hour:"numeric",minute:"2-digit",meridiem:!1});class k extends i.BaseComponent{render(){return r.createElement(i.StandardEvent,Object.assign({},this.props,{elClasses:["fc-timegrid-event","fc-v-event",this.props.isShort&&"fc-timegrid-event-short"],defaultTimeFormat:R}))}}class M extends i.BaseComponent{constructor(){super(...arguments),this.sortEventSegs=i.memoize(i.sortEventSegs)}render(){let{props:e,context:t}=this,{options:n}=t,o=n.selectMirror,s=e.eventDrag&&e.eventDrag.segs||e.eventResize&&e.eventResize.segs||o&&e.dateSelectionSegs||[],l=e.eventDrag&&e.eventDrag.affectedInstances||e.eventResize&&e.eventResize.affectedInstances||{},a=this.sortEventSegs(e.fgEventSegs,n.eventOrder);return r.createElement(i.DayCellContainer,{elTag:"td",elRef:e.elRef,elClasses:["fc-timegrid-col",...e.extraClassNames||[]],elAttrs:Object.assign({role:"gridcell"},e.extraDataAttrs),date:e.date,dateProfile:e.dateProfile,todayRange:e.todayRange,extraRenderProps:e.extraRenderProps},t=>r.createElement("div",{className:"fc-timegrid-col-frame"},r.createElement("div",{className:"fc-timegrid-col-bg"},this.renderFillSegs(e.businessHourSegs,"non-business"),this.renderFillSegs(e.bgEventSegs,"bg-event"),this.renderFillSegs(e.dateSelectionSegs,"highlight")),r.createElement("div",{className:"fc-timegrid-col-events"},this.renderFgSegs(a,l,!1,!1,!1)),r.createElement("div",{className:"fc-timegrid-col-events"},this.renderFgSegs(s,{},Boolean(e.eventDrag),Boolean(e.eventResize),Boolean(o),"mirror")),r.createElement("div",{className:"fc-timegrid-now-indicator-container"},this.renderNowIndicator(e.nowIndicatorSegs)),i.hasCustomDayCellContent(n)&&r.createElement(t,{elTag:"div",elClasses:["fc-timegrid-col-misc"]})))}renderFgSegs(e,t,i,r,n,o){let{props:s}=this;return s.forPrint?T(e,s):this.renderPositionedFgSegs(e,t,i,r,n,o)}renderPositionedFgSegs(e,t,n,o,s,l){let{eventMaxStack:a,eventShortHeight:c,eventOrderStrict:d,eventMinHeight:m}=this.context.options,{date:f,slatCoords:h,eventSelection:g,todayRange:u,nowDate:p}=this.props,v=n||o||s,b=D(e,f,h,m),{segPlacements:y,hiddenGroups:S}=function(e,t,i,r){let n=[],o=[];for(let i=0;i<e.length;i+=1){let r=t[i];r?n.push({index:i,thickness:1,span:r}):o.push(e[i])}let{segRects:s,hiddenGroups:l}=x(n,i,r),a=[];for(let t of s)a.push({seg:e[t.index],rect:t});for(let e of o)a.push({seg:e,rect:null});return{segPlacements:a,hiddenGroups:l}}(e,b,d,a);return r.createElement(r.Fragment,null,this.renderHiddenGroups(S,e),y.map(e=>{let{seg:a,rect:d}=e,m=a.eventRange.instance.instanceId,f=v||Boolean(!t[m]&&d),h=N(d&&d.span),b=!v&&d?this.computeSegHStyle(d):{left:0,right:0},y=Boolean(d)&&d.stackForward>0,x=Boolean(d)&&d.span.end-d.span.start<c;return r.createElement("div",{className:"fc-timegrid-event-harness"+(y?" fc-timegrid-event-harness-inset":""),key:l||m,style:Object.assign(Object.assign({visibility:f?"":"hidden"},h),b)},r.createElement(k,Object.assign({seg:a,isDragging:n,isResizing:o,isDateSelecting:s,isSelected:m===g,isShort:x},i.getSegMeta(a,u,p))))}))}renderHiddenGroups(e,t){let{extraDateSpan:n,dateProfile:o,todayRange:s,nowDate:l,eventSelection:a,eventDrag:c,eventResize:d}=this.props;return r.createElement(r.Fragment,null,e.map(e=>{let m=N(e.span),f=(h=e.entries,g=t,h.map(e=>g[e.index]));var h,g;return r.createElement(b,{key:i.buildIsoString(i.computeEarliestSegStart(f)),hiddenSegs:f,top:m.top,bottom:m.bottom,extraDateSpan:n,dateProfile:o,todayRange:s,nowDate:l,eventSelection:a,eventDrag:c,eventResize:d})}))}renderFillSegs(e,t){let{props:n,context:o}=this,s=D(e,n.date,n.slatCoords,o.options.eventMinHeight).map((o,s)=>{let l=e[s];return r.createElement("div",{key:i.buildEventRangeKey(l.eventRange),className:"fc-timegrid-bg-harness",style:N(o)},"bg-event"===t?r.createElement(i.BgEvent,Object.assign({seg:l},i.getSegMeta(l,n.todayRange,n.nowDate))):i.renderFill(t))});return r.createElement(r.Fragment,null,s)}renderNowIndicator(e){let{slatCoords:t,date:n}=this.props;return t?e.map((e,o)=>r.createElement(i.NowIndicatorContainer,{key:o,elClasses:["fc-timegrid-now-indicator-line"],elStyle:{top:t.computeDateTop(e.start,n)},isAxis:!1,date:n})):null}computeSegHStyle(e){let t,i,{isRtl:r,options:n}=this.context,o=n.slotEventOverlap,s=e.levelCoord,l=e.levelCoord+e.thickness;o&&(l=Math.min(1,s+2*(l-s))),r?(t=1-l,i=s):(t=s,i=1-l);let a={zIndex:e.stackDepth+1,left:100*t+"%",right:100*i+"%"};return o&&!e.stackForward&&(a[r?"marginLeft":"marginRight"]=20),a}}function T(e,{todayRange:t,nowDate:n,eventSelection:o,eventDrag:s,eventResize:l}){let a=(s?s.affectedInstances:null)||(l?l.affectedInstances:null)||{};return r.createElement(r.Fragment,null,e.map(e=>{let s=e.eventRange.instance.instanceId;return r.createElement("div",{key:s,style:{visibility:a[s]?"hidden":""}},r.createElement(k,Object.assign({seg:e,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:s===o,isShort:!1},i.getSegMeta(e,t,n))))}))}function N(e){return e?{top:e.start,bottom:-e.end}:{top:"",bottom:""}}class P extends i.BaseComponent{constructor(){super(...arguments),this.splitFgEventSegs=i.memoize(p),this.splitBgEventSegs=i.memoize(p),this.splitBusinessHourSegs=i.memoize(p),this.splitNowIndicatorSegs=i.memoize(p),this.splitDateSelectionSegs=i.memoize(p),this.splitEventDrag=i.memoize(v),this.splitEventResize=i.memoize(v),this.rootElRef=r.createRef(),this.cellElRefs=new i.RefMap}render(){let{props:e,context:t}=this,n=t.options.nowIndicator&&e.slatCoords&&e.slatCoords.safeComputeTop(e.nowDate),o=e.cells.length,s=this.splitFgEventSegs(e.fgEventSegs,o),l=this.splitBgEventSegs(e.bgEventSegs,o),a=this.splitBusinessHourSegs(e.businessHourSegs,o),c=this.splitNowIndicatorSegs(e.nowIndicatorSegs,o),d=this.splitDateSelectionSegs(e.dateSelectionSegs,o),m=this.splitEventDrag(e.eventDrag,o),f=this.splitEventResize(e.eventResize,o);return r.createElement("div",{className:"fc-timegrid-cols",ref:this.rootElRef},r.createElement("table",{role:"presentation",style:{minWidth:e.tableMinWidth,width:e.clientWidth}},e.tableColGroupNode,r.createElement("tbody",{role:"presentation"},r.createElement("tr",{role:"row"},e.axis&&r.createElement("td",{"aria-hidden":!0,className:"fc-timegrid-col fc-timegrid-axis"},r.createElement("div",{className:"fc-timegrid-col-frame"},r.createElement("div",{className:"fc-timegrid-now-indicator-container"},"number"==typeof n&&r.createElement(i.NowIndicatorContainer,{elClasses:["fc-timegrid-now-indicator-arrow"],elStyle:{top:n},isAxis:!0,date:e.nowDate})))),e.cells.map((t,i)=>r.createElement(M,{key:t.key,elRef:this.cellElRefs.createRef(t.key),dateProfile:e.dateProfile,date:t.date,nowDate:e.nowDate,todayRange:e.todayRange,extraRenderProps:t.extraRenderProps,extraDataAttrs:t.extraDataAttrs,extraClassNames:t.extraClassNames,extraDateSpan:t.extraDateSpan,fgEventSegs:s[i],bgEventSegs:l[i],businessHourSegs:a[i],nowIndicatorSegs:c[i],dateSelectionSegs:d[i],eventDrag:m[i],eventResize:f[i],slatCoords:e.slatCoords,eventSelection:e.eventSelection,forPrint:e.forPrint}))))))}componentDidMount(){this.updateCoords()}componentDidUpdate(){this.updateCoords()}updateCoords(){let{props:e}=this;var t;e.onColCoords&&null!==e.clientWidth&&e.onColCoords(new i.PositionCache(this.rootElRef.current,(t=this.cellElRefs.currentMap,e.cells.map(e=>t[e.key])),!0,!1))}}class z extends i.DateComponent{constructor(){super(...arguments),this.processSlotOptions=i.memoize(H),this.state={slatCoords:null},this.handleRootEl=e=>{e?this.context.registerInteractiveComponent(this,{el:e,isHitComboAllowed:this.props.isHitComboAllowed}):this.context.unregisterInteractiveComponent(this)},this.handleScrollRequest=e=>{let{onScrollTopRequest:t}=this.props,{slatCoords:i}=this.state;if(t&&i){if(e.time){let r=i.computeTimeTop(e.time);r=Math.ceil(r),r&&(r+=1),t(r)}return!0}return!1},this.handleColCoords=e=>{this.colCoords=e},this.handleSlatCoords=e=>{this.setState({slatCoords:e}),this.props.onSlatCoords&&this.props.onSlatCoords(e)}}render(){let{props:e,state:t}=this;return r.createElement("div",{className:"fc-timegrid-body",ref:this.handleRootEl,style:{width:e.clientWidth,minWidth:e.tableMinWidth}},r.createElement(u,{axis:e.axis,dateProfile:e.dateProfile,slatMetas:e.slatMetas,clientWidth:e.clientWidth,minHeight:e.expandRows?e.clientHeight:"",tableMinWidth:e.tableMinWidth,tableColGroupNode:e.axis?e.tableColGroupNode:null,onCoords:this.handleSlatCoords}),r.createElement(P,{cells:e.cells,axis:e.axis,dateProfile:e.dateProfile,businessHourSegs:e.businessHourSegs,bgEventSegs:e.bgEventSegs,fgEventSegs:e.fgEventSegs,dateSelectionSegs:e.dateSelectionSegs,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,todayRange:e.todayRange,nowDate:e.nowDate,nowIndicatorSegs:e.nowIndicatorSegs,clientWidth:e.clientWidth,tableMinWidth:e.tableMinWidth,tableColGroupNode:e.tableColGroupNode,slatCoords:t.slatCoords,onColCoords:this.handleColCoords,forPrint:e.forPrint}))}componentDidMount(){this.scrollResponder=this.context.createScrollResponder(this.handleScrollRequest)}componentDidUpdate(e){this.scrollResponder.update(e.dateProfile!==this.props.dateProfile)}componentWillUnmount(){this.scrollResponder.detach()}queryHit(e,t){let{dateEnv:r,options:n}=this.context,{colCoords:o}=this,{dateProfile:s}=this.props,{slatCoords:l}=this.state,{snapDuration:a,snapsPerSlot:c}=this.processSlotOptions(this.props.slotDuration,n.snapDuration),d=o.leftToIndex(e),m=l.positions.topToIndex(t);if(null!=d&&null!=m){let e=this.props.cells[d],n=l.positions.tops[m],f=l.positions.getHeight(m),h=(t-n)/f,g=m*c+Math.floor(h*c),u=this.props.cells[d].date,p=i.addDurations(s.slotMinTime,i.multiplyDuration(a,g)),v=r.add(u,p),b=r.add(v,a);return{dateProfile:s,dateSpan:Object.assign({range:{start:v,end:b},allDay:!1},e.extraDateSpan),dayEl:o.els[d],rect:{left:o.lefts[d],right:o.rights[d],top:n,bottom:n+f},layer:0}}return null}}function H(e,t){let r=t||e,n=i.wholeDivideDurations(e,r);return null===n&&(r=e,n=1),{snapDuration:r,snapsPerSlot:n}}class W extends i.Slicer{sliceRange(e,t){let r=[];for(let n=0;n<t.length;n+=1){let o=i.intersectRanges(e,t[n]);o&&r.push({start:o.start,end:o.end,isStart:o.start.valueOf()===e.start.valueOf(),isEnd:o.end.valueOf()===e.end.valueOf(),col:n})}return r}}class G extends i.DateComponent{constructor(){super(...arguments),this.buildDayRanges=i.memoize(I),this.slicer=new W,this.timeColsRef=r.createRef()}render(){let{props:e,context:t}=this,{dateProfile:n,dayTableModel:o}=e,{nowIndicator:s,nextDayThreshold:l}=t.options,a=this.buildDayRanges(o,n,t.dateEnv);return r.createElement(i.NowTimer,{unit:s?"minute":"day"},(i,c)=>r.createElement(z,Object.assign({ref:this.timeColsRef},this.slicer.sliceProps(e,n,null,t,a),{forPrint:e.forPrint,axis:e.axis,dateProfile:n,slatMetas:e.slatMetas,slotDuration:e.slotDuration,cells:o.cells[0],tableColGroupNode:e.tableColGroupNode,tableMinWidth:e.tableMinWidth,clientWidth:e.clientWidth,clientHeight:e.clientHeight,expandRows:e.expandRows,nowDate:i,nowIndicatorSegs:s&&this.slicer.sliceNowDate(i,n,l,t,a),todayRange:c,onScrollTopRequest:e.onScrollTopRequest,onSlatCoords:e.onSlatCoords})))}}function I(e,t,i){let r=[];for(let n of e.headerDates)r.push({start:i.add(n,t.slotMinTime),end:i.add(n,t.slotMaxTime)});return r}const F=[{hours:1},{minutes:30},{minutes:15},{seconds:30},{seconds:15}];function O(e,t,r,n,o){let s=new Date(0),l=e,a=i.createDuration(0),c=r||function(e){let t,r,n;for(t=F.length-1;t>=0;t-=1)if(r=i.createDuration(F[t]),n=i.wholeDivideDurations(r,e),null!==n&&n>1)return r;return e}(n),d=[];for(;i.asRoughMs(l)<i.asRoughMs(t);){let e=o.add(s,l),t=null!==i.wholeDivideDurations(a,c);d.push({date:e,time:l,key:e.toISOString(),isoTimeStr:i.formatIsoTimeString(e),isLabeled:t}),l=i.addDurations(l,n),a=i.addDurations(a,n)}return d}class L extends m{constructor(){super(...arguments),this.buildTimeColsModel=i.memoize(A),this.buildSlatMetas=i.memoize(O)}render(){let{options:e,dateEnv:t,dateProfileGenerator:o}=this.context,{props:s}=this,{dateProfile:l}=s,a=this.buildTimeColsModel(l,o),c=this.allDaySplitter.splitProps(s),d=this.buildSlatMetas(l.slotMinTime,l.slotMaxTime,e.slotLabelInterval,e.slotDuration,t),{dayMinWidth:m}=e,f=!m,h=m,g=e.dayHeaders&&r.createElement(i.DayHeader,{dates:a.headerDates,dateProfile:l,datesRepDistinctDays:!0,renderIntro:f?this.renderHeadAxis:null}),u=!1!==e.allDaySlot&&(t=>r.createElement(n.DayTable,Object.assign({},c.allDay,{dateProfile:l,dayTableModel:a,nextDayThreshold:e.nextDayThreshold,tableMinWidth:t.tableMinWidth,colGroupNode:t.tableColGroupNode,renderRowIntro:f?this.renderTableRowAxis:null,showWeekNumbers:!1,expandRows:!1,headerAlignElRef:this.headerElRef,clientWidth:t.clientWidth,clientHeight:t.clientHeight,forPrint:s.forPrint},this.getAllDayMaxEventProps()))),p=t=>r.createElement(G,Object.assign({},c.timed,{dayTableModel:a,dateProfile:l,axis:f,slotDuration:e.slotDuration,slatMetas:d,forPrint:s.forPrint,tableColGroupNode:t.tableColGroupNode,tableMinWidth:t.tableMinWidth,clientWidth:t.clientWidth,clientHeight:t.clientHeight,onSlatCoords:this.handleSlatCoords,expandRows:t.expandRows,onScrollTopRequest:this.handleScrollTopRequest}));return h?this.renderHScrollLayout(g,u,p,a.colCnt,m,d,this.state.slatCoords):this.renderSimpleLayout(g,u,p)}}function A(e,t){let r=new i.DaySeriesModel(e.renderRange,t);return new i.DayTableModel(r,!1)}const j={allDaySlot:Boolean};i.injectStyles('.fc-v-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-v-event .fc-event-main{color:var(--fc-event-text-color);height:100%}.fc-v-event .fc-event-main-frame{display:flex;flex-direction:column;height:100%}.fc-v-event .fc-event-time{flex-grow:0;flex-shrink:0;max-height:100%;overflow:hidden}.fc-v-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-height:0}.fc-v-event .fc-event-title{bottom:0;max-height:100%;overflow:hidden;top:0}.fc-v-event:not(.fc-event-start){border-top-left-radius:0;border-top-right-radius:0;border-top-width:0}.fc-v-event:not(.fc-event-end){border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-width:0}.fc-v-event.fc-event-selected:before{left:-10px;right:-10px}.fc-v-event .fc-event-resizer-start{cursor:n-resize}.fc-v-event .fc-event-resizer-end{cursor:s-resize}.fc-v-event:not(.fc-event-selected) .fc-event-resizer{height:var(--fc-event-resizer-thickness);left:0;right:0}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start{top:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer{left:50%;margin-left:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-start{top:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc .fc-timegrid .fc-daygrid-body{z-index:2}.fc .fc-timegrid-divider{padding:0 0 2px}.fc .fc-timegrid-body{min-height:100%;position:relative;z-index:1}.fc .fc-timegrid-axis-chunk{position:relative}.fc .fc-timegrid-axis-chunk>table,.fc .fc-timegrid-slots{position:relative;z-index:1}.fc .fc-timegrid-slot{border-bottom:0;height:1.5em}.fc .fc-timegrid-slot:empty:before{content:"\\00a0"}.fc .fc-timegrid-slot-minor{border-top-style:dotted}.fc .fc-timegrid-slot-label-cushion{display:inline-block;white-space:nowrap}.fc .fc-timegrid-slot-label{vertical-align:middle}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{padding:0 4px}.fc .fc-timegrid-axis-frame-liquid{height:100%}.fc .fc-timegrid-axis-frame{align-items:center;display:flex;justify-content:flex-end;overflow:hidden}.fc .fc-timegrid-axis-cushion{flex-shrink:0;max-width:60px}.fc-direction-ltr .fc-timegrid-slot-label-frame{text-align:right}.fc-direction-rtl .fc-timegrid-slot-label-frame{text-align:left}.fc-liquid-hack .fc-timegrid-axis-frame-liquid{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-timegrid-col-frame{min-height:100%;position:relative}.fc-media-screen.fc-liquid-hack .fc-timegrid-col-frame{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols{bottom:0;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols>table{height:100%}.fc-media-screen .fc-timegrid-col-bg,.fc-media-screen .fc-timegrid-col-events,.fc-media-screen .fc-timegrid-now-indicator-container{left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col-bg{z-index:2}.fc .fc-timegrid-col-bg .fc-non-business{z-index:1}.fc .fc-timegrid-col-bg .fc-bg-event{z-index:2}.fc .fc-timegrid-col-bg .fc-highlight{z-index:3}.fc .fc-timegrid-bg-harness{left:0;position:absolute;right:0}.fc .fc-timegrid-col-events{z-index:3}.fc .fc-timegrid-now-indicator-container{bottom:0;overflow:hidden}.fc-direction-ltr .fc-timegrid-col-events{margin:0 2.5% 0 2px}.fc-direction-rtl .fc-timegrid-col-events{margin:0 2px 0 2.5%}.fc-timegrid-event-harness{position:absolute}.fc-timegrid-event-harness>.fc-timegrid-event{bottom:0;left:0;position:absolute;right:0;top:0}.fc-timegrid-event-harness-inset .fc-timegrid-event,.fc-timegrid-event.fc-event-mirror,.fc-timegrid-more-link{box-shadow:0 0 0 1px var(--fc-page-bg-color)}.fc-timegrid-event,.fc-timegrid-more-link{border-radius:3px;font-size:var(--fc-small-font-size)}.fc-timegrid-event{margin-bottom:1px}.fc-timegrid-event .fc-event-main{padding:1px 1px 0}.fc-timegrid-event .fc-event-time{font-size:var(--fc-small-font-size);margin-bottom:1px;white-space:nowrap}.fc-timegrid-event-short .fc-event-main-frame{flex-direction:row;overflow:hidden}.fc-timegrid-event-short .fc-event-time:after{content:"\\00a0-\\00a0"}.fc-timegrid-event-short .fc-event-title{font-size:var(--fc-small-font-size)}.fc-timegrid-more-link{background:var(--fc-more-link-bg-color);color:var(--fc-more-link-text-color);cursor:pointer;margin-bottom:1px;position:absolute;z-index:9999}.fc-timegrid-more-link-inner{padding:3px 2px;top:0}.fc-direction-ltr .fc-timegrid-more-link{right:0}.fc-direction-rtl .fc-timegrid-more-link{left:0}.fc .fc-timegrid-now-indicator-line{border-color:var(--fc-now-indicator-color);border-style:solid;border-width:1px 0 0;left:0;position:absolute;right:0;z-index:4}.fc .fc-timegrid-now-indicator-arrow{border-color:var(--fc-now-indicator-color);border-style:solid;margin-top:-5px;position:absolute;z-index:4}.fc-direction-ltr .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 0 5px 6px;left:0}.fc-direction-rtl .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 6px 5px 0;right:0}');var B=t.createPlugin({name:"@fullcalendar/timegrid",initialView:"timeGridWeek",optionRefiners:j,views:{timeGrid:{component:L,usesMinMaxTime:!0,allDaySlot:!0,slotDuration:"00:30:00",slotEventOverlap:!0},timeGridDay:{type:"timeGrid",duration:{days:1}},timeGridWeek:{type:"timeGrid",duration:{weeks:1}}}}),q={__proto__:null,TimeColsView:m,DayTimeColsView:L,buildTimeColsModel:A,DayTimeCols:G,buildDayRanges:I,DayTimeColsSlicer:W,TimeCols:z,buildSlatMetas:O,TimeColsSlatsCoords:h};return t.globalPlugins.push(B),e.Internal=q,e.default=B,Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar,FullCalendar.Internal,FullCalendar.Preact,FullCalendar.DayGrid.Internal); \ No newline at end of file
diff --git a/library/fullcalendar/packages/web-component/index.global.js b/library/fullcalendar/packages/web-component/index.global.js
index aa22a52a3..8f6a13c0b 100644
--- a/library/fullcalendar/packages/web-component/index.global.js
+++ b/library/fullcalendar/packages/web-component/index.global.js
@@ -1,7 +1,7 @@
/*!
-FullCalendar Web Component v6.0.3
-Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+FullCalendar Web Component v6.1.8
+Docs & License: https://fullcalendar.io/docs/web-component
+(c) 2023 Adam Shaw
*/
(function (core) {
'use strict';
@@ -43,8 +43,17 @@ Docs & License: https://fullcalendar.io
this._calendar.resetOptions(options);
}
else {
- this.innerHTML = '<div></div>';
- let calendarEl = this.querySelector('div');
+ let root;
+ if (this.hasAttribute('shadow')) {
+ this.attachShadow({ mode: 'open' });
+ root = this.shadowRoot;
+ }
+ else {
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
+ root = this;
+ }
+ root.innerHTML = '<div></div>';
+ let calendarEl = root.querySelector('div');
let calendar = new core.Calendar(calendarEl, options);
calendar.render();
this._calendar = calendar;
diff --git a/library/fullcalendar/packages/web-component/index.global.min.js b/library/fullcalendar/packages/web-component/index.global.min.js
index 9a3a78173..407d4c1c7 100644
--- a/library/fullcalendar/packages/web-component/index.global.min.js
+++ b/library/fullcalendar/packages/web-component/index.global.min.js
@@ -1,6 +1,6 @@
/*!
-FullCalendar Web Component v6.0.3
-Docs & License: https://fullcalendar.io
-(c) 2022 Adam Shaw
+FullCalendar Web Component v6.1.8
+Docs & License: https://fullcalendar.io/docs/web-component
+(c) 2023 Adam Shaw
*/
-!function(t){"use strict";class e extends HTMLElement{constructor(){super(...arguments),this._calendar=null,this._options=null}connectedCallback(){this._handleOptionsStr(this.getAttribute("options"))}disconnectedCallback(){this._handleOptionsStr(null)}attributeChangedCallback(t,e,n){"options"===t&&this._calendar&&this._handleOptionsStr(n)}get options(){return this._options}set options(t){this._handleOptions(t)}getApi(){return this._calendar}_handleOptionsStr(t){this._handleOptions(t?JSON.parse(t):null)}_handleOptions(e){if(e){if(this._calendar)this._calendar.resetOptions(e);else{this.innerHTML="<div></div>";let n=this.querySelector("div"),s=new t.Calendar(n,e);s.render(),this._calendar=s}this._options=e}else this._calendar&&(this._calendar.destroy(),this._calendar=null),this._options=null}static get observedAttributes(){return["options"]}}globalThis.FullCalendarElement=e,customElements.define("full-calendar",e)}(FullCalendar); \ No newline at end of file
+!function(t){"use strict";class e extends HTMLElement{constructor(){super(...arguments),this._calendar=null,this._options=null}connectedCallback(){this._handleOptionsStr(this.getAttribute("options"))}disconnectedCallback(){this._handleOptionsStr(null)}attributeChangedCallback(t,e,n){"options"===t&&this._calendar&&this._handleOptionsStr(n)}get options(){return this._options}set options(t){this._handleOptions(t)}getApi(){return this._calendar}_handleOptionsStr(t){this._handleOptions(t?JSON.parse(t):null)}_handleOptions(e){if(e){if(this._calendar)this._calendar.resetOptions(e);else{let n;this.hasAttribute("shadow")?(this.attachShadow({mode:"open"}),n=this.shadowRoot):n=this,n.innerHTML="<div></div>";let s=n.querySelector("div"),i=new t.Calendar(s,e);i.render(),this._calendar=i}this._options=e}else this._calendar&&(this._calendar.destroy(),this._calendar=null),this._options=null}static get observedAttributes(){return["options"]}}globalThis.FullCalendarElement=e,customElements.define("full-calendar",e)}(FullCalendar); \ No newline at end of file
diff --git a/tests/unit/UnitTestCase.php b/tests/unit/UnitTestCase.php
index 7d706d5be..f6fb28555 100644
--- a/tests/unit/UnitTestCase.php
+++ b/tests/unit/UnitTestCase.php
@@ -24,6 +24,12 @@ namespace Zotlabs\Tests\Unit;
use PHPUnit\Framework\TestCase;
+/*
+ * Make sure global constants and the global App object is available to the
+ * tests.
+ */
+require_once __DIR__ . '/../../boot.php';
+
/**
* @brief Base class for our Unit Tests.
*
diff --git a/tests/unit/includes/MarkdownTest.php b/tests/unit/includes/MarkdownTest.php
index 98fe40a49..953305074 100644
--- a/tests/unit/includes/MarkdownTest.php
+++ b/tests/unit/includes/MarkdownTest.php
@@ -62,9 +62,9 @@ class MarkdownTest extends UnitTestCase {
'text1 <b></b> text2 <i></i>',
'text1 text2'
],
- 'HTML entities, lt does not work' => [
+ 'HTML entities' => [
'& gt > lt <',
- '&amp; gt &gt; lt'
+ '&amp; gt &gt; lt &lt;'
],
'escaped HTML entities' => [
'&amp; lt &lt; gt &gt;',
diff --git a/util/hmessages.po b/util/hmessages.po
index 8eed4a608..03095196a 100644
--- a/util/hmessages.po
+++ b/util/hmessages.po
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: 8.4RC\n"
+"Project-Id-Version: 8.6RC1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-07 08:37+0000\n"
+"POT-Creation-Date: 2023-07-04 17:57+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,15 +17,11 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../../store/[data]/smarty3/compiled/2cbde885645602969010e846a38817a1297aafb9_0.file.cover_photo.tpl.php:127
-msgid "Cover Photo"
-msgstr ""
-
#: ../../view/theme/redbasic/php/config.php:15
#: ../../addon/cart/submodules/orderoptions.php:335
#: ../../addon/cart/submodules/orderoptions.php:359
#: ../../addon/cart/submodules/orderoptions.php:435
-#: ../../addon/cart/submodules/orderoptions.php:459 ../../include/text.php:3466
+#: ../../addon/cart/submodules/orderoptions.php:459 ../../include/text.php:3502
#: ../../Zotlabs/Module/Admin/Site.php:245
msgid "Default"
msgstr ""
@@ -46,7 +42,7 @@ msgstr ""
#: ../../addon/statusnet/Mod_Statusnet.php:304
#: ../../addon/statusnet/statusnet.php:602 ../../addon/rtof/Mod_Rtof.php:70
#: ../../addon/wppost/Mod_Wppost.php:107
-#: ../../addon/content_import/Mod_content_import.php:141
+#: ../../addon/content_import/Mod_content_import.php:140
#: ../../addon/openstreetmap/openstreetmap.php:155
#: ../../addon/ijpost/Mod_Ijpost.php:72
#: ../../addon/pubcrawl/Mod_Pubcrawl.php:62
@@ -64,11 +60,11 @@ msgstr ""
#: ../../addon/nofed/Mod_Nofed.php:51
#: ../../addon/smileybutton/Mod_Smileybutton.php:53
#: ../../addon/redfiles/redfiles.php:124 ../../addon/diaspora/diaspora.php:87
-#: ../../addon/diaspora/Mod_Diaspora.php:100 ../../addon/piwik/piwik.php:95
-#: ../../addon/workflow/workflow.php:1466
-#: ../../addon/workflow/workflow.php:1525
-#: ../../addon/workflow/workflow.php:1644
-#: ../../addon/workflow/workflow.php:2747
+#: ../../addon/diaspora/Mod_Diaspora.php:101 ../../addon/piwik/piwik.php:95
+#: ../../addon/workflow/workflow.php:1468
+#: ../../addon/workflow/workflow.php:1527
+#: ../../addon/workflow/workflow.php:1646
+#: ../../addon/workflow/workflow.php:2749
#: ../../addon/workflow/Settings/Mod_WorkflowSettings.php:94
#: ../../addon/likebanner/likebanner.php:57
#: ../../addon/fuzzloc/Mod_Fuzzloc.php:54 ../../addon/hubwall/hubwall.php:95
@@ -123,14 +119,14 @@ msgstr ""
#: ../../Zotlabs/Module/Settings/Connections.php:42
#: ../../Zotlabs/Module/Settings/Photos.php:42
#: ../../Zotlabs/Module/Settings/Profiles.php:52
-#: ../../Zotlabs/Module/Settings/Privacy.php:114
+#: ../../Zotlabs/Module/Settings/Privacy.php:122
#: ../../Zotlabs/Module/Settings/Conversation.php:49
#: ../../Zotlabs/Module/Defperms.php:262 ../../Zotlabs/Module/Pconfig.php:117
#: ../../Zotlabs/Module/Oauth2.php:114 ../../Zotlabs/Module/Thing.php:328
#: ../../Zotlabs/Module/Thing.php:381 ../../Zotlabs/Module/Pdledit.php:137
#: ../../Zotlabs/Module/Connedit.php:714 ../../Zotlabs/Module/Locs.php:125
#: ../../Zotlabs/Module/Sources.php:123 ../../Zotlabs/Module/Sources.php:160
-#: ../../Zotlabs/Lib/ThreadItem.php:828 ../../Zotlabs/Storage/Browser.php:385
+#: ../../Zotlabs/Lib/ThreadItem.php:831 ../../Zotlabs/Storage/Browser.php:385
msgid "Submit"
msgstr ""
@@ -165,8 +161,8 @@ msgstr ""
#: ../../addon/statusnet/Mod_Statusnet.php:289 ../../addon/rtof/Mod_Rtof.php:47
#: ../../addon/wppost/Mod_Wppost.php:84 ../../addon/wppost/Mod_Wppost.php:88
#: ../../addon/wppost/Mod_Wppost.php:92
+#: ../../addon/content_import/Mod_content_import.php:135
#: ../../addon/content_import/Mod_content_import.php:136
-#: ../../addon/content_import/Mod_content_import.php:137
#: ../../addon/ijpost/Mod_Ijpost.php:61
#: ../../addon/pubcrawl/Mod_Pubcrawl.php:42
#: ../../addon/dwpost/Mod_Dwpost.php:59 ../../addon/dwpost/Mod_Dwpost.php:63
@@ -197,7 +193,7 @@ msgstr ""
#: ../../addon/libertree/Mod_Libertree.php:57
#: ../../addon/socialauth/Mod_SocialAuth.php:218
#: ../../addon/ljpost/Mod_Ljpost.php:61 ../../addon/ljpost/Mod_Ljpost.php:65
-#: ../../addon/ljpost/Mod_Ljpost.php:69 ../../include/conversation.php:1478
+#: ../../addon/ljpost/Mod_Ljpost.php:69 ../../include/conversation.php:1483
#: ../../Zotlabs/Module/Import.php:600 ../../Zotlabs/Module/Import.php:604
#: ../../Zotlabs/Module/Import.php:605 ../../Zotlabs/Module/Register.php:512
#: ../../Zotlabs/Module/Group.php:137 ../../Zotlabs/Module/Group.php:138
@@ -217,10 +213,12 @@ msgstr ""
#: ../../Zotlabs/Module/Settings/Channel.php:224
#: ../../Zotlabs/Module/Settings/Multifactor.php:82
#: ../../Zotlabs/Module/Settings/Display.php:86
-#: ../../Zotlabs/Module/Settings/Privacy.php:124
-#: ../../Zotlabs/Module/Settings/Privacy.php:125
-#: ../../Zotlabs/Module/Settings/Privacy.php:126
-#: ../../Zotlabs/Module/Settings/Privacy.php:127
+#: ../../Zotlabs/Module/Settings/Privacy.php:132
+#: ../../Zotlabs/Module/Settings/Privacy.php:133
+#: ../../Zotlabs/Module/Settings/Privacy.php:134
+#: ../../Zotlabs/Module/Settings/Privacy.php:135
+#: ../../Zotlabs/Module/Settings/Privacy.php:136
+#: ../../Zotlabs/Module/Settings/Privacy.php:137
#: ../../Zotlabs/Module/Menu.php:163 ../../Zotlabs/Module/Menu.php:222
#: ../../Zotlabs/Module/Defperms.php:195 ../../Zotlabs/Module/Connedit.php:622
#: ../../Zotlabs/Module/Sources.php:122 ../../Zotlabs/Module/Sources.php:157
@@ -243,8 +241,8 @@ msgstr ""
#: ../../addon/statusnet/Mod_Statusnet.php:289 ../../addon/rtof/Mod_Rtof.php:47
#: ../../addon/wppost/Mod_Wppost.php:84 ../../addon/wppost/Mod_Wppost.php:88
#: ../../addon/wppost/Mod_Wppost.php:92
+#: ../../addon/content_import/Mod_content_import.php:135
#: ../../addon/content_import/Mod_content_import.php:136
-#: ../../addon/content_import/Mod_content_import.php:137
#: ../../addon/ijpost/Mod_Ijpost.php:61
#: ../../addon/pubcrawl/Mod_Pubcrawl.php:42
#: ../../addon/dwpost/Mod_Dwpost.php:59 ../../addon/dwpost/Mod_Dwpost.php:63
@@ -275,7 +273,7 @@ msgstr ""
#: ../../addon/libertree/Mod_Libertree.php:57
#: ../../addon/socialauth/Mod_SocialAuth.php:218
#: ../../addon/ljpost/Mod_Ljpost.php:61 ../../addon/ljpost/Mod_Ljpost.php:65
-#: ../../addon/ljpost/Mod_Ljpost.php:69 ../../include/conversation.php:1478
+#: ../../addon/ljpost/Mod_Ljpost.php:69 ../../include/conversation.php:1483
#: ../../Zotlabs/Module/Import.php:600 ../../Zotlabs/Module/Import.php:604
#: ../../Zotlabs/Module/Import.php:605 ../../Zotlabs/Module/Register.php:512
#: ../../Zotlabs/Module/Group.php:137 ../../Zotlabs/Module/Group.php:138
@@ -294,10 +292,12 @@ msgstr ""
#: ../../Zotlabs/Module/Settings/Channel.php:224
#: ../../Zotlabs/Module/Settings/Multifactor.php:82
#: ../../Zotlabs/Module/Settings/Display.php:86
-#: ../../Zotlabs/Module/Settings/Privacy.php:124
-#: ../../Zotlabs/Module/Settings/Privacy.php:125
-#: ../../Zotlabs/Module/Settings/Privacy.php:126
-#: ../../Zotlabs/Module/Settings/Privacy.php:127
+#: ../../Zotlabs/Module/Settings/Privacy.php:132
+#: ../../Zotlabs/Module/Settings/Privacy.php:133
+#: ../../Zotlabs/Module/Settings/Privacy.php:134
+#: ../../Zotlabs/Module/Settings/Privacy.php:135
+#: ../../Zotlabs/Module/Settings/Privacy.php:136
+#: ../../Zotlabs/Module/Settings/Privacy.php:137
#: ../../Zotlabs/Module/Menu.php:163 ../../Zotlabs/Module/Menu.php:222
#: ../../Zotlabs/Module/Defperms.php:195 ../../Zotlabs/Module/Sources.php:122
#: ../../Zotlabs/Module/Sources.php:157 ../../Zotlabs/Lib/Libzotdir.php:165
@@ -449,18 +449,18 @@ msgstr ""
#: ../../addon/wiki/Widget/Wiki_pages.php:65 ../../addon/wiki/Mod_Wiki.php:220
#: ../../addon/wiki/Mod_Wiki.php:368 ../../addon/wiki/Mod_Wiki.php:903
-#: ../../addon/mdpost/mdpost.php:41 ../../include/text.php:2203
+#: ../../addon/mdpost/mdpost.php:41 ../../include/text.php:2213
msgid "Markdown"
msgstr ""
#: ../../addon/wiki/Widget/Wiki_pages.php:65 ../../addon/wiki/Mod_Wiki.php:220
#: ../../addon/wiki/Mod_Wiki.php:368 ../../addon/wiki/Mod_Wiki.php:903
-#: ../../include/text.php:2201
+#: ../../include/text.php:2211
msgid "BBcode"
msgstr ""
#: ../../addon/wiki/Widget/Wiki_pages.php:65 ../../addon/wiki/Mod_Wiki.php:220
-#: ../../addon/wiki/Mod_Wiki.php:903 ../../include/text.php:2204
+#: ../../addon/wiki/Mod_Wiki.php:903 ../../include/text.php:2214
msgid "Text"
msgstr ""
@@ -596,20 +596,20 @@ msgstr ""
#: ../../addon/cards/Mod_Card_edit.php:51 ../../addon/cards/Mod_Cards.php:89
#: ../../addon/articles/Mod_Article_edit.php:51
#: ../../addon/articles/Mod_Articles.php:94 ../../include/photos.php:30
-#: ../../include/items.php:3913 ../../include/attach.php:156
+#: ../../include/items.php:3953 ../../include/attach.php:156
#: ../../include/attach.php:205 ../../include/attach.php:278
-#: ../../include/attach.php:329 ../../include/attach.php:424
-#: ../../include/attach.php:438 ../../include/attach.php:445
-#: ../../include/attach.php:527 ../../include/attach.php:1098
-#: ../../include/attach.php:1171 ../../include/attach.php:1336
+#: ../../include/attach.php:329 ../../include/attach.php:431
+#: ../../include/attach.php:445 ../../include/attach.php:452
+#: ../../include/attach.php:534 ../../include/attach.php:1106
+#: ../../include/attach.php:1179 ../../include/attach.php:1344
#: ../../Zotlabs/Module/Attach_edit.php:90
#: ../../Zotlabs/Module/Attach_edit.php:99
#: ../../Zotlabs/Module/Attach_edit.php:106 ../../Zotlabs/Module/Network.php:18
#: ../../Zotlabs/Module/Register.php:200 ../../Zotlabs/Module/Setup.php:218
#: ../../Zotlabs/Module/Viewconnections.php:28
#: ../../Zotlabs/Module/Viewconnections.php:33
-#: ../../Zotlabs/Module/Channel.php:222 ../../Zotlabs/Module/Channel.php:383
-#: ../../Zotlabs/Module/Channel.php:422 ../../Zotlabs/Module/Group.php:14
+#: ../../Zotlabs/Module/Channel.php:222 ../../Zotlabs/Module/Channel.php:379
+#: ../../Zotlabs/Module/Channel.php:418 ../../Zotlabs/Module/Group.php:14
#: ../../Zotlabs/Module/Group.php:30 ../../Zotlabs/Module/Editwebpage.php:68
#: ../../Zotlabs/Module/Editwebpage.php:89
#: ../../Zotlabs/Module/Editwebpage.php:107
@@ -617,8 +617,8 @@ msgstr ""
#: ../../Zotlabs/Module/Chat.php:116
#: ../../Zotlabs/Module/Channel_calendar.php:232
#: ../../Zotlabs/Module/Like.php:248 ../../Zotlabs/Module/Poke.php:141
-#: ../../Zotlabs/Module/Item.php:495 ../../Zotlabs/Module/Item.php:514
-#: ../../Zotlabs/Module/Item.php:524 ../../Zotlabs/Module/Item.php:1408
+#: ../../Zotlabs/Module/Item.php:513 ../../Zotlabs/Module/Item.php:532
+#: ../../Zotlabs/Module/Item.php:542 ../../Zotlabs/Module/Item.php:1443
#: ../../Zotlabs/Module/Mitem.php:129 ../../Zotlabs/Module/Profile.php:99
#: ../../Zotlabs/Module/Profile.php:114
#: ../../Zotlabs/Module/Sharedwithme.php:19
@@ -754,7 +754,7 @@ msgid "Rename page"
msgstr ""
#: ../../addon/wiki/Mod_Wiki.php:304 ../../addon/hsse/hsse.php:186
-#: ../../include/conversation.php:1447 ../../Zotlabs/Widget/Cdav.php:142
+#: ../../include/conversation.php:1452 ../../Zotlabs/Widget/Cdav.php:142
#: ../../Zotlabs/Module/Webpages.php:251 ../../Zotlabs/Module/Blocks.php:159
#: ../../Zotlabs/Module/Photos.php:1073 ../../Zotlabs/Module/Layouts.php:192
msgid "Share"
@@ -776,7 +776,7 @@ msgstr ""
#: ../../addon/hsse/hsse.php:209 ../../addon/hsse/hsse.php:258
#: ../../addon/cards/Mod_Card_edit.php:132
#: ../../addon/articles/Mod_Article_edit.php:130
-#: ../../include/conversation.php:1470 ../../include/conversation.php:1525
+#: ../../include/conversation.php:1475 ../../include/conversation.php:1530
#: ../../Zotlabs/Module/Fbrowser.php:66 ../../Zotlabs/Module/Fbrowser.php:88
#: ../../Zotlabs/Module/Oauth.php:110 ../../Zotlabs/Module/Oauth.php:136
#: ../../Zotlabs/Module/Editwebpage.php:169 ../../Zotlabs/Module/Cdav.php:1049
@@ -811,27 +811,27 @@ msgid "Embed image from photo albums"
msgstr ""
#: ../../addon/wiki/Mod_Wiki.php:397 ../../addon/hsse/hsse.php:208
-#: ../../include/conversation.php:1469
+#: ../../include/conversation.php:1474
msgid "Embed an image from your albums"
msgstr ""
#: ../../addon/wiki/Mod_Wiki.php:399 ../../addon/hsse/hsse.php:210
-#: ../../addon/hsse/hsse.php:257 ../../include/conversation.php:1471
-#: ../../include/conversation.php:1524
+#: ../../addon/hsse/hsse.php:257 ../../include/conversation.php:1476
+#: ../../include/conversation.php:1529
#: ../../Zotlabs/Module/Profile_photo.php:554
#: ../../Zotlabs/Module/Cover_photo.php:429
msgid "OK"
msgstr ""
#: ../../addon/wiki/Mod_Wiki.php:400 ../../addon/hsse/hsse.php:139
-#: ../../include/conversation.php:1390
+#: ../../include/conversation.php:1395
#: ../../Zotlabs/Module/Profile_photo.php:555
#: ../../Zotlabs/Module/Cover_photo.php:430
msgid "Choose images to embed"
msgstr ""
#: ../../addon/wiki/Mod_Wiki.php:401 ../../addon/hsse/hsse.php:140
-#: ../../include/conversation.php:1391
+#: ../../include/conversation.php:1396
#: ../../Zotlabs/Module/Profile_photo.php:556
#: ../../Zotlabs/Module/Cover_photo.php:431
msgid "Choose an album"
@@ -843,21 +843,21 @@ msgid "Choose a different album"
msgstr ""
#: ../../addon/wiki/Mod_Wiki.php:403 ../../addon/hsse/hsse.php:142
-#: ../../include/conversation.php:1393
+#: ../../include/conversation.php:1398
#: ../../Zotlabs/Module/Profile_photo.php:558
#: ../../Zotlabs/Module/Cover_photo.php:433
msgid "Error getting album list"
msgstr ""
#: ../../addon/wiki/Mod_Wiki.php:404 ../../addon/hsse/hsse.php:143
-#: ../../include/conversation.php:1394
+#: ../../include/conversation.php:1399
#: ../../Zotlabs/Module/Profile_photo.php:559
#: ../../Zotlabs/Module/Cover_photo.php:434
msgid "Error getting photo link"
msgstr ""
#: ../../addon/wiki/Mod_Wiki.php:405 ../../addon/hsse/hsse.php:144
-#: ../../include/conversation.php:1395
+#: ../../include/conversation.php:1400
#: ../../Zotlabs/Module/Profile_photo.php:560
#: ../../Zotlabs/Module/Cover_photo.php:435
msgid "Error getting album"
@@ -1159,7 +1159,7 @@ msgstr ""
#: ../../addon/openid/MysqlProvider.php:56
#: ../../addon/openid/MysqlProvider.php:57 ../../addon/redred/Mod_Redred.php:69
-#: ../../addon/rtof/Mod_Rtof.php:55 ../../include/network.php:1771
+#: ../../addon/rtof/Mod_Rtof.php:55 ../../include/network.php:1773
#: ../../Zotlabs/Module/Cdav.php:1368
#: ../../Zotlabs/Module/Admin/Accounts.php:316
#: ../../Zotlabs/Module/Admin/Accounts.php:330
@@ -1382,7 +1382,7 @@ msgstr ""
msgid "Channel is required."
msgstr ""
-#: ../../addon/redred/Mod_Redred.php:29 ../../Zotlabs/Module/Network.php:331
+#: ../../addon/redred/Mod_Redred.php:29 ../../Zotlabs/Module/Network.php:333
msgid "Invalid channel."
msgstr ""
@@ -1428,7 +1428,7 @@ msgstr ""
#: ../../addon/redphotos/redphotos.php:119
#: ../../addon/redfiles/redfiles.php:109 ../../addon/hzfiles/hzfiles.php:75
-#: ../../include/items.php:444 ../../Zotlabs/Module/Import_items.php:116
+#: ../../include/items.php:447 ../../Zotlabs/Module/Import_items.php:116
#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Group.php:108
#: ../../Zotlabs/Module/Like.php:348 ../../Zotlabs/Module/Share.php:72
#: ../../Zotlabs/Module/Subthread.php:89 ../../Zotlabs/Module/Dreport.php:10
@@ -1476,10 +1476,10 @@ msgid "0 or blank to import all available"
msgstr ""
#: ../../addon/redphotos/redphotohelper.php:71 ../../addon/pubcrawl/as.php:1958
-#: ../../addon/diaspora/Receiver.php:1647 ../../include/text.php:2342
+#: ../../addon/diaspora/Receiver.php:1693 ../../include/text.php:2352
#: ../../include/conversation.php:138 ../../Zotlabs/Module/Like.php:453
#: ../../Zotlabs/Module/Tagger.php:71 ../../Zotlabs/Module/Subthread.php:115
-#: ../../Zotlabs/Lib/Activity.php:3618
+#: ../../Zotlabs/Lib/Activity.php:3690
msgid "photo"
msgstr ""
@@ -1714,185 +1714,185 @@ msgstr ""
msgid "No server specified"
msgstr ""
-#: ../../addon/content_import/Mod_content_import.php:73
+#: ../../addon/content_import/Mod_content_import.php:72
msgid "Posts imported"
msgstr ""
-#: ../../addon/content_import/Mod_content_import.php:113
+#: ../../addon/content_import/Mod_content_import.php:112
msgid "Files imported"
msgstr ""
-#: ../../addon/content_import/Mod_content_import.php:134
+#: ../../addon/content_import/Mod_content_import.php:133
#: ../../Zotlabs/Lib/Apps.php:337
msgid "Content Import"
msgstr ""
-#: ../../addon/content_import/Mod_content_import.php:135
+#: ../../addon/content_import/Mod_content_import.php:134
msgid ""
"This will import all your conversations and cloud files from a cloned "
"channel on another server. This may take a while if you have lots of posts "
"and or files."
msgstr ""
-#: ../../addon/content_import/Mod_content_import.php:136
+#: ../../addon/content_import/Mod_content_import.php:135
msgid "Include posts"
msgstr ""
-#: ../../addon/content_import/Mod_content_import.php:136
+#: ../../addon/content_import/Mod_content_import.php:135
msgid "Conversations, Articles, Cards, and other posted content"
msgstr ""
-#: ../../addon/content_import/Mod_content_import.php:137
+#: ../../addon/content_import/Mod_content_import.php:136
msgid "Include files"
msgstr ""
-#: ../../addon/content_import/Mod_content_import.php:137
+#: ../../addon/content_import/Mod_content_import.php:136
msgid "Files, Photos and other cloud storage"
msgstr ""
-#: ../../addon/content_import/Mod_content_import.php:138
+#: ../../addon/content_import/Mod_content_import.php:137
msgid "Original Server base URL"
msgstr ""
-#: ../../addon/content_import/Mod_content_import.php:139
+#: ../../addon/content_import/Mod_content_import.php:138
#: ../../addon/hzfiles/hzfiles.php:84
msgid "Since modified date yyyy-mm-dd"
msgstr ""
-#: ../../addon/content_import/Mod_content_import.php:140
+#: ../../addon/content_import/Mod_content_import.php:139
#: ../../addon/hzfiles/hzfiles.php:85
msgid "Until modified date yyyy-mm-dd"
msgstr ""
-#: ../../addon/hsse/hsse.php:82 ../../include/conversation.php:1335
+#: ../../addon/hsse/hsse.php:82 ../../include/conversation.php:1340
msgid "Set your location"
msgstr ""
-#: ../../addon/hsse/hsse.php:83 ../../include/conversation.php:1336
+#: ../../addon/hsse/hsse.php:83 ../../include/conversation.php:1341
msgid "Clear browser location"
msgstr ""
#: ../../addon/hsse/hsse.php:95 ../../addon/cards/Mod_Card_edit.php:101
#: ../../addon/articles/Mod_Article_edit.php:99
-#: ../../include/conversation.php:1348 ../../Zotlabs/Module/Editwebpage.php:143
+#: ../../include/conversation.php:1353 ../../Zotlabs/Module/Editwebpage.php:143
#: ../../Zotlabs/Module/Chat.php:219 ../../Zotlabs/Module/Editblock.php:116
msgid "Insert web link"
msgstr ""
-#: ../../addon/hsse/hsse.php:99 ../../include/conversation.php:1352
+#: ../../addon/hsse/hsse.php:99 ../../include/conversation.php:1357
msgid "Embed (existing) photo from your photo albums"
msgstr ""
-#: ../../addon/hsse/hsse.php:134 ../../include/conversation.php:1385
+#: ../../addon/hsse/hsse.php:134 ../../include/conversation.php:1390
#: ../../Zotlabs/Module/Chat.php:217
msgid "Please enter a link URL:"
msgstr ""
-#: ../../addon/hsse/hsse.php:135 ../../include/conversation.php:1386
+#: ../../addon/hsse/hsse.php:135 ../../include/conversation.php:1391
msgid "Tag term:"
msgstr ""
-#: ../../addon/hsse/hsse.php:136 ../../include/conversation.php:1387
+#: ../../addon/hsse/hsse.php:136 ../../include/conversation.php:1392
msgid "Where are you right now?"
msgstr ""
-#: ../../addon/hsse/hsse.php:141 ../../include/conversation.php:1392
+#: ../../addon/hsse/hsse.php:141 ../../include/conversation.php:1397
msgid "Choose a different album..."
msgstr ""
-#: ../../addon/hsse/hsse.php:145 ../../include/conversation.php:1396
+#: ../../addon/hsse/hsse.php:145 ../../include/conversation.php:1401
msgid "Comments enabled"
msgstr ""
-#: ../../addon/hsse/hsse.php:146 ../../include/conversation.php:1397
+#: ../../addon/hsse/hsse.php:146 ../../include/conversation.php:1402
msgid "Comments disabled"
msgstr ""
-#: ../../addon/hsse/hsse.php:153 ../../include/conversation.php:1414
+#: ../../addon/hsse/hsse.php:153 ../../include/conversation.php:1419
#: ../../Zotlabs/Module/Webpages.php:257 ../../Zotlabs/Module/Photos.php:1094
-#: ../../Zotlabs/Lib/ThreadItem.php:838
+#: ../../Zotlabs/Lib/ThreadItem.php:841
msgid "Preview"
msgstr ""
-#: ../../addon/hsse/hsse.php:195 ../../include/conversation.php:1456
+#: ../../addon/hsse/hsse.php:195 ../../include/conversation.php:1461
msgid "Page link name"
msgstr ""
-#: ../../addon/hsse/hsse.php:198 ../../include/conversation.php:1459
+#: ../../addon/hsse/hsse.php:198 ../../include/conversation.php:1464
msgid "Post as"
msgstr ""
-#: ../../addon/hsse/hsse.php:200 ../../include/conversation.php:1461
-#: ../../Zotlabs/Lib/ThreadItem.php:829
+#: ../../addon/hsse/hsse.php:200 ../../include/conversation.php:1466
+#: ../../Zotlabs/Lib/ThreadItem.php:832
msgid "Bold"
msgstr ""
-#: ../../addon/hsse/hsse.php:201 ../../include/conversation.php:1462
-#: ../../Zotlabs/Lib/ThreadItem.php:830
+#: ../../addon/hsse/hsse.php:201 ../../include/conversation.php:1467
+#: ../../Zotlabs/Lib/ThreadItem.php:833
msgid "Italic"
msgstr ""
-#: ../../addon/hsse/hsse.php:202 ../../include/conversation.php:1463
-#: ../../Zotlabs/Lib/ThreadItem.php:831
+#: ../../addon/hsse/hsse.php:202 ../../include/conversation.php:1468
+#: ../../Zotlabs/Lib/ThreadItem.php:834
msgid "Underline"
msgstr ""
-#: ../../addon/hsse/hsse.php:203 ../../include/conversation.php:1464
-#: ../../Zotlabs/Lib/ThreadItem.php:832
+#: ../../addon/hsse/hsse.php:203 ../../include/conversation.php:1469
+#: ../../Zotlabs/Lib/ThreadItem.php:835
msgid "Quote"
msgstr ""
-#: ../../addon/hsse/hsse.php:204 ../../include/conversation.php:1465
-#: ../../Zotlabs/Lib/ThreadItem.php:833
+#: ../../addon/hsse/hsse.php:204 ../../include/conversation.php:1470
+#: ../../Zotlabs/Lib/ThreadItem.php:836
msgid "Code"
msgstr ""
-#: ../../addon/hsse/hsse.php:205 ../../include/conversation.php:1466
-#: ../../Zotlabs/Lib/ThreadItem.php:835
+#: ../../addon/hsse/hsse.php:205 ../../include/conversation.php:1471
+#: ../../Zotlabs/Lib/ThreadItem.php:838
msgid "Attach/Upload file"
msgstr ""
-#: ../../addon/hsse/hsse.php:212 ../../include/conversation.php:1473
+#: ../../addon/hsse/hsse.php:212 ../../include/conversation.php:1478
msgid "Toggle voting"
msgstr ""
-#: ../../addon/hsse/hsse.php:215 ../../include/conversation.php:1480
+#: ../../addon/hsse/hsse.php:215 ../../include/conversation.php:1485
msgid "Disable comments"
msgstr ""
-#: ../../addon/hsse/hsse.php:216 ../../include/conversation.php:1481
+#: ../../addon/hsse/hsse.php:216 ../../include/conversation.php:1486
msgid "Toggle comments"
msgstr ""
#: ../../addon/hsse/hsse.php:221 ../../addon/cards/Mod_Card_edit.php:118
#: ../../addon/articles/Mod_Article_edit.php:116
-#: ../../include/conversation.php:1487 ../../Zotlabs/Module/Editblock.php:129
+#: ../../include/conversation.php:1492 ../../Zotlabs/Module/Editblock.php:129
#: ../../Zotlabs/Module/Photos.php:667 ../../Zotlabs/Module/Photos.php:1039
msgid "Title (optional)"
msgstr ""
-#: ../../addon/hsse/hsse.php:224 ../../include/conversation.php:1491
+#: ../../addon/hsse/hsse.php:224 ../../include/conversation.php:1496
msgid "Categories (optional, comma-separated list)"
msgstr ""
-#: ../../addon/hsse/hsse.php:225 ../../include/conversation.php:1492
+#: ../../addon/hsse/hsse.php:225 ../../include/conversation.php:1497
msgid "Permission settings"
msgstr ""
-#: ../../addon/hsse/hsse.php:247 ../../include/conversation.php:1514
+#: ../../addon/hsse/hsse.php:247 ../../include/conversation.php:1519
msgid "Other networks and post services"
msgstr ""
-#: ../../addon/hsse/hsse.php:250 ../../include/conversation.php:1517
+#: ../../addon/hsse/hsse.php:250 ../../include/conversation.php:1522
msgid "Set expiration date"
msgstr ""
-#: ../../addon/hsse/hsse.php:253 ../../include/conversation.php:1520
+#: ../../addon/hsse/hsse.php:253 ../../include/conversation.php:1525
msgid "Set publish date"
msgstr ""
-#: ../../addon/hsse/hsse.php:255 ../../include/conversation.php:1522
-#: ../../Zotlabs/Module/Chat.php:218 ../../Zotlabs/Lib/ThreadItem.php:841
+#: ../../addon/hsse/hsse.php:255 ../../include/conversation.php:1527
+#: ../../Zotlabs/Module/Chat.php:218 ../../Zotlabs/Lib/ThreadItem.php:844
msgid "Encrypt text"
msgstr ""
@@ -2096,24 +2096,24 @@ msgid "Enter some text"
msgstr ""
#: ../../addon/pubcrawl/as.php:1332 ../../addon/pubcrawl/as.php:2002
-#: ../../include/network.php:1770 ../../Zotlabs/Lib/Activity.php:3660
+#: ../../include/network.php:1772 ../../Zotlabs/Lib/Activity.php:3732
msgid "ActivityPub"
msgstr ""
-#: ../../addon/pubcrawl/as.php:1958 ../../addon/diaspora/Receiver.php:1647
+#: ../../addon/pubcrawl/as.php:1958 ../../addon/diaspora/Receiver.php:1693
#: ../../Zotlabs/Module/Like.php:453 ../../Zotlabs/Module/Subthread.php:115
msgid "status"
msgstr ""
-#: ../../addon/pubcrawl/as.php:1993 ../../addon/diaspora/Receiver.php:1591
+#: ../../addon/pubcrawl/as.php:1993 ../../addon/diaspora/Receiver.php:1628
#: ../../include/conversation.php:184 ../../Zotlabs/Module/Like.php:485
-#: ../../Zotlabs/Lib/Activity.php:3651
+#: ../../Zotlabs/Lib/Activity.php:3723
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr ""
#: ../../addon/pubcrawl/as.php:1995 ../../include/conversation.php:187
-#: ../../Zotlabs/Module/Like.php:487 ../../Zotlabs/Lib/Activity.php:3653
+#: ../../Zotlabs/Module/Like.php:487 ../../Zotlabs/Lib/Activity.php:3725
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr ""
@@ -3076,7 +3076,7 @@ msgstr ""
msgid "Smileybutton Settings"
msgstr ""
-#: ../../addon/redfiles/redfilehelper.php:64 ../../include/attach.php:2122
+#: ../../addon/redfiles/redfilehelper.php:64 ../../include/attach.php:2147
msgid "file"
msgstr ""
@@ -3105,7 +3105,7 @@ msgstr ""
msgid "Diaspora relay could not be imported"
msgstr ""
-#: ../../addon/diaspora/diaspora.php:1066
+#: ../../addon/diaspora/diaspora.php:1069
msgid "No subject"
msgstr ""
@@ -3137,48 +3137,38 @@ msgid ""
"locations."
msgstr ""
-#: ../../addon/diaspora/Mod_Diaspora.php:75
-msgid "Allow any Diaspora member to comment or like your public posts"
-msgstr ""
-
-#: ../../addon/diaspora/Mod_Diaspora.php:75
-msgid ""
-"If this setting is disabled only your contacts will be able to comment or "
-"like your public posts"
-msgstr ""
-
-#: ../../addon/diaspora/Mod_Diaspora.php:79
+#: ../../addon/diaspora/Mod_Diaspora.php:80
msgid "Prevent your hashtags from being redirected to other sites"
msgstr ""
-#: ../../addon/diaspora/Mod_Diaspora.php:83
+#: ../../addon/diaspora/Mod_Diaspora.php:84
msgid "Sign and forward posts and comments with no existing Diaspora signature"
msgstr ""
-#: ../../addon/diaspora/Mod_Diaspora.php:88
+#: ../../addon/diaspora/Mod_Diaspora.php:89
msgid "Followed hashtags (comma separated, do not include the #)"
msgstr ""
-#: ../../addon/diaspora/Mod_Diaspora.php:97
+#: ../../addon/diaspora/Mod_Diaspora.php:98
msgid "Diaspora Protocol"
msgstr ""
-#: ../../addon/diaspora/Receiver.php:1595
+#: ../../addon/diaspora/Receiver.php:1632
#, php-format
msgid "%1$s dislikes %2$s's %3$s"
msgstr ""
-#: ../../addon/diaspora/Receiver.php:2206 ../../Zotlabs/Module/Like.php:495
+#: ../../addon/diaspora/Receiver.php:2251 ../../Zotlabs/Module/Like.php:495
#, php-format
msgid "%1$s is attending %2$s's %3$s"
msgstr ""
-#: ../../addon/diaspora/Receiver.php:2208 ../../Zotlabs/Module/Like.php:497
+#: ../../addon/diaspora/Receiver.php:2253 ../../Zotlabs/Module/Like.php:497
#, php-format
msgid "%1$s is not attending %2$s's %3$s"
msgstr ""
-#: ../../addon/diaspora/Receiver.php:2210 ../../Zotlabs/Module/Like.php:499
+#: ../../addon/diaspora/Receiver.php:2255 ../../Zotlabs/Module/Like.php:499
#, php-format
msgid "%1$s may attend %2$s's %3$s"
msgstr ""
@@ -3231,66 +3221,66 @@ msgstr ""
msgid "Workflow user."
msgstr ""
-#: ../../addon/workflow/workflow.php:272
+#: ../../addon/workflow/workflow.php:273
msgid "This channel"
msgstr ""
-#: ../../addon/workflow/workflow.php:285 ../../Zotlabs/Module/Locs.php:123
+#: ../../addon/workflow/workflow.php:286 ../../Zotlabs/Module/Locs.php:123
msgid "Primary"
msgstr ""
-#: ../../addon/workflow/workflow.php:327
+#: ../../addon/workflow/workflow.php:328
msgid "Create New Workflow Item"
msgstr ""
-#: ../../addon/workflow/workflow.php:546 ../../addon/workflow/workflow.php:1442
-#: ../../addon/workflow/workflow.php:1461
+#: ../../addon/workflow/workflow.php:547 ../../addon/workflow/workflow.php:1444
+#: ../../addon/workflow/workflow.php:1463
msgid "Workflow"
msgstr ""
-#: ../../addon/workflow/workflow.php:1430
+#: ../../addon/workflow/workflow.php:1432
msgid "No Workflows Available"
msgstr ""
-#: ../../addon/workflow/workflow.php:1460
+#: ../../addon/workflow/workflow.php:1462
msgid "Add item to which workflow"
msgstr ""
-#: ../../addon/workflow/workflow.php:1520
-#: ../../addon/workflow/workflow.php:1639
+#: ../../addon/workflow/workflow.php:1522
+#: ../../addon/workflow/workflow.php:1641
msgid "Create Workflow Item"
msgstr ""
-#: ../../addon/workflow/workflow.php:2601
+#: ../../addon/workflow/workflow.php:2603
msgid "Link"
msgstr ""
-#: ../../addon/workflow/workflow.php:2603
+#: ../../addon/workflow/workflow.php:2605
msgid "Web link."
msgstr ""
-#: ../../addon/workflow/workflow.php:2622
-#: ../../addon/workflow/workflow.php:2683 ../../Zotlabs/Module/Cdav.php:1366
+#: ../../addon/workflow/workflow.php:2624
+#: ../../addon/workflow/workflow.php:2685 ../../Zotlabs/Module/Cdav.php:1366
#: ../../Zotlabs/Module/Connedit.php:734
msgid "Title"
msgstr ""
-#: ../../addon/workflow/workflow.php:2624
-#: ../../addon/workflow/workflow.php:2685
+#: ../../addon/workflow/workflow.php:2626
+#: ../../addon/workflow/workflow.php:2687
msgid "Brief description or title"
msgstr ""
-#: ../../addon/workflow/workflow.php:2630 ../../Zotlabs/Widget/Notes.php:38
+#: ../../addon/workflow/workflow.php:2632 ../../Zotlabs/Widget/Notes.php:38
#: ../../Zotlabs/Lib/Apps.php:375
msgid "Notes"
msgstr ""
-#: ../../addon/workflow/workflow.php:2632
-#: ../../addon/workflow/workflow.php:2693
+#: ../../addon/workflow/workflow.php:2634
+#: ../../addon/workflow/workflow.php:2695
msgid "Notes and Info"
msgstr ""
-#: ../../addon/workflow/workflow.php:2691
+#: ../../addon/workflow/workflow.php:2693
msgid "Body"
msgstr ""
@@ -3494,7 +3484,7 @@ msgstr ""
#: ../../addon/cards/Mod_Card_edit.php:44
#: ../../addon/articles/Mod_Article_edit.php:44
#: ../../Zotlabs/Module/Attach_edit.php:52
-#: ../../Zotlabs/Module/Wall_upload.php:31 ../../Zotlabs/Module/Chanview.php:95
+#: ../../Zotlabs/Module/Wall_upload.php:30 ../../Zotlabs/Module/Chanview.php:95
#: ../../Zotlabs/Module/Cal.php:31 ../../Zotlabs/Module/Attach.php:22
#: ../../Zotlabs/Module/Page.php:75 ../../Zotlabs/Module/Block.php:41
msgid "Channel not found."
@@ -3521,7 +3511,7 @@ msgstr ""
#: ../../Zotlabs/Module/Oauth2.php:193 ../../Zotlabs/Module/Thing.php:269
#: ../../Zotlabs/Module/Connedit.php:540 ../../Zotlabs/Module/Connedit.php:749
#: ../../Zotlabs/Lib/Apps.php:602 ../../Zotlabs/Lib/ThreadItem.php:179
-#: ../../Zotlabs/Storage/Browser.php:387
+#: ../../Zotlabs/Lib/ThreadItem.php:509 ../../Zotlabs/Storage/Browser.php:387
msgid "Delete"
msgstr ""
@@ -3544,8 +3534,8 @@ msgid "Add Card"
msgstr ""
#: ../../addon/cards/Mod_Cards.php:116
-#: ../../addon/articles/Mod_Articles.php:120 ../../include/text.php:1169
-#: ../../include/text.php:1181 ../../Zotlabs/Module/Admin/Queueworker.php:114
+#: ../../addon/articles/Mod_Articles.php:120 ../../include/text.php:1171
+#: ../../include/text.php:1183 ../../Zotlabs/Module/Admin/Queueworker.php:114
#: ../../Zotlabs/Module/Admin/Profs.php:94
#: ../../Zotlabs/Module/Admin/Profs.php:114 ../../Zotlabs/Module/Filer.php:54
#: ../../Zotlabs/Module/Rbmark.php:31 ../../Zotlabs/Module/Rbmark.php:103
@@ -3585,7 +3575,7 @@ msgid "Set/edit permissions"
msgstr ""
#: ../../addon/flashcards/Mod_Flashcards.php:291
-#: ../../addon/flashcards/Mod_Flashcards.php:292 ../../include/items.php:3836
+#: ../../addon/flashcards/Mod_Flashcards.php:292 ../../include/items.php:3876
#: ../../Zotlabs/Module/Filestorage.php:29
#: ../../Zotlabs/Module/Admin/Themes.php:72
#: ../../Zotlabs/Module/Admin/Addons.php:263
@@ -4055,47 +4045,47 @@ msgstr ""
msgid "newer"
msgstr ""
-#: ../../include/text.php:1056 ../../include/features.php:133
+#: ../../include/text.php:1058 ../../include/features.php:133
#: ../../Zotlabs/Module/Connections.php:399 ../../Zotlabs/Lib/Apps.php:338
msgid "Connections"
msgstr ""
-#: ../../include/text.php:1064 ../../Zotlabs/Module/Viewconnections.php:80
+#: ../../include/text.php:1066 ../../Zotlabs/Module/Viewconnections.php:80
#: ../../Zotlabs/Module/Connections.php:306
msgid "Accepts"
msgstr ""
-#: ../../include/text.php:1067 ../../Zotlabs/Module/Viewconnections.php:83
+#: ../../include/text.php:1069 ../../Zotlabs/Module/Viewconnections.php:83
#: ../../Zotlabs/Module/Connections.php:309
msgid "Comments"
msgstr ""
-#: ../../include/text.php:1072 ../../Zotlabs/Module/Viewconnections.php:88
+#: ../../include/text.php:1074 ../../Zotlabs/Module/Viewconnections.php:88
#: ../../Zotlabs/Module/Connections.php:314
msgid "Stream items"
msgstr ""
-#: ../../include/text.php:1077 ../../Zotlabs/Module/Viewconnections.php:93
+#: ../../include/text.php:1079 ../../Zotlabs/Module/Viewconnections.php:93
#: ../../Zotlabs/Module/Connections.php:319
msgid "Wall posts"
msgstr ""
-#: ../../include/text.php:1081 ../../Zotlabs/Module/Viewconnections.php:97
+#: ../../include/text.php:1083 ../../Zotlabs/Module/Viewconnections.php:97
#: ../../Zotlabs/Module/Connections.php:323
msgid "Nothing"
msgstr ""
-#: ../../include/text.php:1094
+#: ../../include/text.php:1096
#, php-format
msgid "View all %s connections"
msgstr ""
-#: ../../include/text.php:1157
+#: ../../include/text.php:1159
#, php-format
msgid "Network: %s"
msgstr ""
-#: ../../include/text.php:1168 ../../include/text.php:1180
+#: ../../include/text.php:1170 ../../include/text.php:1182
#: ../../include/nav.php:195 ../../include/acl_selectors.php:149
#: ../../Zotlabs/Widget/Sitesearch.php:37
#: ../../Zotlabs/Widget/Activity_filter.php:210
@@ -4104,209 +4094,209 @@ msgstr ""
msgid "Search"
msgstr ""
-#: ../../include/text.php:1260
+#: ../../include/text.php:1262
msgid "poke"
msgstr ""
-#: ../../include/text.php:1260 ../../include/conversation.php:277
+#: ../../include/text.php:1262 ../../include/conversation.php:277
msgid "poked"
msgstr ""
-#: ../../include/text.php:1261
+#: ../../include/text.php:1263
msgid "ping"
msgstr ""
-#: ../../include/text.php:1261
+#: ../../include/text.php:1263
msgid "pinged"
msgstr ""
-#: ../../include/text.php:1290
+#: ../../include/text.php:1292
msgid "happy"
msgstr ""
-#: ../../include/text.php:1291
+#: ../../include/text.php:1293
msgid "sad"
msgstr ""
-#: ../../include/text.php:1292
+#: ../../include/text.php:1294
msgid "mellow"
msgstr ""
-#: ../../include/text.php:1293
+#: ../../include/text.php:1295
msgid "tired"
msgstr ""
-#: ../../include/text.php:1294
+#: ../../include/text.php:1296
msgid "perky"
msgstr ""
-#: ../../include/text.php:1295
+#: ../../include/text.php:1297
msgid "angry"
msgstr ""
-#: ../../include/text.php:1296
+#: ../../include/text.php:1298
msgid "stupefied"
msgstr ""
-#: ../../include/text.php:1297
+#: ../../include/text.php:1299
msgid "puzzled"
msgstr ""
-#: ../../include/text.php:1298
+#: ../../include/text.php:1300
msgid "interested"
msgstr ""
-#: ../../include/text.php:1299
+#: ../../include/text.php:1301
msgid "bitter"
msgstr ""
-#: ../../include/text.php:1300
+#: ../../include/text.php:1302
msgid "cheerful"
msgstr ""
-#: ../../include/text.php:1301
+#: ../../include/text.php:1303
msgid "alive"
msgstr ""
-#: ../../include/text.php:1302
+#: ../../include/text.php:1304
msgid "annoyed"
msgstr ""
-#: ../../include/text.php:1303
+#: ../../include/text.php:1305
msgid "anxious"
msgstr ""
-#: ../../include/text.php:1304
+#: ../../include/text.php:1306
msgid "cranky"
msgstr ""
-#: ../../include/text.php:1305
+#: ../../include/text.php:1307
msgid "disturbed"
msgstr ""
-#: ../../include/text.php:1306
+#: ../../include/text.php:1308
msgid "frustrated"
msgstr ""
-#: ../../include/text.php:1307
+#: ../../include/text.php:1309
msgid "depressed"
msgstr ""
-#: ../../include/text.php:1308
+#: ../../include/text.php:1310
msgid "motivated"
msgstr ""
-#: ../../include/text.php:1309
+#: ../../include/text.php:1311
msgid "relaxed"
msgstr ""
-#: ../../include/text.php:1310
+#: ../../include/text.php:1312
msgid "surprised"
msgstr ""
-#: ../../include/text.php:1498 ../../include/js_strings.php:100
+#: ../../include/text.php:1500 ../../include/js_strings.php:100
msgid "Monday"
msgstr ""
-#: ../../include/text.php:1498 ../../include/js_strings.php:101
+#: ../../include/text.php:1500 ../../include/js_strings.php:101
msgid "Tuesday"
msgstr ""
-#: ../../include/text.php:1498 ../../include/js_strings.php:102
+#: ../../include/text.php:1500 ../../include/js_strings.php:102
msgid "Wednesday"
msgstr ""
-#: ../../include/text.php:1498 ../../include/js_strings.php:103
+#: ../../include/text.php:1500 ../../include/js_strings.php:103
msgid "Thursday"
msgstr ""
-#: ../../include/text.php:1498 ../../include/js_strings.php:104
+#: ../../include/text.php:1500 ../../include/js_strings.php:104
msgid "Friday"
msgstr ""
-#: ../../include/text.php:1498 ../../include/js_strings.php:105
+#: ../../include/text.php:1500 ../../include/js_strings.php:105
msgid "Saturday"
msgstr ""
-#: ../../include/text.php:1498 ../../include/js_strings.php:99
+#: ../../include/text.php:1500 ../../include/js_strings.php:99
msgid "Sunday"
msgstr ""
-#: ../../include/text.php:1502 ../../include/js_strings.php:75
+#: ../../include/text.php:1504 ../../include/js_strings.php:75
msgid "January"
msgstr ""
-#: ../../include/text.php:1502 ../../include/js_strings.php:76
+#: ../../include/text.php:1504 ../../include/js_strings.php:76
msgid "February"
msgstr ""
-#: ../../include/text.php:1502 ../../include/js_strings.php:77
+#: ../../include/text.php:1504 ../../include/js_strings.php:77
msgid "March"
msgstr ""
-#: ../../include/text.php:1502 ../../include/js_strings.php:78
+#: ../../include/text.php:1504 ../../include/js_strings.php:78
msgid "April"
msgstr ""
-#: ../../include/text.php:1502
+#: ../../include/text.php:1504
msgid "May"
msgstr ""
-#: ../../include/text.php:1502 ../../include/js_strings.php:80
+#: ../../include/text.php:1504 ../../include/js_strings.php:80
msgid "June"
msgstr ""
-#: ../../include/text.php:1502 ../../include/js_strings.php:81
+#: ../../include/text.php:1504 ../../include/js_strings.php:81
msgid "July"
msgstr ""
-#: ../../include/text.php:1502 ../../include/js_strings.php:82
+#: ../../include/text.php:1504 ../../include/js_strings.php:82
msgid "August"
msgstr ""
-#: ../../include/text.php:1502 ../../include/js_strings.php:83
+#: ../../include/text.php:1504 ../../include/js_strings.php:83
msgid "September"
msgstr ""
-#: ../../include/text.php:1502 ../../include/js_strings.php:84
+#: ../../include/text.php:1504 ../../include/js_strings.php:84
msgid "October"
msgstr ""
-#: ../../include/text.php:1502 ../../include/js_strings.php:85
+#: ../../include/text.php:1504 ../../include/js_strings.php:85
msgid "November"
msgstr ""
-#: ../../include/text.php:1502 ../../include/js_strings.php:86
+#: ../../include/text.php:1504 ../../include/js_strings.php:86
msgid "December"
msgstr ""
-#: ../../include/text.php:1568
-msgid "Unknown Attachment"
+#: ../../include/text.php:1578
+msgid "Unknown attachment"
msgstr ""
-#: ../../include/text.php:1570 ../../Zotlabs/Module/Sharedwithme.php:109
+#: ../../include/text.php:1581 ../../Zotlabs/Module/Sharedwithme.php:109
#: ../../Zotlabs/Storage/Browser.php:382
msgid "Size"
msgstr ""
-#: ../../include/text.php:1570 ../../include/feedutils.php:871
+#: ../../include/text.php:1581 ../../include/feedutils.php:871
msgid "unknown"
msgstr ""
-#: ../../include/text.php:1613
+#: ../../include/text.php:1623
msgid "remove category"
msgstr ""
-#: ../../include/text.php:1690
+#: ../../include/text.php:1700
msgid "remove from file"
msgstr ""
-#: ../../include/text.php:1877
+#: ../../include/text.php:1887
msgid "Download binary/encrypted content"
msgstr ""
-#: ../../include/text.php:1935 ../../include/text.php:1944
-#: ../../include/text.php:1971 ../../include/text.php:1980
+#: ../../include/text.php:1945 ../../include/text.php:1954
+#: ../../include/text.php:1981 ../../include/text.php:1990
#, php-format
msgctxt "noun"
msgid "%d Vote"
@@ -4314,7 +4304,7 @@ msgid_plural "%d Votes"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/text.php:1987
+#: ../../include/text.php:1997
#, php-format
msgctxt "noun"
msgid "%d Vote in total"
@@ -4322,162 +4312,162 @@ msgid_plural "%d Votes in total"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/text.php:1993
+#: ../../include/text.php:2003
msgid "Poll has ended"
msgstr ""
-#: ../../include/text.php:1996
+#: ../../include/text.php:2006
#, php-format
msgid "Poll ends in %s"
msgstr ""
-#: ../../include/text.php:2003 ../../Zotlabs/Lib/ThreadItem.php:446
+#: ../../include/text.php:2013 ../../Zotlabs/Lib/ThreadItem.php:446
msgid "Vote"
msgstr ""
-#: ../../include/text.php:2158
+#: ../../include/text.php:2168
msgid "Link to Source"
msgstr ""
-#: ../../include/text.php:2183 ../../include/language.php:433
+#: ../../include/text.php:2193 ../../include/language.php:433
msgid "default"
msgstr ""
-#: ../../include/text.php:2191
+#: ../../include/text.php:2201
msgid "Page layout"
msgstr ""
-#: ../../include/text.php:2191
+#: ../../include/text.php:2201
msgid "You can create your own with the layouts tool"
msgstr ""
-#: ../../include/text.php:2202
+#: ../../include/text.php:2212
msgid "HTML"
msgstr ""
-#: ../../include/text.php:2205
+#: ../../include/text.php:2215
msgid "Comanche Layout"
msgstr ""
-#: ../../include/text.php:2210
+#: ../../include/text.php:2220
msgid "PHP"
msgstr ""
-#: ../../include/text.php:2222
+#: ../../include/text.php:2232
msgid "Page content type"
msgstr ""
-#: ../../include/text.php:2345 ../../include/event.php:1356
+#: ../../include/text.php:2355 ../../include/event.php:1356
#: ../../include/conversation.php:142
#: ../../Zotlabs/Module/Channel_calendar.php:221
#: ../../Zotlabs/Module/Like.php:455 ../../Zotlabs/Module/Tagger.php:75
msgid "event"
msgstr ""
-#: ../../include/text.php:2348 ../../include/conversation.php:168
+#: ../../include/text.php:2358 ../../include/conversation.php:168
#: ../../include/bbcode.php:566 ../../include/markdown.php:208
-#: ../../Zotlabs/Module/Tagger.php:79 ../../Zotlabs/Lib/Activity.php:3618
+#: ../../Zotlabs/Module/Tagger.php:79 ../../Zotlabs/Lib/Activity.php:3690
msgid "post"
msgstr ""
-#: ../../include/text.php:2350 ../../include/conversation.php:170
+#: ../../include/text.php:2360 ../../include/conversation.php:170
#: ../../Zotlabs/Module/Tagger.php:81
msgid "comment"
msgstr ""
-#: ../../include/text.php:2355
+#: ../../include/text.php:2365
msgid "activity"
msgstr ""
-#: ../../include/text.php:2358
+#: ../../include/text.php:2368
msgid "poll"
msgstr ""
-#: ../../include/text.php:2471
+#: ../../include/text.php:2481
msgid "a-z, 0-9, -, and _ only"
msgstr ""
-#: ../../include/text.php:2776
+#: ../../include/text.php:2786
msgid "Design Tools"
msgstr ""
-#: ../../include/text.php:2779 ../../Zotlabs/Module/Blocks.php:152
+#: ../../include/text.php:2789 ../../Zotlabs/Module/Blocks.php:152
msgid "Blocks"
msgstr ""
-#: ../../include/text.php:2780 ../../Zotlabs/Module/Menu.php:171
+#: ../../include/text.php:2790 ../../Zotlabs/Module/Menu.php:171
msgid "Menus"
msgstr ""
-#: ../../include/text.php:2781 ../../Zotlabs/Module/Layouts.php:182
+#: ../../include/text.php:2791 ../../Zotlabs/Module/Layouts.php:182
msgid "Layouts"
msgstr ""
-#: ../../include/text.php:2782
+#: ../../include/text.php:2792
msgid "Pages"
msgstr ""
-#: ../../include/text.php:2794
+#: ../../include/text.php:2804
msgid "Import"
msgstr ""
-#: ../../include/text.php:2795
+#: ../../include/text.php:2805
msgid "Import website..."
msgstr ""
-#: ../../include/text.php:2796
+#: ../../include/text.php:2806
msgid "Select folder to import"
msgstr ""
-#: ../../include/text.php:2797
+#: ../../include/text.php:2807
msgid "Import from a zipped folder:"
msgstr ""
-#: ../../include/text.php:2798
+#: ../../include/text.php:2808
msgid "Import from cloud files:"
msgstr ""
-#: ../../include/text.php:2799
+#: ../../include/text.php:2809
msgid "/cloud/channel/path/to/folder"
msgstr ""
-#: ../../include/text.php:2800
+#: ../../include/text.php:2810
msgid "Enter path to website files"
msgstr ""
-#: ../../include/text.php:2801
+#: ../../include/text.php:2811
msgid "Select folder"
msgstr ""
-#: ../../include/text.php:2802
+#: ../../include/text.php:2812
msgid "Export website..."
msgstr ""
-#: ../../include/text.php:2803
+#: ../../include/text.php:2813
msgid "Export to a zip file"
msgstr ""
-#: ../../include/text.php:2804
+#: ../../include/text.php:2814
msgid "website.zip"
msgstr ""
-#: ../../include/text.php:2805
+#: ../../include/text.php:2815
msgid "Enter a name for the zip file."
msgstr ""
-#: ../../include/text.php:2806
+#: ../../include/text.php:2816
msgid "Export to cloud files"
msgstr ""
-#: ../../include/text.php:2807
+#: ../../include/text.php:2817
msgid "/path/to/export/folder"
msgstr ""
-#: ../../include/text.php:2808
+#: ../../include/text.php:2818
msgid "Enter a path to a cloud files destination."
msgstr ""
-#: ../../include/text.php:2809
+#: ../../include/text.php:2819
msgid "Specify folder"
msgstr ""
@@ -4539,42 +4529,42 @@ msgstr ""
msgid "Cancelled"
msgstr ""
-#: ../../include/event.php:1520 ../../include/connections.php:752
+#: ../../include/event.php:1520 ../../include/connections.php:781
#: ../../Zotlabs/Module/Cdav.php:1373 ../../Zotlabs/Module/Connedit.php:741
msgid "Mobile"
msgstr ""
-#: ../../include/event.php:1521 ../../include/connections.php:753
+#: ../../include/event.php:1521 ../../include/connections.php:782
#: ../../Zotlabs/Widget/Notifications.php:43 ../../Zotlabs/Module/Cdav.php:1374
#: ../../Zotlabs/Module/Connedit.php:742
msgid "Home"
msgstr ""
-#: ../../include/event.php:1522 ../../include/connections.php:754
+#: ../../include/event.php:1522 ../../include/connections.php:783
msgid "Home, Voice"
msgstr ""
-#: ../../include/event.php:1523 ../../include/connections.php:755
+#: ../../include/event.php:1523 ../../include/connections.php:784
msgid "Home, Fax"
msgstr ""
-#: ../../include/event.php:1524 ../../include/connections.php:756
+#: ../../include/event.php:1524 ../../include/connections.php:785
#: ../../Zotlabs/Module/Cdav.php:1375 ../../Zotlabs/Module/Connedit.php:743
msgid "Work"
msgstr ""
-#: ../../include/event.php:1525 ../../include/connections.php:757
+#: ../../include/event.php:1525 ../../include/connections.php:786
msgid "Work, Voice"
msgstr ""
-#: ../../include/event.php:1526 ../../include/connections.php:758
+#: ../../include/event.php:1526 ../../include/connections.php:787
msgid "Work, Fax"
msgstr ""
#: ../../include/event.php:1527 ../../include/event.php:1534
#: ../../include/selectors.php:64 ../../include/selectors.php:81
#: ../../include/selectors.php:119 ../../include/selectors.php:155
-#: ../../include/connections.php:759 ../../include/connections.php:766
+#: ../../include/connections.php:788 ../../include/connections.php:795
#: ../../Zotlabs/Module/Cdav.php:1376 ../../Zotlabs/Module/Connedit.php:744
#: ../../Zotlabs/Access/PermissionRoles.php:360
msgid "Other"
@@ -4910,7 +4900,7 @@ msgstr ""
msgid "Ability to create multiple profiles"
msgstr ""
-#: ../../include/security.php:630
+#: ../../include/security.php:633
msgid ""
"The form security token was not correct. This probably happened because the "
"form has been opened for too long (>3 hours) before submitting it."
@@ -4920,16 +4910,16 @@ msgstr ""
msgid "Delete this item?"
msgstr ""
-#: ../../include/js_strings.php:6
+#: ../../include/js_strings.php:6 ../../Zotlabs/Module/Moderate.php:78
msgid "Item deleted"
msgstr ""
#: ../../include/js_strings.php:7 ../../Zotlabs/Module/Photos.php:1092
-#: ../../Zotlabs/Module/Photos.php:1205 ../../Zotlabs/Lib/ThreadItem.php:827
+#: ../../Zotlabs/Module/Photos.php:1205 ../../Zotlabs/Lib/ThreadItem.php:830
msgid "Comment"
msgstr ""
-#: ../../include/js_strings.php:8 ../../Zotlabs/Lib/ThreadItem.php:536
+#: ../../include/js_strings.php:8 ../../Zotlabs/Lib/ThreadItem.php:539
#, php-format
msgid "%s show all"
msgstr ""
@@ -5335,43 +5325,43 @@ msgstr ""
msgid "content-type: "
msgstr ""
-#: ../../include/network.php:1765 ../../include/network.php:1766
+#: ../../include/network.php:1767 ../../include/network.php:1768
msgid "Friendica"
msgstr ""
-#: ../../include/network.php:1767
+#: ../../include/network.php:1769
msgid "OStatus"
msgstr ""
-#: ../../include/network.php:1768
+#: ../../include/network.php:1770
msgid "GNU-Social"
msgstr ""
-#: ../../include/network.php:1769
+#: ../../include/network.php:1771
msgid "RSS/Atom"
msgstr ""
-#: ../../include/network.php:1772
+#: ../../include/network.php:1774
msgid "Diaspora"
msgstr ""
-#: ../../include/network.php:1773
+#: ../../include/network.php:1775
msgid "Facebook"
msgstr ""
-#: ../../include/network.php:1774
+#: ../../include/network.php:1776
msgid "Zot"
msgstr ""
-#: ../../include/network.php:1775
+#: ../../include/network.php:1777
msgid "LinkedIn"
msgstr ""
-#: ../../include/network.php:1776
+#: ../../include/network.php:1778
msgid "XMPP/IM"
msgstr ""
-#: ../../include/network.php:1777
+#: ../../include/network.php:1779
msgid "MySpace"
msgstr ""
@@ -5783,7 +5773,7 @@ msgstr ""
#: ../../Zotlabs/Widget/Album.php:90 ../../Zotlabs/Widget/Pinned.php:275
#: ../../Zotlabs/Widget/Portfolio.php:99
#: ../../Zotlabs/Module/Embedphotos.php:177 ../../Zotlabs/Module/Photos.php:788
-#: ../../Zotlabs/Module/Photos.php:1245 ../../Zotlabs/Lib/Activity.php:1625
+#: ../../Zotlabs/Module/Photos.php:1245 ../../Zotlabs/Lib/Activity.php:1681
#: ../../Zotlabs/Lib/Apps.php:1152 ../../Zotlabs/Lib/Apps.php:1236
msgid "Unknown"
msgstr ""
@@ -5910,6 +5900,7 @@ msgstr ""
#: ../../Zotlabs/Module/Admin/Accounts.php:318
#: ../../Zotlabs/Module/Connections.php:358
#: ../../Zotlabs/Module/Connections.php:409
+#: ../../Zotlabs/Lib/ThreadItem.php:508
msgid "Approve"
msgstr ""
@@ -5981,7 +5972,7 @@ msgstr ""
msgid "Recent Activity"
msgstr ""
-#: ../../include/conversation.php:1120 ../../include/connections.php:112
+#: ../../include/conversation.php:1120 ../../include/connections.php:141
#: ../../include/channel.php:1616 ../../Zotlabs/Widget/Suggestions.php:51
#: ../../Zotlabs/Widget/Follow.php:37 ../../Zotlabs/Module/Directory.php:371
#: ../../Zotlabs/Module/Connections.php:365 ../../Zotlabs/Module/Suggest.php:69
@@ -5997,84 +5988,92 @@ msgstr ""
msgid "Poke"
msgstr ""
-#: ../../include/conversation.php:1268
+#: ../../include/conversation.php:1219
+msgid "Approve this item"
+msgstr ""
+
+#: ../../include/conversation.php:1219
+msgid "Delete this item"
+msgstr ""
+
+#: ../../include/conversation.php:1273
#, php-format
msgid "%s likes this."
msgstr ""
-#: ../../include/conversation.php:1268
+#: ../../include/conversation.php:1273
#, php-format
msgid "%s doesn't like this."
msgstr ""
-#: ../../include/conversation.php:1272
+#: ../../include/conversation.php:1277
#, php-format
msgid "<span %1$s>%2$d people</span> like this."
msgid_plural "<span %1$s>%2$d people</span> like this."
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1274
+#: ../../include/conversation.php:1279
#, php-format
msgid "<span %1$s>%2$d people</span> don't like this."
msgid_plural "<span %1$s>%2$d people</span> don't like this."
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1280
+#: ../../include/conversation.php:1285
msgid "and"
msgstr ""
-#: ../../include/conversation.php:1283
+#: ../../include/conversation.php:1288
#, php-format
msgid ", and %d other people"
msgid_plural ", and %d other people"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1284
+#: ../../include/conversation.php:1289
#, php-format
msgid "%s like this."
msgstr ""
-#: ../../include/conversation.php:1284
+#: ../../include/conversation.php:1289
#, php-format
msgid "%s don't like this."
msgstr ""
-#: ../../include/conversation.php:1474
+#: ../../include/conversation.php:1479
msgid "Toggle poll"
msgstr ""
-#: ../../include/conversation.php:1475
+#: ../../include/conversation.php:1480
msgid "Option"
msgstr ""
-#: ../../include/conversation.php:1476
+#: ../../include/conversation.php:1481
msgid "Add option"
msgstr ""
-#: ../../include/conversation.php:1477
+#: ../../include/conversation.php:1482
msgid "Minutes"
msgstr ""
-#: ../../include/conversation.php:1477
+#: ../../include/conversation.php:1482
msgid "Hours"
msgstr ""
-#: ../../include/conversation.php:1477
+#: ../../include/conversation.php:1482
msgid "Days"
msgstr ""
-#: ../../include/conversation.php:1478
+#: ../../include/conversation.php:1483
msgid "Allow multiple answers"
msgstr ""
-#: ../../include/conversation.php:1488
+#: ../../include/conversation.php:1493
msgid "Summary (optional)"
msgstr ""
-#: ../../include/conversation.php:1763 ../../include/taxonomy.php:675
+#: ../../include/conversation.php:1768 ../../include/taxonomy.php:675
#: ../../include/channel.php:1779 ../../Zotlabs/Module/Photos.php:1128
#: ../../Zotlabs/Lib/ThreadItem.php:233
msgctxt "noun"
@@ -6083,7 +6082,7 @@ msgid_plural "Likes"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1766 ../../Zotlabs/Module/Photos.php:1133
+#: ../../include/conversation.php:1771 ../../Zotlabs/Module/Photos.php:1133
#: ../../Zotlabs/Lib/ThreadItem.php:239
msgctxt "noun"
msgid "Dislike"
@@ -6091,42 +6090,42 @@ msgid_plural "Dislikes"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1769
+#: ../../include/conversation.php:1774
msgctxt "noun"
msgid "Attending"
msgid_plural "Attending"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1772
+#: ../../include/conversation.php:1777
msgctxt "noun"
msgid "Not Attending"
msgid_plural "Not Attending"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1775
+#: ../../include/conversation.php:1780
msgctxt "noun"
msgid "Undecided"
msgid_plural "Undecided"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1778
+#: ../../include/conversation.php:1783
msgctxt "noun"
msgid "Agree"
msgid_plural "Agrees"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1781
+#: ../../include/conversation.php:1786
msgctxt "noun"
msgid "Disagree"
msgid_plural "Disagrees"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1784
+#: ../../include/conversation.php:1789
msgctxt "noun"
msgid "Abstain"
msgid_plural "Abstains"
@@ -6384,11 +6383,11 @@ msgstr ""
msgid "Ask me"
msgstr ""
-#: ../../include/connections.php:136
+#: ../../include/connections.php:165
msgid "New window"
msgstr ""
-#: ../../include/connections.php:137
+#: ../../include/connections.php:166
msgid "Open the selected location in a different window or browser tab"
msgstr ""
@@ -6474,105 +6473,105 @@ msgstr ""
msgid "dislikes"
msgstr ""
-#: ../../include/items.php:1231
+#: ../../include/items.php:1234
msgid "Visible to anybody on the internet."
msgstr ""
-#: ../../include/items.php:1233
+#: ../../include/items.php:1236
msgid "Visible to you only."
msgstr ""
-#: ../../include/items.php:1235
+#: ../../include/items.php:1238
msgid "Visible to anybody in this network."
msgstr ""
-#: ../../include/items.php:1237
+#: ../../include/items.php:1240
msgid "Visible to anybody authenticated."
msgstr ""
-#: ../../include/items.php:1239
+#: ../../include/items.php:1242
#, php-format
msgid "Visible to anybody on %s."
msgstr ""
-#: ../../include/items.php:1241
+#: ../../include/items.php:1244
msgid "Visible to all connections."
msgstr ""
-#: ../../include/items.php:1243
+#: ../../include/items.php:1246
msgid "Visible to approved connections."
msgstr ""
-#: ../../include/items.php:1245
+#: ../../include/items.php:1248
msgid "Visible to specific connections."
msgstr ""
-#: ../../include/items.php:3333 ../../Zotlabs/Module/Share.php:104
+#: ../../include/items.php:3373 ../../Zotlabs/Module/Share.php:104
#, php-format
msgid "&#x1f501; Repeated %1$s's %2$s"
msgstr ""
-#: ../../include/items.php:4415 ../../Zotlabs/Module/Group.php:62
+#: ../../include/items.php:4455 ../../Zotlabs/Module/Group.php:62
#: ../../Zotlabs/Module/Group.php:206
msgid "Privacy group not found."
msgstr ""
-#: ../../include/items.php:4431
+#: ../../include/items.php:4471
msgid "Privacy group is empty."
msgstr ""
-#: ../../include/items.php:4438
+#: ../../include/items.php:4478
#, php-format
msgid "Privacy group: %s"
msgstr ""
-#: ../../include/items.php:4448
+#: ../../include/items.php:4488
#, php-format
msgid "Connection: %s"
msgstr ""
-#: ../../include/items.php:4450
+#: ../../include/items.php:4490
msgid "Connection not found."
msgstr ""
-#: ../../include/items.php:4797 ../../Zotlabs/Module/Cover_photo.php:297
+#: ../../include/items.php:4837 ../../Zotlabs/Module/Cover_photo.php:297
msgid "female"
msgstr ""
-#: ../../include/items.php:4798 ../../Zotlabs/Module/Cover_photo.php:298
+#: ../../include/items.php:4838 ../../Zotlabs/Module/Cover_photo.php:298
#, php-format
msgid "%1$s updated her %2$s"
msgstr ""
-#: ../../include/items.php:4799 ../../Zotlabs/Module/Cover_photo.php:299
+#: ../../include/items.php:4839 ../../Zotlabs/Module/Cover_photo.php:299
msgid "male"
msgstr ""
-#: ../../include/items.php:4800 ../../Zotlabs/Module/Cover_photo.php:300
+#: ../../include/items.php:4840 ../../Zotlabs/Module/Cover_photo.php:300
#, php-format
msgid "%1$s updated his %2$s"
msgstr ""
-#: ../../include/items.php:4802 ../../Zotlabs/Module/Cover_photo.php:302
+#: ../../include/items.php:4842 ../../Zotlabs/Module/Cover_photo.php:302
#, php-format
msgid "%1$s updated their %2$s"
msgstr ""
-#: ../../include/items.php:4804
+#: ../../include/items.php:4844
msgid "profile photo"
msgstr ""
-#: ../../include/items.php:5001
+#: ../../include/items.php:5171
#, php-format
msgid "[Edited %s]"
msgstr ""
-#: ../../include/items.php:5001
+#: ../../include/items.php:5171
msgctxt "edit_activity"
msgid "Post"
msgstr ""
-#: ../../include/items.php:5001
+#: ../../include/items.php:5171
msgctxt "edit_activity"
msgid "Comment"
msgstr ""
@@ -6680,7 +6679,7 @@ msgid "Profile Photos"
msgstr ""
#: ../../include/attach.php:273 ../../include/attach.php:324
-#: ../../include/attach.php:419
+#: ../../include/attach.php:426
msgid "Item was not found."
msgstr ""
@@ -6688,75 +6687,75 @@ msgstr ""
msgid "Unknown error."
msgstr ""
-#: ../../include/attach.php:614
+#: ../../include/attach.php:621
msgid "No source file."
msgstr ""
-#: ../../include/attach.php:636
+#: ../../include/attach.php:643
msgid "Cannot locate file to replace"
msgstr ""
-#: ../../include/attach.php:655
+#: ../../include/attach.php:662
msgid "Cannot locate file to revise/update"
msgstr ""
-#: ../../include/attach.php:801
+#: ../../include/attach.php:808
#, php-format
msgid "File exceeds size limit of %d"
msgstr ""
-#: ../../include/attach.php:822
+#: ../../include/attach.php:829
#, php-format
msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
msgstr ""
-#: ../../include/attach.php:1011
+#: ../../include/attach.php:1019
msgid "File upload failed. Possible system limit or action terminated."
msgstr ""
-#: ../../include/attach.php:1040
+#: ../../include/attach.php:1048
msgid "Stored file could not be verified. Upload failed."
msgstr ""
-#: ../../include/attach.php:1112 ../../include/attach.php:1128
+#: ../../include/attach.php:1120 ../../include/attach.php:1136
msgid "Path not available."
msgstr ""
-#: ../../include/attach.php:1176 ../../include/attach.php:1341
+#: ../../include/attach.php:1184 ../../include/attach.php:1349
msgid "Empty pathname"
msgstr ""
-#: ../../include/attach.php:1202
+#: ../../include/attach.php:1210
msgid "duplicate filename or path"
msgstr ""
-#: ../../include/attach.php:1230
+#: ../../include/attach.php:1238
msgid "Path not found."
msgstr ""
-#: ../../include/attach.php:1297
+#: ../../include/attach.php:1305
msgid "mkdir failed."
msgstr ""
-#: ../../include/attach.php:1301
+#: ../../include/attach.php:1309
msgid "database storage failed."
msgstr ""
-#: ../../include/attach.php:1347
+#: ../../include/attach.php:1355
msgid "Empty path"
msgstr ""
-#: ../../include/attach.php:2122
+#: ../../include/attach.php:2147
#, php-format
msgid "%s shared an %s with you"
msgstr ""
-#: ../../include/attach.php:2122
+#: ../../include/attach.php:2147
#, php-format
msgid "%s shared a %s with you"
msgstr ""
-#: ../../include/attach.php:2122
+#: ../../include/attach.php:2147
msgid "image"
msgstr ""
@@ -7089,7 +7088,7 @@ msgid "Forums"
msgstr ""
#: ../../include/acl_selectors.php:136
-#: ../../Zotlabs/Module/Settings/Privacy.php:59
+#: ../../Zotlabs/Module/Settings/Privacy.php:65
#: ../../Zotlabs/Lib/PermissionDescription.php:107
msgid "Only me"
msgstr ""
@@ -7186,7 +7185,7 @@ msgstr ""
msgid "Add new guest"
msgstr ""
-#: ../../Zotlabs/Widget/Tokens.php:49 ../../Zotlabs/Module/Lockview.php:226
+#: ../../Zotlabs/Widget/Tokens.php:49 ../../Zotlabs/Module/Lockview.php:236
msgid "Guest access"
msgstr ""
@@ -7992,29 +7991,29 @@ msgstr ""
msgid "Can not move folder \"%s\" into itself."
msgstr ""
-#: ../../Zotlabs/Module/Network.php:106
+#: ../../Zotlabs/Module/Network.php:108
msgid "No such group"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:158
+#: ../../Zotlabs/Module/Network.php:160
msgid "No such channel"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:170 ../../Zotlabs/Module/Channel.php:234
+#: ../../Zotlabs/Module/Network.php:172 ../../Zotlabs/Module/Channel.php:234
msgid "Search Results For:"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:211 ../../Zotlabs/Module/Channel.php:267
-#: ../../Zotlabs/Module/Hq.php:108 ../../Zotlabs/Module/Pubstream.php:89
+#: ../../Zotlabs/Module/Network.php:213 ../../Zotlabs/Module/Channel.php:267
+#: ../../Zotlabs/Module/Hq.php:103 ../../Zotlabs/Module/Pubstream.php:89
#: ../../Zotlabs/Module/Display.php:89
msgid "Reset form"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:246
+#: ../../Zotlabs/Module/Network.php:248
msgid "Privacy group is empty"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:256
+#: ../../Zotlabs/Module/Network.php:258
msgid "Privacy group: "
msgstr ""
@@ -8844,7 +8843,7 @@ msgstr ""
#: ../../Zotlabs/Module/Channel.php:161 ../../Zotlabs/Module/Channel.php:183
#: ../../Zotlabs/Module/Hq.php:41 ../../Zotlabs/Module/Pubstream.php:46
-#: ../../Zotlabs/Module/Display.php:47 ../../Zotlabs/Module/Oep.php:83
+#: ../../Zotlabs/Module/Display.php:47 ../../Zotlabs/Module/Oep.php:82
msgid "Malformed message id."
msgstr ""
@@ -8852,7 +8851,7 @@ msgstr ""
msgid "Insufficient permissions. Request redirected to profile page."
msgstr ""
-#: ../../Zotlabs/Module/Channel.php:498 ../../Zotlabs/Module/Display.php:321
+#: ../../Zotlabs/Module/Channel.php:494 ../../Zotlabs/Module/Display.php:321
msgid ""
"You must enable javascript for your browser to be able to view this content."
msgstr ""
@@ -9073,7 +9072,7 @@ msgstr ""
msgid "This directory server requires an access token"
msgstr ""
-#: ../../Zotlabs/Module/Pin.php:36 ../../Zotlabs/Module/Item.php:460
+#: ../../Zotlabs/Module/Pin.php:36 ../../Zotlabs/Module/Item.php:478
msgid "Unable to locate original post."
msgstr ""
@@ -9415,59 +9414,67 @@ msgstr ""
msgid "Default Addressbook"
msgstr ""
-#: ../../Zotlabs/Module/Lockview.php:100
+#: ../../Zotlabs/Module/Lockview.php:101
msgid "Remote privacy information not available"
msgstr ""
-#: ../../Zotlabs/Module/Lockview.php:143 ../../Zotlabs/Module/Lockview.php:184
+#: ../../Zotlabs/Module/Lockview.php:144 ../../Zotlabs/Module/Lockview.php:203
#: ../../Zotlabs/Module/Acl.php:123
msgctxt "acl"
msgid "Profile"
msgstr ""
-#: ../../Zotlabs/Module/Lockview.php:154 ../../Zotlabs/Module/Lockview.php:193
+#: ../../Zotlabs/Module/Lockview.php:155 ../../Zotlabs/Module/Lockview.php:212
msgid "Privacy group"
msgstr ""
-#: ../../Zotlabs/Module/Lockview.php:214
+#: ../../Zotlabs/Module/Lockview.php:183
+msgid "Item"
+msgstr ""
+
+#: ../../Zotlabs/Module/Lockview.php:230
#, php-format
msgid "Click to copy link to this ressource for guest %s to clipboard"
msgstr ""
-#: ../../Zotlabs/Module/Lockview.php:214
+#: ../../Zotlabs/Module/Lockview.php:230
msgid "Link copied"
msgstr ""
-#: ../../Zotlabs/Module/Lockview.php:221
+#: ../../Zotlabs/Module/Lockview.php:235
msgid "Access"
msgstr ""
-#: ../../Zotlabs/Module/Item.php:746
+#: ../../Zotlabs/Module/Lockview.php:237
+msgid "OCAP access"
+msgstr ""
+
+#: ../../Zotlabs/Module/Item.php:764
msgid "Empty post discarded."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1144
+#: ../../Zotlabs/Module/Item.php:1179
msgid "Duplicate post suppressed."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1294
+#: ../../Zotlabs/Module/Item.php:1329
msgid "System error. Post not saved."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1328
+#: ../../Zotlabs/Module/Item.php:1363
msgid "Your comment is awaiting approval."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1465
+#: ../../Zotlabs/Module/Item.php:1500
msgid "Unable to obtain post information from database."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1472
+#: ../../Zotlabs/Module/Item.php:1507
#, php-format
msgid "You have reached your limit of %1$.0f top level posts."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1479
+#: ../../Zotlabs/Module/Item.php:1514
#, php-format
msgid "You have reached your limit of %1$.0f webpages."
msgstr ""
@@ -9819,7 +9826,7 @@ msgstr ""
msgid "Item is not editable"
msgstr ""
-#: ../../Zotlabs/Module/Editpost.php:113 ../../Zotlabs/Module/Rpost.php:219
+#: ../../Zotlabs/Module/Editpost.php:113 ../../Zotlabs/Module/Rpost.php:211
msgid "Edit post"
msgstr ""
@@ -11488,12 +11495,8 @@ msgstr ""
msgid "Post successful."
msgstr ""
-#: ../../Zotlabs/Module/Moderate.php:67
-msgid "Comment approved"
-msgstr ""
-
-#: ../../Zotlabs/Module/Moderate.php:71
-msgid "Comment deleted"
+#: ../../Zotlabs/Module/Moderate.php:70
+msgid "Item approved"
msgstr ""
#: ../../Zotlabs/Module/Removeaccount.php:35
@@ -12675,7 +12678,7 @@ msgid "I don't like this (toggle)"
msgstr ""
#: ../../Zotlabs/Module/Photos.php:1090 ../../Zotlabs/Module/Photos.php:1203
-#: ../../Zotlabs/Lib/ThreadItem.php:825
+#: ../../Zotlabs/Lib/ThreadItem.php:828
msgid "This is you"
msgstr ""
@@ -13214,11 +13217,11 @@ msgstr ""
msgid "Here you may enter personal notes to the recipient(s)"
msgstr ""
-#: ../../Zotlabs/Module/Sse_bs.php:610
+#: ../../Zotlabs/Module/Sse_bs.php:605
msgid "Private forum"
msgstr ""
-#: ../../Zotlabs/Module/Sse_bs.php:610
+#: ../../Zotlabs/Module/Sse_bs.php:605
msgid "Public forum"
msgstr ""
@@ -13799,90 +13802,106 @@ msgstr ""
msgid "Profiles Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Privacy.php:42
+#: ../../Zotlabs/Module/Settings/Privacy.php:48
msgid "Privacy settings updated."
msgstr ""
-#: ../../Zotlabs/Module/Settings/Privacy.php:60
+#: ../../Zotlabs/Module/Settings/Privacy.php:66
msgid "Only those you specifically allow"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Privacy.php:61
+#: ../../Zotlabs/Module/Settings/Privacy.php:67
msgid "Approved connections"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Privacy.php:62
+#: ../../Zotlabs/Module/Settings/Privacy.php:68
msgid "Any connections"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Privacy.php:63
+#: ../../Zotlabs/Module/Settings/Privacy.php:69
msgid "Anybody on this website"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Privacy.php:64
+#: ../../Zotlabs/Module/Settings/Privacy.php:70
msgid "Anybody in this network"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Privacy.php:65
+#: ../../Zotlabs/Module/Settings/Privacy.php:71
msgid "Anybody authenticated"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Privacy.php:66
+#: ../../Zotlabs/Module/Settings/Privacy.php:72
msgid "Anybody on the internet"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Privacy.php:76
+#: ../../Zotlabs/Module/Settings/Privacy.php:82
msgid ""
"Advise: set to \"Anybody on the internet\" and use privacy groups to "
"restrict access"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Privacy.php:113
+#: ../../Zotlabs/Module/Settings/Privacy.php:121
msgid "Privacy Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Privacy.php:118
+#: ../../Zotlabs/Module/Settings/Privacy.php:126
msgid "Advanced configuration"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Privacy.php:120
+#: ../../Zotlabs/Module/Settings/Privacy.php:128
msgid "Proceed with caution"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Privacy.php:121
+#: ../../Zotlabs/Module/Settings/Privacy.php:129
msgid ""
"Changing advanced configuration settings can impact your, and your contacts "
"channels functionality and security."
msgstr ""
-#: ../../Zotlabs/Module/Settings/Privacy.php:122
+#: ../../Zotlabs/Module/Settings/Privacy.php:130
msgid "Accept the risk and continue"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Privacy.php:124
+#: ../../Zotlabs/Module/Settings/Privacy.php:132
msgid "Automatically approve new contacts"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Privacy.php:125
+#: ../../Zotlabs/Module/Settings/Privacy.php:133
msgid "Opt-out of search engine indexing"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Privacy.php:126
+#: ../../Zotlabs/Module/Settings/Privacy.php:134
msgid "Group actor"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Privacy.php:126
+#: ../../Zotlabs/Module/Settings/Privacy.php:134
msgid "Allow this channel to act as a forum"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Privacy.php:127
+#: ../../Zotlabs/Module/Settings/Privacy.php:135
msgid "Accept all messages which mention you"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Privacy.php:127
+#: ../../Zotlabs/Module/Settings/Privacy.php:135
msgid "This setting bypasses normal permissions"
msgstr ""
+#: ../../Zotlabs/Module/Settings/Privacy.php:136
+msgid "Accept unsolicited comments for moderation"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings/Privacy.php:136
+msgid "Otherwise they will be silently dropped"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings/Privacy.php:137
+msgid "Enable OCAP access"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings/Privacy.php:137
+msgid "Grant limited posts the right to access linked private media"
+msgstr ""
+
#: ../../Zotlabs/Module/Settings/Conversation.php:23
msgid "Settings saved."
msgstr ""
@@ -14571,32 +14590,32 @@ msgctxt "permcat"
msgid "Default"
msgstr ""
-#: ../../Zotlabs/Lib/Activity.php:2332
+#: ../../Zotlabs/Lib/Activity.php:2398
#, php-format
msgid "Likes %1$s's %2$s"
msgstr ""
-#: ../../Zotlabs/Lib/Activity.php:2335
+#: ../../Zotlabs/Lib/Activity.php:2401
#, php-format
msgid "Doesn't like %1$s's %2$s"
msgstr ""
-#: ../../Zotlabs/Lib/Activity.php:2341
+#: ../../Zotlabs/Lib/Activity.php:2407
#, php-format
msgid "Will attend %s's event"
msgstr ""
-#: ../../Zotlabs/Lib/Activity.php:2344
+#: ../../Zotlabs/Lib/Activity.php:2410
#, php-format
msgid "Will not attend %s's event"
msgstr ""
-#: ../../Zotlabs/Lib/Activity.php:2347
+#: ../../Zotlabs/Lib/Activity.php:2413
#, php-format
msgid "May attend %s's event"
msgstr ""
-#: ../../Zotlabs/Lib/Activity.php:2350
+#: ../../Zotlabs/Lib/Activity.php:2416
#, php-format
msgid "May not attend %s's event"
msgstr ""
@@ -14656,14 +14675,26 @@ msgid "Please visit %s to view and/or reply to your direct messages."
msgstr ""
#: ../../Zotlabs/Lib/Enotify.php:148
+msgid "requested to comment on"
+msgstr ""
+
+#: ../../Zotlabs/Lib/Enotify.php:148
msgid "commented on"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:161 ../../Zotlabs/Lib/Enotify.php:310
+#: ../../Zotlabs/Lib/Enotify.php:161 ../../Zotlabs/Lib/Enotify.php:314
+msgid "requested to like"
+msgstr ""
+
+#: ../../Zotlabs/Lib/Enotify.php:161 ../../Zotlabs/Lib/Enotify.php:314
msgid "liked"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:164 ../../Zotlabs/Lib/Enotify.php:310
+#: ../../Zotlabs/Lib/Enotify.php:164 ../../Zotlabs/Lib/Enotify.php:317
+msgid "requested to dislike"
+msgstr ""
+
+#: ../../Zotlabs/Lib/Enotify.php:164 ../../Zotlabs/Lib/Enotify.php:317
msgid "disliked"
msgstr ""
@@ -14681,7 +14712,7 @@ msgstr ""
msgid "%1$s %2$s [zrl=%3$s]%4$s's %5$s[/zrl]"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:229 ../../Zotlabs/Lib/Enotify.php:314
+#: ../../Zotlabs/Lib/Enotify.php:229 ../../Zotlabs/Lib/Enotify.php:321
#, php-format
msgid "%1$s %2$s [zrl=%3$s]your %4$s[/zrl]"
msgstr ""
@@ -14701,9 +14732,9 @@ msgstr ""
msgid "%1$s commented on an item/conversation you have been following"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:247 ../../Zotlabs/Lib/Enotify.php:334
-#: ../../Zotlabs/Lib/Enotify.php:350 ../../Zotlabs/Lib/Enotify.php:374
-#: ../../Zotlabs/Lib/Enotify.php:391 ../../Zotlabs/Lib/Enotify.php:404
+#: ../../Zotlabs/Lib/Enotify.php:247 ../../Zotlabs/Lib/Enotify.php:341
+#: ../../Zotlabs/Lib/Enotify.php:357 ../../Zotlabs/Lib/Enotify.php:381
+#: ../../Zotlabs/Lib/Enotify.php:398 ../../Zotlabs/Lib/Enotify.php:411
#, php-format
msgid "Please visit %s to view and/or reply to the conversation."
msgstr ""
@@ -14713,203 +14744,203 @@ msgstr ""
msgid "Please visit %s to approve or reject this comment."
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:330
+#: ../../Zotlabs/Lib/Enotify.php:337
#, php-format
msgid "[$Projectname:Notify] Like received to conversation #%1$d by %2$s"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:331
+#: ../../Zotlabs/Lib/Enotify.php:338
#, php-format
msgid "%1$s liked an item/conversation you created"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:342
+#: ../../Zotlabs/Lib/Enotify.php:349
#, php-format
msgid "[$Projectname:Notify] %s posted to your profile wall"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:344
+#: ../../Zotlabs/Lib/Enotify.php:351
#, php-format
msgid "%1$s posted to your profile wall at %2$s"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:346
+#: ../../Zotlabs/Lib/Enotify.php:353
#, php-format
msgid "%1$s posted to [zrl=%2$s]your wall[/zrl]"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:368
+#: ../../Zotlabs/Lib/Enotify.php:375
#, php-format
msgid "[$Projectname:Notify] %s tagged you"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:369
+#: ../../Zotlabs/Lib/Enotify.php:376
#, php-format
msgid "%1$s tagged you at %2$s"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:370
+#: ../../Zotlabs/Lib/Enotify.php:377
#, php-format
msgid "%1$s [zrl=%2$s]tagged you[/zrl]."
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:381
+#: ../../Zotlabs/Lib/Enotify.php:388
#, php-format
msgid "[$Projectname:Notify] %1$s poked you"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:382
+#: ../../Zotlabs/Lib/Enotify.php:389
#, php-format
msgid "%1$s poked you at %2$s"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:383
+#: ../../Zotlabs/Lib/Enotify.php:390
#, php-format
msgid "%1$s [zrl=%2$s]poked you[/zrl]."
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:398
+#: ../../Zotlabs/Lib/Enotify.php:405
#, php-format
msgid "[$Projectname:Notify] %s tagged your post"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:399
+#: ../../Zotlabs/Lib/Enotify.php:406
#, php-format
msgid "%1$s tagged your post at %2$s"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:400
+#: ../../Zotlabs/Lib/Enotify.php:407
#, php-format
msgid "%1$s tagged [zrl=%2$s]your post[/zrl]"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:411
+#: ../../Zotlabs/Lib/Enotify.php:418
msgid "[$Projectname:Notify] Introduction received"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:412
+#: ../../Zotlabs/Lib/Enotify.php:419
#, php-format
msgid "You've received an new connection request from '%1$s' at %2$s"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:413
+#: ../../Zotlabs/Lib/Enotify.php:420
#, php-format
msgid "You've received [zrl=%1$s]a new connection request[/zrl] from %2$s."
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:416 ../../Zotlabs/Lib/Enotify.php:434
+#: ../../Zotlabs/Lib/Enotify.php:423 ../../Zotlabs/Lib/Enotify.php:441
#, php-format
msgid "You may visit their profile at %s"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:418
+#: ../../Zotlabs/Lib/Enotify.php:425
#, php-format
msgid "Please visit %s to approve or reject the connection request."
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:425
+#: ../../Zotlabs/Lib/Enotify.php:432
msgid "[$Projectname:Notify] Friend suggestion received"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:426
+#: ../../Zotlabs/Lib/Enotify.php:433
#, php-format
msgid "You've received a friend suggestion from '%1$s' at %2$s"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:427
+#: ../../Zotlabs/Lib/Enotify.php:434
#, php-format
msgid "You've received [zrl=%1$s]a friend suggestion[/zrl] for %2$s from %3$s."
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:432
+#: ../../Zotlabs/Lib/Enotify.php:439
msgid "Name:"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:433
+#: ../../Zotlabs/Lib/Enotify.php:440
msgid "Photo:"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:436
+#: ../../Zotlabs/Lib/Enotify.php:443
#, php-format
msgid "Please visit %s to approve or reject the suggestion."
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:661
+#: ../../Zotlabs/Lib/Enotify.php:668
msgid "[$Projectname:Notify]"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:827
+#: ../../Zotlabs/Lib/Enotify.php:834
msgid "created a new poll"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:827
+#: ../../Zotlabs/Lib/Enotify.php:834
msgid "created a new post"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:828
+#: ../../Zotlabs/Lib/Enotify.php:835
#, php-format
msgid "voted on %s's poll"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:828
+#: ../../Zotlabs/Lib/Enotify.php:835
#, php-format
msgid "commented on %s's post"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:832
+#: ../../Zotlabs/Lib/Enotify.php:839
#, php-format
msgid "repeated %s's post"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:836
+#: ../../Zotlabs/Lib/Enotify.php:843
#, php-format
msgid "liked %s's post"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:840
+#: ../../Zotlabs/Lib/Enotify.php:847
#, php-format
msgid "disliked %s's post"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:844 ../../Zotlabs/Lib/Enotify.php:947
+#: ../../Zotlabs/Lib/Enotify.php:851 ../../Zotlabs/Lib/Enotify.php:954
msgid "shared a file with you"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:853
+#: ../../Zotlabs/Lib/Enotify.php:860
#, php-format
msgid "edited a post dated %s"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:856
+#: ../../Zotlabs/Lib/Enotify.php:863
#, php-format
msgid "edited a comment dated %s"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:932
+#: ../../Zotlabs/Lib/Enotify.php:939
msgid "added your channel"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:962
+#: ../../Zotlabs/Lib/Enotify.php:969
msgid "sent you a direct message"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:969
+#: ../../Zotlabs/Lib/Enotify.php:976
msgid "g A l F d"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:972
+#: ../../Zotlabs/Lib/Enotify.php:979
msgid "[today]"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:982
+#: ../../Zotlabs/Lib/Enotify.php:989
msgid "created an event"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:997
+#: ../../Zotlabs/Lib/Enotify.php:1004
msgid "status verified"
msgstr ""
-#: ../../Zotlabs/Lib/Connect.php:46 ../../Zotlabs/Lib/Connect.php:146
+#: ../../Zotlabs/Lib/Connect.php:46 ../../Zotlabs/Lib/Connect.php:147
msgid "Channel is blocked on this site."
msgstr ""
@@ -14917,23 +14948,23 @@ msgstr ""
msgid "Channel location missing."
msgstr ""
-#: ../../Zotlabs/Lib/Connect.php:104
+#: ../../Zotlabs/Lib/Connect.php:105
msgid "Remote channel or protocol unavailable."
msgstr ""
-#: ../../Zotlabs/Lib/Connect.php:140
+#: ../../Zotlabs/Lib/Connect.php:141
msgid "Channel discovery failed."
msgstr ""
-#: ../../Zotlabs/Lib/Connect.php:158
+#: ../../Zotlabs/Lib/Connect.php:159
msgid "Protocol disabled."
msgstr ""
-#: ../../Zotlabs/Lib/Connect.php:170
+#: ../../Zotlabs/Lib/Connect.php:171
msgid "Cannot connect to yourself."
msgstr ""
-#: ../../Zotlabs/Lib/Connect.php:275
+#: ../../Zotlabs/Lib/Connect.php:276
msgid "error saving data"
msgstr ""
@@ -15189,27 +15220,27 @@ msgstr ""
msgid "Add to Calendar"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:834
+#: ../../Zotlabs/Lib/ThreadItem.php:837
msgid "Image"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:836
+#: ../../Zotlabs/Lib/ThreadItem.php:839
msgid "Insert Link"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:837
+#: ../../Zotlabs/Lib/ThreadItem.php:840
msgid "Video"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:846
+#: ../../Zotlabs/Lib/ThreadItem.php:849
msgid "Your full name (required)"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:847
+#: ../../Zotlabs/Lib/ThreadItem.php:850
msgid "Your email address (required)"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:848
+#: ../../Zotlabs/Lib/ThreadItem.php:851
msgid "Your website URL (optional)"
msgstr ""
diff --git a/vendor/brick/math/CHANGELOG.md b/vendor/brick/math/CHANGELOG.md
index 03c3d824d..17cea8d9f 100644
--- a/vendor/brick/math/CHANGELOG.md
+++ b/vendor/brick/math/CHANGELOG.md
@@ -2,11 +2,41 @@
All notable changes to this project will be documented in this file.
+## [0.11.0](https://github.com/brick/math/releases/tag/0.11.0) - 2023-01-16
+
+💥 **Breaking changes**
+
+- Minimum PHP version is now 8.0
+- Methods accepting a union of types are now strongly typed<sup>*</sup>
+- `MathException` now extends `Exception` instead of `RuntimeException`
+
+<sup>* You may now run into type errors if you were passing `Stringable` objects to `of()` or any of the methods
+internally calling `of()`, with `strict_types` enabled. You can fix this by casting `Stringable` objects to `string`
+first.</sup>
+
+## [0.10.2](https://github.com/brick/math/releases/tag/0.10.2) - 2022-08-11
+
+👌 **Improvements**
+
+- `BigRational::toFloat()` now simplifies the fraction before performing division (#73) thanks to @olsavmic
+
+## [0.10.1](https://github.com/brick/math/releases/tag/0.10.1) - 2022-08-02
+
+✨ **New features**
+
+- `BigInteger::gcdMultiple()` returns the GCD of multiple `BigInteger` numbers
+
+## [0.10.0](https://github.com/brick/math/releases/tag/0.10.0) - 2022-06-18
+
+💥 **Breaking changes**
+
+- Minimum PHP version is now 7.4
+
## [0.9.3](https://github.com/brick/math/releases/tag/0.9.3) - 2021-08-15
🚀 **Compatibility with PHP 8.1**
-- Support for custom object serialization; this removes a warning on PHP 8.1 due to the `Serializable` interface being deprecated (thanks @TRowbotham)
+- Support for custom object serialization; this removes a warning on PHP 8.1 due to the `Serializable` interface being deprecated (#60) thanks @TRowbotham
## [0.9.2](https://github.com/brick/math/releases/tag/0.9.2) - 2021-01-20
@@ -16,7 +46,7 @@ All notable changes to this project will be documented in this file.
## [0.9.1](https://github.com/brick/math/releases/tag/0.9.1) - 2020-08-19
-✨ New features
+✨ **New features**
- `BigInteger::not()` returns the bitwise `NOT` value
@@ -325,8 +355,8 @@ This release also comes with many performance improvements.
- `getFraction()` is renamed to `fraction()`
- `divideAndRemainder()` is renamed to `quotientAndRemainder()`
- `dividedBy()` now takes a **mandatory** `$scale` parameter **before** the rounding mode
- - `toBigInteger()` does not accept a `$roundingMode` parameter any more
- - `toBigRational()` does not simplify the fraction any more; explicitly add `->simplified()` to get the previous behaviour
+ - `toBigInteger()` does not accept a `$roundingMode` parameter anymore
+ - `toBigRational()` does not simplify the fraction anymore; explicitly add `->simplified()` to get the previous behaviour
- `BigRational`:
- `getSign()` is renamed to `sign()`
- `getNumerator()` is renamed to `numerator()`
@@ -400,7 +430,7 @@ Added `BigDecimal::divideAndRemainder()`
## [0.2.0](https://github.com/brick/math/releases/tag/0.2.0) - 2015-05-22
-- `min()` and `max()` do not accept an `array` any more, but a variable number of parameters
+- `min()` and `max()` do not accept an `array` anymore, but a variable number of parameters
- **minimum PHP version is now 5.6**
- continuous integration with PHP 7
diff --git a/vendor/brick/math/SECURITY.md b/vendor/brick/math/SECURITY.md
deleted file mode 100644
index cc8289bb5..000000000
--- a/vendor/brick/math/SECURITY.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# Security Policy
-
-## Supported Versions
-
-Only the last two release streams are supported.
-
-| Version | Supported |
-| ------- | ------------------ |
-| 0.9.x | :white_check_mark: |
-| 0.8.x | :white_check_mark: |
-| < 0.8 | :x: |
-
-## Reporting a Vulnerability
-
-To report a security vulnerability, please use the
-[Tidelift security contact](https://tidelift.com/security).
-Tidelift will coordinate the fix and disclosure.
diff --git a/vendor/brick/math/composer.json b/vendor/brick/math/composer.json
index ec196632f..ed817bdd0 100644
--- a/vendor/brick/math/composer.json
+++ b/vendor/brick/math/composer.json
@@ -14,13 +14,12 @@
],
"license": "MIT",
"require": {
- "php": "^7.1 || ^8.0",
- "ext-json": "*"
+ "php": "^8.0"
},
"require-dev": {
- "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0",
+ "phpunit/phpunit": "^9.0",
"php-coveralls/php-coveralls": "^2.2",
- "vimeo/psalm": "4.9.2"
+ "vimeo/psalm": "5.0.0"
},
"autoload": {
"psr-4": {
diff --git a/vendor/brick/math/src/BigDecimal.php b/vendor/brick/math/src/BigDecimal.php
index 78246500c..02fc65612 100644
--- a/vendor/brick/math/src/BigDecimal.php
+++ b/vendor/brick/math/src/BigDecimal.php
@@ -22,19 +22,15 @@ final class BigDecimal extends BigNumber
* This is a string of digits with an optional leading minus sign.
* No leading zero must be present.
* No leading minus sign must be present if the value is 0.
- *
- * @var string
*/
- private $value;
+ private string $value;
/**
* The scale (number of digits after the decimal point) of this decimal number.
*
* This must be zero or more.
- *
- * @var int
*/
- private $scale;
+ private int $scale;
/**
* Protected constructor. Use a factory method to obtain an instance.
@@ -51,15 +47,11 @@ final class BigDecimal extends BigNumber
/**
* Creates a BigDecimal of the given value.
*
- * @param BigNumber|int|float|string $value
- *
- * @return BigDecimal
- *
* @throws MathException If the value cannot be converted to a BigDecimal.
*
* @psalm-pure
*/
- public static function of($value) : BigNumber
+ public static function of(BigNumber|int|float|string $value) : BigDecimal
{
return parent::of($value)->toBigDecimal();
}
@@ -72,13 +64,11 @@ final class BigDecimal extends BigNumber
* @param BigNumber|int|float|string $value The unscaled value. Must be convertible to a BigInteger.
* @param int $scale The scale of the number, positive or zero.
*
- * @return BigDecimal
- *
* @throws \InvalidArgumentException If the scale is negative.
*
* @psalm-pure
*/
- public static function ofUnscaledValue($value, int $scale = 0) : BigDecimal
+ public static function ofUnscaledValue(BigNumber|int|float|string $value, int $scale = 0) : BigDecimal
{
if ($scale < 0) {
throw new \InvalidArgumentException('The scale cannot be negative.');
@@ -90,8 +80,6 @@ final class BigDecimal extends BigNumber
/**
* Returns a BigDecimal representing zero, with a scale of zero.
*
- * @return BigDecimal
- *
* @psalm-pure
*/
public static function zero() : BigDecimal
@@ -112,8 +100,6 @@ final class BigDecimal extends BigNumber
/**
* Returns a BigDecimal representing one, with a scale of zero.
*
- * @return BigDecimal
- *
* @psalm-pure
*/
public static function one() : BigDecimal
@@ -134,8 +120,6 @@ final class BigDecimal extends BigNumber
/**
* Returns a BigDecimal representing ten, with a scale of zero.
*
- * @return BigDecimal
- *
* @psalm-pure
*/
public static function ten() : BigDecimal
@@ -160,11 +144,9 @@ final class BigDecimal extends BigNumber
*
* @param BigNumber|int|float|string $that The number to add. Must be convertible to a BigDecimal.
*
- * @return BigDecimal The result.
- *
* @throws MathException If the number is not valid, or is not convertible to a BigDecimal.
*/
- public function plus($that) : BigDecimal
+ public function plus(BigNumber|int|float|string $that) : BigDecimal
{
$that = BigDecimal::of($that);
@@ -191,11 +173,9 @@ final class BigDecimal extends BigNumber
*
* @param BigNumber|int|float|string $that The number to subtract. Must be convertible to a BigDecimal.
*
- * @return BigDecimal The result.
- *
* @throws MathException If the number is not valid, or is not convertible to a BigDecimal.
*/
- public function minus($that) : BigDecimal
+ public function minus(BigNumber|int|float|string $that) : BigDecimal
{
$that = BigDecimal::of($that);
@@ -218,11 +198,9 @@ final class BigDecimal extends BigNumber
*
* @param BigNumber|int|float|string $that The multiplier. Must be convertible to a BigDecimal.
*
- * @return BigDecimal The result.
- *
* @throws MathException If the multiplier is not a valid number, or is not convertible to a BigDecimal.
*/
- public function multipliedBy($that) : BigDecimal
+ public function multipliedBy(BigNumber|int|float|string $that) : BigDecimal
{
$that = BigDecimal::of($that);
@@ -247,12 +225,10 @@ final class BigDecimal extends BigNumber
* @param int|null $scale The desired scale, or null to use the scale of this number.
* @param int $roundingMode An optional rounding mode.
*
- * @return BigDecimal
- *
* @throws \InvalidArgumentException If the scale or rounding mode is invalid.
* @throws MathException If the number is invalid, is zero, or rounding was necessary.
*/
- public function dividedBy($that, ?int $scale = null, int $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal
+ public function dividedBy(BigNumber|int|float|string $that, ?int $scale = null, int $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal
{
$that = BigDecimal::of($that);
@@ -285,12 +261,10 @@ final class BigDecimal extends BigNumber
*
* @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigDecimal.
*
- * @return BigDecimal The result.
- *
* @throws MathException If the divisor is not a valid number, is not convertible to a BigDecimal, is zero,
* or the result yields an infinite number of digits.
*/
- public function exactlyDividedBy($that) : BigDecimal
+ public function exactlyDividedBy(BigNumber|int|float|string $that) : BigDecimal
{
$that = BigDecimal::of($that);
@@ -326,10 +300,6 @@ final class BigDecimal extends BigNumber
*
* The result has a scale of `$this->scale * $exponent`.
*
- * @param int $exponent The exponent.
- *
- * @return BigDecimal The result.
- *
* @throws \InvalidArgumentException If the exponent is not in the range 0 to 1,000,000.
*/
public function power(int $exponent) : BigDecimal
@@ -360,11 +330,9 @@ final class BigDecimal extends BigNumber
*
* @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigDecimal.
*
- * @return BigDecimal The quotient.
- *
* @throws MathException If the divisor is not a valid decimal number, or is zero.
*/
- public function quotient($that) : BigDecimal
+ public function quotient(BigNumber|int|float|string $that) : BigDecimal
{
$that = BigDecimal::of($that);
@@ -387,11 +355,9 @@ final class BigDecimal extends BigNumber
*
* @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigDecimal.
*
- * @return BigDecimal The remainder.
- *
* @throws MathException If the divisor is not a valid decimal number, or is zero.
*/
- public function remainder($that) : BigDecimal
+ public function remainder(BigNumber|int|float|string $that) : BigDecimal
{
$that = BigDecimal::of($that);
@@ -420,7 +386,7 @@ final class BigDecimal extends BigNumber
*
* @throws MathException If the divisor is not a valid decimal number, or is zero.
*/
- public function quotientAndRemainder($that) : array
+ public function quotientAndRemainder(BigNumber|int|float|string $that) : array
{
$that = BigDecimal::of($that);
@@ -444,10 +410,6 @@ final class BigDecimal extends BigNumber
/**
* Returns the square root of this number, rounded down to the given number of decimals.
*
- * @param int $scale
- *
- * @return BigDecimal
- *
* @throws \InvalidArgumentException If the scale is negative.
* @throws NegativeNumberException If this number is negative.
*/
@@ -488,10 +450,6 @@ final class BigDecimal extends BigNumber
/**
* Returns a copy of this BigDecimal with the decimal point moved $n places to the left.
- *
- * @param int $n
- *
- * @return BigDecimal
*/
public function withPointMovedLeft(int $n) : BigDecimal
{
@@ -508,10 +466,6 @@ final class BigDecimal extends BigNumber
/**
* Returns a copy of this BigDecimal with the decimal point moved $n places to the right.
- *
- * @param int $n
- *
- * @return BigDecimal
*/
public function withPointMovedRight(int $n) : BigDecimal
{
@@ -538,8 +492,6 @@ final class BigDecimal extends BigNumber
/**
* Returns a copy of this BigDecimal with any trailing zeros removed from the fractional part.
- *
- * @return BigDecimal
*/
public function stripTrailingZeros() : BigDecimal
{
@@ -571,8 +523,6 @@ final class BigDecimal extends BigNumber
/**
* Returns the absolute value of this number.
- *
- * @return BigDecimal
*/
public function abs() : BigDecimal
{
@@ -581,18 +531,13 @@ final class BigDecimal extends BigNumber
/**
* Returns the negated value of this number.
- *
- * @return BigDecimal
*/
public function negated() : BigDecimal
{
return new BigDecimal(Calculator::get()->neg($this->value), $this->scale);
}
- /**
- * {@inheritdoc}
- */
- public function compareTo($that) : int
+ public function compareTo(BigNumber|int|float|string $that) : int
{
$that = BigNumber::of($that);
@@ -609,25 +554,16 @@ final class BigDecimal extends BigNumber
return - $that->compareTo($this);
}
- /**
- * {@inheritdoc}
- */
public function getSign() : int
{
return ($this->value === '0') ? 0 : (($this->value[0] === '-') ? -1 : 1);
}
- /**
- * @return BigInteger
- */
public function getUnscaledValue() : BigInteger
{
- return BigInteger::create($this->value);
+ return self::newBigInteger($this->value);
}
- /**
- * @return int
- */
public function getScale() : int
{
return $this->scale;
@@ -637,8 +573,6 @@ final class BigDecimal extends BigNumber
* Returns a string representing the integral part of this decimal number.
*
* Example: `-123.456` => `-123`.
- *
- * @return string
*/
public function getIntegralPart() : string
{
@@ -657,8 +591,6 @@ final class BigDecimal extends BigNumber
* If the scale is zero, an empty string is returned.
*
* Examples: `-123.456` => '456', `123` => ''.
- *
- * @return string
*/
public function getFractionalPart() : string
{
@@ -673,46 +605,32 @@ final class BigDecimal extends BigNumber
/**
* Returns whether this decimal number has a non-zero fractional part.
- *
- * @return bool
*/
public function hasNonZeroFractionalPart() : bool
{
return $this->getFractionalPart() !== \str_repeat('0', $this->scale);
}
- /**
- * {@inheritdoc}
- */
public function toBigInteger() : BigInteger
{
$zeroScaleDecimal = $this->scale === 0 ? $this : $this->dividedBy(1, 0);
- return BigInteger::create($zeroScaleDecimal->value);
+ return self::newBigInteger($zeroScaleDecimal->value);
}
- /**
- * {@inheritdoc}
- */
public function toBigDecimal() : BigDecimal
{
return $this;
}
- /**
- * {@inheritdoc}
- */
public function toBigRational() : BigRational
{
- $numerator = BigInteger::create($this->value);
- $denominator = BigInteger::create('1' . \str_repeat('0', $this->scale));
+ $numerator = self::newBigInteger($this->value);
+ $denominator = self::newBigInteger('1' . \str_repeat('0', $this->scale));
- return BigRational::create($numerator, $denominator, false);
+ return self::newBigRational($numerator, $denominator, false);
}
- /**
- * {@inheritdoc}
- */
public function toScale(int $scale, int $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal
{
if ($scale === $this->scale) {
@@ -722,25 +640,16 @@ final class BigDecimal extends BigNumber
return $this->dividedBy(BigDecimal::one(), $scale, $roundingMode);
}
- /**
- * {@inheritdoc}
- */
public function toInt() : int
{
return $this->toBigInteger()->toInt();
}
- /**
- * {@inheritdoc}
- */
public function toFloat() : float
{
return (float) (string) $this;
}
- /**
- * {@inheritdoc}
- */
public function __toString() : string
{
if ($this->scale === 0) {
@@ -772,8 +681,6 @@ final class BigDecimal extends BigNumber
*
* @param array{value: string, scale: int} $data
*
- * @return void
- *
* @throws \LogicException
*/
public function __unserialize(array $data): void
@@ -790,8 +697,6 @@ final class BigDecimal extends BigNumber
* This method is required by interface Serializable and SHOULD NOT be accessed directly.
*
* @internal
- *
- * @return string
*/
public function serialize() : string
{
@@ -804,10 +709,6 @@ final class BigDecimal extends BigNumber
* @internal
* @psalm-suppress RedundantPropertyInitializationCheck
*
- * @param string $value
- *
- * @return void
- *
* @throws \LogicException
*/
public function unserialize($value) : void
@@ -825,9 +726,6 @@ final class BigDecimal extends BigNumber
/**
* Puts the internal values of the given decimal numbers on the same scale.
*
- * @param BigDecimal $x The first decimal number.
- * @param BigDecimal $y The second decimal number.
- *
* @return array{string, string} The scaled integer values of $x and $y.
*/
private function scaleValues(BigDecimal $x, BigDecimal $y) : array
@@ -844,11 +742,6 @@ final class BigDecimal extends BigNumber
return [$a, $b];
}
- /**
- * @param int $scale
- *
- * @return string
- */
private function valueWithMinScale(int $scale) : string
{
$value = $this->value;
@@ -862,8 +755,6 @@ final class BigDecimal extends BigNumber
/**
* Adds leading zeros if necessary to the unscaled value to represent the full decimal number.
- *
- * @return string
*/
private function getUnscaledValueWithLeadingZeros() : string
{
diff --git a/vendor/brick/math/src/BigInteger.php b/vendor/brick/math/src/BigInteger.php
index f213fbedb..435679331 100644
--- a/vendor/brick/math/src/BigInteger.php
+++ b/vendor/brick/math/src/BigInteger.php
@@ -26,10 +26,8 @@ final class BigInteger extends BigNumber
*
* No leading zeros must be present.
* No leading minus sign must be present if the number is zero.
- *
- * @var string
*/
- private $value;
+ private string $value;
/**
* Protected constructor. Use a factory method to obtain an instance.
@@ -44,15 +42,11 @@ final class BigInteger extends BigNumber
/**
* Creates a BigInteger of the given value.
*
- * @param BigNumber|int|float|string $value
- *
- * @return BigInteger
- *
* @throws MathException If the value cannot be converted to a BigInteger.
*
* @psalm-pure
*/
- public static function of($value) : BigNumber
+ public static function of(BigNumber|int|float|string $value) : BigInteger
{
return parent::of($value)->toBigInteger();
}
@@ -71,8 +65,6 @@ final class BigInteger extends BigNumber
* @param string $number The number to convert, in the given base.
* @param int $base The base of the number, between 2 and 36.
*
- * @return BigInteger
- *
* @throws NumberFormatException If the number is empty, or contains invalid chars for the given base.
* @throws \InvalidArgumentException If the base is out of range.
*
@@ -138,8 +130,6 @@ final class BigInteger extends BigNumber
* @param string $number The number to parse.
* @param string $alphabet The alphabet, for example '01' for base 2, or '01234567' for base 8.
*
- * @return BigInteger
- *
* @throws NumberFormatException If the given number is empty or contains invalid chars for the given alphabet.
* @throws \InvalidArgumentException If the alphabet does not contain at least 2 chars.
*
@@ -183,8 +173,6 @@ final class BigInteger extends BigNumber
* @param bool $signed Whether to interpret as a signed number in two's-complement representation with a leading
* sign bit.
*
- * @return BigInteger
- *
* @throws NumberFormatException If the string is empty.
*/
public static function fromBytes(string $value, bool $signed = true) : BigInteger
@@ -217,15 +205,13 @@ final class BigInteger extends BigNumber
*
* Using the default random bytes generator, this method is suitable for cryptographic use.
*
- * @psalm-param callable(int): string $randomBytesGenerator
+ * @psalm-param (callable(int): string)|null $randomBytesGenerator
*
* @param int $numBits The number of bits.
* @param callable|null $randomBytesGenerator A function that accepts a number of bytes as an integer, and returns a
* string of random bytes of the given length. Defaults to the
* `random_bytes()` function.
*
- * @return BigInteger
- *
* @throws \InvalidArgumentException If $numBits is negative.
*/
public static function randomBits(int $numBits, ?callable $randomBytesGenerator = null) : BigInteger
@@ -266,13 +252,14 @@ final class BigInteger extends BigNumber
* and returns a string of random bytes of the given length.
* Defaults to the `random_bytes()` function.
*
- * @return BigInteger
- *
* @throws MathException If one of the parameters cannot be converted to a BigInteger,
* or `$min` is greater than `$max`.
*/
- public static function randomRange($min, $max, ?callable $randomBytesGenerator = null) : BigInteger
- {
+ public static function randomRange(
+ BigNumber|int|float|string $min,
+ BigNumber|int|float|string $max,
+ ?callable $randomBytesGenerator = null
+ ) : BigInteger {
$min = BigInteger::of($min);
$max = BigInteger::of($max);
@@ -298,8 +285,6 @@ final class BigInteger extends BigNumber
/**
* Returns a BigInteger representing zero.
*
- * @return BigInteger
- *
* @psalm-pure
*/
public static function zero() : BigInteger
@@ -320,8 +305,6 @@ final class BigInteger extends BigNumber
/**
* Returns a BigInteger representing one.
*
- * @return BigInteger
- *
* @psalm-pure
*/
public static function one() : BigInteger
@@ -342,8 +325,6 @@ final class BigInteger extends BigNumber
/**
* Returns a BigInteger representing ten.
*
- * @return BigInteger
- *
* @psalm-pure
*/
public static function ten() : BigInteger
@@ -361,16 +342,29 @@ final class BigInteger extends BigNumber
return $ten;
}
+ public static function gcdMultiple(BigInteger $a, BigInteger ...$n): BigInteger
+ {
+ $result = $a;
+
+ foreach ($n as $next) {
+ $result = $result->gcd($next);
+
+ if ($result->isEqualTo(1)) {
+ return $result;
+ }
+ }
+
+ return $result;
+ }
+
/**
* Returns the sum of this number and the given one.
*
* @param BigNumber|int|float|string $that The number to add. Must be convertible to a BigInteger.
*
- * @return BigInteger The result.
- *
* @throws MathException If the number is not valid, or is not convertible to a BigInteger.
*/
- public function plus($that) : BigInteger
+ public function plus(BigNumber|int|float|string $that) : BigInteger
{
$that = BigInteger::of($that);
@@ -392,11 +386,9 @@ final class BigInteger extends BigNumber
*
* @param BigNumber|int|float|string $that The number to subtract. Must be convertible to a BigInteger.
*
- * @return BigInteger The result.
- *
* @throws MathException If the number is not valid, or is not convertible to a BigInteger.
*/
- public function minus($that) : BigInteger
+ public function minus(BigNumber|int|float|string $that) : BigInteger
{
$that = BigInteger::of($that);
@@ -414,11 +406,9 @@ final class BigInteger extends BigNumber
*
* @param BigNumber|int|float|string $that The multiplier. Must be convertible to a BigInteger.
*
- * @return BigInteger The result.
- *
* @throws MathException If the multiplier is not a valid number, or is not convertible to a BigInteger.
*/
- public function multipliedBy($that) : BigInteger
+ public function multipliedBy(BigNumber|int|float|string $that) : BigInteger
{
$that = BigInteger::of($that);
@@ -441,12 +431,10 @@ final class BigInteger extends BigNumber
* @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigInteger.
* @param int $roundingMode An optional rounding mode.
*
- * @return BigInteger The result.
- *
* @throws MathException If the divisor is not a valid number, is not convertible to a BigInteger, is zero,
* or RoundingMode::UNNECESSARY is used and the remainder is not zero.
*/
- public function dividedBy($that, int $roundingMode = RoundingMode::UNNECESSARY) : BigInteger
+ public function dividedBy(BigNumber|int|float|string $that, int $roundingMode = RoundingMode::UNNECESSARY) : BigInteger
{
$that = BigInteger::of($that);
@@ -466,10 +454,6 @@ final class BigInteger extends BigNumber
/**
* Returns this number exponentiated to the given value.
*
- * @param int $exponent The exponent.
- *
- * @return BigInteger The result.
- *
* @throws \InvalidArgumentException If the exponent is not in the range 0 to 1,000,000.
*/
public function power(int $exponent) : BigInteger
@@ -498,11 +482,9 @@ final class BigInteger extends BigNumber
*
* @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigInteger.
*
- * @return BigInteger
- *
* @throws DivisionByZeroException If the divisor is zero.
*/
- public function quotient($that) : BigInteger
+ public function quotient(BigNumber|int|float|string $that) : BigInteger
{
$that = BigInteger::of($that);
@@ -526,11 +508,9 @@ final class BigInteger extends BigNumber
*
* @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigInteger.
*
- * @return BigInteger
- *
* @throws DivisionByZeroException If the divisor is zero.
*/
- public function remainder($that) : BigInteger
+ public function remainder(BigNumber|int|float|string $that) : BigInteger
{
$that = BigInteger::of($that);
@@ -556,7 +536,7 @@ final class BigInteger extends BigNumber
*
* @throws DivisionByZeroException If the divisor is zero.
*/
- public function quotientAndRemainder($that) : array
+ public function quotientAndRemainder(BigNumber|int|float|string $that) : array
{
$that = BigInteger::of($that);
@@ -582,11 +562,9 @@ final class BigInteger extends BigNumber
*
* @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigInteger.
*
- * @return BigInteger
- *
* @throws DivisionByZeroException If the divisor is zero.
*/
- public function mod($that) : BigInteger
+ public function mod(BigNumber|int|float|string $that) : BigInteger
{
$that = BigInteger::of($that);
@@ -602,10 +580,6 @@ final class BigInteger extends BigNumber
/**
* Returns the modular multiplicative inverse of this BigInteger modulo $m.
*
- * @param BigInteger $m
- *
- * @return BigInteger
- *
* @throws DivisionByZeroException If $m is zero.
* @throws NegativeNumberException If $m is negative.
* @throws MathException If this BigInteger has no multiplicative inverse mod m (that is, this BigInteger
@@ -642,12 +616,10 @@ final class BigInteger extends BigNumber
* @param BigNumber|int|float|string $exp The exponent. Must be positive or zero.
* @param BigNumber|int|float|string $mod The modulus. Must be strictly positive.
*
- * @return BigInteger
- *
* @throws NegativeNumberException If any of the operands is negative.
* @throws DivisionByZeroException If the modulus is zero.
*/
- public function modPow($exp, $mod) : BigInteger
+ public function modPow(BigNumber|int|float|string $exp, BigNumber|int|float|string $mod) : BigInteger
{
$exp = BigInteger::of($exp);
$mod = BigInteger::of($mod);
@@ -671,10 +643,8 @@ final class BigInteger extends BigNumber
* The GCD is always positive, unless both operands are zero, in which case it is zero.
*
* @param BigNumber|int|float|string $that The operand. Must be convertible to an integer number.
- *
- * @return BigInteger
*/
- public function gcd($that) : BigInteger
+ public function gcd(BigNumber|int|float|string $that) : BigInteger
{
$that = BigInteger::of($that);
@@ -696,8 +666,6 @@ final class BigInteger extends BigNumber
*
* The result is the largest x such that x² ≤ n.
*
- * @return BigInteger
- *
* @throws NegativeNumberException If this number is negative.
*/
public function sqrt() : BigInteger
@@ -713,8 +681,6 @@ final class BigInteger extends BigNumber
/**
* Returns the absolute value of this number.
- *
- * @return BigInteger
*/
public function abs() : BigInteger
{
@@ -723,8 +689,6 @@ final class BigInteger extends BigNumber
/**
* Returns the inverse of this number.
- *
- * @return BigInteger
*/
public function negated() : BigInteger
{
@@ -737,10 +701,8 @@ final class BigInteger extends BigNumber
* This method returns a negative BigInteger if and only if both operands are negative.
*
* @param BigNumber|int|float|string $that The operand. Must be convertible to an integer number.
- *
- * @return BigInteger
*/
- public function and($that) : BigInteger
+ public function and(BigNumber|int|float|string $that) : BigInteger
{
$that = BigInteger::of($that);
@@ -753,10 +715,8 @@ final class BigInteger extends BigNumber
* This method returns a negative BigInteger if and only if either of the operands is negative.
*
* @param BigNumber|int|float|string $that The operand. Must be convertible to an integer number.
- *
- * @return BigInteger
*/
- public function or($that) : BigInteger
+ public function or(BigNumber|int|float|string $that) : BigInteger
{
$that = BigInteger::of($that);
@@ -769,10 +729,8 @@ final class BigInteger extends BigNumber
* This method returns a negative BigInteger if and only if exactly one of the operands is negative.
*
* @param BigNumber|int|float|string $that The operand. Must be convertible to an integer number.
- *
- * @return BigInteger
*/
- public function xor($that) : BigInteger
+ public function xor(BigNumber|int|float|string $that) : BigInteger
{
$that = BigInteger::of($that);
@@ -781,8 +739,6 @@ final class BigInteger extends BigNumber
/**
* Returns the bitwise-not of this BigInteger.
- *
- * @return BigInteger
*/
public function not() : BigInteger
{
@@ -791,10 +747,6 @@ final class BigInteger extends BigNumber
/**
* Returns the integer left shifted by a given number of bits.
- *
- * @param int $distance The distance to shift.
- *
- * @return BigInteger
*/
public function shiftedLeft(int $distance) : BigInteger
{
@@ -811,10 +763,6 @@ final class BigInteger extends BigNumber
/**
* Returns the integer right shifted by a given number of bits.
- *
- * @param int $distance The distance to shift.
- *
- * @return BigInteger
*/
public function shiftedRight(int $distance) : BigInteger
{
@@ -840,8 +788,6 @@ final class BigInteger extends BigNumber
*
* For positive BigIntegers, this is equivalent to the number of bits in the ordinary binary representation.
* Computes (ceil(log2(this < 0 ? -this : this+1))).
- *
- * @return int
*/
public function getBitLength() : int
{
@@ -860,8 +806,6 @@ final class BigInteger extends BigNumber
* Returns the index of the rightmost (lowest-order) one bit in this BigInteger.
*
* Returns -1 if this BigInteger contains no one bits.
- *
- * @return int
*/
public function getLowestSetBit() : int
{
@@ -881,8 +825,6 @@ final class BigInteger extends BigNumber
/**
* Returns whether this number is even.
- *
- * @return bool
*/
public function isEven() : bool
{
@@ -891,8 +833,6 @@ final class BigInteger extends BigNumber
/**
* Returns whether this number is odd.
- *
- * @return bool
*/
public function isOdd() : bool
{
@@ -906,8 +846,6 @@ final class BigInteger extends BigNumber
*
* @param int $n The bit to test, 0-based.
*
- * @return bool
- *
* @throws \InvalidArgumentException If the bit to test is negative.
*/
public function testBit(int $n) : bool
@@ -919,10 +857,7 @@ final class BigInteger extends BigNumber
return $this->shiftedRight($n)->isOdd();
}
- /**
- * {@inheritdoc}
- */
- public function compareTo($that) : int
+ public function compareTo(BigNumber|int|float|string $that) : int
{
$that = BigNumber::of($that);
@@ -933,49 +868,31 @@ final class BigInteger extends BigNumber
return - $that->compareTo($this);
}
- /**
- * {@inheritdoc}
- */
public function getSign() : int
{
return ($this->value === '0') ? 0 : (($this->value[0] === '-') ? -1 : 1);
}
- /**
- * {@inheritdoc}
- */
public function toBigInteger() : BigInteger
{
return $this;
}
- /**
- * {@inheritdoc}
- */
public function toBigDecimal() : BigDecimal
{
- return BigDecimal::create($this->value);
+ return self::newBigDecimal($this->value);
}
- /**
- * {@inheritdoc}
- */
public function toBigRational() : BigRational
{
- return BigRational::create($this, BigInteger::one(), false);
+ return self::newBigRational($this, BigInteger::one(), false);
}
- /**
- * {@inheritdoc}
- */
public function toScale(int $scale, int $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal
{
return $this->toBigDecimal()->toScale($scale, $roundingMode);
}
- /**
- * {@inheritdoc}
- */
public function toInt() : int
{
$intValue = (int) $this->value;
@@ -987,9 +904,6 @@ final class BigInteger extends BigNumber
return $intValue;
}
- /**
- * {@inheritdoc}
- */
public function toFloat() : float
{
return (float) $this->value;
@@ -1000,10 +914,6 @@ final class BigInteger extends BigNumber
*
* The output will always be lowercase for bases greater than 10.
*
- * @param int $base
- *
- * @return string
- *
* @throws \InvalidArgumentException If the base is out of range.
*/
public function toBase(int $base) : string
@@ -1027,8 +937,6 @@ final class BigInteger extends BigNumber
*
* @param string $alphabet The alphabet, for example '01' for base 2, or '01234567' for base 8.
*
- * @return string
- *
* @throws NegativeNumberException If this number is negative.
* @throws \InvalidArgumentException If the given alphabet does not contain at least 2 chars.
*/
@@ -1063,8 +971,6 @@ final class BigInteger extends BigNumber
*
* @param bool $signed Whether to output a signed number in two's-complement representation with a leading sign bit.
*
- * @return string
- *
* @throws NegativeNumberException If $signed is false, and the number is negative.
*/
public function toBytes(bool $signed = true) : string
@@ -1108,9 +1014,6 @@ final class BigInteger extends BigNumber
return \hex2bin($hex);
}
- /**
- * {@inheritdoc}
- */
public function __toString() : string
{
return $this->value;
@@ -1136,8 +1039,6 @@ final class BigInteger extends BigNumber
*
* @param array{value: string} $data
*
- * @return void
- *
* @throws \LogicException
*/
public function __unserialize(array $data): void
@@ -1153,8 +1054,6 @@ final class BigInteger extends BigNumber
* This method is required by interface Serializable and SHOULD NOT be accessed directly.
*
* @internal
- *
- * @return string
*/
public function serialize() : string
{
@@ -1167,10 +1066,6 @@ final class BigInteger extends BigNumber
* @internal
* @psalm-suppress RedundantPropertyInitializationCheck
*
- * @param string $value
- *
- * @return void
- *
* @throws \LogicException
*/
public function unserialize($value) : void
diff --git a/vendor/brick/math/src/BigNumber.php b/vendor/brick/math/src/BigNumber.php
index 38c8c554e..80146d207 100644
--- a/vendor/brick/math/src/BigNumber.php
+++ b/vendor/brick/math/src/BigNumber.php
@@ -48,16 +48,12 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
* - strings containing a `.` character or using an exponential notation are returned as BigDecimal
* - strings containing only digits with an optional leading `+` or `-` sign are returned as BigInteger
*
- * @param BigNumber|int|float|string $value
- *
- * @return BigNumber
- *
* @throws NumberFormatException If the format of the number is not valid.
* @throws DivisionByZeroException If the value represents a rational number with a denominator of zero.
*
* @psalm-pure
*/
- public static function of($value) : BigNumber
+ public static function of(BigNumber|int|float|string $value) : BigNumber
{
if ($value instanceof BigNumber) {
return $value;
@@ -67,8 +63,7 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
return new BigInteger((string) $value);
}
- /** @psalm-suppress RedundantCastGivenDocblockType We cannot trust the untyped $value here! */
- $value = \is_float($value) ? self::floatToString($value) : (string) $value;
+ $value = \is_float($value) ? self::floatToString($value) : $value;
$throw = static function() use ($value) : void {
throw new NumberFormatException(\sprintf(
@@ -81,9 +76,7 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
$throw();
}
- $getMatch = static function(string $value) use ($matches) : ?string {
- return isset($matches[$value]) && $matches[$value] !== '' ? $matches[$value] : null;
- };
+ $getMatch = static fn(string $value): ?string => (($matches[$value] ?? '') !== '') ? $matches[$value] : null;
$sign = $getMatch('sign');
$numerator = $getMatch('numerator');
@@ -155,10 +148,6 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
*
* @see https://github.com/brick/math/pull/20
*
- * @param float $float
- *
- * @return string
- *
* @psalm-pure
* @psalm-suppress ImpureFunctionCall
*/
@@ -175,21 +164,36 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
}
/**
- * Proxy method to access protected constructors from sibling classes.
+ * Proxy method to access BigInteger's protected constructor from sibling classes.
*
* @internal
+ * @psalm-pure
+ */
+ protected function newBigInteger(string $value) : BigInteger
+ {
+ return new BigInteger($value);
+ }
+
+ /**
+ * Proxy method to access BigDecimal's protected constructor from sibling classes.
*
- * @param mixed ...$args The arguments to the constructor.
- *
- * @return static
+ * @internal
+ * @psalm-pure
+ */
+ protected function newBigDecimal(string $value, int $scale = 0) : BigDecimal
+ {
+ return new BigDecimal($value, $scale);
+ }
+
+ /**
+ * Proxy method to access BigRational's protected constructor from sibling classes.
*
+ * @internal
* @psalm-pure
- * @psalm-suppress TooManyArguments
- * @psalm-suppress UnsafeInstantiation
*/
- protected static function create(... $args) : BigNumber
+ protected function newBigRational(BigInteger $numerator, BigInteger $denominator, bool $checkDenominator) : BigRational
{
- return new static(... $args);
+ return new BigRational($numerator, $denominator, $checkDenominator);
}
/**
@@ -198,8 +202,6 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
* @param BigNumber|int|float|string ...$values The numbers to compare. All the numbers need to be convertible
* to an instance of the class this method is called on.
*
- * @return static The minimum value.
- *
* @throws \InvalidArgumentException If no values are given.
* @throws MathException If an argument is not valid.
*
@@ -207,7 +209,7 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
* @psalm-suppress MoreSpecificReturnType
* @psalm-pure
*/
- public static function min(...$values) : BigNumber
+ public static function min(BigNumber|int|float|string ...$values) : static
{
$min = null;
@@ -232,8 +234,6 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
* @param BigNumber|int|float|string ...$values The numbers to compare. All the numbers need to be convertible
* to an instance of the class this method is called on.
*
- * @return static The maximum value.
- *
* @throws \InvalidArgumentException If no values are given.
* @throws MathException If an argument is not valid.
*
@@ -241,7 +241,7 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
* @psalm-suppress MoreSpecificReturnType
* @psalm-pure
*/
- public static function max(...$values) : BigNumber
+ public static function max(BigNumber|int|float|string ...$values) : static
{
$max = null;
@@ -266,18 +266,14 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
* @param BigNumber|int|float|string ...$values The numbers to add. All the numbers need to be convertible
* to an instance of the class this method is called on.
*
- * @return static The sum.
- *
* @throws \InvalidArgumentException If no values are given.
* @throws MathException If an argument is not valid.
*
- * @psalm-suppress LessSpecificReturnStatement
- * @psalm-suppress MoreSpecificReturnType
* @psalm-pure
*/
- public static function sum(...$values) : BigNumber
+ public static function sum(BigNumber|int|float|string ...$values) : static
{
- /** @var BigNumber|null $sum */
+ /** @var static|null $sum */
$sum = null;
foreach ($values as $value) {
@@ -301,11 +297,6 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
* depending on their ability to perform the operation. This will also require a version bump because we're
* potentially breaking custom BigNumber implementations (if any...)
*
- * @param BigNumber $a
- * @param BigNumber $b
- *
- * @return BigNumber
- *
* @psalm-pure
*/
private static function add(BigNumber $a, BigNumber $b) : BigNumber
@@ -336,8 +327,6 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
*
* @param string $number The number, validated as a non-empty string of digits with optional leading sign.
*
- * @return string
- *
* @psalm-pure
*/
private static function cleanUp(string $number) : string
@@ -363,68 +352,46 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
/**
* Checks if this number is equal to the given one.
- *
- * @param BigNumber|int|float|string $that
- *
- * @return bool
*/
- public function isEqualTo($that) : bool
+ public function isEqualTo(BigNumber|int|float|string $that) : bool
{
return $this->compareTo($that) === 0;
}
/**
* Checks if this number is strictly lower than the given one.
- *
- * @param BigNumber|int|float|string $that
- *
- * @return bool
*/
- public function isLessThan($that) : bool
+ public function isLessThan(BigNumber|int|float|string $that) : bool
{
return $this->compareTo($that) < 0;
}
/**
* Checks if this number is lower than or equal to the given one.
- *
- * @param BigNumber|int|float|string $that
- *
- * @return bool
*/
- public function isLessThanOrEqualTo($that) : bool
+ public function isLessThanOrEqualTo(BigNumber|int|float|string $that) : bool
{
return $this->compareTo($that) <= 0;
}
/**
* Checks if this number is strictly greater than the given one.
- *
- * @param BigNumber|int|float|string $that
- *
- * @return bool
*/
- public function isGreaterThan($that) : bool
+ public function isGreaterThan(BigNumber|int|float|string $that) : bool
{
return $this->compareTo($that) > 0;
}
/**
* Checks if this number is greater than or equal to the given one.
- *
- * @param BigNumber|int|float|string $that
- *
- * @return bool
*/
- public function isGreaterThanOrEqualTo($that) : bool
+ public function isGreaterThanOrEqualTo(BigNumber|int|float|string $that) : bool
{
return $this->compareTo($that) >= 0;
}
/**
* Checks if this number equals zero.
- *
- * @return bool
*/
public function isZero() : bool
{
@@ -433,8 +400,6 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
/**
* Checks if this number is strictly negative.
- *
- * @return bool
*/
public function isNegative() : bool
{
@@ -443,8 +408,6 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
/**
* Checks if this number is negative or zero.
- *
- * @return bool
*/
public function isNegativeOrZero() : bool
{
@@ -453,8 +416,6 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
/**
* Checks if this number is strictly positive.
- *
- * @return bool
*/
public function isPositive() : bool
{
@@ -463,8 +424,6 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
/**
* Checks if this number is positive or zero.
- *
- * @return bool
*/
public function isPositiveOrZero() : bool
{
@@ -481,19 +440,15 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
/**
* Compares this number to the given one.
*
- * @param BigNumber|int|float|string $that
- *
* @return int [-1,0,1] If `$this` is lower than, equal to, or greater than `$that`.
*
* @throws MathException If the number is not valid.
*/
- abstract public function compareTo($that) : int;
+ abstract public function compareTo(BigNumber|int|float|string $that) : int;
/**
* Converts this number to a BigInteger.
*
- * @return BigInteger The converted number.
- *
* @throws RoundingNecessaryException If this number cannot be converted to a BigInteger without rounding.
*/
abstract public function toBigInteger() : BigInteger;
@@ -501,16 +456,12 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
/**
* Converts this number to a BigDecimal.
*
- * @return BigDecimal The converted number.
- *
* @throws RoundingNecessaryException If this number cannot be converted to a BigDecimal without rounding.
*/
abstract public function toBigDecimal() : BigDecimal;
/**
* Converts this number to a BigRational.
- *
- * @return BigRational The converted number.
*/
abstract public function toBigRational() : BigRational;
@@ -520,8 +471,6 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
* @param int $scale The scale of the resulting `BigDecimal`.
* @param int $roundingMode A `RoundingMode` constant.
*
- * @return BigDecimal
- *
* @throws RoundingNecessaryException If this number cannot be converted to the given scale without rounding.
* This only applies when RoundingMode::UNNECESSARY is used.
*/
@@ -533,8 +482,6 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
* If this number cannot be converted to a native integer without losing precision, an exception is thrown.
* Note that the acceptable range for an integer depends on the platform and differs for 32-bit and 64-bit.
*
- * @return int The converted value.
- *
* @throws MathException If this number cannot be exactly converted to a native integer.
*/
abstract public function toInt() : int;
@@ -547,8 +494,6 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
*
* If the number is greater than the largest representable floating point number, positive infinity is returned.
* If the number is less than the smallest representable floating point number, negative infinity is returned.
- *
- * @return float The converted value.
*/
abstract public function toFloat() : float;
@@ -557,14 +502,9 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
*
* The output of this method can be parsed by the `of()` factory method;
* this will yield an object equal to this one, without any information loss.
- *
- * @return string
*/
abstract public function __toString() : string;
- /**
- * {@inheritdoc}
- */
public function jsonSerialize() : string
{
return $this->__toString();
diff --git a/vendor/brick/math/src/BigRational.php b/vendor/brick/math/src/BigRational.php
index bee094f73..31f2904fa 100644
--- a/vendor/brick/math/src/BigRational.php
+++ b/vendor/brick/math/src/BigRational.php
@@ -20,17 +20,13 @@ final class BigRational extends BigNumber
{
/**
* The numerator.
- *
- * @var BigInteger
*/
- private $numerator;
+ private BigInteger $numerator;
/**
* The denominator. Always strictly positive.
- *
- * @var BigInteger
*/
- private $denominator;
+ private BigInteger $denominator;
/**
* Protected constructor. Use a factory method to obtain an instance.
@@ -61,15 +57,11 @@ final class BigRational extends BigNumber
/**
* Creates a BigRational of the given value.
*
- * @param BigNumber|int|float|string $value
- *
- * @return BigRational
- *
* @throws MathException If the value cannot be converted to a BigRational.
*
* @psalm-pure
*/
- public static function of($value) : BigNumber
+ public static function of(BigNumber|int|float|string $value) : BigRational
{
return parent::of($value)->toBigRational();
}
@@ -83,16 +75,16 @@ final class BigRational extends BigNumber
* @param BigNumber|int|float|string $numerator The numerator. Must be convertible to a BigInteger.
* @param BigNumber|int|float|string $denominator The denominator. Must be convertible to a BigInteger.
*
- * @return BigRational
- *
* @throws NumberFormatException If an argument does not represent a valid number.
* @throws RoundingNecessaryException If an argument represents a non-integer number.
* @throws DivisionByZeroException If the denominator is zero.
*
* @psalm-pure
*/
- public static function nd($numerator, $denominator) : BigRational
- {
+ public static function nd(
+ BigNumber|int|float|string $numerator,
+ BigNumber|int|float|string $denominator,
+ ) : BigRational {
$numerator = BigInteger::of($numerator);
$denominator = BigInteger::of($denominator);
@@ -102,8 +94,6 @@ final class BigRational extends BigNumber
/**
* Returns a BigRational representing zero.
*
- * @return BigRational
- *
* @psalm-pure
*/
public static function zero() : BigRational
@@ -124,8 +114,6 @@ final class BigRational extends BigNumber
/**
* Returns a BigRational representing one.
*
- * @return BigRational
- *
* @psalm-pure
*/
public static function one() : BigRational
@@ -146,8 +134,6 @@ final class BigRational extends BigNumber
/**
* Returns a BigRational representing ten.
*
- * @return BigRational
- *
* @psalm-pure
*/
public static function ten() : BigRational
@@ -165,17 +151,11 @@ final class BigRational extends BigNumber
return $ten;
}
- /**
- * @return BigInteger
- */
public function getNumerator() : BigInteger
{
return $this->numerator;
}
- /**
- * @return BigInteger
- */
public function getDenominator() : BigInteger
{
return $this->denominator;
@@ -183,8 +163,6 @@ final class BigRational extends BigNumber
/**
* Returns the quotient of the division of the numerator by the denominator.
- *
- * @return BigInteger
*/
public function quotient() : BigInteger
{
@@ -193,8 +171,6 @@ final class BigRational extends BigNumber
/**
* Returns the remainder of the division of the numerator by the denominator.
- *
- * @return BigInteger
*/
public function remainder() : BigInteger
{
@@ -216,11 +192,9 @@ final class BigRational extends BigNumber
*
* @param BigNumber|int|float|string $that The number to add.
*
- * @return BigRational The result.
- *
* @throws MathException If the number is not valid.
*/
- public function plus($that) : BigRational
+ public function plus(BigNumber|int|float|string $that) : BigRational
{
$that = BigRational::of($that);
@@ -236,11 +210,9 @@ final class BigRational extends BigNumber
*
* @param BigNumber|int|float|string $that The number to subtract.
*
- * @return BigRational The result.
- *
* @throws MathException If the number is not valid.
*/
- public function minus($that) : BigRational
+ public function minus(BigNumber|int|float|string $that) : BigRational
{
$that = BigRational::of($that);
@@ -256,11 +228,9 @@ final class BigRational extends BigNumber
*
* @param BigNumber|int|float|string $that The multiplier.
*
- * @return BigRational The result.
- *
* @throws MathException If the multiplier is not a valid number.
*/
- public function multipliedBy($that) : BigRational
+ public function multipliedBy(BigNumber|int|float|string $that) : BigRational
{
$that = BigRational::of($that);
@@ -275,11 +245,9 @@ final class BigRational extends BigNumber
*
* @param BigNumber|int|float|string $that The divisor.
*
- * @return BigRational The result.
- *
* @throws MathException If the divisor is not a valid number, or is zero.
*/
- public function dividedBy($that) : BigRational
+ public function dividedBy(BigNumber|int|float|string $that) : BigRational
{
$that = BigRational::of($that);
@@ -292,10 +260,6 @@ final class BigRational extends BigNumber
/**
* Returns this number exponentiated to the given value.
*
- * @param int $exponent The exponent.
- *
- * @return BigRational The result.
- *
* @throws \InvalidArgumentException If the exponent is not in the range 0 to 1,000,000.
*/
public function power(int $exponent) : BigRational
@@ -322,8 +286,6 @@ final class BigRational extends BigNumber
*
* The reciprocal has the numerator and denominator swapped.
*
- * @return BigRational
- *
* @throws DivisionByZeroException If the numerator is zero.
*/
public function reciprocal() : BigRational
@@ -333,8 +295,6 @@ final class BigRational extends BigNumber
/**
* Returns the absolute value of this BigRational.
- *
- * @return BigRational
*/
public function abs() : BigRational
{
@@ -343,8 +303,6 @@ final class BigRational extends BigNumber
/**
* Returns the negated value of this BigRational.
- *
- * @return BigRational
*/
public function negated() : BigRational
{
@@ -353,8 +311,6 @@ final class BigRational extends BigNumber
/**
* Returns the simplified value of this BigRational.
- *
- * @return BigRational
*/
public function simplified() : BigRational
{
@@ -366,25 +322,16 @@ final class BigRational extends BigNumber
return new BigRational($numerator, $denominator, false);
}
- /**
- * {@inheritdoc}
- */
- public function compareTo($that) : int
+ public function compareTo(BigNumber|int|float|string $that) : int
{
return $this->minus($that)->getSign();
}
- /**
- * {@inheritdoc}
- */
public function getSign() : int
{
return $this->numerator->getSign();
}
- /**
- * {@inheritdoc}
- */
public function toBigInteger() : BigInteger
{
$simplified = $this->simplified();
@@ -396,49 +343,32 @@ final class BigRational extends BigNumber
return $simplified->numerator;
}
- /**
- * {@inheritdoc}
- */
public function toBigDecimal() : BigDecimal
{
return $this->numerator->toBigDecimal()->exactlyDividedBy($this->denominator);
}
- /**
- * {@inheritdoc}
- */
public function toBigRational() : BigRational
{
return $this;
}
- /**
- * {@inheritdoc}
- */
public function toScale(int $scale, int $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal
{
return $this->numerator->toBigDecimal()->dividedBy($this->denominator, $scale, $roundingMode);
}
- /**
- * {@inheritdoc}
- */
public function toInt() : int
{
return $this->toBigInteger()->toInt();
}
- /**
- * {@inheritdoc}
- */
public function toFloat() : float
{
- return $this->numerator->toFloat() / $this->denominator->toFloat();
+ $simplified = $this->simplified();
+ return $simplified->numerator->toFloat() / $simplified->denominator->toFloat();
}
- /**
- * {@inheritdoc}
- */
public function __toString() : string
{
$numerator = (string) $this->numerator;
@@ -471,8 +401,6 @@ final class BigRational extends BigNumber
*
* @param array{numerator: BigInteger, denominator: BigInteger} $data
*
- * @return void
- *
* @throws \LogicException
*/
public function __unserialize(array $data): void
@@ -489,8 +417,6 @@ final class BigRational extends BigNumber
* This method is required by interface Serializable and SHOULD NOT be accessed directly.
*
* @internal
- *
- * @return string
*/
public function serialize() : string
{
@@ -503,10 +429,6 @@ final class BigRational extends BigNumber
* @internal
* @psalm-suppress RedundantPropertyInitializationCheck
*
- * @param string $value
- *
- * @return void
- *
* @throws \LogicException
*/
public function unserialize($value) : void
diff --git a/vendor/brick/math/src/Exception/DivisionByZeroException.php b/vendor/brick/math/src/Exception/DivisionByZeroException.php
index a4e443176..ce7769ac2 100644
--- a/vendor/brick/math/src/Exception/DivisionByZeroException.php
+++ b/vendor/brick/math/src/Exception/DivisionByZeroException.php
@@ -10,8 +10,6 @@ namespace Brick\Math\Exception;
class DivisionByZeroException extends MathException
{
/**
- * @return DivisionByZeroException
- *
* @psalm-pure
*/
public static function divisionByZero() : DivisionByZeroException
@@ -20,8 +18,6 @@ class DivisionByZeroException extends MathException
}
/**
- * @return DivisionByZeroException
- *
* @psalm-pure
*/
public static function modulusMustNotBeZero() : DivisionByZeroException
@@ -30,8 +26,6 @@ class DivisionByZeroException extends MathException
}
/**
- * @return DivisionByZeroException
- *
* @psalm-pure
*/
public static function denominatorMustNotBeZero() : DivisionByZeroException
diff --git a/vendor/brick/math/src/Exception/IntegerOverflowException.php b/vendor/brick/math/src/Exception/IntegerOverflowException.php
index e0b07d3c7..c73b49097 100644
--- a/vendor/brick/math/src/Exception/IntegerOverflowException.php
+++ b/vendor/brick/math/src/Exception/IntegerOverflowException.php
@@ -12,10 +12,6 @@ use Brick\Math\BigInteger;
class IntegerOverflowException extends MathException
{
/**
- * @param BigInteger $value
- *
- * @return IntegerOverflowException
- *
* @psalm-pure
*/
public static function toIntOverflow(BigInteger $value) : IntegerOverflowException
diff --git a/vendor/brick/math/src/Exception/MathException.php b/vendor/brick/math/src/Exception/MathException.php
index 21fda90e1..46e9c3fe4 100644
--- a/vendor/brick/math/src/Exception/MathException.php
+++ b/vendor/brick/math/src/Exception/MathException.php
@@ -6,9 +6,7 @@ namespace Brick\Math\Exception;
/**
* Base class for all math exceptions.
- *
- * This class is abstract to ensure that only fine-grained exceptions are thrown throughout the code.
*/
-class MathException extends \RuntimeException
+class MathException extends \Exception
{
}
diff --git a/vendor/brick/math/src/Exception/NumberFormatException.php b/vendor/brick/math/src/Exception/NumberFormatException.php
index 2fd0be73a..d9cf6ff5f 100644
--- a/vendor/brick/math/src/Exception/NumberFormatException.php
+++ b/vendor/brick/math/src/Exception/NumberFormatException.php
@@ -12,8 +12,6 @@ class NumberFormatException extends MathException
/**
* @param string $char The failing character.
*
- * @return NumberFormatException
- *
* @psalm-pure
*/
public static function charNotInAlphabet(string $char) : self
diff --git a/vendor/brick/math/src/Exception/RoundingNecessaryException.php b/vendor/brick/math/src/Exception/RoundingNecessaryException.php
index 1c6100563..57bfcd844 100644
--- a/vendor/brick/math/src/Exception/RoundingNecessaryException.php
+++ b/vendor/brick/math/src/Exception/RoundingNecessaryException.php
@@ -10,8 +10,6 @@ namespace Brick\Math\Exception;
class RoundingNecessaryException extends MathException
{
/**
- * @return RoundingNecessaryException
- *
* @psalm-pure
*/
public static function roundingNecessary() : RoundingNecessaryException
diff --git a/vendor/brick/math/src/Internal/Calculator.php b/vendor/brick/math/src/Internal/Calculator.php
index a6eac799f..b8cecda96 100644
--- a/vendor/brick/math/src/Internal/Calculator.php
+++ b/vendor/brick/math/src/Internal/Calculator.php
@@ -34,10 +34,8 @@ abstract class Calculator
/**
* The Calculator instance in use.
- *
- * @var Calculator|null
*/
- private static $instance;
+ private static ?Calculator $instance = null;
/**
* Sets the Calculator instance to use.
@@ -45,8 +43,6 @@ abstract class Calculator
* An instance is typically set only in unit tests: the autodetect is usually the best option.
*
* @param Calculator|null $calculator The calculator instance, or NULL to revert to autodetect.
- *
- * @return void
*/
final public static function set(?Calculator $calculator) : void
{
@@ -58,8 +54,6 @@ abstract class Calculator
*
* If none has been explicitly set, the fastest available implementation will be returned.
*
- * @return Calculator
- *
* @psalm-pure
* @psalm-suppress ImpureStaticProperty
*/
@@ -77,8 +71,6 @@ abstract class Calculator
* Returns the fastest available Calculator implementation.
*
* @codeCoverageIgnore
- *
- * @return Calculator
*/
private static function detect() : Calculator
{
@@ -96,9 +88,6 @@ abstract class Calculator
/**
* Extracts the sign & digits of the operands.
*
- * @param string $a The first operand.
- * @param string $b The second operand.
- *
* @return array{bool, bool, string, string} Whether $a and $b are negative, followed by their digits.
*/
final protected function init(string $a, string $b) : array
@@ -114,10 +103,6 @@ abstract class Calculator
/**
* Returns the absolute value of a number.
- *
- * @param string $n The number.
- *
- * @return string The absolute value.
*/
final public function abs(string $n) : string
{
@@ -126,10 +111,6 @@ abstract class Calculator
/**
* Negates a number.
- *
- * @param string $n The number.
- *
- * @return string The negated value.
*/
final public function neg(string $n) : string
{
@@ -147,9 +128,6 @@ abstract class Calculator
/**
* Compares two numbers.
*
- * @param string $a The first number.
- * @param string $b The second number.
- *
* @return int [-1, 0, 1] If the first number is less than, equal to, or greater than the second number.
*/
final public function cmp(string $a, string $b) : int
@@ -180,31 +158,16 @@ abstract class Calculator
/**
* Adds two numbers.
- *
- * @param string $a The augend.
- * @param string $b The addend.
- *
- * @return string The sum.
*/
abstract public function add(string $a, string $b) : string;
/**
* Subtracts two numbers.
- *
- * @param string $a The minuend.
- * @param string $b The subtrahend.
- *
- * @return string The difference.
*/
abstract public function sub(string $a, string $b) : string;
/**
* Multiplies two numbers.
- *
- * @param string $a The multiplicand.
- * @param string $b The multiplier.
- *
- * @return string The product.
*/
abstract public function mul(string $a, string $b) : string;
@@ -234,7 +197,7 @@ abstract class Calculator
* @param string $a The dividend.
* @param string $b The divisor, must not be zero.
*
- * @return string[] An array containing the quotient and remainder.
+ * @return array{string, string} An array containing the quotient and remainder.
*/
abstract public function divQR(string $a, string $b) : array;
@@ -249,10 +212,7 @@ abstract class Calculator
abstract public function pow(string $a, int $e) : string;
/**
- * @param string $a
* @param string $b The modulus; must not be zero.
- *
- * @return string
*/
public function mod(string $a, string $b) : string
{
@@ -266,10 +226,7 @@ abstract class Calculator
*
* This method can be overridden by the concrete implementation if the underlying library has built-in support.
*
- * @param string $x
* @param string $m The modulus; must not be negative or zero.
- *
- * @return string|null
*/
public function modInverse(string $x, string $m) : ?string
{
@@ -283,9 +240,7 @@ abstract class Calculator
$modVal = $this->mod($x, $m);
}
- $x = '0';
- $y = '0';
- $g = $this->gcdExtended($modVal, $m, $x, $y);
+ [$g, $x] = $this->gcdExtended($modVal, $m);
if ($g !== '1') {
return null;
@@ -300,8 +255,6 @@ abstract class Calculator
* @param string $base The base number; must be positive or zero.
* @param string $exp The exponent; must be positive or zero.
* @param string $mod The modulus; must be strictly positive.
- *
- * @return string The power.
*/
abstract public function modPow(string $base, string $exp, string $mod) : string;
@@ -311,9 +264,6 @@ abstract class Calculator
* This method can be overridden by the concrete implementation if the underlying library
* has built-in support for GCD calculations.
*
- * @param string $a The first number.
- * @param string $b The second number.
- *
* @return string The GCD, always positive, or zero if both arguments are zero.
*/
public function gcd(string $a, string $b) : string
@@ -329,24 +279,21 @@ abstract class Calculator
return $this->gcd($b, $this->divR($a, $b));
}
- private function gcdExtended(string $a, string $b, string &$x, string &$y) : string
+ /**
+ * @return array{string, string, string} GCD, X, Y
+ */
+ private function gcdExtended(string $a, string $b) : array
{
if ($a === '0') {
- $x = '0';
- $y = '1';
-
- return $b;
+ return [$b, '0', '1'];
}
- $x1 = '0';
- $y1 = '0';
-
- $gcd = $this->gcdExtended($this->mod($b, $a), $a, $x1, $y1);
+ [$gcd, $x1, $y1] = $this->gcdExtended($this->mod($b, $a), $a);
$x = $this->sub($y1, $this->mul($this->divQ($b, $a), $x1));
$y = $x1;
- return $gcd;
+ return [$gcd, $x, $y];
}
/**
@@ -354,10 +301,6 @@ abstract class Calculator
*
* The result is the largest x such that x² ≤ n.
* The input MUST NOT be negative.
- *
- * @param string $n The number.
- *
- * @return string The square root.
*/
abstract public function sqrt(string $n) : string;
@@ -489,10 +432,10 @@ abstract class Calculator
* @param string $b The divisor, must not be zero.
* @param int $roundingMode The rounding mode.
*
- * @return string
- *
* @throws \InvalidArgumentException If the rounding mode is invalid.
* @throws RoundingNecessaryException If RoundingMode::UNNECESSARY is provided but rounding is necessary.
+ *
+ * @psalm-suppress ImpureFunctionCall
*/
final public function divRound(string $a, string $b, int $roundingMode) : string
{
@@ -570,11 +513,6 @@ abstract class Calculator
*
* This method can be overridden by the concrete implementation if the underlying library
* has built-in support for bitwise operations.
- *
- * @param string $a
- * @param string $b
- *
- * @return string
*/
public function and(string $a, string $b) : string
{
@@ -586,11 +524,6 @@ abstract class Calculator
*
* This method can be overridden by the concrete implementation if the underlying library
* has built-in support for bitwise operations.
- *
- * @param string $a
- * @param string $b
- *
- * @return string
*/
public function or(string $a, string $b) : string
{
@@ -602,11 +535,6 @@ abstract class Calculator
*
* This method can be overridden by the concrete implementation if the underlying library
* has built-in support for bitwise operations.
- *
- * @param string $a
- * @param string $b
- *
- * @return string
*/
public function xor(string $a, string $b) : string
{
@@ -616,11 +544,9 @@ abstract class Calculator
/**
* Performs a bitwise operation on a decimal number.
*
- * @param string $operator The operator to use, must be "and", "or" or "xor".
- * @param string $a The left operand.
- * @param string $b The right operand.
- *
- * @return string
+ * @param 'and'|'or'|'xor' $operator The operator to use.
+ * @param string $a The left operand.
+ * @param string $b The right operand.
*/
private function bitwise(string $operator, string $a, string $b) : string
{
@@ -678,8 +604,6 @@ abstract class Calculator
/**
* @param string $number A positive, binary number.
- *
- * @return string
*/
private function twosComplement(string $number) : string
{
@@ -709,8 +633,6 @@ abstract class Calculator
* Converts a decimal number to a binary string.
*
* @param string $number The number to convert, positive or zero, only digits.
- *
- * @return string
*/
private function toBinary(string $number) : string
{
@@ -728,8 +650,6 @@ abstract class Calculator
* Returns the positive decimal representation of a binary number.
*
* @param string $bytes The bytes representing the number.
- *
- * @return string
*/
private function toDecimal(string $bytes) : string
{
diff --git a/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php b/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php
index 6632b378a..5457a3c98 100644
--- a/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php
+++ b/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php
@@ -15,99 +15,58 @@ use Brick\Math\Internal\Calculator;
*/
class BcMathCalculator extends Calculator
{
- /**
- * {@inheritdoc}
- */
public function add(string $a, string $b) : string
{
return \bcadd($a, $b, 0);
}
- /**
- * {@inheritdoc}
- */
public function sub(string $a, string $b) : string
{
return \bcsub($a, $b, 0);
}
- /**
- * {@inheritdoc}
- */
public function mul(string $a, string $b) : string
{
return \bcmul($a, $b, 0);
}
- /**
- * {@inheritdoc}
- *
- * @psalm-suppress InvalidNullableReturnType
- * @psalm-suppress NullableReturnStatement
- */
public function divQ(string $a, string $b) : string
{
return \bcdiv($a, $b, 0);
}
/**
- * {@inheritdoc}
- *
* @psalm-suppress InvalidNullableReturnType
* @psalm-suppress NullableReturnStatement
*/
public function divR(string $a, string $b) : string
{
- if (version_compare(PHP_VERSION, '7.2') >= 0) {
- return \bcmod($a, $b, 0);
- }
-
- return \bcmod($a, $b);
+ return \bcmod($a, $b, 0);
}
- /**
- * {@inheritdoc}
- */
public function divQR(string $a, string $b) : array
{
$q = \bcdiv($a, $b, 0);
+ $r = \bcmod($a, $b, 0);
- if (version_compare(PHP_VERSION, '7.2') >= 0) {
- $r = \bcmod($a, $b, 0);
- } else {
- $r = \bcmod($a, $b);
- }
-
- assert($q !== null);
assert($r !== null);
return [$q, $r];
}
- /**
- * {@inheritdoc}
- */
public function pow(string $a, int $e) : string
{
return \bcpow($a, (string) $e, 0);
}
- /**
- * {@inheritdoc}
- *
- * @psalm-suppress InvalidNullableReturnType
- * @psalm-suppress NullableReturnStatement
- */
public function modPow(string $base, string $exp, string $mod) : string
{
return \bcpowmod($base, $exp, $mod, 0);
}
/**
- * {@inheritDoc}
- *
- * @psalm-suppress NullableReturnStatement
* @psalm-suppress InvalidNullableReturnType
+ * @psalm-suppress NullableReturnStatement
*/
public function sqrt(string $n) : string
{
diff --git a/vendor/brick/math/src/Internal/Calculator/GmpCalculator.php b/vendor/brick/math/src/Internal/Calculator/GmpCalculator.php
index 52d18800a..42d4c6927 100644
--- a/vendor/brick/math/src/Internal/Calculator/GmpCalculator.php
+++ b/vendor/brick/math/src/Internal/Calculator/GmpCalculator.php
@@ -15,49 +15,31 @@ use Brick\Math\Internal\Calculator;
*/
class GmpCalculator extends Calculator
{
- /**
- * {@inheritdoc}
- */
public function add(string $a, string $b) : string
{
return \gmp_strval(\gmp_add($a, $b));
}
- /**
- * {@inheritdoc}
- */
public function sub(string $a, string $b) : string
{
return \gmp_strval(\gmp_sub($a, $b));
}
- /**
- * {@inheritdoc}
- */
public function mul(string $a, string $b) : string
{
return \gmp_strval(\gmp_mul($a, $b));
}
- /**
- * {@inheritdoc}
- */
public function divQ(string $a, string $b) : string
{
return \gmp_strval(\gmp_div_q($a, $b));
}
- /**
- * {@inheritdoc}
- */
public function divR(string $a, string $b) : string
{
return \gmp_strval(\gmp_div_r($a, $b));
}
- /**
- * {@inheritdoc}
- */
public function divQR(string $a, string $b) : array
{
[$q, $r] = \gmp_div_qr($a, $b);
@@ -68,17 +50,11 @@ class GmpCalculator extends Calculator
];
}
- /**
- * {@inheritdoc}
- */
public function pow(string $a, int $e) : string
{
return \gmp_strval(\gmp_pow($a, $e));
}
- /**
- * {@inheritdoc}
- */
public function modInverse(string $x, string $m) : ?string
{
$result = \gmp_invert($x, $m);
@@ -90,65 +66,41 @@ class GmpCalculator extends Calculator
return \gmp_strval($result);
}
- /**
- * {@inheritdoc}
- */
public function modPow(string $base, string $exp, string $mod) : string
{
return \gmp_strval(\gmp_powm($base, $exp, $mod));
}
- /**
- * {@inheritdoc}
- */
public function gcd(string $a, string $b) : string
{
return \gmp_strval(\gmp_gcd($a, $b));
}
- /**
- * {@inheritdoc}
- */
public function fromBase(string $number, int $base) : string
{
return \gmp_strval(\gmp_init($number, $base));
}
- /**
- * {@inheritdoc}
- */
public function toBase(string $number, int $base) : string
{
return \gmp_strval($number, $base);
}
- /**
- * {@inheritdoc}
- */
public function and(string $a, string $b) : string
{
return \gmp_strval(\gmp_and($a, $b));
}
- /**
- * {@inheritdoc}
- */
public function or(string $a, string $b) : string
{
return \gmp_strval(\gmp_or($a, $b));
}
- /**
- * {@inheritdoc}
- */
public function xor(string $a, string $b) : string
{
return \gmp_strval(\gmp_xor($a, $b));
}
- /**
- * {@inheritDoc}
- */
public function sqrt(string $n) : string
{
return \gmp_strval(\gmp_sqrt($n));
diff --git a/vendor/brick/math/src/Internal/Calculator/NativeCalculator.php b/vendor/brick/math/src/Internal/Calculator/NativeCalculator.php
index 020a6338b..7c679d24d 100644
--- a/vendor/brick/math/src/Internal/Calculator/NativeCalculator.php
+++ b/vendor/brick/math/src/Internal/Calculator/NativeCalculator.php
@@ -19,17 +19,13 @@ class NativeCalculator extends Calculator
* The max number of digits the platform can natively add, subtract, multiply or divide without overflow.
* For multiplication, this represents the max sum of the lengths of both operands.
*
- * For addition, it is assumed that an extra digit can hold a carry (1) without overflowing.
+ * In addition, it is assumed that an extra digit can hold a carry (1) without overflowing.
* Example: 32-bit: max number 1,999,999,999 (9 digits + carry)
* 64-bit: max number 1,999,999,999,999,999,999 (18 digits + carry)
- *
- * @var int
*/
- private $maxDigits;
+ private int $maxDigits;
/**
- * Class constructor.
- *
* @codeCoverageIgnore
*/
public function __construct()
@@ -48,9 +44,6 @@ class NativeCalculator extends Calculator
}
}
- /**
- * {@inheritdoc}
- */
public function add(string $a, string $b) : string
{
/**
@@ -82,17 +75,11 @@ class NativeCalculator extends Calculator
return $result;
}
- /**
- * {@inheritdoc}
- */
public function sub(string $a, string $b) : string
{
return $this->add($a, $this->neg($b));
}
- /**
- * {@inheritdoc}
- */
public function mul(string $a, string $b) : string
{
/**
@@ -136,25 +123,16 @@ class NativeCalculator extends Calculator
return $result;
}
- /**
- * {@inheritdoc}
- */
public function divQ(string $a, string $b) : string
{
return $this->divQR($a, $b)[0];
}
- /**
- * {@inheritdoc}
- */
public function divR(string $a, string $b): string
{
return $this->divQR($a, $b)[1];
}
- /**
- * {@inheritdoc}
- */
public function divQR(string $a, string $b) : array
{
if ($a === '0') {
@@ -210,9 +188,6 @@ class NativeCalculator extends Calculator
return [$q, $r];
}
- /**
- * {@inheritdoc}
- */
public function pow(string $a, int $e) : string
{
if ($e === 0) {
@@ -240,8 +215,6 @@ class NativeCalculator extends Calculator
/**
* Algorithm from: https://www.geeksforgeeks.org/modular-exponentiation-power-in-modular-arithmetic/
- *
- * {@inheritdoc}
*/
public function modPow(string $base, string $exp, string $mod) : string
{
@@ -276,8 +249,6 @@ class NativeCalculator extends Calculator
/**
* Adapted from https://cp-algorithms.com/num_methods/roots_newton.html
- *
- * {@inheritDoc}
*/
public function sqrt(string $n) : string
{
@@ -306,11 +277,6 @@ class NativeCalculator extends Calculator
/**
* Performs the addition of two non-signed large integers.
- *
- * @param string $a The first operand.
- * @param string $b The second operand.
- *
- * @return string
*/
private function doAdd(string $a, string $b) : string
{
@@ -363,11 +329,6 @@ class NativeCalculator extends Calculator
/**
* Performs the subtraction of two non-signed large integers.
- *
- * @param string $a The first operand.
- * @param string $b The second operand.
- *
- * @return string
*/
private function doSub(string $a, string $b) : string
{
@@ -445,11 +406,6 @@ class NativeCalculator extends Calculator
/**
* Performs the multiplication of two non-signed large integers.
- *
- * @param string $a The first operand.
- * @param string $b The second operand.
- *
- * @return string
*/
private function doMul(string $a, string $b) : string
{
@@ -522,9 +478,6 @@ class NativeCalculator extends Calculator
/**
* Performs the division of two non-signed large integers.
*
- * @param string $a The first operand.
- * @param string $b The second operand.
- *
* @return string[] The quotient and remainder.
*/
private function doDiv(string $a, string $b) : array
@@ -583,9 +536,6 @@ class NativeCalculator extends Calculator
/**
* Compares two non-signed large numbers.
*
- * @param string $a The first operand.
- * @param string $b The second operand.
- *
* @return int [-1, 0, 1]
*/
private function doCmp(string $a, string $b) : int
@@ -607,9 +557,6 @@ class NativeCalculator extends Calculator
*
* The numbers must only consist of digits, without leading minus sign.
*
- * @param string $a The first operand.
- * @param string $b The second operand.
- *
* @return array{string, string, int}
*/
private function pad(string $a, string $b) : array
diff --git a/vendor/bshaffer/oauth2-server-php/src/OAuth2/Response.php b/vendor/bshaffer/oauth2-server-php/src/OAuth2/Response.php
index 88c1ad5f7..be1eaa2ac 100644
--- a/vendor/bshaffer/oauth2-server-php/src/OAuth2/Response.php
+++ b/vendor/bshaffer/oauth2-server-php/src/OAuth2/Response.php
@@ -140,11 +140,10 @@ class Response implements ResponseInterface
}
/**
- * @param int $statusCode
* @param string $text
* @throws InvalidArgumentException
*/
- public function setStatusCode($statusCode, $text = null)
+ public function setStatusCode(int $statusCode, $text = null)
{
$this->statusCode = (int) $statusCode;
if ($this->isInvalid()) {
diff --git a/vendor/bshaffer/oauth2-server-php/src/OAuth2/ResponseInterface.php b/vendor/bshaffer/oauth2-server-php/src/OAuth2/ResponseInterface.php
index fe920864a..df4fa48f5 100644
--- a/vendor/bshaffer/oauth2-server-php/src/OAuth2/ResponseInterface.php
+++ b/vendor/bshaffer/oauth2-server-php/src/OAuth2/ResponseInterface.php
@@ -20,10 +20,7 @@ interface ResponseInterface
*/
public function addHttpHeaders(array $httpHeaders);
- /**
- * @param int $statusCode
- */
- public function setStatusCode($statusCode);
+ public function setStatusCode(int $statusCode);
/**
* @param int $statusCode
diff --git a/vendor/commerceguys/intl/.travis.yml b/vendor/commerceguys/intl/.travis.yml
index 6d1cecaa5..792604de8 100644
--- a/vendor/commerceguys/intl/.travis.yml
+++ b/vendor/commerceguys/intl/.travis.yml
@@ -2,10 +2,10 @@ sudo: false
language: php
php:
+ - 8.1
+ - 8.0
- 7.4
- 7.3
- - 7.2
- - 7.1
install:
- composer self-update
diff --git a/vendor/commerceguys/intl/README.md b/vendor/commerceguys/intl/README.md
index 593805264..44cffe526 100644
--- a/vendor/commerceguys/intl/README.md
+++ b/vendor/commerceguys/intl/README.md
@@ -3,7 +3,7 @@ intl
[![Build Status](https://travis-ci.org/commerceguys/intl.svg?branch=master)](https://travis-ci.org/commerceguys/intl)
-A PHP 7.1+ internationalization library, powered by CLDR data.
+A PHP 7.3+ internationalization library, powered by CLDR data.
Features:
- NumberFormatter and CurrencyFormatter, inspired by [intl](http://php.net/manual/en/class.numberformatter.php).
diff --git a/vendor/commerceguys/intl/composer.json b/vendor/commerceguys/intl/composer.json
index acd44066f..161db934b 100644
--- a/vendor/commerceguys/intl/composer.json
+++ b/vendor/commerceguys/intl/composer.json
@@ -4,10 +4,10 @@
"description": "Internationalization library powered by CLDR data.",
"license": "MIT",
"require": {
- "php": ">=7.1.3"
+ "php": ">=7.3"
},
"require-dev": {
- "phpunit/phpunit": "^7.5",
+ "phpunit/phpunit": "^9.5",
"mikey179/vfsstream": "1.*"
},
"autoload": {
@@ -23,6 +23,9 @@
"authors": [
{
"name": "Bojan Zivanovic"
+ },
+ {
+ "name": "Jonathan Sacksick"
}
],
"extra": {
diff --git a/vendor/commerceguys/intl/phpunit.xml b/vendor/commerceguys/intl/phpunit.xml
index 82bf2b096..159d863d9 100644
--- a/vendor/commerceguys/intl/phpunit.xml
+++ b/vendor/commerceguys/intl/phpunit.xml
@@ -1,23 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit backupGlobals="false"
- backupStaticAttributes="false"
- colors="true"
- convertErrorsToExceptions="true"
- convertNoticesToExceptions="true"
- convertWarningsToExceptions="true"
- stopOnFailure="false"
- bootstrap="vendor/autoload.php"
->
+<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" backupGlobals="false" backupStaticAttributes="false" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" stopOnFailure="false" bootstrap="vendor/autoload.php" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
+ <coverage>
+ <include>
+ <directory suffix=".php">./src/</directory>
+ </include>
+ </coverage>
<testsuites>
<testsuite name="CommerceGuys Intl Test Suite">
<directory>./tests/</directory>
</testsuite>
</testsuites>
-
- <filter>
- <whitelist>
- <directory suffix=".php">./src/</directory>
- </whitelist>
- </filter>
</phpunit>
diff --git a/vendor/commerceguys/intl/resources/currency/af.json b/vendor/commerceguys/intl/resources/currency/af.json
index d3f53a11e..422e14cf0 100644
--- a/vendor/commerceguys/intl/resources/currency/af.json
+++ b/vendor/commerceguys/intl/resources/currency/af.json
@@ -51,6 +51,9 @@
"BTN": {
"name": "Bhoetanese ngoeltroem"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Boliviaanse boliviano"
},
@@ -222,9 +225,6 @@
"CDF": {
"name": "Kongolese frank"
},
- "HRK": {
- "name": "Kroatiese kuna"
- },
"CUC": {
"name": "Kubaanse omskakelbare peso"
},
@@ -382,6 +382,9 @@
"SCR": {
"name": "Seychellese roepee"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SLL": {
"name": "Sierra Leoniese leone"
},
diff --git a/vendor/commerceguys/intl/resources/currency/ar.json b/vendor/commerceguys/intl/resources/currency/ar.json
index 286959c2c..7d5f6d483 100644
--- a/vendor/commerceguys/intl/resources/currency/ar.json
+++ b/vendor/commerceguys/intl/resources/currency/ar.json
@@ -421,9 +421,6 @@
"SVC": {
"name": "كولون سلفادوري"
},
- "HRK": {
- "name": "كونا كرواتي"
- },
"MMK": {
"name": "كيات ميانمار"
},
@@ -510,6 +507,12 @@
"name": "يورو",
"symbol": "€"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
}
diff --git a/vendor/commerceguys/intl/resources/currency/as.json b/vendor/commerceguys/intl/resources/currency/as.json
index 24274a0d3..a365f014d 100644
--- a/vendor/commerceguys/intl/resources/currency/as.json
+++ b/vendor/commerceguys/intl/resources/currency/as.json
@@ -128,9 +128,6 @@
"CRC": {
"name": "কোষ্টা ৰিকান কোলন"
},
- "HRK": {
- "name": "ক্ৰোৱেছিয়ান কুনা"
- },
"GMD": {
"name": "গাম্বিয়া ডালাছি"
},
@@ -480,6 +477,9 @@
"HNL": {
"name": "হোন্দুৰান লেম্পিৰা"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"XPF": {
"name": "CFP ফ্ৰেংক",
"symbol": "CFPF"
@@ -487,6 +487,9 @@
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/ast.json b/vendor/commerceguys/intl/resources/currency/ast.json
index 179e89777..7cc92802d 100644
--- a/vendor/commerceguys/intl/resources/currency/ast.json
+++ b/vendor/commerceguys/intl/resources/currency/ast.json
@@ -15,6 +15,9 @@
"ETB": {
"name": "Birr etíope"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"VES": {
"name": "bolívar venezolanu"
},
@@ -234,9 +237,6 @@
"LAK": {
"name": "kip laosianu"
},
- "HRK": {
- "name": "Kuna croata"
- },
"MWK": {
"name": "Kwacha malauianu"
},
@@ -442,6 +442,9 @@
"UGX": {
"name": "Shilling ugandés"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "Sol peruanu"
},
diff --git a/vendor/commerceguys/intl/resources/currency/az.json b/vendor/commerceguys/intl/resources/currency/az.json
index 5d6ac7b1d..f701e2286 100644
--- a/vendor/commerceguys/intl/resources/currency/az.json
+++ b/vendor/commerceguys/intl/resources/currency/az.json
@@ -51,6 +51,9 @@
"AED": {
"name": "Birləşmiş Ərəb Əmirlikləri Dirhəmi"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Boliviya Bolivianosu"
},
@@ -164,9 +167,6 @@
"name": "Honq Konq Dolları",
"symbol": "HK$"
},
- "HRK": {
- "name": "Xorvatiya Kunası"
- },
"IDR": {
"name": "İndoneziya Rupisi"
},
@@ -393,6 +393,9 @@
"SLL": {
"name": "Sierra Leon Leonu"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SGD": {
"name": "Sinqapur Dolları"
},
diff --git a/vendor/commerceguys/intl/resources/currency/be.json b/vendor/commerceguys/intl/resources/currency/be.json
index f42ecce9e..793911bcb 100644
--- a/vendor/commerceguys/intl/resources/currency/be.json
+++ b/vendor/commerceguys/intl/resources/currency/be.json
@@ -445,9 +445,6 @@
"FKP": {
"name": "фунт Фалклендскіх астравоў"
},
- "HRK": {
- "name": "харвацкая куна"
- },
"XAF": {
"name": "цэнтральнаафрыканскі франк КФА",
"symbol": "FCFA"
@@ -483,9 +480,15 @@
"name": "японская іена",
"symbol": "¥"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/bg.json b/vendor/commerceguys/intl/resources/currency/bg.json
index bba50d073..07e40ea46 100644
--- a/vendor/commerceguys/intl/resources/currency/bg.json
+++ b/vendor/commerceguys/intl/resources/currency/bg.json
@@ -431,9 +431,6 @@
"HKD": {
"name": "Хонконгски долар"
},
- "HRK": {
- "name": "Хърватска куна"
- },
"XAF": {
"name": "Централноафрикански франк",
"symbol": "FCFA"
@@ -472,10 +469,16 @@
"JPY": {
"name": "Японска йена"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"XPF": {
"name": "CFP франк",
"symbol": "CFPF"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
}
diff --git a/vendor/commerceguys/intl/resources/currency/bn-IN.json b/vendor/commerceguys/intl/resources/currency/bn-IN.json
new file mode 100644
index 000000000..603d56099
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/currency/bn-IN.json
@@ -0,0 +1,501 @@
+{
+ "AUD": {
+ "name": "অস্ট্রেলিয়ান ডলার",
+ "symbol": "A$"
+ },
+ "ISK": {
+ "name": "আইসল্যান্ডীয় ক্রোনা"
+ },
+ "AZN": {
+ "name": "আজারবাইজান মানাত"
+ },
+ "AFN": {
+ "name": "আফগান আফগানি"
+ },
+ "AMD": {
+ "name": "আরমেনিয়ান দ্রাম"
+ },
+ "AWG": {
+ "name": "আরুবান গিল্ডার"
+ },
+ "ARS": {
+ "name": "আর্জেন্টিনা পেসো"
+ },
+ "DZD": {
+ "name": "আলজেরীয় দিনার"
+ },
+ "ALL": {
+ "name": "আলবেনিয়ান লেক"
+ },
+ "UAH": {
+ "name": "ইউক্রেইন হৃভনিয়া"
+ },
+ "EUR": {
+ "name": "ইউরো",
+ "symbol": "€"
+ },
+ "ETB": {
+ "name": "ইথিওপিয়ান বির"
+ },
+ "IDR": {
+ "name": "ইন্দোনেশিয়ান রুপিয়াহ"
+ },
+ "YER": {
+ "name": "ইয়েমেনি রিয়াল"
+ },
+ "IQD": {
+ "name": "ইরাকি দিনার"
+ },
+ "IRR": {
+ "name": "ইরানিয়ান রিয়াল"
+ },
+ "ILS": {
+ "name": "ইসরায়েলি নতুন শেকেল",
+ "symbol": "₪"
+ },
+ "UGX": {
+ "name": "উগান্ডান শিলিং"
+ },
+ "UZS": {
+ "name": "উজবেকিস্তানি সোম"
+ },
+ "KPW": {
+ "name": "উত্তর কোরিয়ার ওন"
+ },
+ "UYU": {
+ "name": "উরুগুয়ে পেসো"
+ },
+ "ERN": {
+ "name": "এরিট্রিয়েন নাকফা"
+ },
+ "SVC": {
+ "name": "এল স্যালভোডোর কোলোন"
+ },
+ "AOA": {
+ "name": "এ্যাঙ্গোলান কওয়ানজা"
+ },
+ "OMR": {
+ "name": "ওমানি রিয়াল"
+ },
+ "CDF": {
+ "name": "কঙ্গোলিস ফ্র্যাঙ্ক"
+ },
+ "KMF": {
+ "name": "কমোরিয়ান ফ্রাঙ্ক"
+ },
+ "KHR": {
+ "name": "কম্বোডিয়ান রিয়েল"
+ },
+ "COP": {
+ "name": "কলোম্বিয়ান পেসো"
+ },
+ "KZT": {
+ "name": "কাজাখাস্তানি টেঙ্গে"
+ },
+ "QAR": {
+ "name": "কাতার রিয়াল"
+ },
+ "CAD": {
+ "name": "কানাডিয়ান ডলার",
+ "symbol": "CA$"
+ },
+ "CUP": {
+ "name": "কিউবান পেসো"
+ },
+ "CUC": {
+ "name": "কিউবান রূপান্তরযোগ্য পেসো"
+ },
+ "KGS": {
+ "name": "কিরগিজস্তান সোম"
+ },
+ "KWD": {
+ "name": "কুয়েতি দিনার"
+ },
+ "KES": {
+ "name": "কেনিয়ান শিলিং"
+ },
+ "CVE": {
+ "name": "কেপ ভার্দে এসকুডো"
+ },
+ "KYD": {
+ "name": "কেম্যান দ্বীপপুঞ্জের ডলার"
+ },
+ "CRC": {
+ "name": "কোস্টা রিকা কোলোন"
+ },
+ "GMD": {
+ "name": "গাম্বিয়া ডালাসি"
+ },
+ "GYD": {
+ "name": "গায়ানিজ ডলার"
+ },
+ "GNF": {
+ "name": "গিনি ফ্রাঙ্ক"
+ },
+ "GTQ": {
+ "name": "গুয়াতেমালান কেৎসাল"
+ },
+ "GHS": {
+ "name": "ঘানা সেডি"
+ },
+ "CLP": {
+ "name": "চিলি পেসো"
+ },
+ "CNY": {
+ "name": "চীনা য়ুয়ান",
+ "symbol": "CN¥"
+ },
+ "CZK": {
+ "name": "চেক প্রজাতন্ত্র কোরুনা"
+ },
+ "GEL": {
+ "name": "জর্জিয়ান লারি"
+ },
+ "JOD": {
+ "name": "জর্ডানিয়ান দিনার"
+ },
+ "JPY": {
+ "name": "জাপানি ইয়েন",
+ "symbol": "JP¥"
+ },
+ "JMD": {
+ "name": "জামাইকান ডলার"
+ },
+ "ZMW": {
+ "name": "জাম্বিয়ান কওয়াচা"
+ },
+ "DJF": {
+ "name": "জিবুতি ফ্রাঙ্ক"
+ },
+ "GIP": {
+ "name": "জিব্রাল্টার পাউন্ড"
+ },
+ "ZWL": {
+ "name": "জিম্বাবুয়ে ডলার (২০০৯)"
+ },
+ "TOP": {
+ "name": "টোঙ্গা পা’আঙ্গা"
+ },
+ "DOP": {
+ "name": "ডোমিনিকান পেসো"
+ },
+ "DKK": {
+ "name": "ড্যানিশ ক্রোন"
+ },
+ "TJS": {
+ "name": "তাজিকিস্তান সোমোনি"
+ },
+ "TZS": {
+ "name": "তাঞ্জনিয়া শিলিং"
+ },
+ "TND": {
+ "name": "তিউনেশিয়ান দিনার"
+ },
+ "TMT": {
+ "name": "তুর্কমেনিস্তান মানত"
+ },
+ "TRY": {
+ "name": "তুর্কি লিরা"
+ },
+ "TTD": {
+ "name": "ত্রিনিদাদ এবং টোবাগো ডলার"
+ },
+ "THB": {
+ "name": "থাই বাত",
+ "symbol": "฿"
+ },
+ "ZAR": {
+ "name": "দক্ষিণ আফ্রিকান রেন্ড"
+ },
+ "KRW": {
+ "name": "দক্ষিণ কোরিয়ান ওন",
+ "symbol": "₩"
+ },
+ "SSP": {
+ "name": "দক্ষিণ সুদানি পাউন্ড"
+ },
+ "TWD": {
+ "name": "নতুন তাইওয়ান ডলার",
+ "symbol": "NT$"
+ },
+ "NOK": {
+ "name": "নরওয়েজিয়ান ক্রোন"
+ },
+ "NGN": {
+ "name": "নাইজেরিয়ান নায়রা"
+ },
+ "NAD": {
+ "name": "নামিবিয়া ডলার"
+ },
+ "NZD": {
+ "name": "নিউজিল্যান্ড ডলার",
+ "symbol": "NZ$"
+ },
+ "NIO": {
+ "name": "নিকারাগুয়ান কর্ডোবা"
+ },
+ "ANG": {
+ "name": "নেদারল্যান্ডস অ্যান্টিলিয়ান গিল্ডার"
+ },
+ "NPR": {
+ "name": "নেপালি রুপি"
+ },
+ "XOF": {
+ "name": "পশ্চিম আফ্রিকান [CFA] ফ্র্যাঙ্ক",
+ "symbol": "F CFA"
+ },
+ "PKR": {
+ "name": "পাকিস্তানি রুপি"
+ },
+ "PAB": {
+ "name": "পানামানিয়ান বালবোয়া"
+ },
+ "PGK": {
+ "name": "পাপুয়া নিউ গিনিয়ান কিনা"
+ },
+ "XCD": {
+ "name": "পূর্ব ক্যারিবিয়ান ডলার",
+ "symbol": "EC$"
+ },
+ "PEN": {
+ "name": "পেরুভিয়ান সোল"
+ },
+ "PLN": {
+ "name": "পোলিশ জ্লোটি"
+ },
+ "PYG": {
+ "name": "প্যারাগুয়ান গুয়ারানি"
+ },
+ "FKP": {
+ "name": "ফকল্যান্ড দ্বীপপুঞ্জ পাউন্ড"
+ },
+ "FJD": {
+ "name": "ফিজি ডলার"
+ },
+ "PHP": {
+ "name": "ফিলিপাইন পেসো"
+ },
+ "BWP": {
+ "name": "বতসোয়ানা পুলা"
+ },
+ "BOB": {
+ "name": "বলিভিয়ান বলিভিয়ানো"
+ },
+ "BAM": {
+ "name": "বসনিয়া এবং হার্জেগোভিনা বিনিমেয় মার্ক"
+ },
+ "BDT": {
+ "name": "বাংলাদেশী টাকা",
+ "symbol": "৳"
+ },
+ "BMD": {
+ "name": "বারমুডান ডলার"
+ },
+ "BBD": {
+ "name": "বার্বেডোজ ডলার"
+ },
+ "BHD": {
+ "name": "বাহরাইনি দিনার"
+ },
+ "BSD": {
+ "name": "বাহামিয়ান ডলার"
+ },
+ "BIF": {
+ "name": "বুরুন্ডি ফ্রাঙ্ক"
+ },
+ "BGN": {
+ "name": "বুলগেরীয় লেভ"
+ },
+ "BYN": {
+ "name": "বেলারুশিয়ান রুবেল"
+ },
+ "BZD": {
+ "name": "বেলিজ ডলার"
+ },
+ "BRL": {
+ "name": "ব্রাজিলিয়ান রিয়েল",
+ "symbol": "R$"
+ },
+ "GBP": {
+ "name": "ব্রিটিশ পাউন্ড",
+ "symbol": "£"
+ },
+ "BND": {
+ "name": "ব্রুনেই ডলার"
+ },
+ "VUV": {
+ "name": "ভানুয়াতু ভাতু"
+ },
+ "INR": {
+ "name": "ভারতীয় রুপি",
+ "symbol": "₹"
+ },
+ "VND": {
+ "name": "ভিয়েতনামি ডঙ্গ",
+ "symbol": "₫"
+ },
+ "BTN": {
+ "name": "ভুটানি এনগুল্ট্রুম"
+ },
+ "VES": {
+ "name": "ভেনিজুয়েলীয় বলিভার"
+ },
+ "MNT": {
+ "name": "মঙ্গোলিয়ান তুগরিক"
+ },
+ "XAF": {
+ "name": "মধ্য আফ্রিকান [CFA] ফ্র্যাঙ্ক",
+ "symbol": "FCFA"
+ },
+ "MGA": {
+ "name": "মাদাগাস্কার আরিয়ারি"
+ },
+ "MMK": {
+ "name": "মায়ানমার কিয়াত"
+ },
+ "USD": {
+ "name": "মার্কিন ডলার",
+ "symbol": "$"
+ },
+ "MVR": {
+ "name": "মালদিভিয়ান রুফিয়া"
+ },
+ "MYR": {
+ "name": "মালয়েশিয়ান রিঙ্গিৎ"
+ },
+ "MWK": {
+ "name": "মালাউইয়ান কোয়াচা"
+ },
+ "EGP": {
+ "name": "মিশরীয় পাউন্ড"
+ },
+ "MXN": {
+ "name": "মেক্সিকান পেসো",
+ "symbol": "MX$"
+ },
+ "MZN": {
+ "name": "মোজাম্বিক মেটিকেল"
+ },
+ "MAD": {
+ "name": "মোরোক্কান দিরহাম"
+ },
+ "MDL": {
+ "name": "মোল্ডোভান লেয়ু"
+ },
+ "MRU": {
+ "name": "মৌরিতানিয়ান ওউগুইয়া"
+ },
+ "MUR": {
+ "name": "মৌরিতানিয়ান রুপি"
+ },
+ "MOP": {
+ "name": "ম্যাক্যাও পাটাকা"
+ },
+ "MKD": {
+ "name": "ম্যাসেডোনিয়ান দিনার"
+ },
+ "RUB": {
+ "name": "রাশিয়ান রুবেল"
+ },
+ "RON": {
+ "name": "রুমানিয়া লেয়ু"
+ },
+ "RWF": {
+ "name": "রুয়ান্ডান ফ্রাঙ্ক"
+ },
+ "LYD": {
+ "name": "লিবিয়ান দিনার"
+ },
+ "LRD": {
+ "name": "লিবেরিয়ান ডলার"
+ },
+ "LAK": {
+ "name": "লেউশান কিপ"
+ },
+ "LBP": {
+ "name": "লেবানিজ পাউন্ড"
+ },
+ "LSL": {
+ "name": "লেসুটু লোটি"
+ },
+ "LKR": {
+ "name": "শ্রীলঙ্কান রুপি"
+ },
+ "AED": {
+ "name": "সংযুক্ত আরব আমিরাত দিরহাম"
+ },
+ "SBD": {
+ "name": "সলোমন দ্বীপপুঞ্জ ডলার"
+ },
+ "STN": {
+ "name": "সাও টোমে এবং প্রিন্সিপে ডোবরা"
+ },
+ "WST": {
+ "name": "সামোয়ান টালা"
+ },
+ "RSD": {
+ "name": "সারবিয়ান দিনার"
+ },
+ "XPF": {
+ "name": "সিএফপি ফ্র্যাঙ্ক",
+ "symbol": "CFPF"
+ },
+ "SGD": {
+ "name": "সিঙ্গাপুর ডলার"
+ },
+ "SLL": {
+ "name": "সিয়েরালিয়ন লিয়ন"
+ },
+ "SYP": {
+ "name": "সিরিয়ান পাউন্ড"
+ },
+ "SEK": {
+ "name": "সুইডিশ ক্রোনা"
+ },
+ "CHF": {
+ "name": "সুইস ফ্রাঁ"
+ },
+ "SDG": {
+ "name": "সুদানি পাউন্ড"
+ },
+ "SRD": {
+ "name": "সুরিনামিজ ডলার"
+ },
+ "SHP": {
+ "name": "সেন্ট হেলেনা পাউন্ড"
+ },
+ "SCR": {
+ "name": "সেয়চেল্লোইস রুপি"
+ },
+ "SOS": {
+ "name": "সোমালি শিলিং"
+ },
+ "SZL": {
+ "name": "সোয়াজিল্যান্ড লিলাঙ্গেনি"
+ },
+ "SAR": {
+ "name": "সৌদি রিয়াল"
+ },
+ "HKD": {
+ "name": "হংকং ডলার",
+ "symbol": "HK$"
+ },
+ "HNL": {
+ "name": "হন্ডুরান লেম্পিরা"
+ },
+ "HTG": {
+ "name": "হাইতিয়ান গুর্দ"
+ },
+ "HUF": {
+ "name": "হাঙ্গেরিয়ান ফোরিন্ট"
+ },
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
+ "UYW": {
+ "name": "Uruguayan Nominal Wage Index Unit"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/bn.json b/vendor/commerceguys/intl/resources/currency/bn.json
index 927202b39..22cb062cc 100644
--- a/vendor/commerceguys/intl/resources/currency/bn.json
+++ b/vendor/commerceguys/intl/resources/currency/bn.json
@@ -16,7 +16,7 @@
"name": "আরমেনিয়ান দ্রাম"
},
"AWG": {
- "name": "আরুবা গিল্ডার"
+ "name": "আরুবা ফ্লোরিন"
},
"ARS": {
"name": "আর্জেন্টিনা পেসো"
@@ -50,7 +50,7 @@
"name": "ইরানিয়ান রিয়াল"
},
"ILS": {
- "name": "ইস্রাইলি নতুন শেকেল",
+ "name": "ইসরায়েলি নতুন শেকেল",
"symbol": "₪"
},
"UGX": {
@@ -80,12 +80,12 @@
"CDF": {
"name": "কঙ্গোলিস ফ্র্যাঙ্ক"
},
+ "KMF": {
+ "name": "কমোরিয়ান ফ্রাঙ্ক"
+ },
"KHR": {
"name": "কম্বোডিয়ান রিয়েল"
},
- "KMF": {
- "name": "কম্বোরো ফ্রাঙ্ক"
- },
"COP": {
"name": "কলোম্বিয়ান পেসো"
},
@@ -123,15 +123,12 @@
"CRC": {
"name": "কোস্টা রিকা কোলোন"
},
- "HRK": {
- "name": "ক্রোয়েশিয়ান কুনা"
- },
- "GYD": {
- "name": "গাইয়েনা ডলার"
- },
"GMD": {
"name": "গাম্বিয়া ডালাসি"
},
+ "GYD": {
+ "name": "গায়ানিজ ডলার"
+ },
"GNF": {
"name": "গিনি ফ্রাঙ্ক"
},
@@ -251,7 +248,7 @@
"name": "পাকিস্তানি রুপি"
},
"PAB": {
- "name": "পানামা বেলবোয়া"
+ "name": "পানামানিয়ান বালবোয়া"
},
"PGK": {
"name": "পাপুয়া নিউ গিনিয়ান কিনা"
@@ -282,7 +279,7 @@
"name": "বতসোয়ানা পুলা"
},
"BOB": {
- "name": "বলিভিয়ানো"
+ "name": "বলিভিয়ান বলিভিয়ানো"
},
"BAM": {
"name": "বসনিয়া এবং হার্জেগোভিনা বিনিমেয় মার্ক"
@@ -367,7 +364,7 @@
"name": "মালয়েশিয়ান রিঙ্গিৎ"
},
"MWK": {
- "name": "মালাউইয়ান কওয়াচ"
+ "name": "মালাউইয়ান কোয়াচা"
},
"EGP": {
"name": "মিশরীয় পাউন্ড"
@@ -462,7 +459,7 @@
"name": "সুদানি পাউন্ড"
},
"SRD": {
- "name": "সুরিনাম ডলার"
+ "name": "সুরিনামিজ ডলার"
},
"SHP": {
"name": "সেন্ট হেলেনা পাউন্ড"
@@ -492,6 +489,12 @@
"HUF": {
"name": "হাঙ্গেরিয়ান ফোরিন্ট"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
}
diff --git a/vendor/commerceguys/intl/resources/currency/brx.json b/vendor/commerceguys/intl/resources/currency/brx.json
index 8159a6424..6220cf99b 100644
--- a/vendor/commerceguys/intl/resources/currency/brx.json
+++ b/vendor/commerceguys/intl/resources/currency/brx.json
@@ -1,16 +1,9 @@
{
- "XAF": {
- "name": "(सीएफ़ए) फ्रानसीसी फेदरेशनी फ्राँ",
- "symbol": "FCFA"
- },
- "CUC": {
- "name": "Cuban Convertible Peso"
+ "VED": {
+ "name": "Bolívar Soberano"
},
- "SSP": {
- "name": "South Sudanese Pound"
- },
- "TMT": {
- "name": "Turkmenistani Manat"
+ "SLE": {
+ "name": "Sierra Leonean Leone"
},
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
@@ -21,249 +14,323 @@
"AFN": {
"name": "अफ़ग़ानी"
},
- "USD": {
- "name": "अमरिकी डॉलर",
- "symbol": "US$"
- },
- "AWG": {
- "name": "अरुबा गील्डर"
- },
- "ARS": {
- "name": "अर्जेण्टीनी पेसो"
+ "OMR": {
+ "name": "अमाननि रियाल",
+ "symbol": "अ.एम.आर"
},
"ISK": {
- "name": "आईसलैण्ड क्रोना"
+ "name": "आईसलेण्डनि क्र’ना",
+ "symbol": "आई.एस.के"
+ },
+ "AOA": {
+ "name": "आंगलानि क्वान्जा",
+ "symbol": "ए.अ.ए"
},
"AZN": {
- "name": "आज़रबैजानी मनात"
+ "name": "आजेरबाईजाननि मनात",
+ "symbol": "ए.जेत.एन"
+ },
+ "AWG": {
+ "name": "आरूबान फ्ल’रिन",
+ "symbol": "ए.दब्ल्यु.जि"
+ },
+ "ARS": {
+ "name": "आर्जेन्टिनानि पेस’",
+ "symbol": "ए.आर.एस"
},
"AMD": {
- "name": "आरमिनियाई दिर्हाम"
+ "name": "आर्मेनियानि द्राम",
+ "symbol": "ए.एम.दि"
},
"DZD": {
- "name": "आल्जीरी दीनार"
+ "name": "आल्जेरियानि दिनार",
+ "symbol": "दि.जेत.दि"
},
"ALL": {
- "name": "आल्बेनिया का लेक"
+ "name": "आल्बानियानि लेक",
+ "symbol": "अल"
},
- "IDR": {
- "name": "इण्डोनेशियाई रुपिया"
+ "AED": {
+ "name": "इउ.ए.इ दिर्हाम",
+ "symbol": "ए.इ.दि"
+ },
+ "USD": {
+ "name": "इउ.एस डलार",
+ "symbol": "$"
+ },
+ "EUR": {
+ "name": "इउर’",
+ "symbol": "€"
},
"ILS": {
- "name": "इस्राइली शेकेल",
+ "name": "इज्राईलनि गोदान शेकेल",
"symbol": "₪"
},
+ "IDR": {
+ "name": "इण्डोनेशियाई रुपिया"
+ },
"ETB": {
- "name": "ईथिओपिया का बीर्र"
+ "name": "इथिय’पियानि बीर्र",
+ "symbol": "इ.ति.बि"
+ },
+ "EGP": {
+ "name": "ईजिप्तनि पाउण्ड",
+ "symbol": "ई.जि.पि"
},
"IQD": {
- "name": "ईराक़ी दीनार"
+ "name": "ईराकनि दिनार",
+ "symbol": "आइ.किउ.दि"
},
"IRR": {
"name": "ईरानी रीयाल"
},
- "XCD": {
- "name": "ईस्ट करिबियन डॉलर",
- "symbol": "EC$"
+ "UGX": {
+ "name": "उगाण्डानि शिलिं",
+ "symbol": "इउ.जि.एक्स"
},
"UZS": {
- "name": "ऊज़बेक सुम"
- },
- "KPW": {
- "name": "ऊत्तर कोरियाई वोन"
+ "name": "उजबेकिस्ताननि स’म",
+ "symbol": "इउ.जेत.एस"
},
"UYU": {
- "name": "ऊरुगुए का ऊरुगुआयो पेसो"
+ "name": "उरुगुवेनि पेस’",
+ "symbol": "इउ.वाई.इउ"
},
- "AOA": {
- "name": "एंगोला क्वानज़ा"
+ "ERN": {
+ "name": "एरित्रीयानि नाकफा",
+ "symbol": "इ.आर.एन"
},
"SVC": {
"name": "एल सालवादर कोलोन"
},
- "ERN": {
- "name": "ऐरित्रीया का नाफ़का"
- },
"AUD": {
"name": "ऑस्ट्रेलियन डॉलर",
"symbol": "A$"
},
- "OMR": {
- "name": "ओमानी रियाल"
- },
- "QAR": {
- "name": "क़तारी रीयाल"
+ "CRC": {
+ "name": "क’स्टा रिकानि कल’न",
+ "symbol": "सि.आर.सि"
},
- "CAD": {
- "name": "कनेडियन डॉलर",
- "symbol": "CA$"
+ "CDF": {
+ "name": "कंग’नि फ्रांक",
+ "symbol": "सि.दि.एफ"
},
"KHR": {
"name": "कंबोडिया का रिएल"
},
+ "KMF": {
+ "name": "कम’र’नि फ्रांक",
+ "symbol": "के.एम.एफ"
+ },
+ "COP": {
+ "name": "कल’म्बयानि पेस’",
+ "symbol": "सि.अ.पि"
+ },
"KZT": {
- "name": "क़ाज़ाख़स्तान तेंगे"
+ "name": "काजाखस्ताननि तेंगे",
+ "symbol": "के.जेत.ति"
},
- "CVE": {
- "name": "काप वेर्दे का एस्कुदो"
+ "QAR": {
+ "name": "कातारनि रियाल",
+ "symbol": "किउ.ए.आर"
},
- "KES": {
- "name": "किनियाई शीलींग"
+ "CAD": {
+ "name": "कानाडानि डलार",
+ "symbol": "सि.ए $"
+ },
+ "CUP": {
+ "name": "किउबानि पेस’",
+ "symbol": "सि.इउ.पि"
+ },
+ "CUC": {
+ "name": "किउबानि सोलायहाथाव पेस’",
+ "symbol": "सि.इउ.सि"
},
"KGS": {
- "name": "क़ीर्ग़ीज़स्तानी सोम"
+ "name": "कीर्गीस्ताननि स’म",
+ "symbol": "के.जि.एस"
},
"KWD": {
- "name": "क़ुवैती दीनार"
+ "name": "कुवैतनि दिनार",
+ "symbol": "के.दब्ल्यु.दि"
},
- "KYD": {
- "name": "कैमान द्वीप का डॉलर"
- },
- "CDF": {
- "name": "कॉंगोलीज़ फ्राँ"
+ "KES": {
+ "name": "केनियानि शिलिं",
+ "symbol": "के.इ.एस"
},
- "CRC": {
- "name": "कॉस्टा रीका का कोलोन"
+ "CVE": {
+ "name": "केप भेर्देनि एस्कुद’",
+ "symbol": "सि.भि.इ"
},
- "KMF": {
- "name": "कोमोरो का फ्राँ"
+ "KYD": {
+ "name": "कैमेन द्वीपनि डलार",
+ "symbol": "के.वाई.दि"
},
- "COP": {
- "name": "कोलम्बियाई पेसो"
+ "ZAR": {
+ "name": "खोला आफ्रिकानि राण्ड",
+ "symbol": "जेत.ए.आर"
},
- "CUP": {
- "name": "क्युबा का पेसो"
+ "KRW": {
+ "name": "खोला करियानि व’न",
+ "symbol": "₩"
},
- "HRK": {
- "name": "क्रोएशियाई कुना"
+ "SSP": {
+ "name": "खोला सुदानारि पाउण्ड",
+ "symbol": "एस.एस.पि"
},
"GMD": {
- "name": "गाँबिया का दलासी"
+ "name": "गाम्बियानि दालासि",
+ "symbol": "जि.एम.दि"
},
"GNF": {
- "name": "गीनी फ्राँ"
- },
- "GYD": {
- "name": "गुयाना डॉलर"
+ "name": "गिनीयानि फ्रांक",
+ "symbol": "जि.एन.एफ"
},
"GTQ": {
- "name": "ग्वातेमाला क़्वेत्ज़ाल"
+ "name": "गुआतेमालानि क्वेत्जाल",
+ "symbol": "जि.ति.किउ"
},
- "GHS": {
- "name": "घाना चेदी"
+ "GYD": {
+ "name": "गुयानानि डलार",
+ "symbol": "जि.वाई.दि"
},
- "CLP": {
- "name": "चिली पेसो"
+ "GHS": {
+ "name": "घानानि सेदि",
+ "symbol": "जि.ऐत्स.एस"
},
"CNY": {
- "name": "चीनी युआन रेनमीनबी",
- "symbol": "CN¥"
+ "name": "चाइनीज युवान",
+ "symbol": "सिएन¥"
+ },
+ "CLP": {
+ "name": "चिलीनि पेस’",
+ "symbol": "सि.एल.पि"
},
"CZK": {
- "name": "चेक गनतंत्र का कोरुना"
+ "name": "चेखनि करुना",
+ "symbol": "सि.जेद.के"
},
- "JMD": {
- "name": "जमाईका का डॉलर"
+ "GEL": {
+ "name": "जर्जियानि लारी",
+ "symbol": "जि.इ.एल"
+ },
+ "JOD": {
+ "name": "जर्डाननि दिनार",
+ "symbol": "जे.अ.दि"
},
"JPY": {
- "name": "जापानी येन",
+ "name": "जापानीज येन",
"symbol": "JP¥"
},
+ "JMD": {
+ "name": "जामाईकानि डलार",
+ "symbol": "जे.एम.दि"
+ },
"ZMW": {
- "name": "ज़ाम्बियाई क्वाचा"
+ "name": "जाम्बियानि क्वाचा"
},
"DJF": {
- "name": "जीबुती फ्राँ"
+ "name": "जिबौतिनि फ्रांक",
+ "symbol": "दि.जे.एफ"
},
"GIP": {
- "name": "जीब्रालटर का पौण्ड"
- },
- "GEL": {
- "name": "जॉर्जिया का लारी"
- },
- "JOD": {
- "name": "जोर्डनी दीनार"
+ "name": "जिब्राल्टारनि पाउण्ड",
+ "symbol": "जि.आइ.पि"
},
"TOP": {
"name": "टॉंगा पाईंगा"
},
- "DKK": {
- "name": "डेनमार्क का क्रोन"
- },
"DOP": {
- "name": "डॉमीनीकन पेसो"
+ "name": "डमिनिकानि पेस’",
+ "symbol": "डि.अ.पि"
+ },
+ "DKK": {
+ "name": "डेनमार्कनि क्र’न",
+ "symbol": "दि.के.के"
},
"TWD": {
- "name": "ताईवानी नया डॉलर",
- "symbol": "NT$"
+ "name": "ताईवाननि गोदान डलार",
+ "symbol": "एन.ति$"
},
"TJS": {
- "name": "ताजीक़ीस्तानी सोमोनी"
+ "name": "ताजिकिस्ताननि सम’नि",
+ "symbol": "ति.जे.एस"
},
"TZS": {
- "name": "तान्ज़ेनियाई शीलींग"
+ "name": "तान्जानियानि शिलिं",
+ "symbol": "ति.जेत.एस"
},
- "TRY": {
- "name": "तुर्की नया लीरा"
+ "TMT": {
+ "name": "तुर्कमेनीस्ताननि मानात",
+ "symbol": "ति.एम.ति"
},
- "TND": {
- "name": "त्युनीसी दीनर"
+ "TRY": {
+ "name": "तुर्कीनि लीरा",
+ "symbol": "ति.आर.वाई"
},
"TTD": {
- "name": "त्रीनीदाद एवं टोबागो डॉलर"
+ "name": "त्रिनिदाद आरो तबाग’ डलार",
+ "symbol": "ति.ति.डि"
+ },
+ "TND": {
+ "name": "त्सुनीसीयानि दिनार",
+ "symbol": "ति.एन.दि"
},
"THB": {
"name": "थाई बाह्ट"
},
- "ZAR": {
- "name": "दक्षिण अफ़्रीकी रॅण्ड"
+ "NOK": {
+ "name": "नरवैनि क्र’न",
+ "symbol": "एन.अ.के"
},
- "KRW": {
- "name": "दक्षिण कोरियाई वोन",
- "symbol": "₩"
+ "NGN": {
+ "name": "नाइजेरियानि नायरा",
+ "symbol": "एन.जि.एन"
},
"NAD": {
- "name": "नमीबिया डॉलर"
- },
- "NGN": {
- "name": "नाईजीरीयाई नाईरा"
+ "name": "नामिबियानि डलार",
+ "symbol": "एन.ए.दि"
},
"NIO": {
- "name": "नीकारागुआई सुवर्ण कोर्दोबा"
+ "name": "निकारागुआनि कर्द’बा",
+ "symbol": "एन.आई.अ"
},
"ANG": {
- "name": "नेदरलैण्ड एन्टीलीज़ का गील्डर"
+ "name": "नेदारलेण्डनि एन्टिलियान गिल्डार",
+ "symbol": "ए.एन.जि"
},
"NPR": {
"name": "नेपाली रुपी"
},
- "NOK": {
- "name": "नॉर्वे का क्रोन"
- },
"NZD": {
"name": "न्यूज़ीलैंड डॉलर",
"symbol": "NZ$"
},
- "PAB": {
- "name": "पनामा का बालबोआ"
+ "PLN": {
+ "name": "पलेण्डनि ज्ल’टी",
+ "symbol": "पि.एल.एन"
},
"PKR": {
"name": "पाकिस्तानी रुपया"
},
+ "PAB": {
+ "name": "पानामानि बाल्ब’आ",
+ "symbol": "पि.ए.बि"
+ },
"PGK": {
"name": "पापुआ न्यु गीनी का कीना"
},
"PYG": {
- "name": "पारागुऐई गुआरानी"
+ "name": "पारागुवेनि गुआरानी",
+ "symbol": "पि.आई.जि"
},
"PEN": {
- "name": "पेरुवाई सोल"
- },
- "PLN": {
- "name": "पोलिश ज़्लॉटी"
+ "name": "पेरूनि सल",
+ "symbol": "पि.इ.एन"
},
"FKP": {
- "name": "फाल्कलैण्ड द्वीप पौण्ड"
+ "name": "फ’कलेण्ड द्वीपफोरनि पाउण्ड",
+ "symbol": "एफ.के.पि"
},
"FJD": {
"name": "फ़िजी का डॉलर"
@@ -276,146 +343,169 @@
"name": "फ्रानसीसी फेदेरेशनी फ्राँ",
"symbol": "CFPF"
},
- "XOF": {
- "name": "फ्रानसीसी फेदेरेशनी बीसीएआओ फ्राँ",
- "symbol": "F CFA"
- },
- "BMD": {
- "name": "बरमुडी डॉलर"
+ "BWP": {
+ "name": "बत्स्वानानि पुला",
+ "symbol": "बि.दब्ल्यु.पि"
},
- "BGN": {
- "name": "बल्गेरियाई लेव"
+ "BOB": {
+ "name": "बलिभियानि बलिभियान’",
+ "symbol": "बि.अ.बि"
},
- "BSD": {
- "name": "बहामा डॉलर"
+ "BAM": {
+ "name": "बसनिया-हार्जेगभिनानि सोलायहाथाव मार्क",
+ "symbol": "बि.ए.एम"
},
"BDT": {
"name": "बांगलादेश टका"
},
"BBD": {
- "name": "बारबादोस डॉलर"
+ "name": "बारबाद’सनि डलार",
+ "symbol": "बि.बि.दि"
+ },
+ "BMD": {
+ "name": "बारमुडानि डलार",
+ "symbol": "बि.एम.डि"
},
"BHD": {
- "name": "बाहरैनी दीनार"
+ "name": "बाहरैननि दिनार",
+ "symbol": "बि.ऐत्स.दि"
+ },
+ "BSD": {
+ "name": "बाहामासनि डलार",
+ "symbol": "बि.एस.दि"
},
"BIF": {
- "name": "बुरुंदी फ्राँ"
+ "name": "बुरूण्डीनि फ्रांक",
+ "symbol": "बि.आइ.एफ"
+ },
+ "BGN": {
+ "name": "बुल्गारियानि लेभ",
+ "symbol": "बि.जि.एन"
},
"BYN": {
- "name": "बेलारुसी रूबल"
+ "name": "बेलारुसनि रूबल",
+ "symbol": "बि.वाई.एन"
},
"BZD": {
- "name": "बेलीज़ डॉलर"
- },
- "BWP": {
- "name": "बोट्सवाना का पुलाट"
- },
- "BOB": {
- "name": "बोलिवियानो"
- },
- "BAM": {
- "name": "बोसनिया हेर्ज़ेगोविना कनवर्टीबल मार्क"
+ "name": "बेलीज डलार",
+ "symbol": "बि.जेद.डि"
},
"BRL": {
- "name": "ब्रज़ीली रेयाल",
+ "name": "ब्राजिलनि रीयाल",
"symbol": "R$"
},
"GBP": {
- "name": "ब्रितन का पौण्ड स्टर्लिग",
+ "name": "ब्रिटिश पाउण्ड",
"symbol": "£"
},
"BND": {
"name": "ब्रुनई डॉलर"
},
+ "INR": {
+ "name": "भारतनि रुपी",
+ "symbol": "₹"
+ },
"BTN": {
"name": "भुतान का नगुलत्रुम"
},
+ "VES": {
+ "name": "भेनेजुवेलानि बलिभार",
+ "symbol": "भि.इ.एस"
+ },
+ "MRU": {
+ "name": "म’रिशियानि ऊगुया",
+ "symbol": "एम.आर.इउ"
+ },
+ "MNT": {
+ "name": "मंगलियानि तुग्रीक",
+ "symbol": "एम.एन.ति"
+ },
+ "MZN": {
+ "name": "मजाम्बिकनि मेटिकेल",
+ "symbol": "एम.जेत.एन"
+ },
+ "MAD": {
+ "name": "मरक्क’नि दिर्हाम",
+ "symbol": "एम.ए.दि"
+ },
+ "MUR": {
+ "name": "मरिसियानि रुपी",
+ "symbol": "एम.इउ.आर"
+ },
"MYR": {
"name": "मलेशियन रिंगित"
},
- "MKD": {
- "name": "मसेदोनियाई दीनार"
+ "MDL": {
+ "name": "मल्ड’भानि लिउ",
+ "symbol": "एम.डि.एल"
},
"MOP": {
- "name": "माकाव पाताचा"
- },
- "MGA": {
- "name": "मादागास्करी आरिआरी"
+ "name": "माकाउनि पाताका",
+ "symbol": "एम.अ.पि"
},
"MVR": {
"name": "मालदीव द्वीप का रूफिया"
},
+ "MGA": {
+ "name": "मालागासी आरिआरी",
+ "symbol": "एम.जि.ए"
+ },
"MWK": {
- "name": "मालवी क्वाचा"
+ "name": "मालावीनि क्वाचा",
+ "symbol": "एम.दब्ल्यु.के"
},
- "EGP": {
- "name": "मिस्री पाउण्ड"
+ "XAF": {
+ "name": "मिरु आफ्रिकानि सि.एफ.ए फ्रांक",
+ "symbol": "FCFA"
},
"MXN": {
- "name": "मेक्सिकन पेसो",
- "symbol": "MX$"
- },
- "MZN": {
- "name": "मोज़ांबीक मेतीकाल"
- },
- "MAD": {
- "name": "मोरक्किय दिर्हाम"
+ "name": "मेक्सिकान पेस’",
+ "symbol": "एम.एक्स $"
},
- "MUR": {
- "name": "मोरिशियस का रूपी"
- },
- "MDL": {
- "name": "मोल्डोवियाई ल"
- },
- "MNT": {
- "name": "मौंगोलीयाई तुग्रीक"
- },
- "MRU": {
- "name": "मौरिटानी ऊगुया"
+ "MKD": {
+ "name": "मेसेड’नियानि देनार",
+ "symbol": "एम.के.दि"
},
"MMK": {
"name": "म्यानमारी क्याट"
},
- "YER": {
- "name": "यमनी रीयाल"
- },
"UAH": {
- "name": "युक्रेनी ह्रीवनिया"
+ "name": "युक्रेननि ह्रीभनिया",
+ "symbol": "इउ.ए.ऐत्स"
},
- "UGX": {
- "name": "युगाँडाई शीलींग"
- },
- "EUR": {
- "name": "युरो",
- "symbol": "€"
- },
- "INR": {
- "name": "रां",
- "symbol": "₹"
+ "YER": {
+ "name": "येमेननि रियाल",
+ "symbol": "वाई.इ.आर"
},
- "RWF": {
- "name": "रुआँदा फ्राँ"
+ "RON": {
+ "name": "रमानियानि लिउ",
+ "symbol": "आर.अ.एन"
},
"RUB": {
- "name": "रूसी रूबल"
+ "name": "रासियानि रूबल",
+ "symbol": "रूब"
},
- "RON": {
- "name": "रोमानियाई ल"
- },
- "LSL": {
- "name": "लसोथो का लोटी"
+ "RWF": {
+ "name": "रुवान्दानि फ्रांक"
},
"LAK": {
"name": "लाओस का कीप"
},
"LYD": {
- "name": "लिबियाई दीनार"
+ "name": "लिबियानि दिनार",
+ "symbol": "एल.वाई.दि"
+ },
+ "LRD": {
+ "name": "लीबेरियानि डलार",
+ "symbol": "एल.आर.दि"
},
"LBP": {
- "name": "लीबानी पौंड"
+ "name": "लेबान’ननि पाउण्ड",
+ "symbol": "एल.बि.पि"
},
- "LRD": {
- "name": "लीबेरियाई डॉलर"
+ "LSL": {
+ "name": "लेस’थ’नि लटि",
+ "symbol": "एल.एस.एल"
},
"VUV": {
"name": "वनुआटु वटु"
@@ -424,74 +514,96 @@
"name": "वीयतनामी डॉंग",
"symbol": "₫"
},
- "VES": {
- "name": "वेनेज़ुएलाई बोलिवार"
- },
"WST": {
"name": "वेस्टर्न समोआ ताला"
},
"LKR": {
"name": "श्री लंका रूपी"
},
- "AED": {
- "name": "संयुक्त अरब अमीरात का दिर्हाम"
- },
- "RSD": {
- "name": "सर्बियाई दिनार"
+ "SOS": {
+ "name": "समालियानि शिलिं",
+ "symbol": "एस.अ.एस"
},
"SAR": {
- "name": "साउदी रियाल"
+ "name": "साउदि रियाल",
+ "symbol": "एस.ए.आर"
},
"STN": {
- "name": "साँव तोमे एवं प्रीन्सीपे का डोब्रा"
+ "name": "साऊ तमे आरो प्रिन्सिपनि दब्रा",
+ "symbol": "एस.ति.एन"
+ },
+ "XCD": {
+ "name": "सानजा केरिबियान डलार",
+ "symbol": "इ.सि $"
+ },
+ "RSD": {
+ "name": "सार्बियानि दिनार",
+ "symbol": "आर.एस.दि"
+ },
+ "KPW": {
+ "name": "साहा करियानि व’न",
+ "symbol": "के.पि.दब्ल्यु"
},
"SGD": {
"name": "सिंगापुर डॉलर"
},
"SLL": {
- "name": "सीयेरा लीयोनेई लीयोने"
+ "name": "सीयेर्रा लिय’ननि लीयन",
+ "symbol": "एस.एल.एल"
},
"SYP": {
- "name": "सीरियाई पौंड"
+ "name": "सीरियानि पाउण्ड",
+ "symbol": "एस.वाई.पि"
+ },
+ "CHF": {
+ "name": "सुईस फ्रांक",
+ "symbol": "सि.ऐत्स.एफ"
},
"SDG": {
- "name": "सुदानी पौंड"
+ "name": "सुदाननि पाउण्ड",
+ "symbol": "एस.दि.जि"
},
"SRD": {
- "name": "सुरीनाम डॉलर"
+ "name": "सुरीनामनि डलार",
+ "symbol": "एस.आर.डि"
},
"SHP": {
- "name": "सेंट हेलीना पौंड"
+ "name": "सैन्ट हेलेनानि पाउण्ड",
+ "symbol": "एस.ऐत्स.पि"
},
"SCR": {
- "name": "सेशेल रूपी"
+ "name": "सैशेल्लेसनि रूपी",
+ "symbol": "एस.सि.आर"
},
- "SOS": {
- "name": "सोमाली शीलींग"
+ "XOF": {
+ "name": "सोनाब आफ्रिकानि सि.एफ.ए फ्रांक",
+ "symbol": "एफ सि.एफ.ए"
},
"SBD": {
"name": "सोलोमन द्वीप का डॉलर"
},
"SZL": {
- "name": "स्वाज़ीलैण्ड लीलांगेनी"
- },
- "CHF": {
- "name": "स्विस फ़्रैंक"
+ "name": "स्वाजी लीलांगेनी",
+ "symbol": "एस.जेत.एल"
},
"SEK": {
- "name": "स्वीडन क्रोना"
- },
- "HUF": {
- "name": "हंगेरियाई फ़ोरिण्ट"
- },
- "HTG": {
- "name": "हाईती गुर्द"
+ "name": "स्वीडेननि क्र’ना",
+ "symbol": "एस.इ.के"
},
"HKD": {
- "name": "हाँग काँग डॉलर",
- "symbol": "HK$"
+ "name": "हंकं डलार",
+ "symbol": "ऐत्स.के$"
},
"HNL": {
- "name": "हॉंडुरास लेंपीरा"
+ "name": "हन्दुरासनि लेम्पिरा",
+ "symbol": "ऐत्स.एन.एल"
+ },
+ "HTG": {
+ "name": "हाईतीनि गूर्द",
+ "symbol": "ऐत्स.ति.जि"
+ },
+ "HUF": {
+ "name": "हांगारीनि फरिन्त",
+ "symbol": "ऐत्स.इउ.एफ"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/bs-Cyrl.json b/vendor/commerceguys/intl/resources/currency/bs-Cyrl.json
index 7249a849d..fa5c5482f 100644
--- a/vendor/commerceguys/intl/resources/currency/bs-Cyrl.json
+++ b/vendor/commerceguys/intl/resources/currency/bs-Cyrl.json
@@ -462,9 +462,6 @@
"HNL": {
"name": "Хондурашка лемпира"
},
- "HRK": {
- "name": "Хрватска куна"
- },
"CZK": {
"name": "Чешка круна",
"symbol": "Кч"
@@ -484,6 +481,9 @@
"LKR": {
"name": "Шриланканска рупија"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"XOF": {
"name": "CFA франак BCEAO",
"symbol": "F CFA"
@@ -496,6 +496,9 @@
"name": "CFP франак",
"symbol": "CFPF"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
}
diff --git a/vendor/commerceguys/intl/resources/currency/bs.json b/vendor/commerceguys/intl/resources/currency/bs.json
index 593bf85c6..f4bc68410 100644
--- a/vendor/commerceguys/intl/resources/currency/bs.json
+++ b/vendor/commerceguys/intl/resources/currency/bs.json
@@ -53,6 +53,9 @@
"BWP": {
"name": "Bocvanska pula"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Bolivijski boliviano"
},
@@ -161,10 +164,6 @@
"HKD": {
"name": "Honkonški dolar"
},
- "HRK": {
- "name": "Hrvatska kuna",
- "symbol": "kn"
- },
"INR": {
"name": "Indijska rupija",
"symbol": "₹"
@@ -379,6 +378,9 @@
"SCR": {
"name": "Sejšelska rupija"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SLL": {
"name": "Sijeraleonski leone"
},
diff --git a/vendor/commerceguys/intl/resources/currency/ca.json b/vendor/commerceguys/intl/resources/currency/ca.json
index 5f0be862d..9490c7664 100644
--- a/vendor/commerceguys/intl/resources/currency/ca.json
+++ b/vendor/commerceguys/intl/resources/currency/ca.json
@@ -15,6 +15,9 @@
"ETB": {
"name": "birr etíop"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"VES": {
"name": "bolívar veneçolà"
},
@@ -234,9 +237,6 @@
"LAK": {
"name": "kip laosià"
},
- "HRK": {
- "name": "kuna"
- },
"MWK": {
"name": "kwacha malawià"
},
@@ -436,6 +436,9 @@
"PKR": {
"name": "rupia pakistanesa"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "sol"
},
diff --git a/vendor/commerceguys/intl/resources/currency/ce.json b/vendor/commerceguys/intl/resources/currency/ce.json
index 60052cda0..6157617be 100644
--- a/vendor/commerceguys/intl/resources/currency/ce.json
+++ b/vendor/commerceguys/intl/resources/currency/ce.json
@@ -1,10 +1,16 @@
{
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"LSL": {
"name": "Lesotho Loti"
},
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
@@ -450,9 +456,6 @@
"name": "Французийн Тийна океанан франк",
"symbol": "CFPF"
},
- "HRK": {
- "name": "Хорватин куна"
- },
"CZK": {
"name": "Чехин крона"
},
diff --git a/vendor/commerceguys/intl/resources/currency/cs.json b/vendor/commerceguys/intl/resources/currency/cs.json
index fd0219fbf..552d24c36 100644
--- a/vendor/commerceguys/intl/resources/currency/cs.json
+++ b/vendor/commerceguys/intl/resources/currency/cs.json
@@ -55,6 +55,9 @@
"BTN": {
"name": "bhútánský ngultrum"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "bolivijský boliviano"
},
@@ -166,9 +169,6 @@
"CLP": {
"name": "chilské peso"
},
- "HRK": {
- "name": "chorvatská kuna"
- },
"INR": {
"name": "indická rupie"
},
@@ -387,6 +387,9 @@
"SCR": {
"name": "seychelská rupie"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SLL": {
"name": "sierro-leonský leone"
},
diff --git a/vendor/commerceguys/intl/resources/currency/cv.json b/vendor/commerceguys/intl/resources/currency/cv.json
new file mode 100644
index 000000000..378a34d60
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/currency/cv.json
@@ -0,0 +1,501 @@
+{
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
+ "SVC": {
+ "name": "Salvadoran Colón"
+ },
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
+ "UYW": {
+ "name": "Uruguayan Nominal Wage Index Unit"
+ },
+ "ZWL": {
+ "name": "Zimbabwean Dollar (2009)"
+ },
+ "AUD": {
+ "name": "Австрали долларӗ",
+ "symbol": "A$"
+ },
+ "AZN": {
+ "name": "Азербайджан маначӗ"
+ },
+ "ALL": {
+ "name": "Албани лекӗ"
+ },
+ "DZD": {
+ "name": "Алжир динарӗ"
+ },
+ "AOA": {
+ "name": "Ангола кванзӗ"
+ },
+ "USD": {
+ "name": "АПШ долларӗ",
+ "symbol": "$"
+ },
+ "AED": {
+ "name": "АПЭ дирхамӗ"
+ },
+ "ARS": {
+ "name": "Аргентина песийӗ"
+ },
+ "AMD": {
+ "name": "Армяни драмӗ"
+ },
+ "AWG": {
+ "name": "Аруба флоринӗ"
+ },
+ "AFN": {
+ "name": "афганийӗ"
+ },
+ "BSD": {
+ "name": "Багам долларӗ"
+ },
+ "BDT": {
+ "name": "Бангладеш таки"
+ },
+ "BBD": {
+ "name": "Барбадос долларӗ"
+ },
+ "BHD": {
+ "name": "Бахрейн динарӗ"
+ },
+ "BYN": {
+ "name": "Беларуҫ тенкӗ"
+ },
+ "BZD": {
+ "name": "Белиз долларӗ"
+ },
+ "BMD": {
+ "name": "Бермуд долларӗ"
+ },
+ "BGN": {
+ "name": "Болгари левӗ"
+ },
+ "BOB": {
+ "name": "Боливи боливианӗ"
+ },
+ "BAM": {
+ "name": "Боснипе Герцеговина конвертланакан марки"
+ },
+ "BWP": {
+ "name": "Ботсвана пули"
+ },
+ "BRL": {
+ "name": "Бразили реалӗ",
+ "symbol": "R$"
+ },
+ "GBP": {
+ "name": "Британи фунчӗ",
+ "symbol": "£"
+ },
+ "BND": {
+ "name": "Бруней долларӗ"
+ },
+ "BIF": {
+ "name": "Бурунди франкӗ"
+ },
+ "BTN": {
+ "name": "Бутан нгултрумӗ"
+ },
+ "VUV": {
+ "name": "Вануату ватуйӗ"
+ },
+ "HUF": {
+ "name": "Венгри форинчӗ"
+ },
+ "VES": {
+ "name": "Венесуэла боливарӗ"
+ },
+ "VND": {
+ "name": "Вьетнам донгӗ",
+ "symbol": "₫"
+ },
+ "HTG": {
+ "name": "Гаити гурдӗ"
+ },
+ "GYD": {
+ "name": "Гайана долларӗ"
+ },
+ "GMD": {
+ "name": "Гамби даласийӗ"
+ },
+ "GHS": {
+ "name": "Гана седийӗ"
+ },
+ "GTQ": {
+ "name": "Гватемала кетсалӗ"
+ },
+ "GNF": {
+ "name": "Гвиней франкӗ"
+ },
+ "GIP": {
+ "name": "Гибралтар фунчӗ"
+ },
+ "HNL": {
+ "name": "Гондурас лемпирӗ"
+ },
+ "HKD": {
+ "name": "Гонконг долларӗ",
+ "symbol": "HK$"
+ },
+ "GEL": {
+ "name": "Грузи ларийӗ"
+ },
+ "DKK": {
+ "name": "Дани кронӗ"
+ },
+ "DJF": {
+ "name": "Джибути франкӗ"
+ },
+ "DOP": {
+ "name": "Доминикан песийӗ"
+ },
+ "EUR": {
+ "name": "евро",
+ "symbol": "€"
+ },
+ "EGP": {
+ "name": "Египет фунчӗ"
+ },
+ "ZMW": {
+ "name": "Замби квачи"
+ },
+ "INR": {
+ "name": "Инди рупийӗ",
+ "symbol": "₹"
+ },
+ "IDR": {
+ "name": "Индонези рупийӗ"
+ },
+ "JOD": {
+ "name": "Иордан динарӗ"
+ },
+ "IQD": {
+ "name": "Ирак динарӗ"
+ },
+ "IRR": {
+ "name": "Иран риалӗ"
+ },
+ "ISK": {
+ "name": "Исланди кронӗ"
+ },
+ "YER": {
+ "name": "Йемен риалӗ"
+ },
+ "CVE": {
+ "name": "Кабо-Верде эскудӗ"
+ },
+ "KZT": {
+ "name": "Казах тенгейӗ"
+ },
+ "KYD": {
+ "name": "Кайман утравӗсен долларӗ"
+ },
+ "KHR": {
+ "name": "Камбоджа риелӗ"
+ },
+ "CAD": {
+ "name": "Канада долларӗ",
+ "symbol": "CA$"
+ },
+ "ZAR": {
+ "name": "Кӑнтӑр Африка рэндӗ"
+ },
+ "SSP": {
+ "name": "Кӑнтӑр Судан фунчӗ"
+ },
+ "QAR": {
+ "name": "Катар риалӗ"
+ },
+ "KES": {
+ "name": "Кени шиллингӗ"
+ },
+ "KGS": {
+ "name": "Киргиз сомӗ"
+ },
+ "CNY": {
+ "name": "Китай юанӗ",
+ "symbol": "CN¥"
+ },
+ "COP": {
+ "name": "Колумби песийӗ"
+ },
+ "KMF": {
+ "name": "Комора франкӗ"
+ },
+ "CDF": {
+ "name": "Конголези франкӗ"
+ },
+ "KRW": {
+ "name": "Корей вони",
+ "symbol": "₩"
+ },
+ "CRC": {
+ "name": "Коста-Рика колонӗ"
+ },
+ "CUC": {
+ "name": "Куба конвертланакан песийӗ"
+ },
+ "CUP": {
+ "name": "Куба песийӗ"
+ },
+ "KWD": {
+ "name": "Кувейт динарӗ"
+ },
+ "XOF": {
+ "name": "КФА ВСЕАО франкӗ",
+ "symbol": "F CFA"
+ },
+ "KPW": {
+ "name": "КХДР вони"
+ },
+ "LAK": {
+ "name": "Лаос кипӗ"
+ },
+ "SLL": {
+ "name": "леонӗ"
+ },
+ "LSL": {
+ "name": "Лесото лотийӗ"
+ },
+ "LRD": {
+ "name": "Либери долларӗ"
+ },
+ "LBP": {
+ "name": "Ливан фунчӗ"
+ },
+ "LYD": {
+ "name": "Ливи динарӗ"
+ },
+ "MUR": {
+ "name": "Маврики рупийӗ"
+ },
+ "MRU": {
+ "name": "Мавритани угийӗ"
+ },
+ "MOP": {
+ "name": "Макао патаки"
+ },
+ "MKD": {
+ "name": "Македони денарӗ"
+ },
+ "MWK": {
+ "name": "Малави квачӗ"
+ },
+ "MGA": {
+ "name": "Малагаси ариарийӗ"
+ },
+ "MYR": {
+ "name": "Малайзи ринггичӗ"
+ },
+ "MVR": {
+ "name": "Мальдивсен руфийӗ"
+ },
+ "MAD": {
+ "name": "Марокко дирхамӗ"
+ },
+ "MXN": {
+ "name": "Мексика песийӗ",
+ "symbol": "MX$"
+ },
+ "MZN": {
+ "name": "Мозамбик метикалӗ"
+ },
+ "MDL": {
+ "name": "Молдова лайӗ"
+ },
+ "MNT": {
+ "name": "Монголи тугрикӗ"
+ },
+ "MMK": {
+ "name": "Мьянман кьятӗ"
+ },
+ "NAD": {
+ "name": "Намиби долларӗ"
+ },
+ "NPR": {
+ "name": "Непал рупийӗ"
+ },
+ "NGN": {
+ "name": "Нигери найрӗ"
+ },
+ "ANG": {
+ "name": "Нидерланд Антиллиан гульденӗ"
+ },
+ "NIO": {
+ "name": "Никарагуа кордобӗ"
+ },
+ "NOK": {
+ "name": "Норвеги кронӗ"
+ },
+ "OMR": {
+ "name": "Оман риалӗ"
+ },
+ "PKR": {
+ "name": "пакистан рупийӗ"
+ },
+ "PAB": {
+ "name": "Панама бальбоа"
+ },
+ "PGK": {
+ "name": "Папуа – Ҫӗнӗ Гвиней кини"
+ },
+ "PYG": {
+ "name": "Парагвай гуаранӗ"
+ },
+ "PEN": {
+ "name": "Перу солӗ"
+ },
+ "PLN": {
+ "name": "Польша злотыйӗ"
+ },
+ "RUB": {
+ "name": "Раҫҫей тенкӗ",
+ "symbol": "₽"
+ },
+ "RWF": {
+ "name": "Руанда франкӗ"
+ },
+ "RON": {
+ "name": "Румыни лейӗ"
+ },
+ "SHP": {
+ "name": "Сӑваплӑ Елена утравӗн фунчӗ"
+ },
+ "WST": {
+ "name": "Самоа тали"
+ },
+ "STN": {
+ "name": "Сан-Томе тата Принсипи добрӗ"
+ },
+ "SAR": {
+ "name": "Сауд риялӗ"
+ },
+ "SZL": {
+ "name": "Свази лилангенийӗ"
+ },
+ "SCR": {
+ "name": "Сейшел рупийӗ"
+ },
+ "RSD": {
+ "name": "Серби динарӗ"
+ },
+ "SGD": {
+ "name": "Сингапур долларӗ"
+ },
+ "SYP": {
+ "name": "Сири фунчӗ"
+ },
+ "SBD": {
+ "name": "Соломон утравӗсен долларӗ"
+ },
+ "SOS": {
+ "name": "Сомали шиллингӗ"
+ },
+ "SDG": {
+ "name": "Судан фунчӗ"
+ },
+ "SRD": {
+ "name": "Суринам долларӗ"
+ },
+ "NZD": {
+ "name": "Ҫӗнӗ Зеланди долларӗ",
+ "symbol": "NZ$"
+ },
+ "ILS": {
+ "name": "Ҫӗнӗ Израиль шекелӗ",
+ "symbol": "₪"
+ },
+ "TWD": {
+ "name": "Ҫӗнӗ Тайван долларӗ",
+ "symbol": "NT$"
+ },
+ "TJS": {
+ "name": "Таджик сомонийӗ"
+ },
+ "THB": {
+ "name": "Таиланд барӗ"
+ },
+ "TZS": {
+ "name": "Танзани шиллингӗ"
+ },
+ "XAF": {
+ "name": "Тӗп Африка КФА франкӗ",
+ "symbol": "FCFA"
+ },
+ "TOP": {
+ "name": "Тонган паанги"
+ },
+ "TTD": {
+ "name": "Тринидад тата Тобаго долларӗ"
+ },
+ "TND": {
+ "name": "Тунези динарӗ"
+ },
+ "TMT": {
+ "name": "Туркмен маначӗ"
+ },
+ "TRY": {
+ "name": "Турци лири"
+ },
+ "UGX": {
+ "name": "Уганда шиллингӗ"
+ },
+ "UZS": {
+ "name": "Узбек сумӗ"
+ },
+ "UAH": {
+ "name": "Украина гривни"
+ },
+ "UYU": {
+ "name": "Уругвай песийӗ"
+ },
+ "FKP": {
+ "name": "Факланд утравӗсен фунчӗ"
+ },
+ "FJD": {
+ "name": "Фиджи долларӗ"
+ },
+ "PHP": {
+ "name": "Филиппин песийӗ",
+ "symbol": "₱"
+ },
+ "XPF": {
+ "name": "Франци Лӑпкӑ океан франкӗ",
+ "symbol": "CFPF"
+ },
+ "XCD": {
+ "name": "Хӗвелтухӑҫ Карибсем долларӗ",
+ "symbol": "EC$"
+ },
+ "CZK": {
+ "name": "Чехи кронӗ"
+ },
+ "CLP": {
+ "name": "Чили песийӗ"
+ },
+ "CHF": {
+ "name": "Швейцари франкӗ"
+ },
+ "SEK": {
+ "name": "Швеци кронӗ"
+ },
+ "LKR": {
+ "name": "Шри-ланка рупийӗ"
+ },
+ "ERN": {
+ "name": "Эритрей накфӗ"
+ },
+ "ETB": {
+ "name": "Эфиопи бырӗ"
+ },
+ "JMD": {
+ "name": "Ямайка долларӗ"
+ },
+ "JPY": {
+ "name": "Япони иени",
+ "symbol": "JP¥"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/cy.json b/vendor/commerceguys/intl/resources/currency/cy.json
index a8d95e277..40ae052c2 100644
--- a/vendor/commerceguys/intl/resources/currency/cy.json
+++ b/vendor/commerceguys/intl/resources/currency/cy.json
@@ -15,6 +15,9 @@
"ETB": {
"name": "Birr Ethiopia"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"VES": {
"name": "Bolívar Venezuela"
},
@@ -237,9 +240,6 @@
"NOK": {
"name": "Krone Norwy"
},
- "HRK": {
- "name": "Kuna Croatia"
- },
"MWK": {
"name": "Kwacha Malawi"
},
@@ -434,6 +434,9 @@
"name": "Shegel Newydd Israel",
"symbol": "₪"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "Sol Periw"
},
diff --git a/vendor/commerceguys/intl/resources/currency/da.json b/vendor/commerceguys/intl/resources/currency/da.json
index c1519a4c1..9f15a5db9 100644
--- a/vendor/commerceguys/intl/resources/currency/da.json
+++ b/vendor/commerceguys/intl/resources/currency/da.json
@@ -52,6 +52,9 @@
"BTN": {
"name": "bhutansk ngultrum"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "boliviansk boliviano"
},
@@ -232,9 +235,6 @@
"KGS": {
"name": "kirgisisk som"
},
- "HRK": {
- "name": "kroatisk kuna"
- },
"KWD": {
"name": "kuwaitisk dinar"
},
@@ -389,6 +389,9 @@
"SCR": {
"name": "seychellisk rupee"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SLL": {
"name": "sierraleonsk leone"
},
diff --git a/vendor/commerceguys/intl/resources/currency/de-CH.json b/vendor/commerceguys/intl/resources/currency/de-CH.json
index ae8822463..2bba0ae74 100644
--- a/vendor/commerceguys/intl/resources/currency/de-CH.json
+++ b/vendor/commerceguys/intl/resources/currency/de-CH.json
@@ -54,6 +54,9 @@
"BTN": {
"name": "Bhutan-Ngultrum"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Bolivianischer Boliviano"
},
@@ -220,9 +223,6 @@
"BAM": {
"name": "Konvertible Mark Bosnien und Herzegowina"
},
- "HRK": {
- "name": "Kroatischer Kuna"
- },
"CUP": {
"name": "Kubanischer Peso"
},
@@ -387,6 +387,9 @@
"SCR": {
"name": "Seychellen-Rupie"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SLL": {
"name": "Sierra-leonischer Leone"
},
diff --git a/vendor/commerceguys/intl/resources/currency/de.json b/vendor/commerceguys/intl/resources/currency/de.json
index 712bae1e7..70f98517f 100644
--- a/vendor/commerceguys/intl/resources/currency/de.json
+++ b/vendor/commerceguys/intl/resources/currency/de.json
@@ -54,6 +54,9 @@
"BTN": {
"name": "Bhutan-Ngultrum"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Bolivianischer Boliviano"
},
@@ -221,9 +224,6 @@
"BAM": {
"name": "Konvertible Mark Bosnien und Herzegowina"
},
- "HRK": {
- "name": "Kroatischer Kuna"
- },
"CUP": {
"name": "Kubanischer Peso"
},
@@ -388,6 +388,9 @@
"SCR": {
"name": "Seychellen-Rupie"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SLL": {
"name": "Sierra-leonischer Leone"
},
diff --git a/vendor/commerceguys/intl/resources/currency/dz.json b/vendor/commerceguys/intl/resources/currency/dz.json
index b52b81fa0..1636c7446 100644
--- a/vendor/commerceguys/intl/resources/currency/dz.json
+++ b/vendor/commerceguys/intl/resources/currency/dz.json
@@ -32,6 +32,9 @@
"BZD": {
"name": "Belize Dollar"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Bolivian Boliviano"
},
@@ -72,9 +75,6 @@
"CRC": {
"name": "Costa Rican Colón"
},
- "HRK": {
- "name": "Croatian Kuna"
- },
"CUC": {
"name": "Cuban Convertible Peso"
},
@@ -199,9 +199,12 @@
"RSD": {
"name": "Serbian Dinar"
},
- "SLL": {
+ "SLE": {
"name": "Sierra Leonean Leone"
},
+ "SLL": {
+ "name": "Sierra Leonean Leone (1964—2022)"
+ },
"SBD": {
"name": "Solomon Islands Dollar"
},
diff --git a/vendor/commerceguys/intl/resources/currency/el.json b/vendor/commerceguys/intl/resources/currency/el.json
index 5121f9056..70c31c665 100644
--- a/vendor/commerceguys/intl/resources/currency/el.json
+++ b/vendor/commerceguys/intl/resources/currency/el.json
@@ -186,9 +186,6 @@
"GTQ": {
"name": "Κουετσάλ Γουατεμάλας"
},
- "HRK": {
- "name": "Κούνα Κροατίας"
- },
"GEL": {
"name": "Λάρι Γεωργίας"
},
@@ -491,6 +488,12 @@
"NIO": {
"name": "Χρυσή Κόρδοβα Νικαράγουας"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
}
diff --git a/vendor/commerceguys/intl/resources/currency/en-001.json b/vendor/commerceguys/intl/resources/currency/en-001.json
index ac353e93d..418e9fb91 100644
--- a/vendor/commerceguys/intl/resources/currency/en-001.json
+++ b/vendor/commerceguys/intl/resources/currency/en-001.json
@@ -51,6 +51,9 @@
"BTN": {
"name": "Bhutanese Ngultrum"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Bolivian Boliviano"
},
@@ -117,9 +120,6 @@
"CRC": {
"name": "Costa Rican Colón"
},
- "HRK": {
- "name": "Croatian Kuna"
- },
"CUC": {
"name": "Cuban Convertible Peso"
},
@@ -350,7 +350,7 @@
"name": "Polish Zloty"
},
"QAR": {
- "name": "Qatari Rial"
+ "name": "Qatari Riyal"
},
"RON": {
"name": "Romanian Leu"
@@ -379,9 +379,12 @@
"SCR": {
"name": "Seychellois Rupee"
},
- "SLL": {
+ "SLE": {
"name": "Sierra Leonean Leone"
},
+ "SLL": {
+ "name": "Sierra Leonean Leone (1964—2022)"
+ },
"SGD": {
"name": "Singapore Dollar"
},
diff --git a/vendor/commerceguys/intl/resources/currency/en-AU.json b/vendor/commerceguys/intl/resources/currency/en-AU.json
index f750967bd..2b1aa401d 100644
--- a/vendor/commerceguys/intl/resources/currency/en-AU.json
+++ b/vendor/commerceguys/intl/resources/currency/en-AU.json
@@ -51,8 +51,11 @@
"BTN": {
"name": "Bhutanese Ngultrum"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
- "name": "Boliviano"
+ "name": "Bolivian boliviano"
},
"BAM": {
"name": "Bosnia-Herzegovina Convertible Marka"
@@ -112,9 +115,6 @@
"CRC": {
"name": "Costa Rican Colón"
},
- "HRK": {
- "name": "Croatian Kuna"
- },
"CUC": {
"name": "Cuban Convertible Peso"
},
@@ -368,9 +368,12 @@
"name": "Seychellois Rupee",
"symbol": "Rs"
},
- "SLL": {
+ "SLE": {
"name": "Sierra Leonean Leone"
},
+ "SLL": {
+ "name": "Sierra Leonean Leone (1964—2022)"
+ },
"SGD": {
"name": "Singapore Dollar"
},
@@ -459,7 +462,7 @@
"name": "Vanuatu Vatu"
},
"VES": {
- "name": "Venezuelan Bolívar"
+ "name": "Venezuelan bolívar"
},
"VND": {
"name": "Vietnamese Dong"
diff --git a/vendor/commerceguys/intl/resources/currency/en-CA.json b/vendor/commerceguys/intl/resources/currency/en-CA.json
index 2a4df8ddd..9b85d04b5 100644
--- a/vendor/commerceguys/intl/resources/currency/en-CA.json
+++ b/vendor/commerceguys/intl/resources/currency/en-CA.json
@@ -51,6 +51,9 @@
"BTN": {
"name": "Bhutanese Ngultrum"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Bolivian Boliviano"
},
@@ -117,9 +120,6 @@
"CRC": {
"name": "Costa Rican Colón"
},
- "HRK": {
- "name": "Croatian Kuna"
- },
"CUC": {
"name": "Cuban Convertible Peso"
},
@@ -350,7 +350,7 @@
"name": "Polish Zloty"
},
"QAR": {
- "name": "Qatari Rial"
+ "name": "Qatari Riyal"
},
"RON": {
"name": "Romanian Leu"
@@ -361,6 +361,9 @@
"RWF": {
"name": "Rwandan Franc"
},
+ "SHP": {
+ "name": "Saint Helena Pound"
+ },
"SVC": {
"name": "Salvadoran Colón"
},
@@ -379,9 +382,12 @@
"SCR": {
"name": "Seychellois Rupee"
},
- "SLL": {
+ "SLE": {
"name": "Sierra Leonean Leone"
},
+ "SLL": {
+ "name": "Sierra Leonean Leone (1964—2022)"
+ },
"SGD": {
"name": "Singapore Dollar"
},
@@ -404,9 +410,6 @@
"LKR": {
"name": "Sri Lankan Rupee"
},
- "SHP": {
- "name": "St Helena Pound"
- },
"SDG": {
"name": "Sudanese Pound"
},
@@ -449,10 +452,6 @@
"TMT": {
"name": "Turkmenistani Manat"
},
- "USD": {
- "name": "U.S. Dollar",
- "symbol": "US$"
- },
"UGX": {
"name": "Ugandan Shilling"
},
@@ -468,6 +467,10 @@
"UYU": {
"name": "Uruguayan Peso"
},
+ "USD": {
+ "name": "US Dollar",
+ "symbol": "US$"
+ },
"UZS": {
"name": "Uzbekistani Som"
},
diff --git a/vendor/commerceguys/intl/resources/currency/en-GG.json b/vendor/commerceguys/intl/resources/currency/en-GG.json
index 7465255a3..034dd7181 100644
--- a/vendor/commerceguys/intl/resources/currency/en-GG.json
+++ b/vendor/commerceguys/intl/resources/currency/en-GG.json
@@ -51,6 +51,9 @@
"BTN": {
"name": "Bhutanese Ngultrum"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Bolivian Boliviano"
},
@@ -113,9 +116,6 @@
"CRC": {
"name": "Costa Rican Colón"
},
- "HRK": {
- "name": "Croatian Kuna"
- },
"CUC": {
"name": "Cuban Convertible Peso"
},
@@ -346,7 +346,7 @@
"name": "Polish Zloty"
},
"QAR": {
- "name": "Qatari Rial"
+ "name": "Qatari Riyal"
},
"RON": {
"name": "Romanian Leu"
@@ -375,9 +375,12 @@
"SCR": {
"name": "Seychellois Rupee"
},
- "SLL": {
+ "SLE": {
"name": "Sierra Leonean Leone"
},
+ "SLL": {
+ "name": "Sierra Leonean Leone (1964—2022)"
+ },
"SGD": {
"name": "Singapore Dollar"
},
diff --git a/vendor/commerceguys/intl/resources/currency/en-IM.json b/vendor/commerceguys/intl/resources/currency/en-IM.json
index 7465255a3..034dd7181 100644
--- a/vendor/commerceguys/intl/resources/currency/en-IM.json
+++ b/vendor/commerceguys/intl/resources/currency/en-IM.json
@@ -51,6 +51,9 @@
"BTN": {
"name": "Bhutanese Ngultrum"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Bolivian Boliviano"
},
@@ -113,9 +116,6 @@
"CRC": {
"name": "Costa Rican Colón"
},
- "HRK": {
- "name": "Croatian Kuna"
- },
"CUC": {
"name": "Cuban Convertible Peso"
},
@@ -346,7 +346,7 @@
"name": "Polish Zloty"
},
"QAR": {
- "name": "Qatari Rial"
+ "name": "Qatari Riyal"
},
"RON": {
"name": "Romanian Leu"
@@ -375,9 +375,12 @@
"SCR": {
"name": "Seychellois Rupee"
},
- "SLL": {
+ "SLE": {
"name": "Sierra Leonean Leone"
},
+ "SLL": {
+ "name": "Sierra Leonean Leone (1964—2022)"
+ },
"SGD": {
"name": "Singapore Dollar"
},
diff --git a/vendor/commerceguys/intl/resources/currency/en-JE.json b/vendor/commerceguys/intl/resources/currency/en-JE.json
index 7465255a3..034dd7181 100644
--- a/vendor/commerceguys/intl/resources/currency/en-JE.json
+++ b/vendor/commerceguys/intl/resources/currency/en-JE.json
@@ -51,6 +51,9 @@
"BTN": {
"name": "Bhutanese Ngultrum"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Bolivian Boliviano"
},
@@ -113,9 +116,6 @@
"CRC": {
"name": "Costa Rican Colón"
},
- "HRK": {
- "name": "Croatian Kuna"
- },
"CUC": {
"name": "Cuban Convertible Peso"
},
@@ -346,7 +346,7 @@
"name": "Polish Zloty"
},
"QAR": {
- "name": "Qatari Rial"
+ "name": "Qatari Riyal"
},
"RON": {
"name": "Romanian Leu"
@@ -375,9 +375,12 @@
"SCR": {
"name": "Seychellois Rupee"
},
- "SLL": {
+ "SLE": {
"name": "Sierra Leonean Leone"
},
+ "SLL": {
+ "name": "Sierra Leonean Leone (1964—2022)"
+ },
"SGD": {
"name": "Singapore Dollar"
},
diff --git a/vendor/commerceguys/intl/resources/currency/en-PH.json b/vendor/commerceguys/intl/resources/currency/en-MV.json
index c4921b070..9a348cd87 100644
--- a/vendor/commerceguys/intl/resources/currency/en-PH.json
+++ b/vendor/commerceguys/intl/resources/currency/en-MV.json
@@ -40,17 +40,20 @@
"name": "Barbadian Dollar"
},
"BYN": {
- "name": "Belarusian Ruble"
+ "name": "Belarusian Rouble"
},
"BZD": {
"name": "Belize Dollar"
},
"BMD": {
- "name": "Bermudan Dollar"
+ "name": "Bermudian Dollar"
},
"BTN": {
"name": "Bhutanese Ngultrum"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Bolivian Boliviano"
},
@@ -117,9 +120,6 @@
"CRC": {
"name": "Costa Rican Colón"
},
- "HRK": {
- "name": "Croatian Kuna"
- },
"CUC": {
"name": "Cuban Convertible Peso"
},
@@ -220,7 +220,7 @@
},
"JPY": {
"name": "Japanese Yen",
- "symbol": "¥"
+ "symbol": "JP¥"
},
"JOD": {
"name": "Jordanian Dinar"
@@ -268,7 +268,8 @@
"name": "Malaysian Ringgit"
},
"MVR": {
- "name": "Maldivian Rufiyaa"
+ "name": "Maldivian Rufiyaa",
+ "symbol": "Rf"
},
"MRU": {
"name": "Mauritanian Ouguiya"
@@ -343,20 +344,20 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Piso",
+ "name": "Philippine Peso",
"symbol": "₱"
},
"PLN": {
"name": "Polish Zloty"
},
"QAR": {
- "name": "Qatari Rial"
+ "name": "Qatari Riyal"
},
"RON": {
"name": "Romanian Leu"
},
"RUB": {
- "name": "Russian Ruble"
+ "name": "Russian Rouble"
},
"RWF": {
"name": "Rwandan Franc"
@@ -379,9 +380,12 @@
"SCR": {
"name": "Seychellois Rupee"
},
- "SLL": {
+ "SLE": {
"name": "Sierra Leonean Leone"
},
+ "SLL": {
+ "name": "Sierra Leonean Leone (1964—2022)"
+ },
"SGD": {
"name": "Singapore Dollar"
},
@@ -405,7 +409,7 @@
"name": "Sri Lankan Rupee"
},
"SHP": {
- "name": "St. Helena Pound"
+ "name": "St Helena Pound"
},
"SDG": {
"name": "Sudanese Pound"
@@ -466,7 +470,7 @@
},
"USD": {
"name": "US Dollar",
- "symbol": "$"
+ "symbol": "US$"
},
"UZS": {
"name": "Uzbekistani Som"
diff --git a/vendor/commerceguys/intl/resources/currency/en.json b/vendor/commerceguys/intl/resources/currency/en.json
index c4921b070..4fbf73545 100644
--- a/vendor/commerceguys/intl/resources/currency/en.json
+++ b/vendor/commerceguys/intl/resources/currency/en.json
@@ -51,6 +51,9 @@
"BTN": {
"name": "Bhutanese Ngultrum"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Bolivian Boliviano"
},
@@ -117,9 +120,6 @@
"CRC": {
"name": "Costa Rican Colón"
},
- "HRK": {
- "name": "Croatian Kuna"
- },
"CUC": {
"name": "Cuban Convertible Peso"
},
@@ -343,14 +343,14 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Piso",
+ "name": "Philippine Peso",
"symbol": "₱"
},
"PLN": {
"name": "Polish Zloty"
},
"QAR": {
- "name": "Qatari Rial"
+ "name": "Qatari Riyal"
},
"RON": {
"name": "Romanian Leu"
@@ -379,9 +379,12 @@
"SCR": {
"name": "Seychellois Rupee"
},
- "SLL": {
+ "SLE": {
"name": "Sierra Leonean Leone"
},
+ "SLL": {
+ "name": "Sierra Leonean Leone (1964—2022)"
+ },
"SGD": {
"name": "Singapore Dollar"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-419.json b/vendor/commerceguys/intl/resources/currency/es-419.json
index 30cdae3b8..9ecd4dd96 100644
--- a/vendor/commerceguys/intl/resources/currency/es-419.json
+++ b/vendor/commerceguys/intl/resources/currency/es-419.json
@@ -14,6 +14,9 @@
"ETB": {
"name": "bir"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"VES": {
"name": "bolívar venezolano"
},
@@ -246,9 +249,6 @@
"AOA": {
"name": "kuanza"
},
- "HRK": {
- "name": "kuna"
- },
"MWK": {
"name": "kwacha malauí"
},
@@ -429,6 +429,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "sol peruano"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-CL.json b/vendor/commerceguys/intl/resources/currency/es-CL.json
index 905667d1f..16e902c33 100644
--- a/vendor/commerceguys/intl/resources/currency/es-CL.json
+++ b/vendor/commerceguys/intl/resources/currency/es-CL.json
@@ -14,6 +14,9 @@
"ETB": {
"name": "bir"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"VES": {
"name": "bolívar venezolano"
},
@@ -247,9 +250,6 @@
"AOA": {
"name": "kuanza"
},
- "HRK": {
- "name": "kuna"
- },
"MWK": {
"name": "kwacha malauí"
},
@@ -431,6 +431,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "sol peruano"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-GT.json b/vendor/commerceguys/intl/resources/currency/es-GT.json
index ca4599454..3867c4c7d 100644
--- a/vendor/commerceguys/intl/resources/currency/es-GT.json
+++ b/vendor/commerceguys/intl/resources/currency/es-GT.json
@@ -14,6 +14,9 @@
"ETB": {
"name": "bir"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"VES": {
"name": "bolívar venezolano"
},
@@ -246,9 +249,6 @@
"AOA": {
"name": "kuanza"
},
- "HRK": {
- "name": "kuna"
- },
"MWK": {
"name": "kwacha malauí"
},
@@ -430,6 +430,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "sol peruano"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-MX.json b/vendor/commerceguys/intl/resources/currency/es-MX.json
index 4d2e5234f..48e06956d 100644
--- a/vendor/commerceguys/intl/resources/currency/es-MX.json
+++ b/vendor/commerceguys/intl/resources/currency/es-MX.json
@@ -14,6 +14,9 @@
"ETB": {
"name": "bir"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"VES": {
"name": "bolívar venezolano"
},
@@ -240,9 +243,6 @@
"AOA": {
"name": "kuanza"
},
- "HRK": {
- "name": "kuna"
- },
"MWK": {
"name": "kwacha malauí"
},
@@ -430,6 +430,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "sol peruano"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-US.json b/vendor/commerceguys/intl/resources/currency/es-US.json
index cb4afad29..be3076afe 100644
--- a/vendor/commerceguys/intl/resources/currency/es-US.json
+++ b/vendor/commerceguys/intl/resources/currency/es-US.json
@@ -14,6 +14,9 @@
"ETB": {
"name": "birr"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"VES": {
"name": "bolívar venezolano"
},
@@ -241,9 +244,6 @@
"AOA": {
"name": "kuanza"
},
- "HRK": {
- "name": "kuna"
- },
"MWK": {
"name": "kwacha malauí"
},
@@ -430,6 +430,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "sol peruano"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-VE.json b/vendor/commerceguys/intl/resources/currency/es-VE.json
index 8efe675f4..21f393b1f 100644
--- a/vendor/commerceguys/intl/resources/currency/es-VE.json
+++ b/vendor/commerceguys/intl/resources/currency/es-VE.json
@@ -18,6 +18,9 @@
"name": "bolívar soberano",
"symbol": "Bs.S"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "boliviano"
},
@@ -247,9 +250,6 @@
"AOA": {
"name": "kuanza"
},
- "HRK": {
- "name": "kuna"
- },
"MWK": {
"name": "kwacha malauí"
},
@@ -430,6 +430,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "sol peruano"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es.json b/vendor/commerceguys/intl/resources/currency/es.json
index 0c5db9802..ecee39472 100644
--- a/vendor/commerceguys/intl/resources/currency/es.json
+++ b/vendor/commerceguys/intl/resources/currency/es.json
@@ -15,6 +15,9 @@
"ETB": {
"name": "bir"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"VES": {
"name": "bolívar venezolano"
},
@@ -253,9 +256,6 @@
"AOA": {
"name": "kuanza"
},
- "HRK": {
- "name": "kuna"
- },
"GEL": {
"name": "lari"
},
@@ -433,6 +433,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "sol peruano"
},
diff --git a/vendor/commerceguys/intl/resources/currency/et.json b/vendor/commerceguys/intl/resources/currency/et.json
index e39b6c2f3..56d90492f 100644
--- a/vendor/commerceguys/intl/resources/currency/et.json
+++ b/vendor/commerceguys/intl/resources/currency/et.json
@@ -54,6 +54,9 @@
"BOB": {
"name": "Boliivia boliviaano"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BAM": {
"name": "Bosnia ja Hertsegoviina konverteeritav mark"
},
@@ -155,9 +158,6 @@
"name": "Hongkongi dollar",
"symbol": "HK$"
},
- "HRK": {
- "name": "Horvaatia kuna"
- },
"XCD": {
"name": "Ida-Kariibi dollar",
"symbol": "EC$"
@@ -383,6 +383,9 @@
"SLL": {
"name": "Sierra Leone leoone"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SGD": {
"name": "Singapuri dollar"
},
diff --git a/vendor/commerceguys/intl/resources/currency/eu.json b/vendor/commerceguys/intl/resources/currency/eu.json
index 820ad3694..f5a3ea7fa 100644
--- a/vendor/commerceguys/intl/resources/currency/eu.json
+++ b/vendor/commerceguys/intl/resources/currency/eu.json
@@ -26,6 +26,9 @@
"ETB": {
"name": "birr etiopiarra"
},
+ "VED": {
+ "name": "bolivar subiraua"
+ },
"VES": {
"name": "bolivar venezuelarra"
},
@@ -269,9 +272,6 @@
"CZK": {
"name": "koroa txekiarra"
},
- "HRK": {
- "name": "kuna kroaziarra"
- },
"MWK": {
"name": "kwacha malawiarra"
},
@@ -293,6 +293,9 @@
"HNL": {
"name": "lempira hodurastarra"
},
+ "SLE": {
+ "name": "leone sierraleonar berria"
+ },
"SLL": {
"name": "leone sierraleonarra"
},
diff --git a/vendor/commerceguys/intl/resources/currency/fa-AF.json b/vendor/commerceguys/intl/resources/currency/fa-AF.json
index 79ec4ce1a..aa7755d27 100644
--- a/vendor/commerceguys/intl/resources/currency/fa-AF.json
+++ b/vendor/commerceguys/intl/resources/currency/fa-AF.json
@@ -390,9 +390,6 @@
"CRC": {
"name": "کولون کاستاریکا"
},
- "HRK": {
- "name": "کونای کرواسی"
- },
"MMK": {
"name": "کیات میانمار"
},
@@ -490,9 +487,15 @@
"name": "یورو",
"symbol": "€"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
}
diff --git a/vendor/commerceguys/intl/resources/currency/fa.json b/vendor/commerceguys/intl/resources/currency/fa.json
index b354da891..62cf393fb 100644
--- a/vendor/commerceguys/intl/resources/currency/fa.json
+++ b/vendor/commerceguys/intl/resources/currency/fa.json
@@ -390,9 +390,6 @@
"CRC": {
"name": "کولون کاستاریکا"
},
- "HRK": {
- "name": "کونای کرواسی"
- },
"MMK": {
"name": "کیات میانمار"
},
@@ -490,9 +487,15 @@
"name": "یورو",
"symbol": "€"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
}
diff --git a/vendor/commerceguys/intl/resources/currency/fi.json b/vendor/commerceguys/intl/resources/currency/fi.json
index abaeef912..628ac4e3c 100644
--- a/vendor/commerceguys/intl/resources/currency/fi.json
+++ b/vendor/commerceguys/intl/resources/currency/fi.json
@@ -53,6 +53,9 @@
"BTN": {
"name": "Bhutanin ngultrum"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Bolivian boliviano"
},
@@ -232,9 +235,6 @@
"CDF": {
"name": "Kongon frangi"
},
- "HRK": {
- "name": "Kroatian kuna"
- },
"CUP": {
"name": "Kuuban peso"
},
@@ -376,6 +376,9 @@
"SCR": {
"name": "Seychellien rupia"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SLL": {
"name": "Sierra Leonen leone"
},
diff --git a/vendor/commerceguys/intl/resources/currency/fil.json b/vendor/commerceguys/intl/resources/currency/fil.json
index 1ee6f2ac3..bf7dabfcd 100644
--- a/vendor/commerceguys/intl/resources/currency/fil.json
+++ b/vendor/commerceguys/intl/resources/currency/fil.json
@@ -2,9 +2,6 @@
"AFN": {
"name": "Afghan Afghani"
},
- "ALL": {
- "name": "Albanian Lek"
- },
"DZD": {
"name": "Algerian Dinar"
},
@@ -29,15 +26,15 @@
"BDT": {
"name": "Bangladeshi Taka"
},
- "BYN": {
- "name": "Belarusian Ruble"
- },
"BTN": {
"name": "Bhutanese Ngultrum"
},
"VES": {
"name": "Bolívar ng Venezuela"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Boliviano ng Bolivia"
},
@@ -94,15 +91,18 @@
"NIO": {
"name": "Córdoba ng Nicaragua"
},
- "HRK": {
- "name": "Croatian Kuna"
- },
- "CZK": {
- "name": "Czech Republic Koruna"
- },
"DKK": {
"name": "Danish Krone"
},
+ "MKD": {
+ "name": "Denar ng Macedonia"
+ },
+ "LYD": {
+ "name": "Dinar ng Libya"
+ },
+ "RSD": {
+ "name": "Dinar ng Serbia"
+ },
"DJF": {
"name": "Djiboutian Franc"
},
@@ -179,9 +179,6 @@
"name": "Dolyar ng US",
"symbol": "$"
},
- "EGP": {
- "name": "Egyptian Pound"
- },
"ERN": {
"name": "Eritrean Nakfa"
},
@@ -195,6 +192,9 @@
"AWG": {
"name": "Florin ng Aruba"
},
+ "HUF": {
+ "name": "Forint ng Hungary"
+ },
"GMD": {
"name": "Gambian Dalasi"
},
@@ -204,17 +204,14 @@
"GHS": {
"name": "Ghanaian Cedi"
},
- "GIP": {
- "name": "Gibraltar Pound"
- },
"HTG": {
"name": "Gourde ng Haiti"
},
"GNF": {
"name": "Guinean Franc"
},
- "HUF": {
- "name": "Hungarian Forint"
+ "UAH": {
+ "name": "Hryvnia ng Ukraine"
},
"ISK": {
"name": "Icelandic Króna"
@@ -232,10 +229,6 @@
"IQD": {
"name": "Iraqi Dinar"
},
- "ILS": {
- "name": "Israeli New Sheqel",
- "symbol": "₪"
- },
"JPY": {
"name": "Japanese Yen",
"symbol": "¥"
@@ -249,6 +242,9 @@
"KES": {
"name": "Kenyan Shilling"
},
+ "CZK": {
+ "name": "Koruna ng Czech Republic"
+ },
"KWD": {
"name": "Kuwaiti Dinar"
},
@@ -258,21 +254,24 @@
"LAK": {
"name": "Laotian Kip"
},
+ "ALL": {
+ "name": "Lek ng Albania"
+ },
"HNL": {
"name": "Lempira ng Honduras"
},
"LSL": {
"name": "Lesotho Loti"
},
- "LYD": {
- "name": "Libyan Dinar"
+ "MDL": {
+ "name": "Leu ng Moldova"
+ },
+ "RON": {
+ "name": "Leu ng Romania"
},
"MOP": {
"name": "Macanese Pataca"
},
- "MKD": {
- "name": "Macedonian Denar"
- },
"MGA": {
"name": "Malagasy Ariary"
},
@@ -288,9 +287,6 @@
"MUR": {
"name": "Mauritian Rupee"
},
- "MDL": {
- "name": "Moldovan Leu"
- },
"MNT": {
"name": "Mongolian Tugrik"
},
@@ -306,6 +302,10 @@
"NPR": {
"name": "Nepalese Rupee"
},
+ "ILS": {
+ "name": "New Shekel ng Israel",
+ "symbol": "₪"
+ },
"NGN": {
"name": "Nigerian Naira"
},
@@ -356,12 +356,15 @@
"UYU": {
"name": "Piso ng Uruguay"
},
- "PLN": {
- "name": "Polish Zloty"
+ "EGP": {
+ "name": "Pound ng Egypt"
},
"FKP": {
"name": "Pound ng Falkland Islands"
},
+ "GIP": {
+ "name": "Pound ng Gibraltar"
+ },
"LBP": {
"name": "Pound ng Lebanon"
},
@@ -384,11 +387,11 @@
"name": "Real ng Barzil",
"symbol": "R$"
},
- "RON": {
- "name": "Romanian Leu"
+ "BYN": {
+ "name": "Ruble ng Belarus"
},
"RUB": {
- "name": "Russian Ruble"
+ "name": "Ruble ng Russia"
},
"RWF": {
"name": "Rwandan Franc"
@@ -408,12 +411,12 @@
"SAR": {
"name": "Saudi Riyal"
},
- "RSD": {
- "name": "Serbian Dinar"
- },
"SCR": {
"name": "Seychellois Rupee"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SLL": {
"name": "Sierra Leonean Leone"
},
@@ -460,9 +463,6 @@
"UGX": {
"name": "Ugandan Shilling"
},
- "UAH": {
- "name": "Ukrainian Hryvnia"
- },
"AED": {
"name": "United Arab Emirates Dirham"
},
@@ -494,5 +494,8 @@
},
"ZWL": {
"name": "Zimbabwean Dollar (2009)"
+ },
+ "PLN": {
+ "name": "Zloty ng Poland"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/fr-CA.json b/vendor/commerceguys/intl/resources/currency/fr-CA.json
index ca73ddf73..404c4dea6 100644
--- a/vendor/commerceguys/intl/resources/currency/fr-CA.json
+++ b/vendor/commerceguys/intl/resources/currency/fr-CA.json
@@ -14,6 +14,9 @@
"ETB": {
"name": "birr éthiopien"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"VES": {
"name": "bolivar vénézuélien"
},
@@ -225,9 +228,6 @@
"LAK": {
"name": "kip laotien"
},
- "HRK": {
- "name": "kuna croate"
- },
"MWK": {
"name": "kwacha malawite"
},
@@ -440,6 +440,9 @@
"TZS": {
"name": "shilling tanzanien"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"KGS": {
"name": "som kirghize"
},
diff --git a/vendor/commerceguys/intl/resources/currency/fr.json b/vendor/commerceguys/intl/resources/currency/fr.json
index 610c689f4..dcf399043 100644
--- a/vendor/commerceguys/intl/resources/currency/fr.json
+++ b/vendor/commerceguys/intl/resources/currency/fr.json
@@ -14,6 +14,9 @@
"ETB": {
"name": "birr éthiopien"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"VES": {
"name": "bolivar vénézuélien"
},
@@ -236,9 +239,6 @@
"LAK": {
"name": "kip loatien"
},
- "HRK": {
- "name": "kuna croate"
- },
"MWK": {
"name": "kwacha malawite"
},
@@ -458,6 +458,9 @@
"TZS": {
"name": "shilling tanzanien"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "sol péruvien"
},
diff --git a/vendor/commerceguys/intl/resources/currency/ga.json b/vendor/commerceguys/intl/resources/currency/ga.json
index 6b3423e81..bdc59a977 100644
--- a/vendor/commerceguys/intl/resources/currency/ga.json
+++ b/vendor/commerceguys/intl/resources/currency/ga.json
@@ -15,6 +15,9 @@
"ETB": {
"name": "Birr na hAetóipe"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"VES": {
"name": "Bolívar Veiniséala"
},
@@ -231,9 +234,6 @@
"ISK": {
"name": "Króna na hÍoslainne"
},
- "HRK": {
- "name": "Kuna na Cróite"
- },
"MWK": {
"name": "Kwacha na Maláive"
},
@@ -444,6 +444,9 @@
"name": "Seiceal Nua Iosrael",
"symbol": "₪"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "Sol Pheiriú"
},
diff --git a/vendor/commerceguys/intl/resources/currency/gd.json b/vendor/commerceguys/intl/resources/currency/gd.json
index 78252d8fd..dfb454a07 100644
--- a/vendor/commerceguys/intl/resources/currency/gd.json
+++ b/vendor/commerceguys/intl/resources/currency/gd.json
@@ -21,6 +21,9 @@
"VES": {
"name": "Bolívar Bheinisealach"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Boliviano Boilibhiach"
},
@@ -237,9 +240,6 @@
"NOK": {
"name": "Krone Nirribheach"
},
- "HRK": {
- "name": "Kuna Cròthaiseach"
- },
"MWK": {
"name": "Kwacha Malabhaidheach"
},
@@ -264,6 +264,9 @@
"SLL": {
"name": "Leone Siarra Leòmhannach"
},
+ "SLE": {
+ "name": "Leone Siarra Leòmhannach ùr"
+ },
"MDL": {
"name": "Leu Moldobhach"
},
diff --git a/vendor/commerceguys/intl/resources/currency/gl.json b/vendor/commerceguys/intl/resources/currency/gl.json
index 27ca98b38..0b4b8753a 100644
--- a/vendor/commerceguys/intl/resources/currency/gl.json
+++ b/vendor/commerceguys/intl/resources/currency/gl.json
@@ -15,6 +15,9 @@
"ETB": {
"name": "birr etíope"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"VES": {
"name": "bolívar venezolano"
},
@@ -234,9 +237,6 @@
"LAK": {
"name": "kip laosiano"
},
- "HRK": {
- "name": "kuna croata"
- },
"MWK": {
"name": "kwacha de Malawi"
},
@@ -438,6 +438,9 @@
"LKR": {
"name": "rupia srilankesa"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "sol peruano"
},
diff --git a/vendor/commerceguys/intl/resources/currency/gsw.json b/vendor/commerceguys/intl/resources/currency/gsw.json
index 9e6f2c866..069c26e50 100644
--- a/vendor/commerceguys/intl/resources/currency/gsw.json
+++ b/vendor/commerceguys/intl/resources/currency/gsw.json
@@ -54,6 +54,9 @@
"VES": {
"name": "Bolivar"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Boliviano"
},
@@ -216,9 +219,6 @@
"CUP": {
"name": "Kubanische Peso"
},
- "HRK": {
- "name": "Kuna"
- },
"KWD": {
"name": "Kuwait-Dinar"
},
@@ -264,6 +264,9 @@
"MYR": {
"name": "Malaysische Ringgit"
},
+ "MVR": {
+ "name": "Malediven-Rufiyaa"
+ },
"MAD": {
"name": "Marokkanische Dirham"
},
@@ -358,9 +361,6 @@
"RWF": {
"name": "Ruanda-Franc"
},
- "MVR": {
- "name": "Rufiyaa"
- },
"RON": {
"name": "Rumäänische Löi"
},
@@ -389,6 +389,9 @@
"SCR": {
"name": "Seyschelle-Rupie"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SGD": {
"name": "Singapur-Dollar"
},
diff --git a/vendor/commerceguys/intl/resources/currency/gu.json b/vendor/commerceguys/intl/resources/currency/gu.json
index 607bf1493..e3ceac364 100644
--- a/vendor/commerceguys/intl/resources/currency/gu.json
+++ b/vendor/commerceguys/intl/resources/currency/gu.json
@@ -118,9 +118,6 @@
"CUC": {
"name": "ક્યુબન રૂપાંતર યોગ્ય પેસો"
},
- "HRK": {
- "name": "ક્રોએશિયન ક્યુના"
- },
"GYD": {
"name": "ગયાનિઝ ડોલર"
},
@@ -485,9 +482,15 @@
"HNL": {
"name": "હોન્ડ્યુરન લેમ્પિરા"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/he.json b/vendor/commerceguys/intl/resources/currency/he.json
index 42508e0fa..15be3ed67 100644
--- a/vendor/commerceguys/intl/resources/currency/he.json
+++ b/vendor/commerceguys/intl/resources/currency/he.json
@@ -310,9 +310,6 @@
"HUF": {
"name": "פורינט הונגרי"
},
- "PHP": {
- "name": "פזו פיליפיני"
- },
"MOP": {
"name": "פטקה של מקאו"
},
@@ -332,6 +329,9 @@
"name": "פסו מקסיקני",
"symbol": "MX$"
},
+ "PHP": {
+ "name": "פסו פיליפיני"
+ },
"CLP": {
"name": "פסו צ׳ילאני"
},
@@ -392,9 +392,6 @@
"CRC": {
"name": "קולון קוסטה־ריקני"
},
- "HRK": {
- "name": "קונה קרואטי"
- },
"NIO": {
"name": "קורדובה ניקרגואה"
},
@@ -488,6 +485,12 @@
"name": "שקל חדש",
"symbol": "₪"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/hi-Latn.json b/vendor/commerceguys/intl/resources/currency/hi-Latn.json
new file mode 100644
index 000000000..eb312d023
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/currency/hi-Latn.json
@@ -0,0 +1,500 @@
+{
+ "AFN": {
+ "name": "Afghan Afghani"
+ },
+ "ALL": {
+ "name": "Albanian Lek"
+ },
+ "DZD": {
+ "name": "Algerian Dinar"
+ },
+ "AOA": {
+ "name": "Angolan Kwanza"
+ },
+ "ARS": {
+ "name": "Argentine Peso"
+ },
+ "AMD": {
+ "name": "Armenian Dram"
+ },
+ "AWG": {
+ "name": "Aruban Florin"
+ },
+ "AUD": {
+ "name": "Australian Dollar",
+ "symbol": "A$"
+ },
+ "AZN": {
+ "name": "Azerbaijani Manat"
+ },
+ "BSD": {
+ "name": "Bahamian Dollar"
+ },
+ "BHD": {
+ "name": "Bahraini Dinar"
+ },
+ "BDT": {
+ "name": "Bangladeshi Taka"
+ },
+ "BBD": {
+ "name": "Barbadian Dollar"
+ },
+ "BYN": {
+ "name": "Belarusian Rouble"
+ },
+ "BZD": {
+ "name": "Belize Dollar"
+ },
+ "BMD": {
+ "name": "Bermudian Dollar"
+ },
+ "BTN": {
+ "name": "Bhutanese Ngultrum"
+ },
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
+ "BOB": {
+ "name": "Bolivian Boliviano"
+ },
+ "BAM": {
+ "name": "Bosnia-Herzegovina Convertible Mark"
+ },
+ "BWP": {
+ "name": "Botswanan Pula"
+ },
+ "BRL": {
+ "name": "Brazilian Real",
+ "symbol": "R$"
+ },
+ "GBP": {
+ "name": "British Pound",
+ "symbol": "£"
+ },
+ "BND": {
+ "name": "Brunei Dollar"
+ },
+ "BGN": {
+ "name": "Bulgarian Lev"
+ },
+ "BIF": {
+ "name": "Burundian Franc"
+ },
+ "KHR": {
+ "name": "Cambodian Riel"
+ },
+ "CAD": {
+ "name": "Canadian Dollar",
+ "symbol": "CA$"
+ },
+ "CVE": {
+ "name": "Cape Verdean Escudo"
+ },
+ "KYD": {
+ "name": "Cayman Islands Dollar"
+ },
+ "XAF": {
+ "name": "Central African CFA Franc",
+ "symbol": "FCFA"
+ },
+ "XPF": {
+ "name": "CFP Franc",
+ "symbol": "CFPF"
+ },
+ "CLP": {
+ "name": "Chilean Peso"
+ },
+ "CNY": {
+ "name": "Chinese Yuan",
+ "symbol": "CN¥"
+ },
+ "COP": {
+ "name": "Colombian Peso"
+ },
+ "KMF": {
+ "name": "Comorian Franc"
+ },
+ "CDF": {
+ "name": "Congolese Franc"
+ },
+ "CRC": {
+ "name": "Costa Rican colon"
+ },
+ "CUC": {
+ "name": "Cuban Convertible Peso"
+ },
+ "CUP": {
+ "name": "Cuban Peso"
+ },
+ "CZK": {
+ "name": "Czech Koruna"
+ },
+ "DKK": {
+ "name": "Danish Krone"
+ },
+ "DJF": {
+ "name": "Djiboutian Franc"
+ },
+ "DOP": {
+ "name": "Dominican Peso"
+ },
+ "XCD": {
+ "name": "East Caribbean Dollar",
+ "symbol": "EC$"
+ },
+ "EGP": {
+ "name": "Egyptian Pound"
+ },
+ "ERN": {
+ "name": "Eritrean Nakfa"
+ },
+ "ETB": {
+ "name": "Ethiopian Birr"
+ },
+ "EUR": {
+ "name": "Euro",
+ "symbol": "€"
+ },
+ "FKP": {
+ "name": "Falkland Islands Pound"
+ },
+ "FJD": {
+ "name": "Fijian Dollar"
+ },
+ "GMD": {
+ "name": "Gambian Dalasi"
+ },
+ "GEL": {
+ "name": "Georgian Lari"
+ },
+ "GHS": {
+ "name": "Ghanaian Cedi"
+ },
+ "GIP": {
+ "name": "Gibraltar Pound"
+ },
+ "GTQ": {
+ "name": "Guatemalan Quetzal"
+ },
+ "GNF": {
+ "name": "Guinean Franc"
+ },
+ "GYD": {
+ "name": "Guyanaese Dollar"
+ },
+ "HTG": {
+ "name": "Haitian Gourde"
+ },
+ "HNL": {
+ "name": "Honduran Lempira"
+ },
+ "HKD": {
+ "name": "Hong Kong Dollar",
+ "symbol": "HK$"
+ },
+ "HUF": {
+ "name": "Hungarian Forint"
+ },
+ "ISK": {
+ "name": "Icelandic krona"
+ },
+ "INR": {
+ "name": "Indian Rupee",
+ "symbol": "₹"
+ },
+ "IDR": {
+ "name": "Indonesian Rupiah"
+ },
+ "IRR": {
+ "name": "Iranian Rial"
+ },
+ "IQD": {
+ "name": "Iraqi Dinar"
+ },
+ "ILS": {
+ "name": "Israeli New Shekel",
+ "symbol": "₪"
+ },
+ "JMD": {
+ "name": "Jamaican Dollar"
+ },
+ "JPY": {
+ "name": "Japanese Yen",
+ "symbol": "JP¥"
+ },
+ "JOD": {
+ "name": "Jordanian Dinar"
+ },
+ "KZT": {
+ "name": "Kazakhstani Tenge"
+ },
+ "KES": {
+ "name": "Kenyan Shilling"
+ },
+ "KWD": {
+ "name": "Kuwaiti Dinar"
+ },
+ "KGS": {
+ "name": "Kyrgystani Som"
+ },
+ "LAK": {
+ "name": "Laotian Kip"
+ },
+ "LBP": {
+ "name": "Lebanese Pound"
+ },
+ "LSL": {
+ "name": "Lesotho Loti"
+ },
+ "LRD": {
+ "name": "Liberian Dollar"
+ },
+ "LYD": {
+ "name": "Libyan Dinar"
+ },
+ "MOP": {
+ "name": "Macanese Pataca"
+ },
+ "MKD": {
+ "name": "Macedonian Denar"
+ },
+ "MGA": {
+ "name": "Malagasy Ariary"
+ },
+ "MWK": {
+ "name": "Malawian Kwacha"
+ },
+ "MYR": {
+ "name": "Malaysian Ringgit"
+ },
+ "MVR": {
+ "name": "Maldivian Rufiyaa"
+ },
+ "MRU": {
+ "name": "Mauritanian Ouguiya"
+ },
+ "MUR": {
+ "name": "Mauritian Rupee"
+ },
+ "MXN": {
+ "name": "Mexican Peso",
+ "symbol": "MX$"
+ },
+ "MDL": {
+ "name": "Moldovan Leu"
+ },
+ "MNT": {
+ "name": "Mongolian Tugrik"
+ },
+ "MAD": {
+ "name": "Moroccan Dirham"
+ },
+ "MZN": {
+ "name": "Mozambican Metical"
+ },
+ "MMK": {
+ "name": "Myanmar Kyat"
+ },
+ "NAD": {
+ "name": "Namibian Dollar"
+ },
+ "NPR": {
+ "name": "Nepalese Rupee"
+ },
+ "ANG": {
+ "name": "Netherlands Antillean Guilder"
+ },
+ "TWD": {
+ "name": "New Taiwan Dollar",
+ "symbol": "NT$"
+ },
+ "NZD": {
+ "name": "New Zealand Dollar",
+ "symbol": "NZ$"
+ },
+ "NIO": {
+ "name": "Nicaraguan cordoba"
+ },
+ "NGN": {
+ "name": "Nigerian Naira"
+ },
+ "KPW": {
+ "name": "North Korean Won"
+ },
+ "NOK": {
+ "name": "Norwegian Krone"
+ },
+ "OMR": {
+ "name": "Omani Rial"
+ },
+ "PKR": {
+ "name": "Pakistani Rupee"
+ },
+ "PAB": {
+ "name": "Panamanian Balboa"
+ },
+ "PGK": {
+ "name": "Papua New Guinean Kina"
+ },
+ "PYG": {
+ "name": "Paraguayan Guarani"
+ },
+ "PEN": {
+ "name": "Peruvian Sol"
+ },
+ "PHP": {
+ "name": "Philippine Peso",
+ "symbol": "₱"
+ },
+ "PLN": {
+ "name": "Polish Zloty"
+ },
+ "QAR": {
+ "name": "Qatari Riyal"
+ },
+ "RON": {
+ "name": "Romanian Leu"
+ },
+ "RUB": {
+ "name": "Russian ruble"
+ },
+ "RWF": {
+ "name": "Rwandan Franc"
+ },
+ "SVC": {
+ "name": "Salvadoran Colón"
+ },
+ "WST": {
+ "name": "Samoan Tala"
+ },
+ "STN": {
+ "name": "Sao Tome & Principe Dobra"
+ },
+ "SAR": {
+ "name": "Saudi Riyal"
+ },
+ "RSD": {
+ "name": "Serbian Dinar"
+ },
+ "SCR": {
+ "name": "Seychellois Rupee"
+ },
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
+ "SLL": {
+ "name": "Sierra Leonean Leone (1964—2022)"
+ },
+ "SGD": {
+ "name": "Singapore Dollar"
+ },
+ "SBD": {
+ "name": "Solomon Islands Dollar"
+ },
+ "SOS": {
+ "name": "Somali Shilling"
+ },
+ "ZAR": {
+ "name": "South African Rand"
+ },
+ "KRW": {
+ "name": "South Korean Won",
+ "symbol": "₩"
+ },
+ "SSP": {
+ "name": "South Sudanese Pound"
+ },
+ "LKR": {
+ "name": "Sri Lankan Rupee"
+ },
+ "SHP": {
+ "name": "St Helena Pound"
+ },
+ "SDG": {
+ "name": "Sudanese Pound"
+ },
+ "SRD": {
+ "name": "Surinamese Dollar"
+ },
+ "SZL": {
+ "name": "Swazi Lilangeni"
+ },
+ "SEK": {
+ "name": "Swedish Krona"
+ },
+ "CHF": {
+ "name": "Swiss Franc"
+ },
+ "SYP": {
+ "name": "Syrian Pound"
+ },
+ "TJS": {
+ "name": "Tajikistani Somoni"
+ },
+ "TZS": {
+ "name": "Tanzanian Shilling"
+ },
+ "THB": {
+ "name": "Thai Baht"
+ },
+ "TOP": {
+ "name": "Tongan Paʻanga"
+ },
+ "TTD": {
+ "name": "Trinidad & Tobago Dollar"
+ },
+ "TND": {
+ "name": "Tunisian Dinar"
+ },
+ "TRY": {
+ "name": "Turkish Lira"
+ },
+ "TMT": {
+ "name": "Turkmenistani Manat"
+ },
+ "UGX": {
+ "name": "Ugandan Shilling"
+ },
+ "UAH": {
+ "name": "Ukrainian Hryvnia"
+ },
+ "AED": {
+ "name": "United Arab Emirates Dirham"
+ },
+ "UYW": {
+ "name": "Uruguayan Nominal Wage Index Unit"
+ },
+ "UYU": {
+ "name": "Uruguayan Peso"
+ },
+ "USD": {
+ "name": "US Dollar",
+ "symbol": "$"
+ },
+ "UZS": {
+ "name": "Uzbekistani Som"
+ },
+ "VUV": {
+ "name": "Vanuatu Vatu"
+ },
+ "VES": {
+ "name": "Venezuelan bolivar"
+ },
+ "VND": {
+ "name": "Vietnamese Dong",
+ "symbol": "₫"
+ },
+ "XOF": {
+ "name": "West African CFA Franc",
+ "symbol": "F CFA"
+ },
+ "YER": {
+ "name": "Yemeni Rial"
+ },
+ "ZMW": {
+ "name": "Zambian Kwacha"
+ },
+ "ZWL": {
+ "name": "Zimbabwean Dollar (2009)"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/hi.json b/vendor/commerceguys/intl/resources/currency/hi.json
index 87a55d02a..88bd778fe 100644
--- a/vendor/commerceguys/intl/resources/currency/hi.json
+++ b/vendor/commerceguys/intl/resources/currency/hi.json
@@ -115,9 +115,6 @@
"CUP": {
"name": "क्यूबाई पेसो"
},
- "HRK": {
- "name": "क्रोएशियाई कुना"
- },
"GYD": {
"name": "गयानीज़ डॉलर"
},
@@ -485,9 +482,15 @@
"HNL": {
"name": "होंडुरन लेम्पिरा"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/hr.json b/vendor/commerceguys/intl/resources/currency/hr.json
index 4ca33edd1..d4b34d501 100644
--- a/vendor/commerceguys/intl/resources/currency/hr.json
+++ b/vendor/commerceguys/intl/resources/currency/hr.json
@@ -53,6 +53,9 @@
"BWP": {
"name": "bocvanska pula"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "bolivijski bolivijano"
},
@@ -113,7 +116,8 @@
"name": "etiopski bir"
},
"EUR": {
- "name": "euro"
+ "name": "euro",
+ "symbol": "€"
},
"FKP": {
"name": "falklandska funta"
@@ -154,10 +158,6 @@
"HKD": {
"name": "hongkonški dolar"
},
- "HRK": {
- "name": "hrvatska kuna",
- "symbol": "kn"
- },
"INR": {
"name": "indijska rupija"
},
@@ -374,6 +374,9 @@
"SCR": {
"name": "sejšelska rupija"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SLL": {
"name": "sijeraleonski leone"
},
diff --git a/vendor/commerceguys/intl/resources/currency/hu.json b/vendor/commerceguys/intl/resources/currency/hu.json
index 1f2ea9d08..ef87f65bc 100644
--- a/vendor/commerceguys/intl/resources/currency/hu.json
+++ b/vendor/commerceguys/intl/resources/currency/hu.json
@@ -53,6 +53,9 @@
"BGN": {
"name": "bolgár új leva"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "bolíviai boliviano"
},
@@ -173,9 +176,6 @@
"HKD": {
"name": "hongkongi dollár"
},
- "HRK": {
- "name": "horvát kuna"
- },
"INR": {
"name": "indiai rúpia"
},
@@ -376,6 +376,9 @@
"SLL": {
"name": "Sierra Leone-i leone"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"LKR": {
"name": "Srí Lanka-i rúpia"
},
diff --git a/vendor/commerceguys/intl/resources/currency/hy.json b/vendor/commerceguys/intl/resources/currency/hy.json
index ea9b6f849..a474ad3c3 100644
--- a/vendor/commerceguys/intl/resources/currency/hy.json
+++ b/vendor/commerceguys/intl/resources/currency/hy.json
@@ -25,9 +25,6 @@
"ARS": {
"name": "արգենտինական պեսո"
},
- "AWG": {
- "name": "արուբական ֆլորին"
- },
"XCD": {
"name": "արևելակարիբյան դոլար",
"symbol": "EC$"
@@ -36,6 +33,9 @@
"name": "Արևմտյան Աֆրիկայի ԿՖԱ ֆրանկ",
"symbol": "F CFA"
},
+ "AWG": {
+ "name": "արուբական ֆլորին"
+ },
"AFN": {
"name": "աֆղանական աֆղանի"
},
@@ -180,9 +180,6 @@
"LYD": {
"name": "լիբիական դինար"
},
- "HRK": {
- "name": "խորվաթական կունա"
- },
"CVE": {
"name": "Կաբո Վերդեի էսկուդո"
},
@@ -486,9 +483,15 @@
"FKP": {
"name": "Ֆոլքլենդյան կղզիների ֆունտ"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/id.json b/vendor/commerceguys/intl/resources/currency/id.json
index 1db96868f..ac3f0a7ab 100644
--- a/vendor/commerceguys/intl/resources/currency/id.json
+++ b/vendor/commerceguys/intl/resources/currency/id.json
@@ -15,6 +15,9 @@
"ETB": {
"name": "Birr Etiopia"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"VES": {
"name": "Bolivar Venezuela"
},
@@ -234,9 +237,6 @@
"NOK": {
"name": "Krone Norwegia"
},
- "HRK": {
- "name": "Kuna Kroasia"
- },
"MWK": {
"name": "Kwacha Malawi"
},
@@ -447,6 +447,9 @@
"UGX": {
"name": "Shilling Uganda"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "Sol Peru"
},
diff --git a/vendor/commerceguys/intl/resources/currency/is.json b/vendor/commerceguys/intl/resources/currency/is.json
index 2b79b4df9..4708a5ecd 100644
--- a/vendor/commerceguys/intl/resources/currency/is.json
+++ b/vendor/commerceguys/intl/resources/currency/is.json
@@ -57,6 +57,9 @@
"BMD": {
"name": "Bermúdadalur"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BWP": {
"name": "botsvönsk púla"
},
@@ -108,12 +111,12 @@
"FKP": {
"name": "falklenskt pund"
},
- "FJD": {
- "name": "fidjeyskur dalur"
- },
"PHP": {
"name": "filippseyskur pesi"
},
+ "FJD": {
+ "name": "fídjískur dalur"
+ },
"GMD": {
"name": "gambískur dalasi"
},
@@ -170,7 +173,8 @@
"name": "íranskt ríal"
},
"ISK": {
- "name": "íslensk króna"
+ "name": "íslensk króna",
+ "symbol": "kr."
},
"JMD": {
"name": "jamaískur dalur"
@@ -219,9 +223,6 @@
"KMF": {
"name": "kómoreyskur franki"
},
- "HRK": {
- "name": "króatísk kúna"
- },
"CUP": {
"name": "kúbverskur pesi"
},
@@ -369,6 +370,9 @@
"SCR": {
"name": "Seychellesrúpía"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SGD": {
"name": "singapúrskur dalur"
},
@@ -439,7 +443,7 @@
"name": "Trínidad og Tóbagó-dalur"
},
"TND": {
- "name": "túnískur denari"
+ "name": "túniskur denari"
},
"TMT": {
"name": "túrkmenskt manat"
diff --git a/vendor/commerceguys/intl/resources/currency/it.json b/vendor/commerceguys/intl/resources/currency/it.json
index 39aff7e37..6691f4340 100644
--- a/vendor/commerceguys/intl/resources/currency/it.json
+++ b/vendor/commerceguys/intl/resources/currency/it.json
@@ -15,6 +15,9 @@
"ETB": {
"name": "birr etiope"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"VES": {
"name": "bolívar venezuelano"
},
@@ -227,9 +230,6 @@
"LAK": {
"name": "kip laotiano"
},
- "HRK": {
- "name": "kuna croata"
- },
"MWK": {
"name": "kwacha malawiano"
},
@@ -422,6 +422,9 @@
"UGX": {
"name": "scellino ugandese"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "sol peruviano"
},
@@ -484,6 +487,6 @@
"name": "yen giapponese"
},
"PLN": {
- "name": "złoty polacco"
+ "name": "zloty polacco"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/ja.json b/vendor/commerceguys/intl/resources/currency/ja.json
index aa0d4cc72..3fe79b831 100644
--- a/vendor/commerceguys/intl/resources/currency/ja.json
+++ b/vendor/commerceguys/intl/resources/currency/ja.json
@@ -1,8 +1,14 @@
{
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"XPF": {
"name": "CFP フラン",
"symbol": "CFPF"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
@@ -133,9 +139,6 @@
"KWD": {
"name": "クウェート ディナール"
},
- "HRK": {
- "name": "クロアチア クーナ"
- },
"KYD": {
"name": "ケイマン諸島 ドル"
},
diff --git a/vendor/commerceguys/intl/resources/currency/ka.json b/vendor/commerceguys/intl/resources/currency/ka.json
index 74606f348..bf96a26ed 100644
--- a/vendor/commerceguys/intl/resources/currency/ka.json
+++ b/vendor/commerceguys/intl/resources/currency/ka.json
@@ -457,9 +457,6 @@
"SHP": {
"name": "წმ. ელენეს კუნძულის ფუნტი"
},
- "HRK": {
- "name": "ხორვატული კუნა"
- },
"DJF": {
"name": "ჯიბუტის ფრანკი"
},
@@ -472,6 +469,9 @@
"HKD": {
"name": "ჰონკონგის დოლარი"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"XPF": {
"name": "CFP ფრანკი",
"symbol": "CFPF"
@@ -479,6 +479,9 @@
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/kk.json b/vendor/commerceguys/intl/resources/currency/kk.json
index ee93c0cff..7b5075be4 100644
--- a/vendor/commerceguys/intl/resources/currency/kk.json
+++ b/vendor/commerceguys/intl/resources/currency/kk.json
@@ -1,8 +1,4 @@
{
- "AUD": {
- "name": "Австралия доллары",
- "symbol": "A$"
- },
"USD": {
"name": "АҚШ доллары",
"symbol": "$"
@@ -28,6 +24,10 @@
"AFN": {
"name": "Ауғанстан афганиі"
},
+ "AUD": {
+ "name": "Аустралия доллары",
+ "symbol": "A$"
+ },
"AZN": {
"name": "Әзірбайжан манаты"
},
@@ -43,6 +43,10 @@
"BBD": {
"name": "Барбадос доллары"
},
+ "XOF": {
+ "name": "Батыс Африканың КФА франкі",
+ "symbol": "F CFA"
+ },
"BHD": {
"name": "Бахрейн динары"
},
@@ -149,7 +153,7 @@
"symbol": "NZ$"
},
"TWD": {
- "name": "Жаңа Тайван доллары",
+ "name": "Жаңа Тайвань доллары",
"symbol": "NT$"
},
"JPY": {
@@ -221,14 +225,6 @@
"KWD": {
"name": "Кувейт динары"
},
- "XAF": {
- "name": "КФА ВЕАС франкі",
- "symbol": "FCFA"
- },
- "XOF": {
- "name": "КФА ВСЕАО франкі",
- "symbol": "F CFA"
- },
"XPF": {
"name": "КФП франкі",
"symbol": "CFPF"
@@ -337,6 +333,10 @@
"SSP": {
"name": "Оңтүстік Судан фунты"
},
+ "XAF": {
+ "name": "Орталық Африканың КФА франкі",
+ "symbol": "FCFA"
+ },
"UZS": {
"name": "Өзбекстан сомы"
},
@@ -457,9 +457,6 @@
"FKP": {
"name": "Фолкленд аралдарының фунты"
},
- "HRK": {
- "name": "Хорватия кунасы"
- },
"CZK": {
"name": "Чехия кронасы"
},
@@ -488,9 +485,15 @@
"JMD": {
"name": "Ямайка доллары"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/km.json b/vendor/commerceguys/intl/resources/currency/km.json
index 508582beb..dcece3ce7 100644
--- a/vendor/commerceguys/intl/resources/currency/km.json
+++ b/vendor/commerceguys/intl/resources/currency/km.json
@@ -38,9 +38,6 @@
"MMK": {
"name": "គីយ៉ាត​ភូមា"
},
- "HRK": {
- "name": "គូណា​ក្រូអាត"
- },
"HTG": {
"name": "គោឌី​ហៃទី"
},
@@ -487,9 +484,15 @@
"MRU": {
"name": "អ៊ូហ្គីយ៉ា​ម៉ូរីតានី"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/ko.json b/vendor/commerceguys/intl/resources/currency/ko.json
index d8eadf5bd..4986c3a66 100644
--- a/vendor/commerceguys/intl/resources/currency/ko.json
+++ b/vendor/commerceguys/intl/resources/currency/ko.json
@@ -1,6 +1,6 @@
{
"GHS": {
- "name": "가나 시디"
+ "name": "가나 세디"
},
"GYD": {
"name": "가이아나 달러"
@@ -17,6 +17,9 @@
"NAD": {
"name": "나미비아 달러"
},
+ "NGN": {
+ "name": "나이지리아 나이라"
+ },
"SSP": {
"name": "남수단 파운드"
},
@@ -36,11 +39,8 @@
"name": "뉴질랜드 달러",
"symbol": "NZ$"
},
- "NGN": {
- "name": "니제르 나이라"
- },
"NIO": {
- "name": "니카라과 코르도바 오로"
+ "name": "니카라과 코르도바"
},
"KRW": {
"name": "대한민국 원",
@@ -90,7 +90,7 @@
"name": "마케도니아 디나르"
},
"MWK": {
- "name": "말라위 콰쳐"
+ "name": "말라위 콰차"
},
"MYR": {
"name": "말레이시아 링깃"
@@ -100,7 +100,7 @@
"symbol": "MX$"
},
"MAD": {
- "name": "모로코 디렘"
+ "name": "모로코 디르함"
},
"MUR": {
"name": "모리셔스 루피"
@@ -162,10 +162,10 @@
"name": "보스니아-헤르체고비나 태환 마르크"
},
"BWP": {
- "name": "보츠와나 폴라"
+ "name": "보츠와나 풀라"
},
"BOB": {
- "name": "볼리비아노"
+ "name": "볼리비아 볼리비아노"
},
"BND": {
"name": "부루나이 달러"
@@ -239,11 +239,8 @@
"name": "신 타이완 달러",
"symbol": "NT$"
},
- "TRY": {
- "name": "신 터키 리라"
- },
"SGD": {
- "name": "싱가폴 달러"
+ "name": "싱가포르 달러"
},
"AED": {
"name": "아랍에미리트 디르함"
@@ -260,6 +257,9 @@
"ISK": {
"name": "아이슬란드 크로나"
},
+ "HTG": {
+ "name": "아이티 구르드"
+ },
"AZN": {
"name": "아제르바이잔 마나트"
},
@@ -292,7 +292,7 @@
"name": "예멘 리알"
},
"OMR": {
- "name": "오만 리얄"
+ "name": "오만 리알"
},
"HNL": {
"name": "온두라스 렘피라"
@@ -304,7 +304,7 @@
"name": "우간다 실링"
},
"UYU": {
- "name": "우루과이 페소 우루과요"
+ "name": "우루과이 페소"
},
"UZS": {
"name": "우즈베키스탄 숨"
@@ -344,7 +344,7 @@
"name": "자메이카 달러"
},
"ZMW": {
- "name": "잠비아 콰쳐"
+ "name": "잠비아 콰차"
},
"KPW": {
"name": "조선 민주주의 인민 공화국 원"
@@ -370,7 +370,7 @@
"name": "짐바브웨 달러 (2009)"
},
"CZK": {
- "name": "체코 공화국 코루나"
+ "name": "체코 코루나"
},
"CLP": {
"name": "칠레 페소"
@@ -379,13 +379,13 @@
"name": "카보베르데 에스쿠도"
},
"KZT": {
- "name": "카자흐스탄 텐게"
+ "name": "카자흐스탄 텡게"
},
"QAR": {
"name": "카타르 리얄"
},
"KHR": {
- "name": "캄보디아 리얄"
+ "name": "캄보디아 리엘"
},
"CAD": {
"name": "캐나다 달러",
@@ -407,7 +407,7 @@
"name": "콜롬비아 페소"
},
"CDF": {
- "name": "콩고 프랑 콩골라스"
+ "name": "콩고 프랑"
},
"CUC": {
"name": "쿠바 태환 페소"
@@ -418,9 +418,6 @@
"KWD": {
"name": "쿠웨이트 디나르"
},
- "HRK": {
- "name": "크로아티아 쿠나"
- },
"KGS": {
"name": "키르기스스탄 솜"
},
@@ -433,6 +430,9 @@
"THB": {
"name": "태국 바트"
},
+ "TRY": {
+ "name": "터키 리라"
+ },
"TOP": {
"name": "통가 파앙가"
},
@@ -464,7 +464,7 @@
"name": "포클랜드제도 파운드"
},
"PLN": {
- "name": "폴란드 즐로티"
+ "name": "폴란드 즈워티"
},
"FJD": {
"name": "피지 달러"
@@ -472,9 +472,6 @@
"PHP": {
"name": "필리핀 페소"
},
- "HTG": {
- "name": "하이티 구르드"
- },
"HUF": {
"name": "헝가리 포린트"
},
@@ -486,10 +483,16 @@
"name": "홍콩 달러",
"symbol": "HK$"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"XPF": {
"name": "CFP 프랑",
"symbol": "CFPF"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
}
diff --git a/vendor/commerceguys/intl/resources/currency/kok.json b/vendor/commerceguys/intl/resources/currency/kok.json
index ed2b9859c..f15edf3e2 100644
--- a/vendor/commerceguys/intl/resources/currency/kok.json
+++ b/vendor/commerceguys/intl/resources/currency/kok.json
@@ -118,9 +118,6 @@
"CUC": {
"name": "क्युबान रुपांतरीत पेसो"
},
- "HRK": {
- "name": "क्रोयेषियन् कुना"
- },
"GYD": {
"name": "गयाना डॉलर"
},
@@ -485,9 +482,15 @@
"HNL": {
"name": "होंडुरान लेम्पिरा"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/ks.json b/vendor/commerceguys/intl/resources/currency/ks.json
index a6b0f71b5..30668e78f 100644
--- a/vendor/commerceguys/intl/resources/currency/ks.json
+++ b/vendor/commerceguys/intl/resources/currency/ks.json
@@ -1,4 +1,7 @@
{
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"CVE": {
"name": "Cape Verdean Escudo"
},
@@ -14,9 +17,12 @@
"SCR": {
"name": "Seychellois Rupee"
},
- "SLL": {
+ "SLE": {
"name": "Sierra Leonean Leone"
},
+ "SLL": {
+ "name": "Sierra Leonean Leone (1964—2022)"
+ },
"SSP": {
"name": "South Sudanese Pound"
},
@@ -26,6 +32,10 @@
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
+ "USD": {
+ "name": "US ڈالر",
+ "symbol": "$"
+ },
"ZWL": {
"name": "Zimbabwean Dollar (2009)"
},
@@ -98,11 +108,11 @@
"name": "بحریٖنی دیٖنار"
},
"BRL": {
- "name": "برازیٖلین رِیَل",
+ "name": "برازیٖلی رِیَل",
"symbol": "R$"
},
"GBP": {
- "name": "برطٲنوی پاونڑ سٹٔرلِنگ",
+ "name": "برطٲنوی پوٗنڈ",
"symbol": "£"
},
"BMD": {
@@ -183,7 +193,7 @@
},
"JPY": {
"name": "جاپانُک یَن",
- "symbol": "JP¥"
+ "symbol": "¥"
},
"GEL": {
"name": "جارجِیَن لاری"
@@ -204,7 +214,7 @@
"name": "چیک کوریٖنا"
},
"CNY": {
- "name": "چینیٖز یَن رِنمِنبی",
+ "name": "چیٖنی یُوان",
"symbol": "CN¥"
},
"HKD": {
@@ -229,12 +239,12 @@
"ERN": {
"name": "رِٹریٖن نَفکا"
},
- "RUB": {
- "name": "رٔشیَن رَبٕل"
- },
"RWF": {
"name": "روانڑَن فرانک"
},
+ "RUB": {
+ "name": "روٗسی رَبٕل"
+ },
"RON": {
"name": "رومانِیَن لؠیوٗ"
},
@@ -320,9 +330,6 @@
"KGS": {
"name": "کِرگِستانُک سوم"
},
- "HRK": {
- "name": "کروایشنُک کوٗنا"
- },
"KZT": {
"name": "کزاکِستان ٹینج"
},
@@ -483,10 +490,6 @@
"YER": {
"name": "یَمنُک رِیال"
},
- "USD": {
- "name": "یوٗ ایس ڈالَر",
- "symbol": "US$"
- },
"EUR": {
"name": "یوٗرو",
"symbol": "€"
diff --git a/vendor/commerceguys/intl/resources/currency/ky.json b/vendor/commerceguys/intl/resources/currency/ky.json
index 18b9dcf8e..8e633ef73 100644
--- a/vendor/commerceguys/intl/resources/currency/ky.json
+++ b/vendor/commerceguys/intl/resources/currency/ky.json
@@ -440,9 +440,6 @@
"FKP": {
"name": "фолкленд аралдарынын фунту"
},
- "HRK": {
- "name": "хорват кунасы"
- },
"CZK": {
"name": "чех кронасы"
},
@@ -473,9 +470,15 @@
"JMD": {
"name": "ямайка доллары"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/lb.json b/vendor/commerceguys/intl/resources/currency/lb.json
index d875fb0b8..58db04eb9 100644
--- a/vendor/commerceguys/intl/resources/currency/lb.json
+++ b/vendor/commerceguys/intl/resources/currency/lb.json
@@ -51,6 +51,9 @@
"BTN": {
"name": "Bhutan-Ngultrum"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Bolivianesche Boliviano"
},
@@ -224,9 +227,6 @@
"CDF": {
"name": "Kongo-Frang"
},
- "HRK": {
- "name": "Kroatesche Kuna"
- },
"CUP": {
"name": "Kubanesche Peso"
},
@@ -388,6 +388,9 @@
"SCR": {
"name": "Seychellen-Rupie"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SLL": {
"name": "Sierra-leonesche Leone"
},
diff --git a/vendor/commerceguys/intl/resources/currency/lo.json b/vendor/commerceguys/intl/resources/currency/lo.json
index 91e478ab6..db38c179b 100644
--- a/vendor/commerceguys/intl/resources/currency/lo.json
+++ b/vendor/commerceguys/intl/resources/currency/lo.json
@@ -69,9 +69,6 @@
"KMF": {
"name": "ໂຄ​ໂມ​ຣຽນ ຟຣັງ"
},
- "HRK": {
- "name": "ໂຄຣ​ເອ​ທຽນ ຄູ​ນາ"
- },
"COP": {
"name": "ໂຄ​ລົມ​ບຽນ ເປ​ໂຊ"
},
@@ -492,6 +489,12 @@
"HTG": {
"name": "ໄຮ​ຕຽນ ກົວ​ເດ"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
}
diff --git a/vendor/commerceguys/intl/resources/currency/lt.json b/vendor/commerceguys/intl/resources/currency/lt.json
index c2f892c4e..ba5a4666d 100644
--- a/vendor/commerceguys/intl/resources/currency/lt.json
+++ b/vendor/commerceguys/intl/resources/currency/lt.json
@@ -47,6 +47,9 @@
"BMD": {
"name": "Bermudos doleris"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Bolivijos bolivijanas"
},
@@ -222,9 +225,6 @@
"CRC": {
"name": "Kosta Rikos kolonas"
},
- "HRK": {
- "name": "Kroatijos kuna"
- },
"CUC": {
"name": "Kubos konvertuojamasis pesas"
},
@@ -378,6 +378,9 @@
"SLL": {
"name": "Siera Leonės leonė"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SGD": {
"name": "Singapūro doleris"
},
diff --git a/vendor/commerceguys/intl/resources/currency/lv.json b/vendor/commerceguys/intl/resources/currency/lv.json
index 25da2109c..c273a3ee9 100644
--- a/vendor/commerceguys/intl/resources/currency/lv.json
+++ b/vendor/commerceguys/intl/resources/currency/lv.json
@@ -59,6 +59,9 @@
"BMD": {
"name": "Bermudu dolārs"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Bolīvijas boliviano"
},
@@ -170,9 +173,6 @@
"name": "Honkongas dolārs",
"symbol": "HK$"
},
- "HRK": {
- "name": "Horvātijas kuna"
- },
"INR": {
"name": "Indijas rūpija",
"symbol": "₹"
@@ -392,6 +392,9 @@
"RSD": {
"name": "Serbijas dinārs"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SGD": {
"name": "Singapūras dolārs"
},
diff --git a/vendor/commerceguys/intl/resources/currency/mg.json b/vendor/commerceguys/intl/resources/currency/mg.json
index 8e24c9644..d9155715a 100644
--- a/vendor/commerceguys/intl/resources/currency/mg.json
+++ b/vendor/commerceguys/intl/resources/currency/mg.json
@@ -45,6 +45,9 @@
"ETB": {
"name": "Bir etiopianina"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Bolivian Boliviano"
},
@@ -80,9 +83,6 @@
"CRC": {
"name": "Costa Rican Colón"
},
- "HRK": {
- "name": "Croatian Kuna"
- },
"CUC": {
"name": "Cuban Convertible Peso"
},
@@ -358,7 +358,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Piso",
+ "name": "Philippine Peso",
"symbol": "₱"
},
"BWP": {
@@ -368,7 +368,7 @@
"name": "Polish Zloty"
},
"QAR": {
- "name": "Qatari Rial"
+ "name": "Qatari Riyal"
},
"ZAR": {
"name": "Rand afrikanina tatsimo"
@@ -413,6 +413,9 @@
"TZS": {
"name": "Shilling tanzanianina"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SGD": {
"name": "Singapore Dollar"
},
diff --git a/vendor/commerceguys/intl/resources/currency/mk.json b/vendor/commerceguys/intl/resources/currency/mk.json
index cdc386c7d..83b68ddf6 100644
--- a/vendor/commerceguys/intl/resources/currency/mk.json
+++ b/vendor/commerceguys/intl/resources/currency/mk.json
@@ -448,9 +448,6 @@
"HNL": {
"name": "Хондурска лемпира"
},
- "HRK": {
- "name": "Хрватска куна"
- },
"XAF": {
"name": "Централноафрикански франк",
"symbol": "FCFA"
@@ -477,6 +474,12 @@
"LKR": {
"name": "Шриланканска рупија"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/ml.json b/vendor/commerceguys/intl/resources/currency/ml.json
index dbfde135e..10bfec752 100644
--- a/vendor/commerceguys/intl/resources/currency/ml.json
+++ b/vendor/commerceguys/intl/resources/currency/ml.json
@@ -124,9 +124,6 @@
"CUP": {
"name": "ക്യൂബൻ പെസോ"
},
- "HRK": {
- "name": "ക്രൊയേഷൻ ക്യുന"
- },
"QAR": {
"name": "ഖത്തർ റിയാൽ"
},
@@ -484,10 +481,16 @@
"RON": {
"name": "റൊമാനിയൻ ലെയു"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"XPF": {
"name": "CFP ഫ്രാങ്ക്",
"symbol": "CFPF"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/mn.json b/vendor/commerceguys/intl/resources/currency/mn.json
index d3d673c1c..cd84e6c3a 100644
--- a/vendor/commerceguys/intl/resources/currency/mn.json
+++ b/vendor/commerceguys/intl/resources/currency/mn.json
@@ -439,9 +439,6 @@
"name": "Хонг Конгийн доллар",
"symbol": "HK$"
},
- "HRK": {
- "name": "Хорватын куна"
- },
"CNY": {
"name": "Хятадын юань",
"symbol": "CN¥"
@@ -486,9 +483,15 @@
"name": "Японы иен",
"symbol": "JP¥"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/mr.json b/vendor/commerceguys/intl/resources/currency/mr.json
index 711015fb1..109e76194 100644
--- a/vendor/commerceguys/intl/resources/currency/mr.json
+++ b/vendor/commerceguys/intl/resources/currency/mr.json
@@ -114,9 +114,6 @@
"CUC": {
"name": "क्यूबन विनिमय पेसो"
},
- "HRK": {
- "name": "क्रोएशियन कूना"
- },
"GYD": {
"name": "गयाना डॉलर"
},
@@ -212,7 +209,7 @@
"name": "नायजेरियन नायरा"
},
"NIO": {
- "name": "निकाराग्वेचा कोर्डोबा"
+ "name": "निकाराग्वन कोर्डोबा"
},
"ANG": {
"name": "नेदरलँडचा अँटिलीन गिल्डर"
@@ -485,9 +482,15 @@
"HNL": {
"name": "होन्डुरन लेंपिरा"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/ms.json b/vendor/commerceguys/intl/resources/currency/ms.json
index d4adc3f74..47874d759 100644
--- a/vendor/commerceguys/intl/resources/currency/ms.json
+++ b/vendor/commerceguys/intl/resources/currency/ms.json
@@ -14,6 +14,9 @@
"ETB": {
"name": "Birr Ethiopia"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"VES": {
"name": "Bolivar Venezuela"
},
@@ -228,9 +231,6 @@
"NOK": {
"name": "Krone Norway"
},
- "HRK": {
- "name": "Kuna Croatia"
- },
"MWK": {
"name": "Kwacha Malawi"
},
@@ -427,6 +427,9 @@
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "Sol Peru"
},
diff --git a/vendor/commerceguys/intl/resources/currency/my.json b/vendor/commerceguys/intl/resources/currency/my.json
index c73702909..113f76a9f 100644
--- a/vendor/commerceguys/intl/resources/currency/my.json
+++ b/vendor/commerceguys/intl/resources/currency/my.json
@@ -50,9 +50,6 @@
"CDF": {
"name": "ကွန်ဂို ဖရန့်"
},
- "HRK": {
- "name": "ခရိုအေးရှား ခူးနာ"
- },
"CLP": {
"name": "ချီလီ ပီဆို"
},
@@ -491,9 +488,15 @@
"DZD": {
"name": "အယ်လ်ဂျီးရီးယား ဒီနာ"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/ne.json b/vendor/commerceguys/intl/resources/currency/ne.json
index c6db8a573..e5b54d24e 100644
--- a/vendor/commerceguys/intl/resources/currency/ne.json
+++ b/vendor/commerceguys/intl/resources/currency/ne.json
@@ -114,9 +114,6 @@
"CUC": {
"name": "क्यूवाली रूपान्तरणयोग्य पेसो"
},
- "HRK": {
- "name": "क्रोएशियाली कुना"
- },
"GYD": {
"name": "गाइनिज डलर"
},
@@ -486,9 +483,15 @@
"HNL": {
"name": "होन्डुरान लेम्पिरा"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/nl.json b/vendor/commerceguys/intl/resources/currency/nl.json
index d68be3398..3a907e5cb 100644
--- a/vendor/commerceguys/intl/resources/currency/nl.json
+++ b/vendor/commerceguys/intl/resources/currency/nl.json
@@ -55,6 +55,9 @@
"BTN": {
"name": "Bhutaanse ngultrum"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Boliviaanse boliviano"
},
@@ -69,7 +72,7 @@
"symbol": "R$"
},
"GBP": {
- "name": "Brits pond",
+ "name": "Britse pond",
"symbol": "£"
},
"BND": {
@@ -241,9 +244,6 @@
"KWD": {
"name": "Koeweitse dinar"
},
- "HRK": {
- "name": "Kroatische kuna"
- },
"LAK": {
"name": "Laotiaanse kip"
},
@@ -399,6 +399,9 @@
"SCR": {
"name": "Seychelse roepie"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SLL": {
"name": "Sierraleoonse leone"
},
diff --git a/vendor/commerceguys/intl/resources/currency/nn.json b/vendor/commerceguys/intl/resources/currency/nn.json
index 9e90caf83..9cfa0c358 100644
--- a/vendor/commerceguys/intl/resources/currency/nn.json
+++ b/vendor/commerceguys/intl/resources/currency/nn.json
@@ -53,6 +53,9 @@
"BTN": {
"name": "bhutanske ngultrum"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "bolivianske boliviano"
},
@@ -213,9 +216,6 @@
"CRC": {
"name": "kostarikanske colón"
},
- "HRK": {
- "name": "kroatiske kuna"
- },
"CUC": {
"name": "kubanske konvertible pesos"
},
@@ -376,6 +376,9 @@
"SCR": {
"name": "seychelliske rupiar"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SLL": {
"name": "sierraleonske leone"
},
diff --git a/vendor/commerceguys/intl/resources/currency/no.json b/vendor/commerceguys/intl/resources/currency/no.json
index bf461de2c..947ffebca 100644
--- a/vendor/commerceguys/intl/resources/currency/no.json
+++ b/vendor/commerceguys/intl/resources/currency/no.json
@@ -50,6 +50,9 @@
"BTN": {
"name": "bhutanske ngultrum"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "bolivianske boliviano"
},
@@ -208,9 +211,6 @@
"CDF": {
"name": "kongolesiske franc"
},
- "HRK": {
- "name": "kroatiske kuna"
- },
"CUC": {
"name": "kubanske konvertible pesos"
},
@@ -371,6 +371,9 @@
"SCR": {
"name": "seychelliske rupier"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SLL": {
"name": "sierraleonske leone"
},
diff --git a/vendor/commerceguys/intl/resources/currency/pa.json b/vendor/commerceguys/intl/resources/currency/pa.json
index 56fc6ef32..309aa4d8e 100644
--- a/vendor/commerceguys/intl/resources/currency/pa.json
+++ b/vendor/commerceguys/intl/resources/currency/pa.json
@@ -137,9 +137,6 @@
"KHR": {
"name": "ਕੰਬੋਡੀਆਈ ਰੀਅਲ"
},
- "HRK": {
- "name": "ਕਰੋਏਸ਼ੀਆਈ ਕੁਨਾ"
- },
"CDF": {
"name": "ਕਾਂਗੋਲੀਜ਼ ਫ੍ਰੈਂਕ"
},
@@ -485,9 +482,15 @@
"VES": {
"name": "ਵੇਨੇਜ਼ੂਏਲਨ ਬੋਲੀਵਰ"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/pl.json b/vendor/commerceguys/intl/resources/currency/pl.json
index 0c5327889..9537122ce 100644
--- a/vendor/commerceguys/intl/resources/currency/pl.json
+++ b/vendor/commerceguys/intl/resources/currency/pl.json
@@ -14,6 +14,9 @@
"ETB": {
"name": "birr etiopski"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "boliviano boliwijskie"
},
@@ -259,9 +262,6 @@
"SEK": {
"name": "korona szwedzka"
},
- "HRK": {
- "name": "kuna chorwacka"
- },
"MWK": {
"name": "kwacha malawijska"
},
@@ -425,6 +425,9 @@
"SCR": {
"name": "rupia seszelska"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "sol peruwiański"
},
diff --git a/vendor/commerceguys/intl/resources/currency/ps.json b/vendor/commerceguys/intl/resources/currency/ps.json
index 1319a7fe9..6630ffea0 100644
--- a/vendor/commerceguys/intl/resources/currency/ps.json
+++ b/vendor/commerceguys/intl/resources/currency/ps.json
@@ -281,7 +281,7 @@
"name": "فجي ډالر"
},
"PHP": {
- "name": "فلپاينۍ پسو",
+ "name": "فلپاينۍ پیسو",
"symbol": "₱"
},
"KZT": {
@@ -300,9 +300,6 @@
"KGS": {
"name": "کرغزستاني سوم"
},
- "HRK": {
- "name": "کروشيايي کونا"
- },
"KHR": {
"name": "کمبوډي ريل"
},
@@ -479,6 +476,9 @@
"UGX": {
"name": "يوګانډي شيلنګ"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"XPF": {
"name": "CFP فرانک",
"symbol": "CFPF"
@@ -489,6 +489,9 @@
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/pt-PT.json b/vendor/commerceguys/intl/resources/currency/pt-PT.json
index 8845cc372..c8a4d7c10 100644
--- a/vendor/commerceguys/intl/resources/currency/pt-PT.json
+++ b/vendor/commerceguys/intl/resources/currency/pt-PT.json
@@ -18,6 +18,9 @@
"VES": {
"name": "bolívar"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "boliviano"
},
@@ -234,9 +237,6 @@
"LAK": {
"name": "kip laosiano"
},
- "HRK": {
- "name": "kuna croata"
- },
"MWK": {
"name": "kwacha malauiano"
},
@@ -438,6 +438,9 @@
"name": "sheqel novo israelita",
"symbol": "₪"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "sol peruano"
},
diff --git a/vendor/commerceguys/intl/resources/currency/pt.json b/vendor/commerceguys/intl/resources/currency/pt.json
index 7299e4f0b..82c2bc938 100644
--- a/vendor/commerceguys/intl/resources/currency/pt.json
+++ b/vendor/commerceguys/intl/resources/currency/pt.json
@@ -15,6 +15,9 @@
"ETB": {
"name": "Birr etíope"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"VES": {
"name": "Bolívar venezuelano"
},
@@ -234,9 +237,6 @@
"LAK": {
"name": "Kip laosiano"
},
- "HRK": {
- "name": "Kuna croata"
- },
"MWK": {
"name": "Kwacha malauiana"
},
@@ -441,6 +441,9 @@
"SCR": {
"name": "Rupia seichelense"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"KGS": {
"name": "Som quirguiz"
},
diff --git a/vendor/commerceguys/intl/resources/currency/rn.json b/vendor/commerceguys/intl/resources/currency/rn.json
index fdc0ac52a..c65bdf154 100644
--- a/vendor/commerceguys/intl/resources/currency/rn.json
+++ b/vendor/commerceguys/intl/resources/currency/rn.json
@@ -38,6 +38,9 @@
"BTN": {
"name": "Bhutanese Ngultrum"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Bolivian Boliviano"
},
@@ -77,9 +80,6 @@
"CRC": {
"name": "Costa Rican Colón"
},
- "HRK": {
- "name": "Croatian Kuna"
- },
"CUC": {
"name": "Cuban Convertible Peso"
},
@@ -393,14 +393,14 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Piso",
+ "name": "Philippine Peso",
"symbol": "₱"
},
"PLN": {
"name": "Polish Zloty"
},
"QAR": {
- "name": "Qatari Rial"
+ "name": "Qatari Riyal"
},
"RON": {
"name": "Romanian Leu"
@@ -417,6 +417,9 @@
"RSD": {
"name": "Serbian Dinar"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SGD": {
"name": "Singapore Dollar"
},
diff --git a/vendor/commerceguys/intl/resources/currency/ro.json b/vendor/commerceguys/intl/resources/currency/ro.json
index bdc7db864..9c6e9a441 100644
--- a/vendor/commerceguys/intl/resources/currency/ro.json
+++ b/vendor/commerceguys/intl/resources/currency/ro.json
@@ -17,6 +17,9 @@
"VES": {
"name": "bolívar soberano"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "boliviano"
},
@@ -84,7 +87,7 @@
"name": "dirham marocan"
},
"STN": {
- "name": "dobra Sao Tome și Principe"
+ "name": "dobra din São Tomé și Príncipe"
},
"USD": {
"name": "dolar american"
@@ -162,7 +165,7 @@
"name": "dram armenesc"
},
"CVE": {
- "name": "escudo din Capul Verde"
+ "name": "escudo caboverdian"
},
"EUR": {
"name": "euro"
@@ -224,9 +227,6 @@
"LAK": {
"name": "kip laoțian"
},
- "HRK": {
- "name": "kuna"
- },
"MWK": {
"name": "kwacha malawiană"
},
@@ -269,15 +269,15 @@
"FKP": {
"name": "liră din Insulele Falkland"
},
+ "SHP": {
+ "name": "liră din Sfânta Elena (Sfânta Elena și Ascension)"
+ },
"SSP": {
"name": "liră din Sudanul de Sud"
},
"EGP": {
"name": "liră egipteană"
},
- "SHP": {
- "name": "liră Insula Sf. Elena"
- },
"LBP": {
"name": "liră libaneză"
},
@@ -395,9 +395,6 @@
"MVR": {
"name": "rufiyaa maldiviană"
},
- "SCR": {
- "name": "rupie din Seychelles"
- },
"INR": {
"name": "rupie indiană"
},
@@ -413,9 +410,18 @@
"PKR": {
"name": "rupie pakistaneză"
},
+ "SCR": {
+ "name": "rupie seychelleză"
+ },
"LKR": {
"name": "rupie srilankeză"
},
+ "ILS": {
+ "name": "shekel israelian nou"
+ },
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "sol"
},
@@ -428,9 +434,6 @@
"UZS": {
"name": "sum Uzbekistan"
},
- "ILS": {
- "name": "șechel israelian nou"
- },
"KES": {
"name": "șiling kenyan"
},
diff --git a/vendor/commerceguys/intl/resources/currency/ru.json b/vendor/commerceguys/intl/resources/currency/ru.json
index cce555f33..111d932d5 100644
--- a/vendor/commerceguys/intl/resources/currency/ru.json
+++ b/vendor/commerceguys/intl/resources/currency/ru.json
@@ -450,9 +450,6 @@
"FKP": {
"name": "фунт Фолклендских островов"
},
- "HRK": {
- "name": "хорватская куна"
- },
"CZK": {
"name": "чешская крона"
},
@@ -494,6 +491,12 @@
"name": "японская иена",
"symbol": "¥"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
}
diff --git a/vendor/commerceguys/intl/resources/currency/sd.json b/vendor/commerceguys/intl/resources/currency/sd.json
index 2c4fd3473..d6496bb51 100644
--- a/vendor/commerceguys/intl/resources/currency/sd.json
+++ b/vendor/commerceguys/intl/resources/currency/sd.json
@@ -1,14 +1,17 @@
{
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"XPF": {
"name": "CFP فرينڪ",
"symbol": "CFPF"
},
- "LSL": {
- "name": "Lesotho Loti"
- },
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
@@ -316,9 +319,6 @@
"KGS": {
"name": "ڪرغزستاني سوم"
},
- "HRK": {
- "name": "ڪروشيائي ڪونا"
- },
"KHR": {
"name": "ڪمبوڊيائي ريال"
},
@@ -379,6 +379,9 @@
"LYD": {
"name": "لبيائي دينار"
},
+ "LSL": {
+ "name": "ليسوٿو لوٽي"
+ },
"MUR": {
"name": "ماريشيائي رپي"
},
diff --git a/vendor/commerceguys/intl/resources/currency/si.json b/vendor/commerceguys/intl/resources/currency/si.json
index 0bb2b40a7..d98f691e8 100644
--- a/vendor/commerceguys/intl/resources/currency/si.json
+++ b/vendor/commerceguys/intl/resources/currency/si.json
@@ -121,9 +121,6 @@
"CRC": {
"name": "කොස්ට රිකා කොලෝන්"
},
- "HRK": {
- "name": "ක්‍රොඒෂියානු කූනා"
- },
"GYD": {
"name": "ගයනා ඩොලර්"
},
@@ -486,9 +483,15 @@
"FKP": {
"name": "ෆෝක්ලන්ඩ් දූපත් පවුම්"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/sk.json b/vendor/commerceguys/intl/resources/currency/sk.json
index 9853daeec..45c2655df 100644
--- a/vendor/commerceguys/intl/resources/currency/sk.json
+++ b/vendor/commerceguys/intl/resources/currency/sk.json
@@ -56,6 +56,9 @@
"BYN": {
"name": "bieloruský rubeľ"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "bolívijské boliviano"
},
@@ -154,9 +157,6 @@
"HKD": {
"name": "hongkonský dolár"
},
- "HRK": {
- "name": "chorvátska kuna"
- },
"INR": {
"name": "indická rupia"
},
@@ -285,7 +285,7 @@
"name": "maurícijská rupia"
},
"MRU": {
- "name": "mauritánska ukija"
+ "name": "mauritánska ouguiya"
},
"MXN": {
"name": "mexické peso",
@@ -372,6 +372,9 @@
"SCR": {
"name": "seychelská rupia"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SLL": {
"name": "sierraleonský leone"
},
@@ -398,7 +401,7 @@
"name": "surinamský dolár"
},
"SZL": {
- "name": "svazijské lilangeni"
+ "name": "svazijský lilangeni"
},
"SHP": {
"name": "svätohelenská libra"
diff --git a/vendor/commerceguys/intl/resources/currency/sl.json b/vendor/commerceguys/intl/resources/currency/sl.json
index 0dea1cb29..8410be21d 100644
--- a/vendor/commerceguys/intl/resources/currency/sl.json
+++ b/vendor/commerceguys/intl/resources/currency/sl.json
@@ -57,6 +57,9 @@
"BGN": {
"name": "bolgarski lev"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "bolivijski boliviano"
},
@@ -163,9 +166,6 @@
"name": "hongkonški dolar",
"symbol": "HK$"
},
- "HRK": {
- "name": "hrvaška kuna"
- },
"INR": {
"name": "indijska rupija",
"symbol": "₹"
@@ -393,6 +393,9 @@
"SLL": {
"name": "sieraleonski leone"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SGD": {
"name": "singapurski dolar"
},
diff --git a/vendor/commerceguys/intl/resources/currency/so.json b/vendor/commerceguys/intl/resources/currency/so.json
index 155a20422..c871c625c 100644
--- a/vendor/commerceguys/intl/resources/currency/so.json
+++ b/vendor/commerceguys/intl/resources/currency/so.json
@@ -55,6 +55,9 @@
"BOB": {
"name": "Bolifiyanada Bolifiya"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"GBP": {
"name": "Bowndka Biritishka",
"symbol": "£"
@@ -305,9 +308,6 @@
"CZK": {
"name": "Korunada Jeek"
},
- "HRK": {
- "name": "Kunada Korooshiya"
- },
"GTQ": {
"name": "Kuwestalka Guwatemala"
},
@@ -444,6 +444,9 @@
"UGX": {
"name": "Shilingka Yugandha"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PLN": {
"name": "Solotida Bolaan"
},
diff --git a/vendor/commerceguys/intl/resources/currency/sq.json b/vendor/commerceguys/intl/resources/currency/sq.json
index 24715fa45..2fe3e4677 100644
--- a/vendor/commerceguys/intl/resources/currency/sq.json
+++ b/vendor/commerceguys/intl/resources/currency/sq.json
@@ -15,6 +15,9 @@
"ETB": {
"name": "Bira etiopiane"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"VES": {
"name": "Bolivari venezuelas"
},
@@ -245,9 +248,6 @@
"GTQ": {
"name": "Kuecali i Guatemalës"
},
- "HRK": {
- "name": "Kuna kroate"
- },
"GEL": {
"name": "Laria gjeorgjiane"
},
@@ -404,6 +404,9 @@
"GHS": {
"name": "Sejda ganeze"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "Sola peruane"
},
diff --git a/vendor/commerceguys/intl/resources/currency/sr-Cyrl-BA.json b/vendor/commerceguys/intl/resources/currency/sr-Cyrl-BA.json
index 6b9278894..b336da64d 100644
--- a/vendor/commerceguys/intl/resources/currency/sr-Cyrl-BA.json
+++ b/vendor/commerceguys/intl/resources/currency/sr-Cyrl-BA.json
@@ -458,9 +458,6 @@
"HNL": {
"name": "хондурашка лемпира"
},
- "HRK": {
- "name": "хрватска куна"
- },
"XAF": {
"name": "централноафрички франак",
"symbol": "FCFA"
@@ -483,10 +480,16 @@
"LKR": {
"name": "шриланчанска рупија"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"XPF": {
"name": "CFP франак",
"symbol": "CFPF"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
}
diff --git a/vendor/commerceguys/intl/resources/currency/sr-Latn-BA.json b/vendor/commerceguys/intl/resources/currency/sr-Latn-BA.json
index 2afdfd343..582dcb68f 100644
--- a/vendor/commerceguys/intl/resources/currency/sr-Latn-BA.json
+++ b/vendor/commerceguys/intl/resources/currency/sr-Latn-BA.json
@@ -51,6 +51,9 @@
"BWP": {
"name": "bocvanska pula"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "bolivijski bolivijano"
},
@@ -163,9 +166,6 @@
"name": "hongkonški dolar",
"symbol": "HK$"
},
- "HRK": {
- "name": "hrvatska kuna"
- },
"INR": {
"name": "indijska rupija",
"symbol": "₹"
@@ -390,6 +390,9 @@
"SCR": {
"name": "sejšelska rupija"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SLL": {
"name": "sijeraleonski leone"
},
diff --git a/vendor/commerceguys/intl/resources/currency/sr-Latn.json b/vendor/commerceguys/intl/resources/currency/sr-Latn.json
index bced730c8..1cc473ea0 100644
--- a/vendor/commerceguys/intl/resources/currency/sr-Latn.json
+++ b/vendor/commerceguys/intl/resources/currency/sr-Latn.json
@@ -51,6 +51,9 @@
"BWP": {
"name": "bocvanska pula"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "bolivijski bolivijano"
},
@@ -163,9 +166,6 @@
"name": "hongkonški dolar",
"symbol": "HK$"
},
- "HRK": {
- "name": "hrvatska kuna"
- },
"INR": {
"name": "indijska rupija",
"symbol": "₹"
@@ -393,6 +393,9 @@
"KPW": {
"name": "severnokorejski von"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SLL": {
"name": "sijeraleonski leone"
},
diff --git a/vendor/commerceguys/intl/resources/currency/sr.json b/vendor/commerceguys/intl/resources/currency/sr.json
index 8733a5bbb..8bd8961f6 100644
--- a/vendor/commerceguys/intl/resources/currency/sr.json
+++ b/vendor/commerceguys/intl/resources/currency/sr.json
@@ -458,9 +458,6 @@
"HNL": {
"name": "хондурашка лемпира"
},
- "HRK": {
- "name": "хрватска куна"
- },
"XAF": {
"name": "централноафрички франак",
"symbol": "FCFA"
@@ -483,10 +480,16 @@
"LKR": {
"name": "шриланчанска рупија"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"XPF": {
"name": "CFP франак",
"symbol": "CFPF"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
}
diff --git a/vendor/commerceguys/intl/resources/currency/sv.json b/vendor/commerceguys/intl/resources/currency/sv.json
index 297671a68..e8479b7e2 100644
--- a/vendor/commerceguys/intl/resources/currency/sv.json
+++ b/vendor/commerceguys/intl/resources/currency/sv.json
@@ -58,6 +58,9 @@
"BTN": {
"name": "bhutanesisk ngultrum"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "boliviansk boliviano"
},
@@ -231,9 +234,6 @@
"CDF": {
"name": "kongolesisk franc"
},
- "HRK": {
- "name": "kroatisk kuna"
- },
"CUP": {
"name": "kubansk peso"
},
@@ -380,6 +380,9 @@
"SCR": {
"name": "seychellisk rupie"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SLL": {
"name": "sierraleonsk leone"
},
diff --git a/vendor/commerceguys/intl/resources/currency/sw-CD.json b/vendor/commerceguys/intl/resources/currency/sw-CD.json
index edda13468..4416705db 100644
--- a/vendor/commerceguys/intl/resources/currency/sw-CD.json
+++ b/vendor/commerceguys/intl/resources/currency/sw-CD.json
@@ -15,6 +15,9 @@
"ETB": {
"name": "Bir ya Uhabeshi"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"VES": {
"name": "Bolivar ya Venezuela"
},
@@ -228,9 +231,6 @@
"NOK": {
"name": "Krone ya Norwe"
},
- "HRK": {
- "name": "Kuna ya Korasia"
- },
"MWK": {
"name": "Kwacha ya Malawi"
},
@@ -443,6 +443,9 @@
"UGX": {
"name": "Shilingi ya Uganda"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "Sol ya Peru"
},
diff --git a/vendor/commerceguys/intl/resources/currency/sw-KE.json b/vendor/commerceguys/intl/resources/currency/sw-KE.json
index 426ca78b7..6439d809d 100644
--- a/vendor/commerceguys/intl/resources/currency/sw-KE.json
+++ b/vendor/commerceguys/intl/resources/currency/sw-KE.json
@@ -18,6 +18,9 @@
"VES": {
"name": "Boliva ya Venezuela"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Boliviano ya Bolivia"
},
@@ -224,9 +227,6 @@
"NOK": {
"name": "Kroni ya Norwe"
},
- "HRK": {
- "name": "Kuna ya Kroeshia"
- },
"MWK": {
"name": "Kwacha ya Malawi"
},
@@ -441,6 +441,9 @@
"GHS": {
"name": "Sidi ya Ghana"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "Sol ya Peru"
},
diff --git a/vendor/commerceguys/intl/resources/currency/sw.json b/vendor/commerceguys/intl/resources/currency/sw.json
index 3672d6904..4f05a08bf 100644
--- a/vendor/commerceguys/intl/resources/currency/sw.json
+++ b/vendor/commerceguys/intl/resources/currency/sw.json
@@ -15,6 +15,9 @@
"ETB": {
"name": "Birr ya Uhabeshi"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"VES": {
"name": "Bolivar ya Venezuela"
},
@@ -227,9 +230,6 @@
"NOK": {
"name": "Krone ya Norwe"
},
- "HRK": {
- "name": "Kuna ya Korasia"
- },
"MWK": {
"name": "Kwacha ya Malawi"
},
@@ -441,6 +441,9 @@
"UGX": {
"name": "Shilingi ya Uganda"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "Sol ya Peru"
},
diff --git a/vendor/commerceguys/intl/resources/currency/ta.json b/vendor/commerceguys/intl/resources/currency/ta.json
index ee1f21ca5..977f28075 100644
--- a/vendor/commerceguys/intl/resources/currency/ta.json
+++ b/vendor/commerceguys/intl/resources/currency/ta.json
@@ -135,9 +135,6 @@
"GNF": {
"name": "கினியன் ஃப்ராங்க்"
},
- "HRK": {
- "name": "குரோஷியன் குனா"
- },
"GTQ": {
"name": "குவாதெமாலன் க்யுட்ஸல்"
},
@@ -485,9 +482,15 @@
"HNL": {
"name": "ஹோன்டூரன் லெம்பீரா"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/te.json b/vendor/commerceguys/intl/resources/currency/te.json
index 473abc2f9..f9750629b 100644
--- a/vendor/commerceguys/intl/resources/currency/te.json
+++ b/vendor/commerceguys/intl/resources/currency/te.json
@@ -121,9 +121,6 @@
"name": "క్రొత్త తైవాన్ డాలర్",
"symbol": "NT$"
},
- "HRK": {
- "name": "క్రొయేషియన్ క్యూన"
- },
"QAR": {
"name": "క్వాటరి రీయల్"
},
@@ -485,9 +482,15 @@
"HNL": {
"name": "హోండురన్ లెమిపిరా"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/th.json b/vendor/commerceguys/intl/resources/currency/th.json
index 95a47fda8..95401ece7 100644
--- a/vendor/commerceguys/intl/resources/currency/th.json
+++ b/vendor/commerceguys/intl/resources/currency/th.json
@@ -29,9 +29,6 @@
"MWK": {
"name": "ควาชามาลาวี"
},
- "HRK": {
- "name": "คูนาโครเอเชีย"
- },
"GTQ": {
"name": "เควตซัลกัวเตมาลา"
},
@@ -491,6 +488,12 @@
"UAH": {
"name": "ฮรีฟเนียยูเครน"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
}
diff --git a/vendor/commerceguys/intl/resources/currency/tk.json b/vendor/commerceguys/intl/resources/currency/tk.json
index e134a71c4..dccb10bee 100644
--- a/vendor/commerceguys/intl/resources/currency/tk.json
+++ b/vendor/commerceguys/intl/resources/currency/tk.json
@@ -52,6 +52,9 @@
"BGN": {
"name": "Bolgar lewi"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Boliwiýa boliwianosy"
},
@@ -169,9 +172,6 @@
"name": "Hindi rupiýasy",
"symbol": "₹"
},
- "HRK": {
- "name": "Horwat kunasy"
- },
"CNY": {
"name": "Hytaý ýuany",
"symbol": "CN¥"
@@ -375,6 +375,9 @@
"SCR": {
"name": "Seýşel rupiýasy"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SGD": {
"name": "Singapur dollary"
},
diff --git a/vendor/commerceguys/intl/resources/currency/tr.json b/vendor/commerceguys/intl/resources/currency/tr.json
index 37c155683..531f116aa 100644
--- a/vendor/commerceguys/intl/resources/currency/tr.json
+++ b/vendor/commerceguys/intl/resources/currency/tr.json
@@ -53,6 +53,9 @@
"AED": {
"name": "Birleşik Arap Emirlikleri Dirhemi"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Bolivya Bolivyanosu"
},
@@ -173,9 +176,6 @@
"HTG": {
"name": "Haiti Gurdu"
},
- "HRK": {
- "name": "Hırvatistan Kunası"
- },
"INR": {
"name": "Hindistan Rupisi",
"symbol": "₹"
@@ -390,6 +390,9 @@
"SLL": {
"name": "Sierra Leone Leonesi"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SGD": {
"name": "Singapur Doları"
},
diff --git a/vendor/commerceguys/intl/resources/currency/uk.json b/vendor/commerceguys/intl/resources/currency/uk.json
index 916bfa342..9d941c221 100644
--- a/vendor/commerceguys/intl/resources/currency/uk.json
+++ b/vendor/commerceguys/intl/resources/currency/uk.json
@@ -446,9 +446,6 @@
"FKP": {
"name": "фунт Фолклендських островів"
},
- "HRK": {
- "name": "хорватська куна"
- },
"XAF": {
"name": "центральноафриканський франк",
"symbol": "FCFA"
@@ -475,6 +472,12 @@
"name": "японська єна",
"symbol": "¥"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
}
diff --git a/vendor/commerceguys/intl/resources/currency/ur-IN.json b/vendor/commerceguys/intl/resources/currency/ur-IN.json
index bbfe902e9..f395cee3f 100644
--- a/vendor/commerceguys/intl/resources/currency/ur-IN.json
+++ b/vendor/commerceguys/intl/resources/currency/ur-IN.json
@@ -291,9 +291,6 @@
"KGS": {
"name": "کرغستانی سوم"
},
- "HRK": {
- "name": "کروشین کونا"
- },
"KHR": {
"name": "کمبوڈیائی ریئل"
},
@@ -481,6 +478,9 @@
"UGX": {
"name": "یوگانڈا شلنگ"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"XPF": {
"name": "CFP فرانک",
"symbol": "CFPF"
@@ -488,6 +488,9 @@
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/ur.json b/vendor/commerceguys/intl/resources/currency/ur.json
index 27ac47bfd..80ac22073 100644
--- a/vendor/commerceguys/intl/resources/currency/ur.json
+++ b/vendor/commerceguys/intl/resources/currency/ur.json
@@ -289,9 +289,6 @@
"KGS": {
"name": "کرغستانی سوم"
},
- "HRK": {
- "name": "کروشین کونا"
- },
"KHR": {
"name": "کمبوڈیائی ریئل"
},
@@ -482,6 +479,9 @@
"UGX": {
"name": "یوگانڈا شلنگ"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"XPF": {
"name": "CFP فرانک",
"symbol": "CFPF"
@@ -489,6 +489,9 @@
"SVC": {
"name": "Salvadoran Colón"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
},
diff --git a/vendor/commerceguys/intl/resources/currency/uz-Cyrl.json b/vendor/commerceguys/intl/resources/currency/uz-Cyrl.json
index 4b14a49f6..f9f6154ae 100644
--- a/vendor/commerceguys/intl/resources/currency/uz-Cyrl.json
+++ b/vendor/commerceguys/intl/resources/currency/uz-Cyrl.json
@@ -30,6 +30,9 @@
"BTN": {
"name": "Bhutanese Ngultrum"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BAM": {
"name": "Bosnia-Herzegovina Convertible Mark"
},
@@ -65,9 +68,6 @@
"CDF": {
"name": "Congolese Franc"
},
- "HRK": {
- "name": "Croatian Kuna"
- },
"CZK": {
"name": "Czech Koruna"
},
@@ -220,14 +220,14 @@
"name": "Papua New Guinean Kina"
},
"PHP": {
- "name": "Philippine Piso",
+ "name": "Philippine Peso",
"symbol": "₱"
},
"PLN": {
"name": "Polish Zloty"
},
"QAR": {
- "name": "Qatari Rial"
+ "name": "Qatari Riyal"
},
"RON": {
"name": "Romanian Leu"
@@ -253,9 +253,12 @@
"SCR": {
"name": "Seychellois Rupee"
},
- "SLL": {
+ "SLE": {
"name": "Sierra Leonean Leone"
},
+ "SLL": {
+ "name": "Sierra Leonean Leone (1964—2022)"
+ },
"SGD": {
"name": "Singapore Dollar"
},
diff --git a/vendor/commerceguys/intl/resources/currency/uz.json b/vendor/commerceguys/intl/resources/currency/uz.json
index e35f86eef..7c92c3f41 100644
--- a/vendor/commerceguys/intl/resources/currency/uz.json
+++ b/vendor/commerceguys/intl/resources/currency/uz.json
@@ -56,6 +56,9 @@
"BGN": {
"name": "Bolgariya levi"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"BOB": {
"name": "Boliviya bolivianosi"
},
@@ -353,6 +356,9 @@
"SCR": {
"name": "Seyshel rupiyasi"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"SGD": {
"name": "Singapur dollari"
},
@@ -433,9 +439,6 @@
"name": "Xitoy yuani",
"symbol": "CN¥"
},
- "HRK": {
- "name": "Xorvatiya kunasi"
- },
"YER": {
"name": "Yaman riyoli"
},
diff --git a/vendor/commerceguys/intl/resources/currency/vi.json b/vendor/commerceguys/intl/resources/currency/vi.json
index 3a4ee43e6..c881926ed 100644
--- a/vendor/commerceguys/intl/resources/currency/vi.json
+++ b/vendor/commerceguys/intl/resources/currency/vi.json
@@ -43,6 +43,9 @@
"ETB": {
"name": "Birr Ethiopia"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
"VES": {
"name": "Bolívar Venezuela"
},
@@ -265,9 +268,6 @@
"NOK": {
"name": "Krone Na Uy"
},
- "HRK": {
- "name": "Kuna Croatia"
- },
"MWK": {
"name": "Kwacha Malawi"
},
@@ -450,6 +450,9 @@
"UGX": {
"name": "Shilling Uganda"
},
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"PEN": {
"name": "Sol Peru"
},
diff --git a/vendor/commerceguys/intl/resources/currency/yue-Hans.json b/vendor/commerceguys/intl/resources/currency/yue-Hans.json
index 9ed5a13a1..dd70cb886 100644
--- a/vendor/commerceguys/intl/resources/currency/yue-Hans.json
+++ b/vendor/commerceguys/intl/resources/currency/yue-Hans.json
@@ -209,9 +209,6 @@
"KWD": {
"name": "科威特第纳尔"
},
- "HRK": {
- "name": "克罗埃西亚库纳"
- },
"KES": {
"name": "肯尼亚先令"
},
@@ -490,6 +487,12 @@
"CLP": {
"name": "智利披索"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
}
diff --git a/vendor/commerceguys/intl/resources/currency/yue.json b/vendor/commerceguys/intl/resources/currency/yue.json
index 287e98d0d..e1e48f8b0 100644
--- a/vendor/commerceguys/intl/resources/currency/yue.json
+++ b/vendor/commerceguys/intl/resources/currency/yue.json
@@ -134,9 +134,6 @@
"WST": {
"name": "西薩摩亞塔拉"
},
- "HRK": {
- "name": "克羅埃西亞庫納"
- },
"LYD": {
"name": "利比亞第納爾"
},
@@ -490,6 +487,12 @@
"SRD": {
"name": "蘇利南元"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
}
diff --git a/vendor/commerceguys/intl/resources/currency/zh-Hans-HK.json b/vendor/commerceguys/intl/resources/currency/zh-Hans-HK.json
index 109470cde..43de57949 100644
--- a/vendor/commerceguys/intl/resources/currency/zh-Hans-HK.json
+++ b/vendor/commerceguys/intl/resources/currency/zh-Hans-HK.json
@@ -209,9 +209,6 @@
"KWD": {
"name": "科威特第纳尔"
},
- "HRK": {
- "name": "克罗地亚库纳"
- },
"KES": {
"name": "肯尼亚先令"
},
@@ -337,6 +334,9 @@
"SLL": {
"name": "塞拉利昂利昂"
},
+ "SLE": {
+ "name": "塞拉利昂新利昂"
+ },
"SCR": {
"name": "塞舌尔卢比"
},
@@ -404,6 +404,9 @@
"VES": {
"name": "委内瑞拉玻利瓦尔"
},
+ "VED": {
+ "name": "委内瑞拉主权币"
+ },
"BND": {
"name": "文莱元"
},
diff --git a/vendor/commerceguys/intl/resources/currency/zh-Hant-HK.json b/vendor/commerceguys/intl/resources/currency/zh-Hant-HK.json
index 09f48e010..3a29377bd 100644
--- a/vendor/commerceguys/intl/resources/currency/zh-Hant-HK.json
+++ b/vendor/commerceguys/intl/resources/currency/zh-Hant-HK.json
@@ -36,7 +36,7 @@
"name": "巴布亞新幾內亞基那"
},
"BRL": {
- "name": "巴西里拉",
+ "name": "巴西雷亞爾",
"symbol": "R$"
},
"PYG": {
@@ -164,9 +164,6 @@
"CVE": {
"name": "佛得角埃斯庫多"
},
- "HRK": {
- "name": "克羅地亞庫納"
- },
"LRD": {
"name": "利比利亞元"
},
@@ -490,6 +487,12 @@
"SRD": {
"name": "蘇里南元"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
}
diff --git a/vendor/commerceguys/intl/resources/currency/zh-Hant.json b/vendor/commerceguys/intl/resources/currency/zh-Hant.json
index d615d0c72..5e2c2b0be 100644
--- a/vendor/commerceguys/intl/resources/currency/zh-Hant.json
+++ b/vendor/commerceguys/intl/resources/currency/zh-Hant.json
@@ -22,7 +22,7 @@
"name": "巴布亞紐幾內亞基那"
},
"BRL": {
- "name": "巴西里拉",
+ "name": "巴西雷亞爾",
"symbol": "R$"
},
"BBD": {
@@ -131,9 +131,6 @@
"WST": {
"name": "西薩摩亞塔拉"
},
- "HRK": {
- "name": "克羅埃西亞庫納"
- },
"LYD": {
"name": "利比亞第納爾"
},
@@ -490,6 +487,12 @@
"SRD": {
"name": "蘇利南元"
},
+ "VED": {
+ "name": "Bolívar Soberano"
+ },
+ "SLE": {
+ "name": "Sierra Leonean Leone"
+ },
"UYW": {
"name": "Uruguayan Nominal Wage Index Unit"
}
diff --git a/vendor/commerceguys/intl/resources/currency/zh.json b/vendor/commerceguys/intl/resources/currency/zh.json
index a1b2e5b15..02ff54d3c 100644
--- a/vendor/commerceguys/intl/resources/currency/zh.json
+++ b/vendor/commerceguys/intl/resources/currency/zh.json
@@ -209,9 +209,6 @@
"KWD": {
"name": "科威特第纳尔"
},
- "HRK": {
- "name": "克罗地亚库纳"
- },
"KES": {
"name": "肯尼亚先令"
},
@@ -337,6 +334,9 @@
"SLL": {
"name": "塞拉利昂利昂"
},
+ "SLE": {
+ "name": "塞拉利昂新利昂"
+ },
"SCR": {
"name": "塞舌尔卢比"
},
@@ -404,6 +404,9 @@
"VES": {
"name": "委内瑞拉玻利瓦尔"
},
+ "VED": {
+ "name": "委内瑞拉主权币"
+ },
"BND": {
"name": "文莱元"
},
diff --git a/vendor/commerceguys/intl/resources/language/af.json b/vendor/commerceguys/intl/resources/language/af.json
index 2f4dce67e..7598331fd 100644
--- a/vendor/commerceguys/intl/resources/language/af.json
+++ b/vendor/commerceguys/intl/resources/language/af.json
@@ -19,6 +19,7 @@
"bez": "Bena",
"dsb": "Benedesorbies",
"bn": "Bengaals",
+ "bho": "Bhojpuri",
"my": "Birmaans",
"brx": "Bodo",
"nb": "Boeknoors",
@@ -30,6 +31,7 @@
"zh": "Chinees",
"zh-Hant": "Chinees (Tradisioneel)",
"zh-Hans": "Chinees (Vereenvoudig)",
+ "cv": "Chuvash",
"da": "Deens",
"doi": "Dogri",
"dua": "Duala",
@@ -60,10 +62,12 @@
"gu": "Goedjarati",
"el": "Grieks",
"guz": "Gusii",
+ "bgc": "Haryanvi",
"ha": "Hausa",
"haw": "Hawais",
"he": "Hebreeus",
"hi": "Hindi",
+ "hi-Latn": "Hindi (Latyn)",
"hu": "Hongaars",
"ga": "Iers",
"ig": "Igbo",
@@ -126,6 +130,7 @@
"mk": "Masedonies",
"mer": "Meru",
"mgo": "Meta’",
+ "mdf": "Moksha",
"mn": "Mongools",
"mfe": "Morisjen",
"mua": "Mundang",
@@ -138,6 +143,7 @@
"jgo": "Ngomba",
"yrl": "Nheengatu",
"pcm": "Nigeriese Pidgin",
+ "frr": "Noord-Fries",
"lrc": "Noord-Luri",
"nd": "Noord-Ndebele",
"se": "Noord-Sami",
@@ -145,9 +151,11 @@
"nus": "Nuer",
"nn": "Nuwe Noors",
"nyn": "Nyankole",
+ "ann": "Obolo",
"uk": "Oekraïens",
"ur": "Oerdoe",
"uz": "Oezbeeks",
+ "oc": "Oksitaans",
"hsb": "Oppersorbies",
"or": "Oriya",
"om": "Oromo",
@@ -155,10 +163,12 @@
"pa": "Pandjabi",
"ps": "Pasjto",
"fa": "Persies",
+ "pis": "Pijin",
"pl": "Pools",
"pt": "Portugees",
"pt-PT": "Portugees (Portugal)",
"qu": "Quechua",
+ "raj": "Rajasthani",
"rm": "Reto-Romaans",
"ro": "Roemeens",
"ro-MD": "Roemeens (Moldowa)",
@@ -182,6 +192,7 @@
"ii": "Sichuan Yi",
"sd": "Sindhi",
"si": "Sinhala",
+ "sms": "Skolt Sami",
"gd": "Skotse Gallies",
"sk": "Slowaaks",
"sl": "Sloweens",
@@ -208,6 +219,7 @@
"th": "Thai",
"bo": "Tibettaans",
"ti": "Tigrinya",
+ "tok": "Toki Pona",
"to": "Tongaans",
"cs": "Tsjeggies",
"ce": "Tsjetsjeens",
diff --git a/vendor/commerceguys/intl/resources/language/ar-EG.json b/vendor/commerceguys/intl/resources/language/ar-EG.json
index b67d46e2a..bbda5ee70 100644
--- a/vendor/commerceguys/intl/resources/language/ar-EG.json
+++ b/vendor/commerceguys/intl/resources/language/ar-EG.json
@@ -30,6 +30,7 @@
"uz": "الأوزبكية",
"os": "الأوسيتيك",
"uk": "الأوكرانية",
+ "oc": "الأوكسيتانية",
"ug": "الأويغورية",
"ig": "الإيجبو",
"ga": "الأيرلندية",
@@ -50,6 +51,7 @@
"bg": "البلغارية",
"pa": "البنجابية",
"bn": "البنغالية",
+ "bho": "البهوجبورية",
"brx": "البودو",
"my": "البورمية",
"bs": "البوسنية",
@@ -62,9 +64,11 @@
"tt": "التترية",
"tk": "التركمانية",
"tr": "التركية",
+ "cv": "التشوفاشي",
"cs": "التشيكية",
"ti": "التغرينية",
"zgh": "التمازيغية المغربية القياسية",
+ "tok": "التوكي-بونا",
"to": "التونغية",
"te": "التيلوغوية",
"gl": "الجاليكية",
@@ -75,6 +79,7 @@
"da": "الدنماركية",
"doi": "الدوجرية",
"dua": "الديولا",
+ "raj": "الراجاسثانية",
"rn": "الرندي",
"rwk": "الروا",
"ru": "الروسية",
@@ -89,6 +94,7 @@
"sg": "السانجو",
"sc": "السردينية",
"nds-NL": "السكسونية السفلى",
+ "sms": "السكولت سامي",
"sk": "السلوفاكية",
"sl": "السلوفانية",
"sd": "السندية",
@@ -124,6 +130,7 @@
"fr-CH": "الفرنسية السويسرية",
"fr-CA": "الفرنسية الكندية",
"fy": "الفريزيان",
+ "frr": "الفريزينية الشمالية",
"fur": "الفريلايان",
"fil": "الفلبينية",
"nl-BE": "الفلمنكية",
@@ -137,6 +144,7 @@
"kl": "الكالاليست",
"kam": "الكامبا",
"kn": "الكانادا",
+ "kgp": "الكاينغانغ",
"ca": "الكتالانية",
"ku": "الكردية",
"hr": "الكرواتية",
@@ -171,6 +179,7 @@
"mg": "الملغاشي",
"mn": "المنغولية",
"mfe": "المورسيانية",
+ "mdf": "الموكشا",
"ro-MD": "المولدوفية",
"mer": "الميرو",
"nd": "النديبيل الشمالية",
@@ -180,7 +189,9 @@
"nus": "النوير",
"nyn": "النيانكول",
"ne": "النيبالية",
+ "yrl": "النيينجاتو",
"hi": "الهندية",
+ "hi-Latn": "الهندية (اللاتينية)",
"hu": "الهنغارية",
"ha": "الهوسا",
"nl": "الهولندية",
@@ -193,6 +204,8 @@
"yo": "اليوروبا",
"el": "اليونانية",
"ebu": "إمبو",
+ "ann": "أوبلو",
+ "pis": "بيجين",
"bez": "بينا",
"twq": "تاساواق",
"shi": "تشلحيت",
@@ -226,6 +239,5 @@
"mgo": "ميتا",
"jgo": "نغومبا",
"yav": "يانجبن",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/ar-LY.json b/vendor/commerceguys/intl/resources/language/ar-LY.json
index 07745325d..df72b849a 100644
--- a/vendor/commerceguys/intl/resources/language/ar-LY.json
+++ b/vendor/commerceguys/intl/resources/language/ar-LY.json
@@ -30,6 +30,7 @@
"uz": "الأوزبكية",
"os": "الأوسيتيك",
"uk": "الأوكرانية",
+ "oc": "الأوكسيتانية",
"ug": "الأويغورية",
"ig": "الإيجبو",
"ga": "الأيرلندية",
@@ -50,6 +51,7 @@
"bg": "البلغارية",
"pa": "البنجابية",
"bn": "البنغالية",
+ "bho": "البهوجبورية",
"brx": "البودو",
"my": "البورمية",
"bs": "البوسنية",
@@ -62,8 +64,10 @@
"tt": "التترية",
"tk": "التركمانية",
"tr": "التركية",
+ "cv": "التشوفاشي",
"cs": "التشيكية",
"zgh": "التمازيغية المغربية القياسية",
+ "tok": "التوكي-بونا",
"to": "التونغية",
"ti": "التيغرينية",
"te": "التيلوغوية",
@@ -75,6 +79,7 @@
"da": "الدانمركية",
"doi": "الدوجرية",
"dua": "الديولا",
+ "raj": "الراجاسثانية",
"rn": "الرندي",
"rwk": "الروا",
"ru": "الروسية",
@@ -89,6 +94,7 @@
"sg": "السانجو",
"sc": "السردينية",
"nds-NL": "السكسونية السفلى",
+ "sms": "السكولت سامي",
"sk": "السلوفاكية",
"sl": "السلوفانية",
"sd": "السندية",
@@ -124,6 +130,7 @@
"fr-CH": "الفرنسية السويسرية",
"fr-CA": "الفرنسية الكندية",
"fy": "الفريزيان",
+ "frr": "الفريزينية الشمالية",
"fur": "الفريلايان",
"fil": "الفلبينية",
"nl-BE": "الفلمنكية",
@@ -137,6 +144,7 @@
"kl": "الكالاليست",
"kam": "الكامبا",
"kn": "الكانادا",
+ "kgp": "الكاينغانغ",
"ca": "الكتالانية",
"ku": "الكردية",
"hr": "الكرواتية",
@@ -170,6 +178,7 @@
"mg": "الملغاشي",
"mn": "المنغولية",
"mfe": "المورسيانية",
+ "mdf": "الموكشا",
"ro-MD": "المولدوفية",
"mer": "الميرو",
"nd": "النديبيل الشمالية",
@@ -179,7 +188,9 @@
"nus": "النوير",
"nyn": "النيانكول",
"ne": "النيبالية",
+ "yrl": "النيينجاتو",
"hi": "الهندية",
+ "hi-Latn": "الهندية (اللاتينية)",
"hu": "الهنغارية",
"ha": "الهوسا",
"nl": "الهولندية",
@@ -192,6 +203,8 @@
"yo": "اليوروبا",
"el": "اليونانية",
"ebu": "إمبو",
+ "ann": "أوبلو",
+ "pis": "بيجين",
"bez": "بينا",
"twq": "تاساواق",
"shi": "تشلحيت",
@@ -226,6 +239,5 @@
"mgo": "ميتا",
"jgo": "نغومبا",
"yav": "يانجبن",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/ar-SA.json b/vendor/commerceguys/intl/resources/language/ar-SA.json
index fa1aa1cdb..609e843c9 100644
--- a/vendor/commerceguys/intl/resources/language/ar-SA.json
+++ b/vendor/commerceguys/intl/resources/language/ar-SA.json
@@ -30,6 +30,7 @@
"uz": "الأوزبكية",
"os": "الأوسيتيك",
"uk": "الأوكرانية",
+ "oc": "الأوكسيتانية",
"ug": "الأويغورية",
"ig": "الإيجبو",
"ga": "الأيرلندية",
@@ -50,6 +51,7 @@
"bg": "البلغارية",
"pa": "البنجابية",
"bn": "البنغالية",
+ "bho": "البهوجبورية",
"brx": "البودو",
"my": "البورمية",
"bs": "البوسنية",
@@ -62,8 +64,10 @@
"tt": "التترية",
"tk": "التركمانية",
"tr": "التركية",
+ "cv": "التشوفاشي",
"cs": "التشيكية",
"zgh": "التمازيغية المغربية القياسية",
+ "tok": "التوكي-بونا",
"to": "التونغية",
"ti": "التيغرينية",
"te": "التيلوجو",
@@ -75,6 +79,7 @@
"da": "الدانمركية",
"doi": "الدوجرية",
"dua": "الديولا",
+ "raj": "الراجاسثانية",
"rn": "الرندي",
"rwk": "الروا",
"ru": "الروسية",
@@ -89,6 +94,7 @@
"sg": "السانجو",
"sc": "السردينية",
"nds-NL": "السكسونية السفلى",
+ "sms": "السكولت سامي",
"sk": "السلوفاكية",
"sl": "السلوفانية",
"sd": "السندية",
@@ -124,6 +130,7 @@
"fr-CH": "الفرنسية السويسرية",
"fr-CA": "الفرنسية الكندية",
"fy": "الفريزيان",
+ "frr": "الفريزينية الشمالية",
"fur": "الفريلايان",
"fil": "الفلبينية",
"nl-BE": "الفلمنكية",
@@ -137,6 +144,7 @@
"kl": "الكالاليست",
"kam": "الكامبا",
"kn": "الكانادا",
+ "kgp": "الكاينغانغ",
"ca": "الكتالانية",
"ku": "الكردية",
"hr": "الكرواتية",
@@ -170,6 +178,7 @@
"mg": "الملغاشي",
"mn": "المنغولية",
"mfe": "المورسيانية",
+ "mdf": "الموكشا",
"ro-MD": "المولدوفية",
"mer": "الميرو",
"nd": "النديبيل الشمالية",
@@ -179,7 +188,9 @@
"nus": "النوير",
"nyn": "النيانكول",
"ne": "النيبالية",
+ "yrl": "النيينجاتو",
"hi": "الهندية",
+ "hi-Latn": "الهندية (اللاتينية)",
"hu": "الهنغارية",
"ha": "الهوسا",
"nl": "الهولندية",
@@ -192,6 +203,8 @@
"yo": "اليوروبا",
"el": "اليونانية",
"ebu": "إمبو",
+ "ann": "أوبلو",
+ "pis": "بيجين",
"bez": "بينا",
"twq": "تاساواق",
"shi": "تشلحيت",
@@ -226,6 +239,5 @@
"mgo": "ميتا",
"jgo": "نغومبا",
"yav": "يانجبن",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/ar.json b/vendor/commerceguys/intl/resources/language/ar.json
index bdd2de373..f30820667 100644
--- a/vendor/commerceguys/intl/resources/language/ar.json
+++ b/vendor/commerceguys/intl/resources/language/ar.json
@@ -30,6 +30,7 @@
"uz": "الأوزبكية",
"os": "الأوسيتيك",
"uk": "الأوكرانية",
+ "oc": "الأوكسيتانية",
"ug": "الأويغورية",
"ig": "الإيجبو",
"ga": "الأيرلندية",
@@ -50,6 +51,7 @@
"bg": "البلغارية",
"pa": "البنجابية",
"bn": "البنغالية",
+ "bho": "البهوجبورية",
"brx": "البودو",
"my": "البورمية",
"bs": "البوسنية",
@@ -62,9 +64,11 @@
"tt": "التترية",
"tk": "التركمانية",
"tr": "التركية",
+ "cv": "التشوفاشي",
"cs": "التشيكية",
"ti": "التغرينية",
"zgh": "التمازيغية المغربية القياسية",
+ "tok": "التوكي-بونا",
"to": "التونغية",
"te": "التيلوغوية",
"gl": "الجاليكية",
@@ -75,6 +79,7 @@
"da": "الدانمركية",
"doi": "الدوجرية",
"dua": "الديولا",
+ "raj": "الراجاسثانية",
"rn": "الرندي",
"rwk": "الروا",
"ru": "الروسية",
@@ -89,6 +94,7 @@
"sg": "السانجو",
"sc": "السردينية",
"nds-NL": "السكسونية السفلى",
+ "sms": "السكولت سامي",
"sk": "السلوفاكية",
"sl": "السلوفانية",
"sd": "السندية",
@@ -124,6 +130,7 @@
"fr-CH": "الفرنسية السويسرية",
"fr-CA": "الفرنسية الكندية",
"fy": "الفريزيان",
+ "frr": "الفريزينية الشمالية",
"fur": "الفريلايان",
"fil": "الفلبينية",
"nl-BE": "الفلمنكية",
@@ -137,6 +144,7 @@
"kl": "الكالاليست",
"kam": "الكامبا",
"kn": "الكانادا",
+ "kgp": "الكاينغانغ",
"ca": "الكتالانية",
"ku": "الكردية",
"hr": "الكرواتية",
@@ -171,6 +179,7 @@
"mg": "الملغاشي",
"mn": "المنغولية",
"mfe": "المورسيانية",
+ "mdf": "الموكشا",
"ro-MD": "المولدوفية",
"mer": "الميرو",
"nd": "النديبيل الشمالية",
@@ -180,7 +189,9 @@
"nus": "النوير",
"nyn": "النيانكول",
"ne": "النيبالية",
+ "yrl": "النيينجاتو",
"hi": "الهندية",
+ "hi-Latn": "الهندية (اللاتينية)",
"hu": "الهنغارية",
"ha": "الهوسا",
"nl": "الهولندية",
@@ -193,6 +204,8 @@
"yo": "اليوروبا",
"el": "اليونانية",
"ebu": "إمبو",
+ "ann": "أوبلو",
+ "pis": "بيجين",
"bez": "بينا",
"twq": "تاساواق",
"shi": "تشلحيت",
@@ -226,6 +239,5 @@
"mgo": "ميتا",
"jgo": "نغومبا",
"yav": "يانجبن",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/as.json b/vendor/commerceguys/intl/resources/language/as.json
index b5c2f8abc..568463254 100644
--- a/vendor/commerceguys/intl/resources/language/as.json
+++ b/vendor/commerceguys/intl/resources/language/as.json
@@ -1,4 +1,6 @@
{
+ "oc": "অ’চিটান",
+ "ann": "অ’ব’ল’",
"en-AU": "অষ্ট্ৰেলিয়ান ইংৰাজী",
"de-AT": "অষ্ট্ৰেলিয়ান জাৰ্মান",
"as": "অসমীয়া",
@@ -56,6 +58,7 @@
"ky": "কিৰ্গিজ",
"ku": "কুৰ্ডিচ",
"qu": "কুৱেচুৱা",
+ "kgp": "কেইংগাং",
"yue": "কেণ্টোনীজ",
"ses": "কোইৰাবোৰো চেন্নি",
"kok": "কোংকণী",
@@ -76,6 +79,7 @@
"cgg": "চিগা",
"ceb": "চিবুৱানো",
"zh": "চীনা",
+ "cv": "চুভাচ",
"cs": "চেক",
"ce": "চেচেন",
"tzm": "চেণ্ট্ৰেল এটলাছ টামাজাইট",
@@ -105,6 +109,7 @@
"dyo": "জোলা-ফ’নি",
"dje": "ঝাৰ্মা",
"zu": "ঝুলু",
+ "tok": "ট’কি প’না",
"twq": "টাছাৱাক",
"ti": "টিগৰিনিয়া",
"to": "টোঙ্গান",
@@ -127,6 +132,7 @@
"no": "নৰৱেজিয়ান",
"nn": "নৰৱেজিয়ান নায়নোৰ্স্ক",
"nb": "নৰৱেজিয়ান বোকমাল",
+ "frr": "নৰ্দাৰ্ন ফ্ৰিছিয়ান",
"pcm": "নাইজেৰিয়ান পিজিন",
"naq": "নামা",
"nnh": "নিয়েম্বোন",
@@ -137,6 +143,7 @@
"zh-Hant": "পৰম্পৰাগত চীনা",
"pt": "পৰ্তুগীজ",
"pa": "পাঞ্জাবী",
+ "pis": "পিজিন",
"ps": "পুস্ত",
"fo": "ফাৰোইজ",
"fa": "ফাৰ্ছী",
@@ -163,6 +170,7 @@
"vai": "ভাই",
"vi": "ভিয়েটনামী",
"vun": "ভুঞ্জু",
+ "bho": "ভোজপুৰী",
"mn": "মংগোলীয়",
"mni": "মণিপুৰী",
"mfe": "মৰিছিয়ান",
@@ -183,6 +191,7 @@
"mgo": "মেটা",
"mer": "মেৰু",
"mai": "মৈথিলী",
+ "mdf": "মোক্সা",
"ro-MD": "মোল্ডাভিয়ান",
"yav": "য়াংবেন",
"rwk": "ৰৱা",
@@ -218,14 +227,17 @@
"si": "সিংহলা",
"sd": "সিন্ধী",
"gd": "স্কটিচ গেইলিক",
+ "sms": "স্কোল্ট ছামি",
"es": "স্পেনিচ",
"sw": "স্বাহিলি",
"ha": "হাউছা",
"hu": "হাঙ্গেৰিয়ান",
"haw": "হাৱাই",
+ "yrl": "হিংগাটো",
"hi": "হিন্দী",
+ "hi-Latn": "হিন্দী (লেটিন)",
"he": "হিব্ৰু",
"xh": "হোছা",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi",
+ "raj": "Rajasthani"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/ast.json b/vendor/commerceguys/intl/resources/language/ast.json
index 19ee94b20..830fff5f4 100644
--- a/vendor/commerceguys/intl/resources/language/ast.json
+++ b/vendor/commerceguys/intl/resources/language/ast.json
@@ -24,6 +24,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalín",
+ "bho": "bhojpuri",
"be": "bielorrusu",
"my": "birmanu",
"brx": "bodo",
@@ -43,6 +44,7 @@
"zh": "chinu",
"zh-Hans": "chinu simplificáu",
"zh-Hant": "chinu tradicional",
+ "cv": "chuvash",
"si": "cingalés",
"ksh": "colonianu",
"ko": "coreanu",
@@ -69,6 +71,7 @@
"fr": "francés",
"fr-CA": "francés de Canadá",
"fr-CH": "francés de Suiza",
+ "frr": "frisón del norte",
"fy": "frisón occidental",
"fur": "friulianu",
"ff": "fulah",
@@ -79,11 +82,13 @@
"el": "griegu",
"guz": "gusii",
"gu": "guyaratí",
+ "bgc": "Haryanvi",
"ha": "ḥausa",
"haw": "hawaianu",
"he": "hebréu",
"km": "ḥemer",
"hi": "hindi",
+ "hi-Latn": "hindi (llatín)",
"hu": "húngaru",
"ig": "igbo",
"smn": "inari sami",
@@ -139,6 +144,7 @@
"mzn": "mazanderani",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavu",
"mn": "mongol",
"mfe": "morisyen",
@@ -156,16 +162,20 @@
"nn": "noruegu Nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "ann": "Obolo",
+ "oc": "occitanu",
"or": "oriya",
"om": "oromo",
"os": "oséticu",
"ps": "pashtu",
"fa": "persa",
+ "pis": "Pijin",
"pl": "polacu",
"pt": "portugués",
"pt-PT": "portugués européu",
"pa": "punyabí",
"qu": "quechua",
+ "raj": "rajasthanín",
"rm": "romanche",
"rof": "rombo",
"ro": "rumanu",
@@ -185,6 +195,7 @@
"ksb": "shambala",
"sn": "shona",
"sd": "sindhi",
+ "sms": "skolt sami",
"xog": "soga",
"so": "somalín",
"su": "sondanés",
@@ -204,6 +215,7 @@
"teo": "teso",
"bo": "tibetanu",
"ti": "tigrinya",
+ "tok": "Toki Pona",
"to": "tonganu",
"tk": "turcomanu",
"tr": "turcu",
diff --git a/vendor/commerceguys/intl/resources/language/az-Cyrl.json b/vendor/commerceguys/intl/resources/language/az-Cyrl.json
index 2445858ee..52f32481a 100644
--- a/vendor/commerceguys/intl/resources/language/az-Cyrl.json
+++ b/vendor/commerceguys/intl/resources/language/az-Cyrl.json
@@ -1,10 +1,16 @@
{
"doi": "Dogri",
+ "bgc": "Haryanvi",
"kgp": "Kaingang",
"nds": "Low German",
"yrl": "Nheengatu",
+ "frr": "Northern Frisian",
"no": "Norwegian",
+ "ann": "Obolo",
+ "pis": "Pijin",
+ "raj": "Rajasthani",
"ii": "Sichuan Yi",
+ "tok": "Toki Pona",
"en-AU": "Австралија инҝилисҹәси",
"de-AT": "Австрија алманҹасы",
"agq": "агһем",
@@ -36,6 +42,7 @@
"br": "бретон",
"en-GB": "Британија инҝилисҹәси",
"bg": "булгар",
+ "bho": "бхочпури",
"vai": "ваи",
"wae": "валлес",
"wa": "валун",
@@ -137,6 +144,7 @@
"es-MX": "Мексика испанҹасы",
"mer": "меру",
"mgo": "метаʼ",
+ "mdf": "мокша",
"mn": "монгол",
"mfe": "морисиен",
"mua": "мунданг",
@@ -149,6 +157,7 @@
"nus": "нуер",
"nn": "нүнорск норвеч",
"or": "одија",
+ "oc": "окситан",
"om": "оромо",
"os": "осетин",
"uz": "өзбәк",
@@ -177,6 +186,7 @@
"sr": "серб",
"sd": "синдһи",
"si": "синһала",
+ "sms": "сколт сами",
"sk": "словак",
"sl": "словен",
"xog": "сога",
@@ -216,12 +226,14 @@
"haw": "һавај",
"ha": "һауса",
"hi": "һинд",
+ "hi-Latn": "һинд (Latn)",
"nl": "һолланд",
"chr": "чероки",
"cs": "чех",
"ce": "чечен",
"cgg": "чига",
"zh": "чин",
+ "cv": "чуваш",
"ksb": "шамбала",
"lrc": "шимали лури",
"nd": "шимали ндебеле",
diff --git a/vendor/commerceguys/intl/resources/language/az.json b/vendor/commerceguys/intl/resources/language/az.json
index d0016f8f0..0e45f42f1 100644
--- a/vendor/commerceguys/intl/resources/language/az.json
+++ b/vendor/commerceguys/intl/resources/language/az.json
@@ -22,6 +22,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "benqal",
+ "bho": "bxoçpuri",
"my": "birman",
"brx": "bodo",
"nb": "bokmal norveç",
@@ -34,6 +35,7 @@
"chr": "çeroki",
"cgg": "çiqa",
"zh": "çin",
+ "cv": "çuvaş",
"da": "danimarka",
"dyo": "diola",
"doi": "doqri",
@@ -55,9 +57,11 @@
"fur": "friul",
"ff": "fula",
"ka": "gürcü",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "havay",
"hi": "hind",
+ "hi-Latn": "Hindi (latın)",
"nl": "holland",
"hr": "xorvat",
"xh": "xosa",
@@ -78,7 +82,7 @@
"he": "ivrit",
"kab": "kabile",
"kea": "kabuverdian",
- "kgp": "Kaingang",
+ "kgp": "kaiqanq",
"kkj": "kako",
"kl": "kalaallisut",
"kln": "kalencin",
@@ -140,6 +144,7 @@
"mgo": "meta’",
"tzm": "Mərkəzi Atlas tamazicəsi",
"ckb": "Mərkəzi kürdcə",
+ "mdf": "mokşa",
"ro-MD": "moldav",
"mn": "monqol",
"mfe": "morisien",
@@ -147,22 +152,26 @@
"naq": "nama",
"ne": "nepal",
"nnh": "ngiemboon",
- "yrl": "Nheengatu",
"pcm": "niger kreol",
"jgo": "nqomba",
"no": "norveç",
"nus": "nuer",
"nn": "nünorsk norveç",
"nyn": "nyankol",
+ "yrl": "nyenqatu",
+ "ann": "obolo",
"or": "odiya",
+ "oc": "oksitan",
"om": "oromo",
"os": "osetin",
"uz": "özbək",
"pa": "pəncab",
+ "pis": "picin",
"pl": "polyak",
"pt": "portuqal",
"pt-PT": "Portuqaliya portuqalcası",
"ps": "puştu",
+ "raj": "racastani",
"rm": "romanş",
"rof": "rombo",
"rwk": "rua",
@@ -183,6 +192,7 @@
"ii": "siçuan yi",
"sd": "sindhi",
"si": "sinhala",
+ "sms": "skolt sami",
"sk": "slovak",
"sl": "sloven",
"xog": "soqa",
@@ -190,6 +200,7 @@
"sw": "suahili",
"su": "sundan",
"ksb": "şambala",
+ "frr": "şimali fris",
"lrc": "şimali luri",
"nd": "şimali ndebele",
"se": "şimali sami",
@@ -207,6 +218,7 @@
"teo": "teso",
"bo": "tibet",
"ti": "tiqrin",
+ "tok": "tokipona",
"to": "tonqa",
"tr": "türk",
"tk": "türkmən",
diff --git a/vendor/commerceguys/intl/resources/language/be.json b/vendor/commerceguys/intl/resources/language/be.json
index ccd01f9c5..29b3de0e1 100644
--- a/vendor/commerceguys/intl/resources/language/be.json
+++ b/vendor/commerceguys/intl/resources/language/be.json
@@ -1,7 +1,9 @@
{
+ "ann": "абола",
"agq": "агем",
"az": "азербайджанская",
"ak": "акан",
+ "oc": "аксітанская",
"sq": "албанская",
"am": "амхарская",
"en": "англійская",
@@ -29,6 +31,7 @@
"brx": "бода",
"en-GB": "брытанская англійская",
"br": "брэтонская",
+ "bho": "бхаджпуры",
"vi": "в’етнамская",
"vai": "ваі",
"cy": "валійская",
@@ -69,6 +72,7 @@
"kab": "кабільская",
"kea": "кабувердыяну",
"kk": "казахская",
+ "kgp": "каінганг",
"ses": "кайрабора сэні",
"kkj": "како",
"kln": "календжын",
@@ -90,6 +94,7 @@
"zh-Hans": "кітайская (спрошчаныя іерогліфы)",
"zh-Hant": "кітайская (традыцыйныя іерогліфы)",
"khq": "койра чыіні",
+ "sms": "колта-саамская",
"kw": "корнская",
"xh": "коса",
"ku": "курдская",
@@ -112,6 +117,7 @@
"mk": "македонская",
"kde": "макондэ",
"mgh": "макуўа-меета",
+ "mdf": "макшанская",
"mg": "малагасійская",
"ms": "малайская",
"ml": "малаялам",
@@ -140,16 +146,19 @@
"nds-NL": "ніжнесаксонская",
"dsb": "ніжнялужыцкая",
"nus": "нуэр",
+ "yrl": "ньенгату",
"nyn": "ньянколе",
"de": "нямецкая",
"or": "орыя",
"pa": "панджабі",
"pt": "партугальская",
"se": "паўночнасаамская",
+ "frr": "паўночнафрызская",
"lrc": "паўночная луры",
"nd": "паўночная ндэбеле",
"pl": "польская",
"ps": "пушту",
+ "raj": "раджастханская",
"rof": "ромба",
"rwk": "руа",
"rw": "руанда",
@@ -157,6 +166,7 @@
"rn": "рундзі",
"ru": "руская",
"rm": "рэтараманская",
+ "pis": "саламонскі піджын",
"so": "самалі",
"saq": "самбуру",
"sg": "санга",
@@ -180,6 +190,7 @@
"tg": "таджыкская",
"dav": "таіта",
"th": "тайская",
+ "tok": "такіпона",
"ta": "тамільская",
"to": "танганская",
"twq": "тасаўак",
@@ -206,8 +217,10 @@
"hr": "харвацкая",
"ha": "хауса",
"hi": "хіндзі",
+ "hi-Latn": "хіндзі (лацініца)",
"ckb": "цэнтральнакурдская",
"ce": "чачэнская",
+ "cv": "чувашская",
"cgg": "чыга",
"chr": "чэрокі",
"cs": "чэшская",
@@ -226,6 +239,5 @@
"sah": "якуцкая",
"yav": "янгбэн",
"ja": "японская",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/bg.json b/vendor/commerceguys/intl/resources/language/bg.json
index b4bcdabdc..a21bb0719 100644
--- a/vendor/commerceguys/intl/resources/language/bg.json
+++ b/vendor/commerceguys/intl/resources/language/bg.json
@@ -21,6 +21,7 @@
"bez": "бена",
"bn": "бенгалски",
"my": "бирмански",
+ "bho": "боджпури",
"brx": "бодо",
"bs": "босненски",
"br": "бретонски",
@@ -71,6 +72,7 @@
"kab": "кабилски",
"kea": "кабовердиански",
"kk": "казахски",
+ "kgp": "кайнганг",
"kkj": "како",
"kln": "календжин",
"kam": "камба",
@@ -124,6 +126,7 @@
"jmc": "мачаме",
"mer": "меру",
"mgo": "мета",
+ "mdf": "мокша",
"ro-MD": "молдовски",
"mn": "монголски",
"mfe": "морисиен",
@@ -134,6 +137,7 @@
"de": "немски",
"de-AT": "немски (Австрия)",
"de-CH": "немски (Швейцария)",
+ "yrl": "ненгату",
"ne": "непалски",
"pcm": "нигерийски пиджин",
"nl": "нидерландски",
@@ -142,15 +146,19 @@
"nn": "норвежки (нюношк)",
"nus": "нуер",
"nyn": "нянколе",
+ "ann": "оболо",
+ "oc": "окситански",
"or": "ория",
"om": "оромо",
"os": "осетински",
"pa": "пенджабски",
"fa": "персийски",
+ "pis": "пиджин",
"pl": "полски",
"pt": "португалски",
"pt-PT": "португалски (Португалия)",
"ps": "пущу",
+ "raj": "раджастански",
"rwk": "рва",
"rm": "реторомански",
"rof": "ромбо",
@@ -167,10 +175,12 @@
"ceb": "себуански",
"lrc": "северен лури",
"nd": "северен ндебеле",
+ "frr": "северен фризийски",
"se": "северносаамски",
"seh": "сена",
"sd": "синдхи",
"si": "синхалски",
+ "sms": "сколт-саамски",
"sk": "словашки",
"sl": "словенски",
"xog": "сога",
@@ -191,6 +201,7 @@
"teo": "тесо",
"bo": "тибетски",
"ti": "тигриня",
+ "tok": "токи пона",
"to": "тонгански",
"tk": "туркменски",
"tr": "турски",
@@ -212,12 +223,14 @@
"haw": "хавайски",
"ha": "хауса",
"hi": "хинди",
+ "hi-Latn": "хинди (латиница)",
"hr": "хърватски",
"tzm": "централноатласки тамазигт",
"chr": "черокски",
"ce": "чеченски",
"cs": "чешки",
"cgg": "чига",
+ "cv": "чувашки",
"ksb": "шамбала",
"sv": "шведски",
"gsw": "швейцарски немски",
@@ -226,6 +239,5 @@
"jv": "явански",
"yav": "янгбен",
"ja": "японски",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/bn-IN.json b/vendor/commerceguys/intl/resources/language/bn-IN.json
index f5341b78c..a1ef50f96 100644
--- a/vendor/commerceguys/intl/resources/language/bn-IN.json
+++ b/vendor/commerceguys/intl/resources/language/bn-IN.json
@@ -1,8 +1,7 @@
{
+ "oc": "অক্সিটান",
"om": "অরোমো",
"as": "অসমীয়া",
- "de-AT": "অস্ট্রিয়ান জার্মান",
- "en-AU": "অস্ট্রেলীয় ইংরেজি",
"ga": "আইরিশ",
"is": "আইসল্যান্ডীয়",
"ak": "আকান",
@@ -17,34 +16,37 @@
"ast": "আস্তুরিয়",
"uk": "ইউক্রেনীয়",
"ee": "ইউয়ি",
- "pt-PT": "ইউরোপের পর্তুগীজ",
"ewo": "ইওন্ডো",
"yo": "ইওরুবা",
"en": "ইংরেজি",
+ "en-AU": "ইংরেজি (অস্ট্রেলিয়া)",
+ "en-CA": "ইংরেজি (কানাডা)",
+ "en-GB": "ইংরেজি (যুক্তরাজ্য)",
"ig": "ইগ্‌বো",
"it": "ইতালিয়",
+ "yi": "ইদ্দিশ",
"smn": "ইনারি সামি",
"iu": "ইনুক্টিটুট",
"id": "ইন্দোনেশীয়",
"yav": "ইয়াঙ্গবেন",
- "yi": "ইয়েদ্দিশ",
"ug": "উইঘুর",
- "wo": "উওলোফ",
"hsb": "উচ্চ সোর্বিয়ান",
- "uz": "উজবেকীয়",
- "nd": "উত্তর এন্দেবিলি",
- "lrc": "উত্তর লুরি",
+ "uz": "উজবেক",
+ "nd": "উত্তর এন্দেবেলে",
+ "frr": "উত্তরাঞ্চলীয় ফ্রিসিয়ান",
+ "lrc": "উত্তরাঞ্চলীয় লুরি",
"se": "উত্তরাঞ্চলীয় সামি",
"ur": "উর্দু",
"agq": "এঘেম",
"ebu": "এম্বু",
"et": "এস্তোনীয়",
- "zh-Hant": "ঐতিহ্যবাহি চীনা",
"or": "ওড়িয়া",
- "wae": "ওয়ালসের",
+ "ann": "ওবোলো",
+ "wae": "ওয়ালসার",
"wa": "ওয়ালুন",
"cy": "ওয়েলশ",
"nl": "ওলন্দাজ",
+ "wo": "ওলোফ",
"os": "ওসেটিক",
"sw-CD": "কঙ্গো সোয়াহিলি",
"kn": "কন্নড়",
@@ -52,26 +54,25 @@
"kkj": "কাকো",
"kk": "কাজাখ",
"ca": "কাতালান",
- "en-CA": "কানাডীয় ইংরেজি",
- "fr-CA": "কানাডীয় ফরাসি",
"kab": "কাবাইলে",
"kea": "কাবুভারদিয়ানু",
"kam": "কাম্বা",
+ "kl": "কালাল্লিসুট",
"kln": "কালেনজিন",
"ks": "কাশ্মীরি",
"ki": "কিকুয়ু",
"rw": "কিনয়ারোয়ান্ডা",
"ky": "কির্গিজ",
"ku": "কুর্দিশ",
+ "kgp": "কেইনগ্যাং",
"qu": "কেচুয়া",
"kok": "কোঙ্কানি",
"khq": "কোয়রা চীনি",
- "ses": "কোয়রাবেনো সেন্নী",
+ "ses": "কোয়রাবোরো সেন্নি",
"nmg": "কোয়াসিও",
"ko": "কোরিয়ান",
"ksh": "কোলোনিয়ান",
"yue": "ক্যান্টোনিজ",
- "kl": "ক্যালাল্লিসুট",
"hr": "ক্রোয়েশীয়",
"km": "খমের",
"lg": "গান্ডা",
@@ -82,6 +83,9 @@
"el": "গ্রিক",
"cgg": "চিগা",
"zh": "চীনা",
+ "zh-Hant": "চীনা (ঐতিহ্যবাহী)",
+ "zh-Hans": "চীনা (সরলীকৃত)",
+ "cv": "চুবাস",
"cs": "চেক",
"ce": "চেচেন",
"ceb": "চেবুয়ানো",
@@ -91,10 +95,13 @@
"jv": "জাভানিজ",
"dje": "জার্মা",
"de": "জার্মান",
+ "de-AT": "জার্মান (অস্ট্রিয়া)",
+ "de-CH": "জার্মান (সুইজারল্যান্ড)",
"zu": "জুলু",
- "dz": "জোঙ্গা",
+ "dz": "জোংখা",
"dyo": "জোলা-ফনী",
"xh": "জোসা",
+ "tok": "টোকি পোনা",
"to": "টোঙ্গান",
"da": "ডেনিশ",
"doi": "ডোগরি",
@@ -112,32 +119,37 @@
"teo": "তেসো",
"th": "থাই",
"dua": "দুয়ালা",
+ "nnh": "নগিয়েম্বুন",
"nn": "নরওয়েজিয়ান নিনর্স্ক",
"nb": "নরওয়েজিয়ান বোকমাল",
"no": "নরওয়েজীয়",
+ "yrl": "নহিংগাটু",
"pcm": "নাইজেরিয় পিজিন",
"naq": "নামা",
- "nnh": "নিঙ্গেম্বুন",
"nds": "নিম্ন জার্মানি",
"dsb": "নিম্নতর সোর্বিয়ান",
"nus": "নুয়ার",
"ne": "নেপালী",
"nyn": "ন্যায়াঙ্কোলে",
"pt": "পর্তুগীজ",
+ "pt-PT": "পর্তুগীজ (ইউরোপ)",
"fy": "পশ্চিম ফ্রিসিয়ান",
"pa": "পাঞ্জাবী",
- "ps": "পুশতু",
+ "ps": "পাশতু",
+ "pis": "পিজিন",
"pl": "পোলিশ",
"fr": "ফরাসি",
- "fo": "ফারোস",
+ "fr-CA": "ফরাসি (কানাডা)",
+ "fr-CH": "ফরাসি (সুইজারল্যান্ড)",
"fa": "ফার্সি",
"fi": "ফিনিশ",
"fil": "ফিলিপিনো",
"ff": "ফুলাহ্",
- "fur": "ফ্রিউলিয়ান",
+ "fo": "ফেরোইস",
+ "fur": "ফ্রিউলিও",
"nl-BE": "ফ্লেমিশ",
"my": "বর্মি",
- "bs": "বসনীয়ান",
+ "bs": "বসনীয়",
"bn": "বাংলা",
"ksf": "বাফিয়া",
"bm": "বামবারা",
@@ -148,15 +160,15 @@
"bem": "বেম্বা",
"be": "বেলারুশিয়",
"brx": "বোড়ো",
- "en-GB": "ব্রিটিশ ইংরেজি",
"br": "ব্রেটন",
"vai": "ভাই",
"vi": "ভিয়েতনামী",
"vun": "ভুঞ্জো",
+ "bho": "ভোজপুরি",
"mn": "মঙ্গোলিয়",
"mni": "মণিপুরী",
"ckb": "মধ্য কুর্দিশ",
- "mfe": "মরিসিয়ান",
+ "mfe": "মরিসিয়েন",
"ro-MD": "মলদাভিয়",
"mt": "মল্টিয়",
"mi": "মাওরি",
@@ -173,10 +185,11 @@
"mgo": "মেটা",
"mer": "মেরু",
"mai": "মৈথিলি",
- "es-MX": "ম্যাক্সিকান স্প্যানিশ",
+ "mdf": "মোকশা",
"mk": "ম্যাসিডোনীয়",
"rof": "রম্বো",
"rwk": "রাওয়া",
+ "raj": "রাজস্থানী",
"rn": "রুন্দি",
"ru": "রুশ",
"ro": "রোমানীয়",
@@ -192,12 +205,10 @@
"lu": "লুবা-কাটাঙ্গা",
"luo": "লুয়ো",
"nds-NL": "লো স্যাক্সন",
- "es-419": "ল্যাটিন আমেরিকান স্প্যানিশ",
"sah": "শাখা",
"ksb": "শাম্বালা",
"sn": "শোনা",
"sa": "সংস্কৃত",
- "zh-Hans": "সরলীকৃত চীনা",
"sat": "সাঁওতালি",
"sbp": "সাঙ্গু",
"sg": "সাঙ্গো",
@@ -209,23 +220,24 @@
"sd": "সিন্ধি",
"sv": "সুইডিশ",
"gsw": "সুইস জার্মান",
- "fr-CH": "সুইস ফরাসি",
- "de-CH": "সুইস হাই জার্মান",
"su": "সুদানী",
"seh": "সেনা",
"tzm": "সেন্ট্রাল আটলাস তামাজিগাত",
"xog": "সোগা",
"so": "সোমালি",
"sw": "সোয়াহিলি",
- "gd": "স্কটস-গ্যেলিক",
+ "gd": "স্কটিশ-গ্যেলিক",
+ "sms": "স্কোল্ট সামি",
"es": "স্প্যানিশ",
+ "es-MX": "স্প্যানিশ (মেক্সিকো)",
+ "es-419": "স্প্যানিশ (লাতিন আমেরিকা)",
"sk": "স্লোভাক",
"sl": "স্লোভেনীয়",
"ha": "হাউসা",
"haw": "হাওয়াইয়ান",
"hu": "হাঙ্গেরীয়",
"hi": "হিন্দি",
+ "hi-Latn": "হিন্দি (ল্যাটিন)",
"he": "হিব্রু",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/bn.json b/vendor/commerceguys/intl/resources/language/bn.json
index 0b03c6d5e..b18c06813 100644
--- a/vendor/commerceguys/intl/resources/language/bn.json
+++ b/vendor/commerceguys/intl/resources/language/bn.json
@@ -1,8 +1,7 @@
{
+ "oc": "অক্সিটান",
"om": "অরোমো",
"as": "অসমীয়া",
- "de-AT": "অস্ট্রিয়ান জার্মান",
- "en-AU": "অস্ট্রেলীয় ইংরেজি",
"ga": "আইরিশ",
"is": "আইসল্যান্ডীয়",
"ak": "আকান",
@@ -17,61 +16,63 @@
"ast": "আস্তুরিয়",
"uk": "ইউক্রেনীয়",
"ee": "ইউয়ি",
- "pt-PT": "ইউরোপের পর্তুগীজ",
"ewo": "ইওন্ডো",
"yo": "ইওরুবা",
"en": "ইংরেজি",
+ "en-AU": "ইংরেজি (অস্ট্রেলিয়া)",
+ "en-CA": "ইংরেজি (কানাডা)",
+ "en-GB": "ইংরেজি (যুক্তরাজ্য)",
"ig": "ইগ্‌বো",
"it": "ইতালিয়",
+ "yi": "ইদ্দিশ",
"smn": "ইনারি সামি",
"iu": "ইনুক্টিটুট",
"id": "ইন্দোনেশীয়",
"yav": "ইয়াঙ্গবেন",
- "yi": "ইয়েদ্দিশ",
"ug": "উইঘুর",
- "wo": "উওলোফ",
"hsb": "উচ্চ সোর্বিয়ান",
- "uz": "উজবেকীয়",
- "nd": "উত্তর এন্দেবিলি",
- "lrc": "উত্তর লুরি",
+ "uz": "উজবেক",
+ "nd": "উত্তর এন্দেবেলে",
+ "frr": "উত্তরাঞ্চলীয় ফ্রিসিয়ান",
+ "lrc": "উত্তরাঞ্চলীয় লুরি",
"se": "উত্তরাঞ্চলীয় সামি",
"ur": "উর্দু",
"agq": "এঘেম",
"ebu": "এম্বু",
"et": "এস্তোনীয়",
- "zh-Hant": "ঐতিহ্যবাহি চীনা",
"or": "ওড়িয়া",
- "wae": "ওয়ালসের",
+ "ann": "ওবোলো",
+ "wae": "ওয়ালসার",
"wa": "ওয়ালুন",
"cy": "ওয়েলশ",
"nl": "ওলন্দাজ",
+ "wo": "ওলোফ",
"os": "ওসেটিক",
"sw-CD": "কঙ্গো সোয়াহিলি",
"kn": "কন্নড়",
"kw": "কর্ণিশ",
- "ksh": "কলোনিয়ান",
+ "ksh": "কলোগনিয়ান",
"kkj": "কাকো",
"kk": "কাজাখ",
"ca": "কাতালান",
- "en-CA": "কানাডীয় ইংরেজি",
- "fr-CA": "কানাডীয় ফরাসি",
"kab": "কাবাইলে",
"kea": "কাবুভারদিয়ানু",
"kam": "কাম্বা",
+ "kl": "কালাল্লিসুট",
"kln": "কালেনজিন",
"ks": "কাশ্মীরি",
"ki": "কিকুয়ু",
"rw": "কিনয়ারোয়ান্ডা",
"ky": "কির্গিজ",
"ku": "কুর্দিশ",
+ "kgp": "কেইনগ্যাং",
"qu": "কেচুয়া",
"kok": "কোঙ্কানি",
"khq": "কোয়রা চীনি",
- "ses": "কোয়রাবেনো সেন্নী",
+ "ses": "কোয়রাবোরো সেন্নি",
"nmg": "কোয়াসিও",
"ko": "কোরিয়ান",
"yue": "ক্যান্টোনিজ",
- "kl": "ক্যালাল্লিসুট",
"hr": "ক্রোয়েশীয়",
"km": "খমের",
"lg": "গান্ডা",
@@ -82,6 +83,9 @@
"el": "গ্রিক",
"cgg": "চিগা",
"zh": "চীনা",
+ "zh-Hant": "চীনা (ঐতিহ্যবাহী)",
+ "zh-Hans": "চীনা (সরলীকৃত)",
+ "cv": "চুবাস",
"cs": "চেক",
"ce": "চেচেন",
"ceb": "চেবুয়ানো",
@@ -91,10 +95,13 @@
"jv": "জাভানিজ",
"dje": "জার্মা",
"de": "জার্মান",
+ "de-AT": "জার্মান (অস্ট্রিয়া)",
+ "de-CH": "জার্মান (সুইজারল্যান্ড)",
"zu": "জুলু",
- "dz": "জোঙ্গা",
+ "dz": "জোংখা",
"dyo": "জোলা-ফনী",
"xh": "জোসা",
+ "tok": "টোকি পোনা",
"to": "টোঙ্গান",
"da": "ডেনিশ",
"doi": "ডোগরি",
@@ -112,32 +119,37 @@
"teo": "তেসো",
"th": "থাই",
"dua": "দুয়ালা",
+ "nnh": "নগিয়েম্বুন",
"nn": "নরওয়েজিয়ান নিনর্স্ক",
"nb": "নরওয়েজিয়ান বোকমাল",
"no": "নরওয়েজীয়",
+ "yrl": "নহিংগাটু",
"pcm": "নাইজেরিয় পিজিন",
"naq": "নামা",
- "nnh": "নিঙ্গেম্বুন",
"nds": "নিম্ন জার্মানি",
"dsb": "নিম্নতর সোর্বিয়ান",
"nus": "নুয়ার",
"ne": "নেপালী",
"nyn": "ন্যায়াঙ্কোলে",
"pt": "পর্তুগীজ",
+ "pt-PT": "পর্তুগীজ (ইউরোপ)",
"fy": "পশ্চিম ফ্রিসিয়ান",
"pa": "পাঞ্জাবী",
- "ps": "পুশতু",
+ "ps": "পাশতু",
+ "pis": "পিজিন",
"pl": "পোলিশ",
"fr": "ফরাসি",
- "fo": "ফারোস",
+ "fr-CA": "ফরাসি (কানাডা)",
+ "fr-CH": "ফরাসি (সুইজারল্যান্ড)",
"fa": "ফার্সি",
"fi": "ফিনিশ",
"fil": "ফিলিপিনো",
"ff": "ফুলাহ্",
- "fur": "ফ্রিউলিয়ান",
+ "fo": "ফেরোইস",
+ "fur": "ফ্রিউলিও",
"nl-BE": "ফ্লেমিশ",
"my": "বর্মি",
- "bs": "বসনীয়ান",
+ "bs": "বসনীয়",
"bn": "বাংলা",
"ksf": "বাফিয়া",
"bm": "বামবারা",
@@ -148,15 +160,15 @@
"bem": "বেম্বা",
"be": "বেলারুশিয়",
"brx": "বোড়ো",
- "en-GB": "ব্রিটিশ ইংরেজি",
"br": "ব্রেটন",
"vai": "ভাই",
"vi": "ভিয়েতনামী",
"vun": "ভুঞ্জো",
+ "bho": "ভোজপুরি",
"mn": "মঙ্গোলিয়",
"mni": "মণিপুরী",
"ckb": "মধ্য কুর্দিশ",
- "mfe": "মরিসিয়ান",
+ "mfe": "মরিসিয়েন",
"ro-MD": "মলদাভিয়",
"mt": "মল্টিয়",
"mi": "মাওরি",
@@ -173,10 +185,11 @@
"mgo": "মেটা",
"mer": "মেরু",
"mai": "মৈথিলি",
- "es-MX": "ম্যাক্সিকান স্প্যানিশ",
+ "mdf": "মোকশা",
"mk": "ম্যাসিডোনীয়",
"rof": "রম্বো",
"rwk": "রাওয়া",
+ "raj": "রাজস্থানী",
"rn": "রুন্দি",
"ru": "রুশ",
"ro": "রোমানীয়",
@@ -192,12 +205,10 @@
"lu": "লুবা-কাটাঙ্গা",
"luo": "লুয়ো",
"nds-NL": "লো স্যাক্সন",
- "es-419": "ল্যাটিন আমেরিকান স্প্যানিশ",
"sah": "শাখা",
"ksb": "শাম্বালা",
"sn": "শোনা",
"sa": "সংস্কৃত",
- "zh-Hans": "সরলীকৃত চীনা",
"sat": "সাঁওতালি",
"sbp": "সাঙ্গু",
"sg": "সাঙ্গো",
@@ -209,23 +220,24 @@
"sd": "সিন্ধি",
"sv": "সুইডিশ",
"gsw": "সুইস জার্মান",
- "fr-CH": "সুইস ফরাসি",
- "de-CH": "সুইস হাই জার্মান",
"su": "সুদানী",
"seh": "সেনা",
"tzm": "সেন্ট্রাল আটলাস তামাজিগাত",
"xog": "সোগা",
"so": "সোমালি",
"sw": "সোয়াহিলি",
- "gd": "স্কটস-গ্যেলিক",
+ "gd": "স্কটিশ-গ্যেলিক",
+ "sms": "স্কোল্ট সামি",
"es": "স্প্যানিশ",
+ "es-MX": "স্প্যানিশ (মেক্সিকো)",
+ "es-419": "স্প্যানিশ (লাতিন আমেরিকা)",
"sk": "স্লোভাক",
"sl": "স্লোভেনীয়",
"ha": "হাউসা",
"haw": "হাওয়াইয়ান",
"hu": "হাঙ্গেরীয়",
"hi": "হিন্দি",
+ "hi-Latn": "হিন্দি (ল্যাটিন)",
"he": "হিব্রু",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/brx.json b/vendor/commerceguys/intl/resources/language/brx.json
index bd1894af9..c6d3e88f8 100644
--- a/vendor/commerceguys/intl/resources/language/brx.json
+++ b/vendor/commerceguys/intl/resources/language/brx.json
@@ -1,231 +1,243 @@
{
- "agq": "Aghem",
- "ast": "Asturian",
- "asa": "Asu",
- "ksf": "Bafia",
- "bez": "Bena",
- "yue": "Cantonese",
- "tzm": "Central Atlas Tamazight",
- "ckb": "Central Kurdish",
- "cgg": "Chiga",
- "ksh": "Colognian",
- "ebu": "Embu",
- "guz": "Gusii",
- "dyo": "Jola-Fonyi",
- "kea": "Kabuverdianu",
- "kgp": "Kaingang",
- "kkj": "Kako",
- "kln": "Kalenjin",
- "khq": "Koyra Chiini",
- "ses": "Koyraboro Senni",
- "nmg": "Kwasio",
- "lkt": "Lakota",
- "lag": "Langi",
- "luy": "Luyia",
- "jmc": "Machame",
- "mgh": "Makhuwa-Meetto",
- "kde": "Makonde",
- "mzn": "Mazanderani",
- "mer": "Meru",
- "mgo": "Metaʼ",
- "mfe": "Morisyen",
- "mua": "Mundang",
- "naq": "Nama",
- "nnh": "Ngiemboon",
- "jgo": "Ngomba",
- "yrl": "Nheengatu",
- "pcm": "Nigerian Pidgin",
- "lrc": "Northern Luri",
- "nus": "Nuer",
- "rof": "Rombo",
- "rwk": "Rwa",
- "saq": "Samburu",
- "sbp": "Sangu",
- "seh": "Sena",
- "ksb": "Shambala",
- "xog": "Soga",
- "zgh": "Standard Moroccan Tamazight",
- "shi": "Tachelhit",
- "dav": "Taita",
- "twq": "Tasawaq",
- "teo": "Teso",
- "vun": "Vunjo",
- "wae": "Walser",
- "yav": "Yangben",
- "dje": "Zarma",
- "ak": "अकन",
- "en": "अंग्रेज़ी",
- "en-AU": "अंग्रेज़ी (ऑस्ट्रेलिया का)",
- "en-CA": "अंग्रेज़ी (कनाडाई)",
- "en-GB": "अंग्रेजी (ब्रिटिश)",
- "az": "अज़रबैजानी",
- "af": "अफ्रीकी",
- "am": "अम्हारिक्",
- "ar": "अरबी",
- "hy": "अरमेनियन्",
- "as": "असामी",
+ "bgc": "Haryanvi",
+ "oc": "अक्सितान",
+ "ann": "अबल’",
+ "om": "अरम’",
+ "as": "असमिया",
+ "de-AT": "अस्ट्रेयाआरि जार्मान",
+ "en-AU": "अस्ट्रेलियानि इंराजी",
+ "os": "अस्सेटीक",
+ "is": "आइस्लेन्डिक",
"ga": "आईरिश",
- "is": "आईस्लैंडिक्",
- "sq": "आल्बेनियन्",
- "iu": "इनूक्टीटूत्",
- "id": "इन्डोनेशियन्",
- "ig": "ईग्बो",
- "it": "ईटालियन्",
+ "ak": "आकान",
+ "agq": "आघेम",
+ "az": "आजारबायजानि",
+ "af": "आफ्रिकान्स",
+ "am": "आम्हारिक",
+ "ar": "आराबिक",
+ "hy": "आर्मेनियान",
+ "sq": "आल्बानियान",
+ "zh-Hant": "आसार-खान्थियारि चाइनीज",
+ "asa": "आसु",
+ "ast": "आस्तुरियान",
+ "it": "इटालियान",
+ "iu": "इनुक्टीटुत",
+ "ebu": "इम्बु",
+ "en": "इंराजी",
+ "ig": "ईग्ब’",
+ "id": "ईण्डनेसियान",
"smn": "ईनारी सामी",
- "ug": "उईग़ुर",
- "de-CH": "उच्च स्तरिय स्वीस जर्मन",
- "uz": "उज़बेक्",
- "or": "उड़िया",
- "nd": "उत्तर न्दबेले",
- "se": "उत्तरी सामी",
- "hsb": "ऊपरी सौर्बियन",
+ "ug": "उईघुर",
+ "uz": "उजबेक",
+ "frr": "उत्तरी फ्रीज़ियन्",
+ "or": "उरीया",
"ur": "ऊर्दु",
+ "ewo": "एव’न्द’",
"ee": "एवे",
- "ewo": "एवौंडो",
- "et": "ऐस्टोनियन्",
- "om": "ओरोमो (अफ़ान)",
- "os": "ओस्सेटी",
- "kk": "क़ज़ाख़्",
- "kn": "कन्नड्",
- "kam": "कंबा",
+ "et": "एस्ट’नियान",
+ "khq": "कईरा चीनि",
+ "ses": "कईराबर’ सेन्नि",
+ "kn": "कन्नड",
+ "ko": "करियान",
+ "kw": "कर्निस",
+ "ksh": "कलगन्यान",
"kl": "कलालीसुत",
- "ks": "कश्मिरी",
- "ca": "कातालान्",
- "kab": "काबील्",
+ "kgp": "काईङां",
+ "kkj": "काक’",
+ "kk": "काजाख",
+ "ca": "कातालान",
+ "en-CA": "कानाडानि इंराजी",
+ "fr-CA": "कानाडानि फ्रेन्च",
+ "kab": "काबील",
+ "kea": "काबुभेर्डीयानु",
+ "kam": "काम्बा",
+ "kln": "कालेनजिन",
+ "ks": "काश्मिरी",
"ki": "किकुयु",
- "rw": "किन्यारुआण्डा",
- "ky": "किरग़ीज़्",
- "rn": "किरून्दी",
- "ku": "कुर्दी",
+ "rw": "किन्यार्वान्दा",
+ "ky": "किरगीज",
+ "ku": "कुर्दीश",
+ "yue": "केन्टनिज",
"kok": "कोंकणी",
- "ko": "कोरीयन्",
- "kw": "कौर्नवॉली",
- "hr": "क्रोएशन्",
+ "hr": "क्रवेशियान",
+ "nmg": "क्वासिअ’",
"qu": "क्वेचुआ",
- "xh": "ख़ोसा",
+ "xh": "ख’सा",
"km": "ख्मेर",
- "lg": "गांडा",
+ "lg": "गान्डा",
+ "nds": "गाहाय जार्मान",
+ "nds-NL": "गाहाय जार्मान (नेदारलेण्ड)",
+ "dsb": "गाहायसिन सर्बियान",
"gu": "गुजराती",
- "gl": "गैलिशियन्",
+ "guz": "गुशि",
+ "gl": "गेलिसियान",
+ "hsb": "गोजौआरि सर्बियान",
+ "zh-Hans": "गोरलै खालामनाय चाइनीज",
"el": "ग्रीक",
- "zh": "चीनी",
- "zh-Hant": "चीनी (पारम्परिक)",
- "zh-Hans": "चीनी (सरलीकृत)",
- "chr": "चीरोकी",
- "cs": "चेक्",
- "ce": "चेचेन्",
+ "zh": "चाइनीज",
+ "cgg": "चीगा",
+ "cv": "चुभास",
+ "ce": "चेचेन",
"ceb": "चेबुआनो",
- "de": "ज़र्मन",
- "de-AT": "जर्मन (ऑस्ट्रिया)",
- "ja": "जापानी",
- "jv": "जावानीस",
- "zu": "ज़ुलू",
- "ka": "जॉर्जियन्",
- "tt": "टाटर्",
- "to": "टॉंगा",
- "nl": "डच्",
+ "chr": "चेरकी",
+ "cs": "चैक",
+ "ka": "जर्जियान",
+ "dyo": "जला- फन्यी",
+ "ja": "जापानीज",
+ "jv": "जाभानीस",
+ "dje": "जार्मा",
+ "de": "जार्मान",
+ "zu": "जुलू",
+ "dz": "झंखा",
+ "tok": "टकि पना",
+ "to": "टंगान",
+ "dav": "टाइटा",
+ "tt": "टाटार",
+ "nl": "डात्च",
+ "da": "डानिश",
"dua": "डुआला",
- "da": "डैनीश्",
"doi": "डोगरी",
- "ta": "तमिळ",
- "tg": "ताजिक्",
+ "shi": "ताचेल्हीट",
+ "tg": "ताजिक",
+ "ta": "तामिल",
"ti": "तिग्रीन्या",
"bo": "तिब्बती",
"tk": "तुर्कमेन",
- "tr": "तुर्की",
+ "tr": "तुर्कीस",
"te": "तेलुगु",
+ "teo": "तेस’",
+ "twq": "तेसावाक",
"th": "थाई",
- "nds": "नीजी स्तरिय जर्मन",
- "nds-NL": "नीजी स्तरिय जर्मन (नेदरलैण्ड)",
+ "no": "नरवैजियान",
+ "nn": "नरवैजियान निनर्स्क",
+ "nb": "नरवैजियान बकमाल",
+ "pcm": "नाइजेरियान पिदजीन",
+ "naq": "नामा",
+ "nus": "नूवेर",
"ne": "नेपाली",
- "nn": "नॉर्वेजियन् नीनॉर्स्क्",
- "no": "नॉर्वेजीयन्",
- "nb": "नोर्वेगी बोकमाल",
+ "jgo": "न्गम्बा",
+ "nnh": "न्गीएम्बून",
"nyn": "न्यानकोले",
- "ps": "पख़्तु",
- "pa": "पंजाबी",
- "fy": "पश्चीमी फ्रीज़ियन्",
- "pt": "पुर्तगाली",
- "pt-PT": "पुर्तगाली (पुर्तगाल)",
- "pl": "पोलिश",
+ "yrl": "न्हीगातू",
+ "pt": "पर्टुगिज",
+ "pl": "पलिश",
+ "pa": "पान्जाबी",
+ "ps": "पाश्त’",
+ "pis": "पिजिन",
"fa": "फार्सी",
- "fi": "फिनिश्",
- "fo": "फिरोज़ी",
- "fil": "फिलिपिनो",
- "ff": "फुलाह्",
- "fr": "फ्रांसीसी",
- "fr-CA": "फ्रांसीसी (कनाडाई)",
- "fr-CH": "फ्रांसीसी (स्वीस)",
- "fur": "फ्रीउलीअन्",
- "nl-BE": "फ्लेमी",
- "bn": "बंगला",
- "brx": "बड़ो",
- "my": "बर्मी",
- "bg": "बल्गैरियन्",
- "bm": "बांबारा",
- "eu": "बास्क्",
- "bas": "बास्क़्",
- "bem": "बेंबा",
- "be": "बैलोरूसियन्",
- "bs": "बोस्नियाई",
- "br": "ब्रटों",
- "dz": "भुटानी",
- "mni": "मणीपुरी",
- "mr": "मराठी",
- "ml": "मलयालम",
- "ms": "मलाय",
- "mas": "मसाई",
- "mi": "माओरी",
- "mt": "मालटीज़्",
+ "fi": "फिन्निस",
+ "fil": "फिलिपिन’",
+ "ff": "फुलाह",
+ "fo": "फेर’वीज",
+ "fur": "फ्रिउलियान",
+ "fr": "फ्रेन्च",
+ "nl-BE": "फ्लेमिस",
+ "brx": "बर’",
+ "bs": "बस्नियान",
+ "ksf": "बाफिया",
+ "bm": "बाम्बारा",
+ "my": "बार्मिस",
+ "bn": "बांला",
+ "bas": "बासा",
+ "eu": "बास्क",
+ "bg": "बुल्गारियान",
+ "bez": "बेना",
+ "bem": "बेम्बा",
+ "be": "बेलारुसियान",
+ "en-GB": "ब्रिटिश इंराजी",
+ "br": "ब्रेट’न",
+ "bho": "भजपुरी",
+ "vai": "भाई",
+ "vi": "भियेतनामिस",
+ "vun": "भुन्ज’",
+ "mn": "मंगलियान",
+ "mni": "मनिपुरी",
+ "mfe": "मरिछ्येन",
+ "ms": "मलै",
+ "mi": "माऔरि",
+ "kde": "माक’ण्डे",
+ "mgh": "माखुवा- मीट्ट’",
+ "mzn": "माजान्देरानि",
+ "mr": "माराथी",
"mg": "मालागासी",
+ "ml": "मालायालम",
+ "mt": "माल्टीज",
+ "mas": "मासाई",
+ "ckb": "मिरु कुर्दिस",
+ "mua": "मुन्दां",
+ "es-MX": "मेक्सिक’नि स्पेनिश",
+ "jmc": "मेचामे",
+ "mgo": "मेता",
+ "mer": "मेरु",
+ "mk": "मेसेड’नियान",
"mai": "मैथीली",
- "mk": "मैसेडोनियन्",
- "mn": "मोंगोलियन",
+ "mdf": "मोक्षा",
"ro-MD": "मोल्डेवियन्",
- "sah": "यकुट्",
+ "yo": "यरूबा",
+ "yav": "यांबेन",
"yi": "यीद्दीश",
- "uk": "यूक्रेनियन्",
- "yo": "योरूबा",
- "ru": "रुसी",
- "ro": "रूमानीयन्",
- "rm": "रेह्टो-रोमान्स",
- "lo": "लाओसीयन्",
- "lv": "लाटवियन् (लैट्टीश)",
+ "uk": "युक्रेनियान",
+ "pt-PT": "युरोपनि पर्टुगिज",
+ "ro": "रमानीयान",
+ "rm": "रमान्श",
+ "rof": "रम्ब’",
+ "raj": "राजस्थानी",
+ "ru": "रासियान",
+ "rn": "रुन्दी",
+ "rwk": "र्वा",
+ "lo": "लाऊ",
+ "lkt": "लाक’ता",
+ "lb": "लाक्जेमबुर्गीश",
+ "lag": "लाङि",
+ "lv": "लाटभियान",
"ln": "लिंगाला",
- "lt": "लिथुआनियन्",
- "luo": "लुओ",
- "lb": "लुक्समबुर्गी",
- "lu": "लुबा कटांगा",
- "es-419": "लैटिन अमरिकी स्पैनिश",
- "vai": "वाई",
- "wa": "वालुन",
- "vi": "वियेतनामी",
- "cy": "वैल्श्",
- "wo": "वोलोफ",
- "sn": "शोना",
- "sat": "संताली",
- "sr": "सर्बियन्",
- "sa": "संस्कृत्",
- "sg": "सांग्रो",
- "sc": "सार्दीनी",
- "sd": "सिंधी",
- "ii": "सीचुआन् यी",
+ "lt": "लिथुवानियान",
+ "luo": "लुअ’",
+ "luy": "लुईया",
+ "lu": "लुबा-काटाङा",
+ "es-419": "लेटीन आमेरिकानि स्पेनिश",
+ "wo": "वल’फ",
+ "wa": "वाल्लुन",
+ "wae": "वाल्सार",
+ "cy": "वैल्श",
+ "sn": "शना",
+ "ksb": "शामबाला",
+ "ii": "शीचुआन यी",
+ "xog": "स’गा",
+ "so": "स’माली",
+ "sa": "संस्कृत",
+ "sah": "साखा",
+ "sg": "साङ’",
+ "sbp": "साङु",
+ "sat": "सान्थाली",
+ "saq": "साम्बुरू",
+ "sc": "सार्दीनीयान",
+ "sr": "सार्बियान",
+ "nd": "साहा न्देबेले",
+ "lrc": "साहायारि लुरी",
+ "se": "साहायारि सामी",
+ "sd": "सिन्धी",
"si": "सींहाला",
+ "de-CH": "सुइस गोजौ जार्मान",
+ "fr-CH": "सुइस फ्रेन्च",
"su": "सुन्दानी",
- "so": "सोमाली",
- "dsb": "सोर्बियन्",
- "gd": "स्कॉट्स् गैलिक्",
- "es": "स्पैनिश",
- "es-MX": "स्पैनिश (मैक्सिको)",
- "sk": "स्लोवाक्",
- "sl": "स्लोवेनियन्",
+ "seh": "सेना",
+ "tzm": "सेन्ट्रेल आटलास तामाजाईट",
+ "fy": "सोनाबारि फ्रिजियान",
+ "gd": "स्कटिस गैलिक",
+ "sms": "स्कल्ट सामी",
+ "zgh": "स्टेन्दार्द मरक्कान तामाजाईट",
+ "es": "स्पेनिश",
+ "sk": "स्ल’भाक",
+ "sl": "स्लोभेनियान",
"sw": "स्वाहिली",
- "sw-CD": "स्वाहिली (कॉंगो किनशासा)",
+ "sw-CD": "स्वाहिली (कंग’-किनशासा)",
"sv": "स्वीडिश",
- "gsw": "स्वीस जर्मन",
- "ha": "हउसा",
- "hu": "हंगैरीयन्",
- "haw": "हवाईअन",
- "hi": "हिंदी",
- "he": "हिब्रु"
+ "gsw": "स्वीस जार्मान",
+ "ha": "हाउसा",
+ "hu": "हांगारियान",
+ "haw": "हावाईयान",
+ "hi": "हिन्दी",
+ "hi-Latn": "हिन्दी (लेटीन)",
+ "he": "हिब्रिउ"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/bs-Cyrl.json b/vendor/commerceguys/intl/resources/language/bs-Cyrl.json
index 2a6ed8ee9..19b630c7e 100644
--- a/vendor/commerceguys/intl/resources/language/bs-Cyrl.json
+++ b/vendor/commerceguys/intl/resources/language/bs-Cyrl.json
@@ -18,6 +18,7 @@
"bn": "бенгалски",
"be": "бјелоруски",
"brx": "бодо",
+ "bho": "бојпури",
"bs": "босански",
"br": "бретонски",
"bg": "бугарски",
@@ -70,6 +71,7 @@
"kab": "кабиле",
"kea": "кабовердијански креолски",
"kk": "казашки",
+ "kgp": "каинганг",
"kkj": "како",
"kl": "калалисут",
"kln": "калењин",
@@ -123,13 +125,16 @@
"jmc": "мачаме",
"mer": "меру",
"mgo": "мета",
+ "mdf": "мокша",
"ro-MD": "молдавски",
"mn": "монголски",
"mua": "мунданг",
"naq": "нама",
"nnh": "нгиембун",
"jgo": "нгомба",
+ "yrl": "ненгату",
"ne": "непалски",
+ "pcm": "нигеријски пидгин",
"nds": "ниски њемачки",
"nds-NL": "ниски њемачки (Холандија)",
"no": "норвешки",
@@ -140,15 +145,19 @@
"de": "њемачки",
"de-AT": "њемачки (Аустрија)",
"gsw": "њемачки (Швицарска)",
+ "ann": "оболо",
"or": "одија",
"om": "оромо",
"os": "осетски",
"ps": "паштунски",
"pa": "пенџапски",
"fa": "персијски",
+ "pis": "пијин",
"pl": "пољски",
"pt": "португалски",
"pt-PT": "португалски (Португал)",
+ "oc": "провансалски",
+ "raj": "рађастани",
"rwk": "рва",
"rm": "рето-романски",
"rof": "ромбо",
@@ -163,6 +172,7 @@
"sc": "сардињаски",
"sw": "свахили",
"sw-CD": "свахили (Демократска Република Конго)",
+ "frr": "северно-фризијски",
"seh": "сена",
"ii": "сечуан ји",
"sd": "синди",
@@ -170,6 +180,7 @@
"lrc": "сјеверни лури",
"nd": "сјеверни ндебеле",
"se": "сјеверни сами",
+ "sms": "сколтски језик",
"sk": "словачки",
"sl": "словенски",
"xog": "сога",
@@ -188,6 +199,7 @@
"teo": "тесо",
"bo": "тибетански",
"ti": "тигриња",
+ "tok": "токи пона",
"to": "тонга",
"tk": "туркменски",
"tr": "турски",
@@ -208,6 +220,7 @@
"ha": "хауса",
"he": "хебрејски",
"hi": "хинди",
+ "hi-Latn": "хинди (латиница)",
"nl": "холандски",
"hr": "хрватски",
"ceb": "цебуано",
@@ -217,6 +230,7 @@
"ce": "чеченски",
"cs": "чешки",
"cgg": "чига",
+ "cv": "чувашки",
"dz": "џонга",
"ksb": "шамбала",
"sv": "шведски",
@@ -225,7 +239,5 @@
"es": "шпански",
"es-419": "шпански (Латинска Америка)",
"es-MX": "шпански (Мексико)",
- "kgp": "Kaingang",
- "yrl": "Nheengatu",
- "pcm": "Nigerian Pidgin"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/bs.json b/vendor/commerceguys/intl/resources/language/bs.json
index 433832d98..63c45b0ee 100644
--- a/vendor/commerceguys/intl/resources/language/bs.json
+++ b/vendor/commerceguys/intl/resources/language/bs.json
@@ -19,6 +19,7 @@
"bn": "bengalski",
"be": "bjeloruski",
"brx": "bodo",
+ "bho": "bojpuri",
"bs": "bosanski",
"br": "bretonski",
"bg": "bugarski",
@@ -30,6 +31,7 @@
"chr": "čeroki",
"cs": "češki",
"cgg": "čiga",
+ "cv": "čuvaški",
"da": "danski",
"doi": "dogri",
"dsb": "donjolužičkosrpski",
@@ -61,10 +63,12 @@
"ka": "gruzijski",
"gu": "gudžarati",
"guz": "gusi",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "havajski",
"he": "hebrejski",
"hi": "hindi",
+ "hi-Latn": "hindi (latinica)",
"nl": "holandski",
"xh": "hosa",
"hr": "hrvatski",
@@ -137,6 +141,7 @@
"mzn": "mazanderanski",
"mer": "meru",
"mgo": "meta",
+ "mdf": "mokša",
"ro-MD": "moldavski",
"mn": "mongolski",
"mua": "mundang",
@@ -144,8 +149,8 @@
"ne": "nepalski",
"nnh": "ngiembon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"pcm": "nigerijski pidžin",
+ "yrl": "ningatu",
"no": "norveški",
"nb": "norveški (Bokmal)",
"nn": "norveški (Nynorsk)",
@@ -154,15 +159,19 @@
"de": "njemački",
"de-AT": "njemački (Austrija)",
"gsw": "njemački (Švicarska)",
+ "ann": "obolo",
"or": "odija",
+ "oc": "oksitanski",
"om": "oromo",
"os": "osetski",
"pa": "pandžapski",
"ps": "paštu",
"fa": "perzijski",
+ "pis": "pidžin",
"pl": "poljski",
"pt": "portugalski",
"pt-PT": "portugalski (Portugal)",
+ "raj": "rajastani",
"rm": "retoromanski",
"rof": "rombo",
"rwk": "rua",
@@ -179,9 +188,11 @@
"ii": "sičuan ji",
"sd": "sindi",
"si": "sinhaleški",
+ "frr": "sjeverni frizijski",
"lrc": "sjeverni luri",
"nd": "sjeverni ndebele",
"se": "sjeverni sami",
+ "sms": "skolt sami",
"sk": "slovački",
"sl": "slovenski",
"xog": "soga",
@@ -209,6 +220,7 @@
"teo": "teso",
"bo": "tibetanski",
"ti": "tigrinja",
+ "tok": "toki pona",
"to": "tonganski",
"tk": "turkmenski",
"tr": "turski",
diff --git a/vendor/commerceguys/intl/resources/language/ca.json b/vendor/commerceguys/intl/resources/language/ca.json
index 249be833c..44cd1fad8 100644
--- a/vendor/commerceguys/intl/resources/language/ca.json
+++ b/vendor/commerceguys/intl/resources/language/ca.json
@@ -31,6 +31,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalí",
+ "bho": "bhojpuri",
"my": "birmà",
"nmg": "bissio",
"brx": "bodo",
@@ -71,6 +72,7 @@
"fr-CA": "francès canadenc",
"fr-CH": "francès suís",
"fy": "frisó occidental",
+ "frr": "frisó septentrional",
"fur": "friülà",
"ff": "ful",
"gd": "gaèlic escocès",
@@ -82,10 +84,12 @@
"kl": "groenlandès",
"gu": "gujarati",
"guz": "gusí",
+ "bgc": "Haryanvi",
"ha": "haussa",
"haw": "hawaià",
"he": "hebreu",
"hi": "hindi",
+ "hi-Latn": "hindi (llatí)",
"hu": "hongarès",
"sah": "iacut",
"yi": "ídix",
@@ -141,6 +145,7 @@
"mgo": "meta’",
"ro-MD": "moldau",
"mn": "mongol",
+ "mdf": "mordovià moksa",
"mua": "mundang",
"naq": "nama",
"nd": "ndebele septentrional",
@@ -148,12 +153,14 @@
"ne": "nepalès",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
+ "yrl": "nheengatú",
"no": "noruec",
"nb": "noruec bokmål",
"nn": "noruec nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "ann": "obolo",
+ "oc": "occità",
"or": "oriya",
"om": "oromo",
"os": "osseta",
@@ -161,11 +168,13 @@
"pa": "panjabi",
"asa": "pare",
"fa": "persa",
+ "pis": "pidgin",
"pcm": "pidgin de Nigèria",
"pl": "polonès",
"pt": "portuguès",
"pt-PT": "portuguès de Portugal",
"qu": "quítxua",
+ "raj": "rajasthani",
"rm": "retoromànic",
"ro": "romanès",
"rof": "rombo",
@@ -176,6 +185,7 @@
"saq": "samburu",
"smn": "sami d’Inari",
"se": "sami septentrional",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sànscrit",
@@ -205,11 +215,13 @@
"teo": "teso",
"bo": "tibetà",
"ti": "tigrinya",
+ "tok": "toki pona",
"to": "tongalès",
"tr": "turc",
"tk": "turcman",
"cs": "txec",
"ce": "txetxè",
+ "cv": "txuvaix",
"uk": "ucraïnès",
"ug": "uigur",
"ur": "urdú",
diff --git a/vendor/commerceguys/intl/resources/language/ce.json b/vendor/commerceguys/intl/resources/language/ce.json
index 38752a8ea..6187206a5 100644
--- a/vendor/commerceguys/intl/resources/language/ce.json
+++ b/vendor/commerceguys/intl/resources/language/ce.json
@@ -1,8 +1,14 @@
{
"doi": "Dogri",
+ "bgc": "Haryanvi",
"kgp": "Kaingang",
"yrl": "Nheengatu",
+ "frr": "Northern Frisian",
"no": "Norwegian",
+ "ann": "Obolo",
+ "pis": "Pijin",
+ "raj": "Rajasthani",
+ "tok": "Toki Pona",
"en-AU": "Австралин ингалсан",
"de-AT": "австрин немцойн",
"agq": "агхӀем",
@@ -29,6 +35,7 @@
"bs": "боснийн",
"br": "бретонийн",
"en-GB": "британин ингалсан",
+ "bho": "бходжпури",
"vai": "ваи",
"cy": "валлийн",
"wae": "валлисийн",
@@ -131,6 +138,7 @@
"es-MX": "мексикан испанхойн",
"mer": "меру",
"mgo": "мета",
+ "mdf": "мокшанойн",
"ro-MD": "молдавийн",
"mn": "монголийн",
"zgh": "мороккон стандартан тамазигхтийн",
@@ -146,6 +154,7 @@
"ce": "нохчийн",
"nus": "нуэр",
"nyn": "ньянколе",
+ "oc": "окситанойн",
"or": "ори",
"om": "оромо",
"ru": "оьрсийн",
@@ -169,6 +178,7 @@
"sr": "сербийн",
"si": "сингалхойн",
"sd": "синдхи",
+ "sms": "скольт-саамийн",
"sk": "словакийн",
"sl": "словенийн",
"xog": "сога",
@@ -206,11 +216,13 @@
"ha": "хауса",
"hr": "хорватийн",
"hi": "хӀинди",
+ "hi-Latn": "хӀинди (латинан)",
"os": "хӀирийн",
"zh": "цийн",
"chr": "чероки",
"cs": "чехийн",
"cgg": "чига",
+ "cv": "чувашийн",
"ksb": "шамбала",
"sv": "шведийн",
"de-CH": "швейцарин литературин немцойн",
diff --git a/vendor/commerceguys/intl/resources/language/cs.json b/vendor/commerceguys/intl/resources/language/cs.json
index 5877eff76..0eac01bbf 100644
--- a/vendor/commerceguys/intl/resources/language/cs.json
+++ b/vendor/commerceguys/intl/resources/language/cs.json
@@ -23,6 +23,7 @@
"bem": "bembština",
"bez": "bena",
"bn": "bengálština",
+ "bho": "bhódžpurština",
"brx": "bodoština",
"bs": "bosenština",
"br": "bretonština",
@@ -34,6 +35,7 @@
"zh": "čínština",
"zh-Hant": "čínština (tradiční)",
"zh-Hans": "čínština (zjednodušená)",
+ "cv": "čuvaština",
"da": "dánština",
"doi": "dogarština",
"dsb": "dolnolužická srbština",
@@ -51,6 +53,7 @@
"fr": "francouzština",
"fr-CA": "francouzština (Kanada)",
"fr-CH": "francouzština (Švýcarsko)",
+ "frr": "fríština (severní)",
"fy": "fríština (západní)",
"ff": "fulbština",
"fur": "furlanština",
@@ -60,10 +63,12 @@
"ka": "gruzínština",
"gu": "gudžarátština",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hauština",
"haw": "havajština",
"he": "hebrejština",
"hi": "hindština",
+ "hi-Latn": "hindština (latinka)",
"hsb": "hornolužická srbština",
"hr": "chorvatština",
"ig": "igboština",
@@ -136,6 +141,7 @@
"mzn": "mázandaránština",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "mokšanština",
"ro-MD": "moldavština",
"mn": "mongolština",
"mua": "mundang",
@@ -157,14 +163,18 @@
"nb": "norština (bokmål)",
"nn": "norština (nynorsk)",
"nus": "nuerština",
+ "ann": "obolo",
+ "oc": "okcitánština",
"om": "oromština",
"os": "osetština",
"pa": "paňdžábština",
"ps": "paštština",
"fa": "perština",
+ "pis": "pidžin (Šalomounovy ostrovy)",
"pl": "polština",
"pt": "portugalština",
"pt-PT": "portugalština (Evropa)",
+ "raj": "rádžastánština",
"rm": "rétorománština",
"rof": "rombo",
"ro": "rumunština",
@@ -174,6 +184,7 @@
"saq": "samburu",
"smn": "sámština (inarijská)",
"se": "sámština (severní)",
+ "sms": "sámština (skoltská)",
"sbp": "sangoština",
"sg": "sangština",
"sa": "sanskrt",
@@ -210,6 +221,7 @@
"th": "thajština",
"bo": "tibetština",
"ti": "tigrinijština",
+ "tok": "toki pona",
"to": "tongánština",
"tr": "turečtina",
"tk": "turkmenština",
diff --git a/vendor/commerceguys/intl/resources/language/cy.json b/vendor/commerceguys/intl/resources/language/cy.json
index 22320192a..973e91a76 100644
--- a/vendor/commerceguys/intl/resources/language/cy.json
+++ b/vendor/commerceguys/intl/resources/language/cy.json
@@ -23,6 +23,7 @@
"be": "Belarwseg",
"bem": "Bembeg",
"bez": "Bena",
+ "bho": "Bhojpuri",
"brx": "Bodo",
"bs": "Bosnieg",
"bg": "Bwlgareg",
@@ -65,6 +66,7 @@
"fr": "Ffrangeg",
"fr-CA": "Ffrangeg Canada",
"fr-CH": "Ffrangeg y Swistir",
+ "frr": "Ffriseg Gogleddol",
"fy": "Ffriseg y Gorllewin",
"fur": "Ffriwleg",
"ff": "Ffwla",
@@ -78,10 +80,12 @@
"ga": "Gwyddeleg",
"nnh": "Ngiemboon",
"jgo": "Ngomba",
+ "bgc": "Haryanvi",
"haw": "Hawäieg",
"ha": "Hawsa",
"he": "Hebraeg",
"hi": "Hindi",
+ "hi-Latn": "Hindi (Lladin)",
"hu": "Hwngareg",
"yav": "Iangben",
"yi": "Iddew-Almaeneg",
@@ -132,6 +136,7 @@
"jmc": "Matsiame",
"mer": "Mêrw",
"mgo": "Meta",
+ "mdf": "Mocsia",
"mn": "Mongoleg",
"ro-MD": "Moldofeg",
"mfe": "Morisyen",
@@ -146,17 +151,21 @@
"nn": "Norwyeg Nynorsk",
"nus": "Nŵereg",
"ii": "Nwosw",
+ "ann": "Obolo",
+ "oc": "Ocsitaneg",
"or": "Odia",
"om": "Oromo",
"os": "Oseteg",
"ps": "Pashto",
"fa": "Perseg",
"pcm": "Pidgin Nigeria",
+ "pis": "Pijin",
"pt": "Portiwgaleg",
"pt-PT": "Portiwgaleg Ewrop",
"pa": "Pwnjabeg",
"pl": "Pwyleg",
"qu": "Quechua",
+ "raj": "Rajasthaneg",
"rm": "Románsh",
"rof": "Rombo",
"rwk": "Rwa",
@@ -173,6 +182,7 @@
"sah": "Sakha",
"saq": "Sambŵrw",
"se": "Sami Gogleddol",
+ "sms": "Sami Scolt",
"sa": "Sansgrit",
"sat": "Santali",
"sc": "Sardeg",
@@ -210,6 +220,8 @@
"bo": "Tibeteg",
"ti": "Tigrinya",
"to": "Tongeg",
+ "tok": "Toki Pona",
+ "cv": "Tshwfasheg",
"cs": "Tsieceg",
"zh": "Tsieinëeg",
"zh-Hans": "Tsieinëeg Symledig",
diff --git a/vendor/commerceguys/intl/resources/language/da.json b/vendor/commerceguys/intl/resources/language/da.json
index 29f2e59e3..137f10f41 100644
--- a/vendor/commerceguys/intl/resources/language/da.json
+++ b/vendor/commerceguys/intl/resources/language/da.json
@@ -15,9 +15,11 @@
"bm": "bambara",
"eu": "baskisk",
"bas": "basaa",
+ "be": "belarusisk",
"bem": "bemba",
"bez": "bena",
"bn": "bengali",
+ "bho": "bhojpuri",
"brx": "bodo",
"nb": "bokmål",
"bs": "bosnisk",
@@ -32,6 +34,7 @@
"tzm": "centralmarokkansk tamazight",
"chr": "cherokee",
"cgg": "chiga",
+ "cv": "chuvash",
"sw-CD": "congolesisk swahili",
"kw": "cornisk",
"da": "dansk",
@@ -59,12 +62,12 @@
"kl": "grønlandsk",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiiansk",
"he": "hebraisk",
"hi": "hindi",
- "nl": "hollandsk",
- "be": "hviderussisk",
+ "hi-Latn": "hindi (latinsk)",
"ig": "igbo",
"id": "indonesisk",
"iu": "inuktitut",
@@ -77,7 +80,7 @@
"yi": "jiddisch",
"dyo": "jola-fonyi",
"kab": "kabylisk",
- "kgp": "Kaingang",
+ "kgp": "kaingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -128,19 +131,22 @@
"mer": "meru",
"mgo": "meta",
"es-MX": "mexicansk spansk",
+ "mdf": "moksha",
"ro-MD": "moldovisk",
"mn": "mongolsk",
"mfe": "morisyen",
"mua": "mundang",
"naq": "nama",
+ "nl": "nederlandsk",
"dsb": "nedersorbisk",
"nds": "nedertysk",
- "nds-NL": "nedertysk (Holland)",
+ "nds-NL": "nedertysk (Nederlandene)",
"ne": "nepalesisk",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
+ "yrl": "nheengatu",
"pcm": "nigeriansk pidgin",
+ "frr": "nordfrisisk",
"lrc": "nordluri",
"nd": "nordndebele",
"se": "nordsamisk",
@@ -148,15 +154,19 @@
"nus": "nuer",
"nyn": "nyankole",
"nn": "nynorsk",
+ "ann": "obolo",
+ "oc": "occitansk",
"or": "oriya",
"om": "oromo",
"os": "ossetisk",
"ps": "pashto",
"fa": "persisk",
+ "pis": "pijin",
"pl": "polsk",
"pt": "portugisisk",
"pa": "punjabisk",
"qu": "quechua",
+ "raj": "rajasthani",
"rof": "rombo",
"ro": "rumænsk",
"rn": "rundi",
@@ -179,6 +189,7 @@
"ii": "sichuan yi",
"sd": "sindhi",
"si": "singalesisk",
+ "sms": "skoltesamisk",
"gd": "skotsk gælisk",
"sk": "slovakisk",
"sl": "slovensk",
@@ -203,6 +214,7 @@
"ti": "tigrinya",
"cs": "tjekkisk",
"ce": "tjetjensk",
+ "tok": "toki pona",
"to": "tongansk",
"zh-Hant": "traditionelt kinesisk",
"tk": "turkmensk",
diff --git a/vendor/commerceguys/intl/resources/language/de-AT.json b/vendor/commerceguys/intl/resources/language/de-AT.json
index 3deac72a9..57ccbd30e 100644
--- a/vendor/commerceguys/intl/resources/language/de-AT.json
+++ b/vendor/commerceguys/intl/resources/language/de-AT.json
@@ -18,6 +18,7 @@
"bem": "Bemba",
"bez": "Bena",
"bn": "Bengalisch",
+ "bho": "Bhodschpuri",
"my": "Birmanisch",
"brx": "Bodo",
"bs": "Bosnisch",
@@ -59,10 +60,12 @@
"kl": "Grönländisch",
"gu": "Gujarati",
"guz": "Gusii",
+ "bgc": "Haryanvi",
"ha": "Hausa",
"haw": "Hawaiianisch",
"he": "Hebräisch",
"hi": "Hindi",
+ "hi-Latn": "Hindi (Lateinisch)",
"ig": "Igbo",
"smn": "Inari-Samisch",
"id": "Indonesisch",
@@ -125,6 +128,7 @@
"mni": "Meithei",
"mer": "Meru",
"mgo": "Meta’",
+ "mdf": "Mokschanisch",
"ro-MD": "Moldauisch",
"mn": "Mongolisch",
"mfe": "Morisyen",
@@ -140,6 +144,7 @@
"dsb": "Niedersorbisch",
"pcm": "Nigerianisches Pidgin",
"nd": "Nord-Ndebele",
+ "frr": "Nordfriesisch",
"lrc": "Nördliches Luri",
"se": "Nordsamisch",
"no": "Norwegisch",
@@ -148,17 +153,21 @@
"nus": "Nuer",
"nyn": "Nyankole",
"hsb": "Obersorbisch",
+ "ann": "Obolo",
+ "oc": "Okzitanisch",
"or": "Oriya",
"om": "Oromo",
"os": "Ossetisch",
"de-AT": "Österreichisches Deutsch",
"ps": "Paschtu",
"fa": "Persisch",
+ "pis": "Pijin",
"pl": "Polnisch",
"pt": "Portugiesisch",
"pt-PT": "Portugiesisch (Portugal)",
"pa": "Punjabi",
"qu": "Quechua",
+ "raj": "Rajasthani",
"rm": "Rätoromanisch",
"rof": "Rombo",
"cgg": "Rukiga",
@@ -181,6 +190,7 @@
"sn": "Shona",
"sd": "Sindhi",
"si": "Singhalesisch",
+ "sms": "Skolt-Samisch",
"sk": "Slowakisch",
"sl": "Slowenisch",
"xog": "Soga",
@@ -202,9 +212,11 @@
"th": "Thailändisch",
"bo": "Tibetisch",
"ti": "Tigrinya",
+ "tok": "Toki Pona",
"to": "Tongaisch",
"cs": "Tschechisch",
"ce": "Tschetschenisch",
+ "cv": "Tschuwaschisch",
"tr": "Türkisch",
"tk": "Turkmenisch",
"ug": "Uigurisch",
diff --git a/vendor/commerceguys/intl/resources/language/de-CH.json b/vendor/commerceguys/intl/resources/language/de-CH.json
deleted file mode 100644
index 337143d35..000000000
--- a/vendor/commerceguys/intl/resources/language/de-CH.json
+++ /dev/null
@@ -1,231 +0,0 @@
-{
- "af": "Afrikaans",
- "agq": "Aghem",
- "ak": "Akan",
- "sq": "Albanisch",
- "am": "Amharisch",
- "ar": "Arabisch",
- "hy": "Armenisch",
- "az": "Aserbaidschanisch",
- "as": "Assamesisch",
- "ast": "Asturisch",
- "asa": "Asu",
- "ksf": "Bafia",
- "bm": "Bambara",
- "bas": "Basaa-Sprache",
- "eu": "Baskisch",
- "be": "Belarussisch",
- "bem": "Bemba",
- "bez": "Bena",
- "bn": "Bengalisch",
- "my": "Birmanisch",
- "brx": "Bodo",
- "bs": "Bosnisch",
- "br": "Bretonisch",
- "bg": "Bulgarisch",
- "ceb": "Cebuano",
- "chr": "Cherokee",
- "zh": "Chinesisch",
- "zh-Hant": "Chinesisch (traditionell)",
- "zh-Hans": "Chinesisch (vereinfacht)",
- "da": "Dänisch",
- "de": "Deutsch",
- "dyo": "Diola",
- "doi": "Dogri",
- "dua": "Duala",
- "dz": "Dzongkha",
- "ebu": "Embu",
- "en": "Englisch",
- "en-AU": "Englisch (Australien)",
- "en-GB": "Englisch (Grossbritannien)",
- "en-CA": "Englisch (Kanada)",
- "et": "Estnisch",
- "ee": "Ewe",
- "ewo": "Ewondo",
- "fo": "Färöisch",
- "fil": "Filipino",
- "fi": "Finnisch",
- "nl-BE": "Flämisch",
- "fr": "Französisch",
- "fr-CA": "Französisch (Kanada)",
- "fr-CH": "Französisch (Schweiz)",
- "fur": "Friaulisch",
- "ff": "Ful",
- "gl": "Galicisch",
- "gd": "Gälisch (Schottland)",
- "lg": "Ganda",
- "ka": "Georgisch",
- "el": "Griechisch",
- "kl": "Grönländisch",
- "gu": "Gujarati",
- "guz": "Gusii",
- "ha": "Haussa",
- "haw": "Hawaiisch",
- "he": "Hebräisch",
- "hi": "Hindi",
- "ig": "Igbo",
- "smn": "Inari-Samisch",
- "id": "Indonesisch",
- "iu": "Inuktitut",
- "ga": "Irisch",
- "is": "Isländisch",
- "it": "Italienisch",
- "sah": "Jakutisch",
- "ja": "Japanisch",
- "jv": "Javanisch",
- "yi": "Jiddisch",
- "kea": "Kabuverdianu",
- "kab": "Kabylisch",
- "kgp": "Kaingang",
- "kkj": "Kako",
- "kln": "Kalenjin",
- "kam": "Kamba",
- "kn": "Kannada",
- "yue": "Kantonesisch",
- "kk": "Kasachisch",
- "ks": "Kaschmiri",
- "ca": "Katalanisch",
- "km": "Khmer",
- "ki": "Kikuyu",
- "rw": "Kinyarwanda",
- "ky": "Kirgisisch",
- "ksh": "Kölsch",
- "sw-CD": "Kongo-Swahili",
- "kok": "Konkani",
- "ko": "Koreanisch",
- "kw": "Kornisch",
- "khq": "Koyra Chiini",
- "ses": "Koyra Senni",
- "hr": "Kroatisch",
- "ku": "Kurdisch",
- "nmg": "Kwasio",
- "lkt": "Lakota",
- "lag": "Langi",
- "lo": "Laotisch",
- "lv": "Lettisch",
- "ln": "Lingala",
- "lt": "Litauisch",
- "lu": "Luba-Katanga",
- "luy": "Luhya",
- "luo": "Luo",
- "lb": "Luxemburgisch",
- "jmc": "Machame",
- "mai": "Maithili",
- "mgh": "Makhuwa-Meetto",
- "kde": "Makonde",
- "mg": "Malagasy",
- "ms": "Malaiisch",
- "ml": "Malayalam",
- "mt": "Maltesisch",
- "mi": "Māori",
- "mr": "Marathi",
- "mzn": "Masanderanisch",
- "mas": "Massai",
- "mk": "Mazedonisch",
- "mni": "Meithei",
- "mer": "Meru",
- "mgo": "Meta’",
- "ro-MD": "Moldauisch",
- "mn": "Mongolisch",
- "mfe": "Morisyen",
- "mua": "Mundang",
- "naq": "Nama",
- "ne": "Nepalesisch",
- "nnh": "Ngiemboon",
- "jgo": "Ngomba",
- "yrl": "Nheengatu",
- "nds": "Niederdeutsch",
- "nl": "Niederländisch",
- "nds-NL": "Niedersächsisch",
- "dsb": "Niedersorbisch",
- "pcm": "Nigerianisches Pidgin",
- "nd": "Nord-Ndebele",
- "lrc": "Nördliches Luri",
- "se": "Nordsamisch",
- "no": "Norwegisch",
- "nb": "Norwegisch (Bokmål)",
- "nn": "Norwegisch (Nynorsk)",
- "nus": "Nuer",
- "nyn": "Nyankole",
- "hsb": "Obersorbisch",
- "or": "Oriya",
- "om": "Oromo",
- "os": "Ossetisch",
- "de-AT": "Österreichisches Deutsch",
- "ps": "Paschtu",
- "fa": "Persisch",
- "pl": "Polnisch",
- "pt": "Portugiesisch",
- "pt-PT": "Portugiesisch (Portugal)",
- "pa": "Punjabi",
- "qu": "Quechua",
- "rm": "Rätoromanisch",
- "rof": "Rombo",
- "cgg": "Rukiga",
- "ro": "Rumänisch",
- "rn": "Rundi",
- "ru": "Russisch",
- "rwk": "Rwa",
- "saq": "Samburu",
- "sg": "Sango",
- "sbp": "Sangu",
- "sa": "Sanskrit",
- "sat": "Santali",
- "sc": "Sardisch",
- "sv": "Schwedisch",
- "de-CH": "Schweizer Hochdeutsch",
- "gsw": "Schweizerdeutsch",
- "seh": "Sena",
- "sr": "Serbisch",
- "ksb": "Shambala",
- "sn": "Shona",
- "sd": "Sindhi",
- "si": "Singhalesisch",
- "sk": "Slowakisch",
- "sl": "Slowenisch",
- "xog": "Soga",
- "so": "Somali",
- "es": "Spanisch",
- "es-419": "Spanisch (Lateinamerika)",
- "es-MX": "Spanisch (Mexiko)",
- "sw": "Suaheli",
- "su": "Sundanesisch",
- "tg": "Tadschikisch",
- "dav": "Taita",
- "zgh": "Tamazight",
- "ta": "Tamil",
- "twq": "Tasawaq",
- "shi": "Taschelhit",
- "tt": "Tatarisch",
- "te": "Telugu",
- "teo": "Teso",
- "th": "Thailändisch",
- "bo": "Tibetisch",
- "ti": "Tigrinya",
- "to": "Tongaisch",
- "cs": "Tschechisch",
- "ce": "Tschetschenisch",
- "tr": "Türkisch",
- "tk": "Turkmenisch",
- "ug": "Uigurisch",
- "uk": "Ukrainisch",
- "hu": "Ungarisch",
- "ur": "Urdu",
- "uz": "Usbekisch",
- "vai": "Vai",
- "vi": "Vietnamesisch",
- "vun": "Vunjo",
- "cy": "Walisisch",
- "wae": "Walliserdeutsch",
- "wa": "Wallonisch",
- "fy": "Westfriesisch",
- "wo": "Wolof",
- "xh": "Xhosa",
- "yav": "Yangben",
- "ii": "Yi",
- "yo": "Yoruba",
- "dje": "Zarma",
- "tzm": "Zentralatlas-Tamazight",
- "ckb": "Zentralkurdisch",
- "zu": "Zulu"
-} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/de.json b/vendor/commerceguys/intl/resources/language/de.json
index 2a5870df3..1bb968ba7 100644
--- a/vendor/commerceguys/intl/resources/language/de.json
+++ b/vendor/commerceguys/intl/resources/language/de.json
@@ -18,6 +18,7 @@
"bem": "Bemba",
"bez": "Bena",
"bn": "Bengalisch",
+ "bho": "Bhodschpuri",
"my": "Birmanisch",
"brx": "Bodo",
"bs": "Bosnisch",
@@ -59,10 +60,12 @@
"kl": "Grönländisch",
"gu": "Gujarati",
"guz": "Gusii",
+ "bgc": "Haryanvi",
"ha": "Haussa",
"haw": "Hawaiisch",
"he": "Hebräisch",
"hi": "Hindi",
+ "hi-Latn": "Hindi (Lateinisch)",
"ig": "Igbo",
"smn": "Inari-Samisch",
"id": "Indonesisch",
@@ -125,6 +128,7 @@
"mni": "Meithei",
"mer": "Meru",
"mgo": "Meta’",
+ "mdf": "Mokschanisch",
"ro-MD": "Moldauisch",
"mn": "Mongolisch",
"mfe": "Morisyen",
@@ -140,6 +144,7 @@
"dsb": "Niedersorbisch",
"pcm": "Nigerianisches Pidgin",
"nd": "Nord-Ndebele",
+ "frr": "Nordfriesisch",
"lrc": "Nördliches Luri",
"se": "Nordsamisch",
"no": "Norwegisch",
@@ -148,17 +153,21 @@
"nus": "Nuer",
"nyn": "Nyankole",
"hsb": "Obersorbisch",
+ "ann": "Obolo",
+ "oc": "Okzitanisch",
"or": "Oriya",
"om": "Oromo",
"os": "Ossetisch",
"de-AT": "Österreichisches Deutsch",
"ps": "Paschtu",
"fa": "Persisch",
+ "pis": "Pijin",
"pl": "Polnisch",
"pt": "Portugiesisch",
"pt-PT": "Portugiesisch (Portugal)",
"pa": "Punjabi",
"qu": "Quechua",
+ "raj": "Rajasthani",
"rm": "Rätoromanisch",
"rof": "Rombo",
"cgg": "Rukiga",
@@ -181,6 +190,7 @@
"sn": "Shona",
"sd": "Sindhi",
"si": "Singhalesisch",
+ "sms": "Skolt-Samisch",
"sk": "Slowakisch",
"sl": "Slowenisch",
"xog": "Soga",
@@ -202,9 +212,11 @@
"th": "Thailändisch",
"bo": "Tibetisch",
"ti": "Tigrinya",
+ "tok": "Toki Pona",
"to": "Tongaisch",
"cs": "Tschechisch",
"ce": "Tschetschenisch",
+ "cv": "Tschuwaschisch",
"tr": "Türkisch",
"tk": "Turkmenisch",
"ug": "Uigurisch",
diff --git a/vendor/commerceguys/intl/resources/language/dz.json b/vendor/commerceguys/intl/resources/language/dz.json
index b0e5ca7c0..f33fd65e0 100644
--- a/vendor/commerceguys/intl/resources/language/dz.json
+++ b/vendor/commerceguys/intl/resources/language/dz.json
@@ -8,6 +8,7 @@
"bas": "Basaa",
"bem": "Bemba",
"bez": "Bena",
+ "bho": "Bhojpuri",
"brx": "Bodo",
"br": "Breton",
"yue": "Cantonese",
@@ -17,6 +18,7 @@
"ce": "Chechen",
"chr": "Cherokee",
"cgg": "Chiga",
+ "cv": "Chuvash",
"ksh": "Colognian",
"kw": "Cornish",
"doi": "Dogri",
@@ -25,9 +27,10 @@
"ee": "Ewe",
"ewo": "Ewondo",
"fur": "Friulian",
- "ff": "Fulah",
+ "ff": "Fula",
"lg": "Ganda",
"guz": "Gusii",
+ "bgc": "Haryanvi",
"smn": "Inari Sami",
"iu": "Inuktitut",
"dyo": "Jola-Fonyi",
@@ -61,6 +64,7 @@
"mzn": "Mazanderani",
"mer": "Meru",
"mgo": "Metaʼ",
+ "mdf": "Moksha",
"mn": "Mongolian",
"mfe": "Morisyen",
"mua": "Mundang",
@@ -71,16 +75,20 @@
"yrl": "Nheengatu",
"pcm": "Nigerian Pidgin",
"nd": "North Ndebele",
+ "frr": "Northern Frisian",
"lrc": "Northern Luri",
"se": "Northern Sami",
"nus": "Nuer",
"nyn": "Nyankole",
+ "ann": "Obolo",
+ "oc": "Occitan",
"om": "Oromo",
"os": "Ossetic",
+ "pis": "Pijin",
+ "raj": "Rajasthani",
"rof": "Rombo",
"rn": "Rundi",
"rwk": "Rwa",
- "sah": "Sakha",
"saq": "Samburu",
"sg": "Sango",
"sbp": "Sangu",
@@ -91,17 +99,20 @@
"ksb": "Shambala",
"sn": "Shona",
"ii": "Sichuan Yi",
+ "sms": "Skolt Sami",
"xog": "Soga",
"zgh": "Standard Moroccan Tamazight",
"shi": "Tachelhit",
"dav": "Taita",
"twq": "Tasawaq",
"teo": "Teso",
+ "tok": "Toki Pona",
"hsb": "Upper Sorbian",
"vai": "Vai",
"vun": "Vunjo",
"wa": "Walloon",
"wae": "Walser",
+ "sah": "Yakut",
"yav": "Yangben",
"yi": "Yiddish",
"dje": "Zarma",
@@ -204,6 +215,7 @@
"ha": "ཧཝ་ས་ཁ",
"hu": "ཧཱང་གྷ་རི་ཡཱན་ཁ",
"hi": "ཧིན་དི་ཁ",
+ "hi-Latn": "ཧིན་དི་ཁ། (ལེ་ཊིན་ཡིག་གུ།)",
"he": "ཧེ་བྲུ་ཁ",
"az": "ཨ་ཛར་བྷའི་ཇཱན་ཁ",
"is": "ཨ་ཡིས་ལེན་ཌིཀ་ཁ",
diff --git a/vendor/commerceguys/intl/resources/language/el.json b/vendor/commerceguys/intl/resources/language/el.json
index 3a69fc9c6..48ccb1bd7 100644
--- a/vendor/commerceguys/intl/resources/language/el.json
+++ b/vendor/commerceguys/intl/resources/language/el.json
@@ -26,6 +26,7 @@
"lrc": "Βόρεια Λούρι",
"nd": "Βόρεια Ντεμπέλε",
"se": "Βόρεια Σάμι",
+ "frr": "Βόρεια Φριζιανά",
"bs": "Βοσνιακά",
"bg": "Βουλγαρικά",
"vun": "Βούντζο",
@@ -70,6 +71,7 @@
"es-MX": "Ισπανικά Μεξικού",
"it": "Ιταλικά",
"kk": "Καζακικά",
+ "kgp": "Κάινγκανγκ",
"kkj": "Κάκο",
"kl": "Καλαάλισουτ",
"kln": "Καλεντζίν",
@@ -126,6 +128,7 @@
"mer": "Μέρου",
"mgo": "Μέτα",
"mn": "Μογγολικά",
+ "mdf": "Μόκσα",
"ro-MD": "Μολδαβικά",
"mfe": "Μορισιέν",
"mua": "Μουντάνγκ",
@@ -135,11 +138,13 @@
"bem": "Μπέμπα",
"bez": "Μπένα",
"brx": "Μπόντο",
+ "bho": "Μπότζπουρι",
"naq": "Νάμα",
"nnh": "Νγκιεμπούν",
"jgo": "Νγκόμπα",
"ne": "Νεπαλικά",
"nyn": "Νιανκόλε",
+ "yrl": "Νινγκατού",
"no": "Νορβηγικά",
"nb": "Νορβηγικά Μποκμάλ",
"nn": "Νορβηγικά Νινόρσκ",
@@ -148,7 +153,9 @@
"doi": "Ντόγκρι",
"dua": "Ντουάλα",
"nl": "Ολλανδικά",
+ "ann": "Ομπόλο",
"or": "Όντια",
+ "oc": "Οξιτανικά",
"om": "Ορόμο",
"os": "Οσετικά",
"cy": "Ουαλικά",
@@ -161,10 +168,12 @@
"zh-Hant": "Παραδοσιακά Κινεζικά",
"ps": "Πάστο",
"fa": "Περσικά",
+ "pis": "Πιτζίν",
"pcm": "Πίτζιν Νιγηρίας",
"pl": "Πολωνικά",
"pt": "Πορτογαλικά",
"pt-PT": "Πορτογαλικά Ευρώπης",
+ "raj": "Ραζασθάνι",
"rm": "Ρομανικά",
"rof": "Ρόμπο",
"rwk": "Ρουά",
@@ -185,6 +194,7 @@
"sd": "Σίντι",
"si": "Σινχαλεζικά",
"ii": "Σίτσουαν Γι",
+ "sms": "Σκολτ Σάμι",
"gd": "Σκωτικά Κελτικά",
"mk": "Σλαβομακεδονικά",
"sk": "Σλοβακικά",
@@ -207,6 +217,7 @@
"teo": "Τέσο",
"dyo": "Τζόλα-Φόνι",
"ti": "Τιγκρινικά",
+ "tok": "Τόκι Πόνα",
"to": "Τονγκανικά",
"tr": "Τουρκικά",
"tk": "Τουρκμενικά",
@@ -214,6 +225,7 @@
"ce": "Τσετσενικά",
"cs": "Τσεχικά",
"cgg": "Τσίγκα",
+ "cv": "Τσουβασικά",
"zgh": "Τυπικά Ταμαζίτ Μαρόκου",
"de-CH": "Υψηλά Γερμανικά Ελβετίας",
"fo": "Φεροϊκά",
@@ -225,7 +237,7 @@
"haw": "Χαβαϊκά",
"ha": "Χάουσα",
"hi": "Χίντι",
+ "hi-Latn": "Χίντι (Λατινικό)",
"km": "Χμερ",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/en-001.json b/vendor/commerceguys/intl/resources/language/en-001.json
index 49576b7f3..92e140120 100644
--- a/vendor/commerceguys/intl/resources/language/en-001.json
+++ b/vendor/commerceguys/intl/resources/language/en-001.json
@@ -20,6 +20,7 @@
"be": "Belarusian",
"bem": "Bemba",
"bez": "Bena",
+ "bho": "Bhojpuri",
"brx": "Bodo",
"bs": "Bosnian",
"br": "Breton",
@@ -37,6 +38,7 @@
"chr": "Cherokee",
"cgg": "Chiga",
"zh": "Chinese",
+ "cv": "Chuvash",
"ksh": "Colognian",
"sw-CD": "Congo Swahili",
"kw": "Cornish",
@@ -59,7 +61,7 @@
"nl-BE": "Flemish",
"fr": "French",
"fur": "Friulian",
- "ff": "Fulah",
+ "ff": "Fula",
"gl": "Galician",
"lg": "Ganda",
"ka": "Georgian",
@@ -67,10 +69,12 @@
"el": "Greek",
"gu": "Gujarati",
"guz": "Gusii",
+ "bgc": "Haryanvi",
"ha": "Hausa",
"haw": "Hawaiian",
"he": "Hebrew",
"hi": "Hindi",
+ "hi-Latn": "Hindi (Latin)",
"hu": "Hungarian",
"is": "Icelandic",
"ig": "Igbo",
@@ -132,6 +136,7 @@
"mer": "Meru",
"mgo": "Metaʼ",
"es-MX": "Mexican Spanish",
+ "mdf": "Moksha",
"ro-MD": "Moldavian",
"mn": "Mongolian",
"mfe": "Morisyen",
@@ -143,6 +148,7 @@
"yrl": "Nheengatu",
"pcm": "Nigerian Pidgin",
"nd": "North Ndebele",
+ "frr": "Northern Frisian",
"lrc": "Northern Luri",
"se": "Northern Sami",
"no": "Norwegian",
@@ -150,15 +156,19 @@
"nn": "Norwegian Nynorsk",
"nus": "Nuer",
"nyn": "Nyankole",
+ "ann": "Obolo",
+ "oc": "Occitan",
"or": "Odia",
"om": "Oromo",
"os": "Ossetic",
"ps": "Pashto",
"fa": "Persian",
+ "pis": "Pijin",
"pl": "Polish",
"pt": "Portuguese",
"pa": "Punjabi",
"qu": "Quechua",
+ "raj": "Rajasthani",
"ro": "Romanian",
"rm": "Romansh",
"rof": "Rombo",
@@ -180,6 +190,7 @@
"zh-Hans": "Simplified Chinese",
"sd": "Sindhi",
"si": "Sinhala",
+ "sms": "Skolt Sami",
"sk": "Slovak",
"sl": "Slovenian",
"xog": "Soga",
@@ -203,6 +214,7 @@
"th": "Thai",
"bo": "Tibetan",
"ti": "Tigrinya",
+ "tok": "Toki Pona",
"to": "Tongan",
"zh-Hant": "Traditional Chinese",
"tr": "Turkish",
diff --git a/vendor/commerceguys/intl/resources/language/en-AU.json b/vendor/commerceguys/intl/resources/language/en-AU.json
index 5c63aa1fe..def950aca 100644
--- a/vendor/commerceguys/intl/resources/language/en-AU.json
+++ b/vendor/commerceguys/intl/resources/language/en-AU.json
@@ -20,6 +20,7 @@
"bem": "Bemba",
"bez": "Bena",
"bn": "Bengali",
+ "bho": "Bhojpuri",
"brx": "Bodo",
"bs": "Bosnian",
"br": "Breton",
@@ -37,6 +38,7 @@
"chr": "Cherokee",
"cgg": "Chiga",
"zh": "Chinese",
+ "cv": "Chuvash",
"ksh": "Colognian",
"sw-CD": "Congo Swahili",
"kw": "Cornish",
@@ -59,7 +61,7 @@
"nl-BE": "Flemish",
"fr": "French",
"fur": "Friulian",
- "ff": "Fulah",
+ "ff": "Fula",
"gl": "Galician",
"lg": "Ganda",
"ka": "Georgian",
@@ -67,10 +69,12 @@
"el": "Greek",
"gu": "Gujarati",
"guz": "Gusii",
+ "bgc": "Haryanvi",
"ha": "Hausa",
"haw": "Hawaiian",
"he": "Hebrew",
"hi": "Hindi",
+ "hi-Latn": "Hindi (Latin)",
"hu": "Hungarian",
"is": "Icelandic",
"ig": "Igbo",
@@ -132,6 +136,7 @@
"mer": "Meru",
"mgo": "Metaʼ",
"es-MX": "Mexican Spanish",
+ "mdf": "Moksha",
"ro-MD": "Moldovan",
"mn": "Mongolian",
"mfe": "Morisyen",
@@ -143,6 +148,7 @@
"yrl": "Nheengatu",
"pcm": "Nigerian Pidgin",
"nd": "North Ndebele",
+ "frr": "Northern Frisian",
"lrc": "Northern Luri",
"se": "Northern Sami",
"no": "Norwegian",
@@ -150,15 +156,19 @@
"nn": "Norwegian Nynorsk",
"nus": "Nuer",
"nyn": "Nyankole",
+ "ann": "Obolo",
+ "oc": "Occitan",
"or": "Odia",
"om": "Oromo",
"os": "Ossetic",
"ps": "Pashto",
"fa": "Persian",
+ "pis": "Pijin",
"pl": "Polish",
"pt": "Portuguese",
"pa": "Punjabi",
"qu": "Quechua",
+ "raj": "Rajasthani",
"ro": "Romanian",
"rm": "Romansh",
"rof": "Rombo",
@@ -180,6 +190,7 @@
"zh-Hans": "Simplified Chinese",
"sd": "Sindhi",
"si": "Sinhala",
+ "sms": "Skolt Sami",
"sk": "Slovak",
"sl": "Slovenian",
"xog": "Soga",
@@ -203,6 +214,7 @@
"th": "Thai",
"bo": "Tibetan",
"ti": "Tigrinya",
+ "tok": "Toki Pona",
"to": "Tongan",
"zh-Hant": "Traditional Chinese",
"tr": "Turkish",
diff --git a/vendor/commerceguys/intl/resources/language/en-CA.json b/vendor/commerceguys/intl/resources/language/en-CA.json
index 1c39141a6..bb3ada1ca 100644
--- a/vendor/commerceguys/intl/resources/language/en-CA.json
+++ b/vendor/commerceguys/intl/resources/language/en-CA.json
@@ -20,6 +20,7 @@
"bem": "Bemba",
"bez": "Bena",
"bn": "Bengali",
+ "bho": "Bhojpuri",
"brx": "Bodo",
"bs": "Bosnian",
"br": "Breton",
@@ -37,6 +38,7 @@
"chr": "Cherokee",
"cgg": "Chiga",
"zh": "Chinese",
+ "cv": "Chuvash",
"ksh": "Colognian",
"sw-CD": "Congo Swahili",
"kw": "Cornish",
@@ -59,7 +61,7 @@
"nl-BE": "Flemish",
"fr": "French",
"fur": "Friulian",
- "ff": "Fulah",
+ "ff": "Fula",
"gl": "Galician",
"lg": "Ganda",
"ka": "Georgian",
@@ -67,10 +69,12 @@
"el": "Greek",
"gu": "Gujarati",
"guz": "Gusii",
+ "bgc": "Haryanvi",
"ha": "Hausa",
"haw": "Hawaiian",
"he": "Hebrew",
"hi": "Hindi",
+ "hi-Latn": "Hindi (Latin)",
"hu": "Hungarian",
"is": "Icelandic",
"ig": "Igbo",
@@ -128,11 +132,12 @@
"mi": "Māori",
"mr": "Marathi",
"mas": "Masai",
- "mfe": "Mauritian",
+ "mfe": "Mauritian Creole",
"mzn": "Mazanderani",
"mer": "Meru",
"mgo": "Metaʼ",
"es-MX": "Mexican Spanish",
+ "mdf": "Moksha",
"ro-MD": "Moldovan",
"mn": "Mongolian",
"mua": "Mundang",
@@ -143,6 +148,7 @@
"yrl": "Nheengatu",
"pcm": "Nigerian Pidgin",
"nd": "North Ndebele",
+ "frr": "Northern Frisian",
"lrc": "Northern Luri",
"se": "Northern Sami",
"no": "Norwegian",
@@ -150,15 +156,19 @@
"nn": "Norwegian Nynorsk",
"nus": "Nuer",
"nyn": "Nyankole",
+ "ann": "Obolo",
+ "oc": "Occitan",
"or": "Odia",
"om": "Oromo",
"os": "Ossetic",
"ps": "Pashto",
"fa": "Persian",
+ "pis": "Pijin",
"pl": "Polish",
"pt": "Portuguese",
"pa": "Punjabi",
"qu": "Quechua",
+ "raj": "Rajasthani",
"ro": "Romanian",
"rm": "Romansh",
"rof": "Rombo",
@@ -177,9 +187,10 @@
"ksb": "Shambala",
"sn": "Shona",
"ii": "Sichuan Yi",
- "zh-Hans": "Simplified Chinese",
+ "zh-Hans": "simplified Chinese",
"sd": "Sindhi",
"si": "Sinhala",
+ "sms": "Skolt Sami",
"sk": "Slovak",
"sl": "Slovenian",
"xog": "Soga",
@@ -203,8 +214,9 @@
"th": "Thai",
"bo": "Tibetan",
"ti": "Tigrinya",
+ "tok": "Toki Pona",
"to": "Tongan",
- "zh-Hant": "Traditional Chinese",
+ "zh-Hant": "traditional Chinese",
"tr": "Turkish",
"tk": "Turkmen",
"uk": "Ukrainian",
diff --git a/vendor/commerceguys/intl/resources/language/en-GB.json b/vendor/commerceguys/intl/resources/language/en-GB.json
new file mode 100644
index 000000000..b5d5ea727
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/language/en-GB.json
@@ -0,0 +1,243 @@
+{
+ "af": "Afrikaans",
+ "agq": "Aghem",
+ "ak": "Akan",
+ "sq": "Albanian",
+ "am": "Amharic",
+ "ar": "Arabic",
+ "hy": "Armenian",
+ "as": "Assamese",
+ "ast": "Asturian",
+ "asa": "Asu",
+ "en-AU": "Australian English",
+ "de-AT": "Austrian German",
+ "az": "Azerbaijani",
+ "ksf": "Bafia",
+ "bm": "Bambara",
+ "bn": "Bangla",
+ "bas": "Basaa",
+ "eu": "Basque",
+ "be": "Belarusian",
+ "bem": "Bemba",
+ "bez": "Bena",
+ "bho": "Bhojpuri",
+ "brx": "Bodo",
+ "bs": "Bosnian",
+ "br": "Breton",
+ "en-GB": "British English",
+ "bg": "Bulgarian",
+ "my": "Burmese",
+ "en-CA": "Canadian English",
+ "fr-CA": "Canadian French",
+ "yue": "Cantonese",
+ "ca": "Catalan",
+ "ceb": "Cebuano",
+ "tzm": "Central Atlas Tamazight",
+ "ckb": "Central Kurdish",
+ "ce": "Chechen",
+ "chr": "Cherokee",
+ "cgg": "Chiga",
+ "zh": "Chinese",
+ "cv": "Chuvash",
+ "ksh": "Colognian",
+ "sw-CD": "Congo Swahili",
+ "kw": "Cornish",
+ "hr": "Croatian",
+ "cs": "Czech",
+ "da": "Danish",
+ "doi": "Dogri",
+ "dua": "Duala",
+ "nl": "Dutch",
+ "dz": "Dzongkha",
+ "ebu": "Embu",
+ "en": "English",
+ "et": "Estonian",
+ "pt-PT": "European Portuguese",
+ "ee": "Ewe",
+ "ewo": "Ewondo",
+ "fo": "Faroese",
+ "fil": "Filipino",
+ "fi": "Finnish",
+ "nl-BE": "Flemish",
+ "fr": "French",
+ "fur": "Friulian",
+ "ff": "Fulah",
+ "gl": "Galician",
+ "lg": "Ganda",
+ "ka": "Georgian",
+ "de": "German",
+ "el": "Greek",
+ "gu": "Gujarati",
+ "guz": "Gusii",
+ "bgc": "Haryanvi",
+ "ha": "Hausa",
+ "haw": "Hawaiian",
+ "he": "Hebrew",
+ "hi": "Hindi",
+ "hi-Latn": "Hindi (Latin)",
+ "hu": "Hungarian",
+ "is": "Icelandic",
+ "ig": "Igbo",
+ "smn": "Inari Sami",
+ "id": "Indonesian",
+ "iu": "Inuktitut",
+ "ga": "Irish",
+ "it": "Italian",
+ "ja": "Japanese",
+ "jv": "Javanese",
+ "dyo": "Jola-Fonyi",
+ "kea": "Kabuverdianu",
+ "kab": "Kabyle",
+ "kgp": "Kaingang",
+ "kkj": "Kako",
+ "kl": "Kalaallisut",
+ "kln": "Kalenjin",
+ "kam": "Kamba",
+ "kn": "Kannada",
+ "ks": "Kashmiri",
+ "kk": "Kazakh",
+ "km": "Khmer",
+ "ki": "Kikuyu",
+ "rw": "Kinyarwanda",
+ "kok": "Konkani",
+ "ko": "Korean",
+ "khq": "Koyra Chiini",
+ "ses": "Koyraboro Senni",
+ "ku": "Kurdish",
+ "nmg": "Kwasio",
+ "ky": "Kyrgyz",
+ "lkt": "Lakota",
+ "lag": "Langi",
+ "lo": "Lao",
+ "es-419": "Latin American Spanish",
+ "lv": "Latvian",
+ "ln": "Lingala",
+ "lt": "Lithuanian",
+ "nds": "Low German",
+ "dsb": "Lower Sorbian",
+ "lu": "Luba-Katanga",
+ "luo": "Luo",
+ "lb": "Luxembourgish",
+ "luy": "Luyia",
+ "mk": "Macedonian",
+ "jmc": "Machame",
+ "mai": "Maithili",
+ "mgh": "Makhuwa-Meetto",
+ "kde": "Makonde",
+ "mg": "Malagasy",
+ "ms": "Malay",
+ "ml": "Malayalam",
+ "mt": "Maltese",
+ "mni": "Manipuri",
+ "mi": "Māori",
+ "mr": "Marathi",
+ "mas": "Masai",
+ "mzn": "Mazanderani",
+ "mer": "Meru",
+ "mgo": "Metaʼ",
+ "es-MX": "Mexican Spanish",
+ "mdf": "Moksha",
+ "ro-MD": "Moldavian",
+ "mn": "Mongolian",
+ "mfe": "Morisyen",
+ "mua": "Mundang",
+ "naq": "Nama",
+ "ne": "Nepali",
+ "nnh": "Ngiemboon",
+ "jgo": "Ngomba",
+ "yrl": "Nheengatu",
+ "pcm": "Nigerian Pidgin",
+ "nd": "North Ndebele",
+ "frr": "Northern Frisian",
+ "lrc": "Northern Luri",
+ "se": "Northern Sami",
+ "no": "Norwegian",
+ "nb": "Norwegian Bokmål",
+ "nn": "Norwegian Nynorsk",
+ "nus": "Nuer",
+ "nyn": "Nyankole",
+ "ann": "Obolo",
+ "oc": "Occitan",
+ "or": "Odia",
+ "om": "Oromo",
+ "os": "Ossetic",
+ "ps": "Pashto",
+ "fa": "Persian",
+ "pis": "Pijin",
+ "pl": "Polish",
+ "pt": "Portuguese",
+ "pa": "Punjabi",
+ "qu": "Quechua",
+ "raj": "Rajasthani",
+ "ro": "Romanian",
+ "rm": "Romansh",
+ "rof": "Rombo",
+ "rn": "Rundi",
+ "ru": "Russian",
+ "rwk": "Rwa",
+ "saq": "Samburu",
+ "sg": "Sango",
+ "sbp": "Sangu",
+ "sa": "Sanskrit",
+ "sat": "Santali",
+ "sc": "Sardinian",
+ "gd": "Scottish Gaelic",
+ "seh": "Sena",
+ "sr": "Serbian",
+ "ksb": "Shambala",
+ "sn": "Shona",
+ "ii": "Sichuan Yi",
+ "zh-Hans": "Simplified Chinese",
+ "sd": "Sindhi",
+ "si": "Sinhala",
+ "sms": "Skolt Sami",
+ "sk": "Slovak",
+ "sl": "Slovenian",
+ "xog": "Soga",
+ "so": "Somali",
+ "es": "Spanish",
+ "zgh": "Standard Moroccan Tamazight",
+ "su": "Sundanese",
+ "sw": "Swahili",
+ "sv": "Swedish",
+ "fr-CH": "Swiss French",
+ "gsw": "Swiss German",
+ "de-CH": "Swiss High German",
+ "shi": "Tachelhit",
+ "dav": "Taita",
+ "tg": "Tajik",
+ "ta": "Tamil",
+ "twq": "Tasawaq",
+ "tt": "Tatar",
+ "te": "Telugu",
+ "teo": "Teso",
+ "th": "Thai",
+ "bo": "Tibetan",
+ "ti": "Tigrinya",
+ "tok": "Toki Pona",
+ "to": "Tongan",
+ "zh-Hant": "Traditional Chinese",
+ "tr": "Turkish",
+ "tk": "Turkmen",
+ "uk": "Ukrainian",
+ "hsb": "Upper Sorbian",
+ "ur": "Urdu",
+ "ug": "Uyghur",
+ "uz": "Uzbek",
+ "vai": "Vai",
+ "vi": "Vietnamese",
+ "vun": "Vunjo",
+ "wa": "Walloon",
+ "wae": "Walser",
+ "cy": "Welsh",
+ "nds-NL": "West Low German",
+ "fy": "Western Frisian",
+ "wo": "Wolof",
+ "xh": "Xhosa",
+ "sah": "Yakut",
+ "yav": "Yangben",
+ "yi": "Yiddish",
+ "yo": "Yoruba",
+ "dje": "Zarma",
+ "zu": "Zulu"
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/en-IN.json b/vendor/commerceguys/intl/resources/language/en-IN.json
index 1cfd00f74..b36c5a5ef 100644
--- a/vendor/commerceguys/intl/resources/language/en-IN.json
+++ b/vendor/commerceguys/intl/resources/language/en-IN.json
@@ -20,6 +20,7 @@
"bem": "Bemba",
"bez": "Bena",
"bn": "Bengali",
+ "bho": "Bhojpuri",
"brx": "Bodo",
"bs": "Bosnian",
"br": "Breton",
@@ -37,6 +38,7 @@
"chr": "Cherokee",
"cgg": "Chiga",
"zh": "Chinese",
+ "cv": "Chuvash",
"ksh": "Colognian",
"sw-CD": "Congo Swahili",
"kw": "Cornish",
@@ -59,7 +61,7 @@
"nl-BE": "Flemish",
"fr": "French",
"fur": "Friulian",
- "ff": "Fulah",
+ "ff": "Fula",
"gl": "Galician",
"lg": "Ganda",
"ka": "Georgian",
@@ -67,10 +69,12 @@
"el": "Greek",
"gu": "Gujarati",
"guz": "Gusii",
+ "bgc": "Haryanvi",
"ha": "Hausa",
"haw": "Hawaiian",
"he": "Hebrew",
"hi": "Hindi",
+ "hi-Latn": "Hindi (Latin)",
"hu": "Hungarian",
"is": "Icelandic",
"ig": "Igbo",
@@ -132,6 +136,7 @@
"mer": "Meru",
"mgo": "Metaʼ",
"es-MX": "Mexican Spanish",
+ "mdf": "Moksha",
"ro-MD": "Moldavian",
"mn": "Mongolian",
"mfe": "Morisyen",
@@ -143,6 +148,7 @@
"yrl": "Nheengatu",
"pcm": "Nigerian Pidgin",
"nd": "North Ndebele",
+ "frr": "Northern Frisian",
"lrc": "Northern Luri",
"se": "Northern Sami",
"no": "Norwegian",
@@ -150,15 +156,19 @@
"nn": "Norwegian Nynorsk",
"nus": "Nuer",
"nyn": "Nyankole",
+ "ann": "Obolo",
+ "oc": "Occitan",
"or": "Odia",
"om": "Oromo",
"os": "Ossetic",
"ps": "Pashto",
"fa": "Persian",
+ "pis": "Pijin",
"pl": "Polish",
"pt": "Portuguese",
"pa": "Punjabi",
"qu": "Quechua",
+ "raj": "Rajasthani",
"ro": "Romanian",
"rm": "Romansh",
"rof": "Rombo",
@@ -180,6 +190,7 @@
"zh-Hans": "Simplified Chinese",
"sd": "Sindhi",
"si": "Sinhala",
+ "sms": "Skolt Sami",
"sk": "Slovak",
"sl": "Slovenian",
"xog": "Soga",
@@ -203,6 +214,7 @@
"th": "Thai",
"bo": "Tibetan",
"ti": "Tigrinya",
+ "tok": "Toki Pona",
"to": "Tongan",
"zh-Hant": "Traditional Chinese",
"tr": "Turkish",
diff --git a/vendor/commerceguys/intl/resources/language/en-MV.json b/vendor/commerceguys/intl/resources/language/en-MV.json
new file mode 100644
index 000000000..92e140120
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/language/en-MV.json
@@ -0,0 +1,243 @@
+{
+ "af": "Afrikaans",
+ "agq": "Aghem",
+ "ak": "Akan",
+ "sq": "Albanian",
+ "am": "Amharic",
+ "ar": "Arabic",
+ "hy": "Armenian",
+ "as": "Assamese",
+ "ast": "Asturian",
+ "asa": "Asu",
+ "en-AU": "Australian English",
+ "de-AT": "Austrian German",
+ "az": "Azerbaijani",
+ "ksf": "Bafia",
+ "bm": "Bambara",
+ "bn": "Bangla",
+ "bas": "Basaa",
+ "eu": "Basque",
+ "be": "Belarusian",
+ "bem": "Bemba",
+ "bez": "Bena",
+ "bho": "Bhojpuri",
+ "brx": "Bodo",
+ "bs": "Bosnian",
+ "br": "Breton",
+ "en-GB": "British English",
+ "bg": "Bulgarian",
+ "my": "Burmese",
+ "en-CA": "Canadian English",
+ "fr-CA": "Canadian French",
+ "yue": "Cantonese",
+ "ca": "Catalan",
+ "ceb": "Cebuano",
+ "tzm": "Central Atlas Tamazight",
+ "ckb": "Central Kurdish",
+ "ce": "Chechen",
+ "chr": "Cherokee",
+ "cgg": "Chiga",
+ "zh": "Chinese",
+ "cv": "Chuvash",
+ "ksh": "Colognian",
+ "sw-CD": "Congo Swahili",
+ "kw": "Cornish",
+ "hr": "Croatian",
+ "cs": "Czech",
+ "da": "Danish",
+ "doi": "Dogri",
+ "dua": "Duala",
+ "nl": "Dutch",
+ "dz": "Dzongkha",
+ "ebu": "Embu",
+ "en": "English",
+ "et": "Estonian",
+ "pt-PT": "European Portuguese",
+ "ee": "Ewe",
+ "ewo": "Ewondo",
+ "fo": "Faroese",
+ "fil": "Filipino",
+ "fi": "Finnish",
+ "nl-BE": "Flemish",
+ "fr": "French",
+ "fur": "Friulian",
+ "ff": "Fula",
+ "gl": "Galician",
+ "lg": "Ganda",
+ "ka": "Georgian",
+ "de": "German",
+ "el": "Greek",
+ "gu": "Gujarati",
+ "guz": "Gusii",
+ "bgc": "Haryanvi",
+ "ha": "Hausa",
+ "haw": "Hawaiian",
+ "he": "Hebrew",
+ "hi": "Hindi",
+ "hi-Latn": "Hindi (Latin)",
+ "hu": "Hungarian",
+ "is": "Icelandic",
+ "ig": "Igbo",
+ "smn": "Inari Sami",
+ "id": "Indonesian",
+ "iu": "Inuktitut",
+ "ga": "Irish",
+ "it": "Italian",
+ "ja": "Japanese",
+ "jv": "Javanese",
+ "dyo": "Jola-Fonyi",
+ "kea": "Kabuverdianu",
+ "kab": "Kabyle",
+ "kgp": "Kaingang",
+ "kkj": "Kako",
+ "kl": "Kalaallisut",
+ "kln": "Kalenjin",
+ "kam": "Kamba",
+ "kn": "Kannada",
+ "ks": "Kashmiri",
+ "kk": "Kazakh",
+ "km": "Khmer",
+ "ki": "Kikuyu",
+ "rw": "Kinyarwanda",
+ "kok": "Konkani",
+ "ko": "Korean",
+ "khq": "Koyra Chiini",
+ "ses": "Koyraboro Senni",
+ "ku": "Kurdish",
+ "nmg": "Kwasio",
+ "ky": "Kyrgyz",
+ "lkt": "Lakota",
+ "lag": "Langi",
+ "lo": "Lao",
+ "es-419": "Latin American Spanish",
+ "lv": "Latvian",
+ "ln": "Lingala",
+ "lt": "Lithuanian",
+ "nds": "Low German",
+ "dsb": "Lower Sorbian",
+ "lu": "Luba-Katanga",
+ "luo": "Luo",
+ "lb": "Luxembourgish",
+ "luy": "Luyia",
+ "mk": "Macedonian",
+ "jmc": "Machame",
+ "mai": "Maithili",
+ "mgh": "Makhuwa-Meetto",
+ "kde": "Makonde",
+ "mg": "Malagasy",
+ "ms": "Malay",
+ "ml": "Malayalam",
+ "mt": "Maltese",
+ "mni": "Manipuri",
+ "mi": "Māori",
+ "mr": "Marathi",
+ "mas": "Masai",
+ "mzn": "Mazanderani",
+ "mer": "Meru",
+ "mgo": "Metaʼ",
+ "es-MX": "Mexican Spanish",
+ "mdf": "Moksha",
+ "ro-MD": "Moldavian",
+ "mn": "Mongolian",
+ "mfe": "Morisyen",
+ "mua": "Mundang",
+ "naq": "Nama",
+ "ne": "Nepali",
+ "nnh": "Ngiemboon",
+ "jgo": "Ngomba",
+ "yrl": "Nheengatu",
+ "pcm": "Nigerian Pidgin",
+ "nd": "North Ndebele",
+ "frr": "Northern Frisian",
+ "lrc": "Northern Luri",
+ "se": "Northern Sami",
+ "no": "Norwegian",
+ "nb": "Norwegian Bokmål",
+ "nn": "Norwegian Nynorsk",
+ "nus": "Nuer",
+ "nyn": "Nyankole",
+ "ann": "Obolo",
+ "oc": "Occitan",
+ "or": "Odia",
+ "om": "Oromo",
+ "os": "Ossetic",
+ "ps": "Pashto",
+ "fa": "Persian",
+ "pis": "Pijin",
+ "pl": "Polish",
+ "pt": "Portuguese",
+ "pa": "Punjabi",
+ "qu": "Quechua",
+ "raj": "Rajasthani",
+ "ro": "Romanian",
+ "rm": "Romansh",
+ "rof": "Rombo",
+ "rn": "Rundi",
+ "ru": "Russian",
+ "rwk": "Rwa",
+ "saq": "Samburu",
+ "sg": "Sango",
+ "sbp": "Sangu",
+ "sa": "Sanskrit",
+ "sat": "Santali",
+ "sc": "Sardinian",
+ "gd": "Scottish Gaelic",
+ "seh": "Sena",
+ "sr": "Serbian",
+ "ksb": "Shambala",
+ "sn": "Shona",
+ "ii": "Sichuan Yi",
+ "zh-Hans": "Simplified Chinese",
+ "sd": "Sindhi",
+ "si": "Sinhala",
+ "sms": "Skolt Sami",
+ "sk": "Slovak",
+ "sl": "Slovenian",
+ "xog": "Soga",
+ "so": "Somali",
+ "es": "Spanish",
+ "zgh": "Standard Moroccan Tamazight",
+ "su": "Sundanese",
+ "sw": "Swahili",
+ "sv": "Swedish",
+ "fr-CH": "Swiss French",
+ "gsw": "Swiss German",
+ "de-CH": "Swiss High German",
+ "shi": "Tachelhit",
+ "dav": "Taita",
+ "tg": "Tajik",
+ "ta": "Tamil",
+ "twq": "Tasawaq",
+ "tt": "Tatar",
+ "te": "Telugu",
+ "teo": "Teso",
+ "th": "Thai",
+ "bo": "Tibetan",
+ "ti": "Tigrinya",
+ "tok": "Toki Pona",
+ "to": "Tongan",
+ "zh-Hant": "Traditional Chinese",
+ "tr": "Turkish",
+ "tk": "Turkmen",
+ "uk": "Ukrainian",
+ "hsb": "Upper Sorbian",
+ "ur": "Urdu",
+ "ug": "Uyghur",
+ "uz": "Uzbek",
+ "vai": "Vai",
+ "vi": "Vietnamese",
+ "vun": "Vunjo",
+ "wa": "Walloon",
+ "wae": "Walser",
+ "cy": "Welsh",
+ "nds-NL": "West Low German",
+ "fy": "Western Frisian",
+ "wo": "Wolof",
+ "xh": "Xhosa",
+ "sah": "Yakut",
+ "yav": "Yangben",
+ "yi": "Yiddish",
+ "yo": "Yoruba",
+ "dje": "Zarma",
+ "zu": "Zulu"
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/en.json b/vendor/commerceguys/intl/resources/language/en.json
index bd9fad408..4ca51488c 100644
--- a/vendor/commerceguys/intl/resources/language/en.json
+++ b/vendor/commerceguys/intl/resources/language/en.json
@@ -20,6 +20,7 @@
"be": "Belarusian",
"bem": "Bemba",
"bez": "Bena",
+ "bho": "Bhojpuri",
"brx": "Bodo",
"bs": "Bosnian",
"br": "Breton",
@@ -37,6 +38,7 @@
"chr": "Cherokee",
"cgg": "Chiga",
"zh": "Chinese",
+ "cv": "Chuvash",
"ksh": "Colognian",
"sw-CD": "Congo Swahili",
"kw": "Cornish",
@@ -59,7 +61,7 @@
"nl-BE": "Flemish",
"fr": "French",
"fur": "Friulian",
- "ff": "Fulah",
+ "ff": "Fula",
"gl": "Galician",
"lg": "Ganda",
"ka": "Georgian",
@@ -67,10 +69,12 @@
"el": "Greek",
"gu": "Gujarati",
"guz": "Gusii",
+ "bgc": "Haryanvi",
"ha": "Hausa",
"haw": "Hawaiian",
"he": "Hebrew",
"hi": "Hindi",
+ "hi-Latn": "Hindi (Latin)",
"hu": "Hungarian",
"is": "Icelandic",
"ig": "Igbo",
@@ -133,6 +137,7 @@
"mer": "Meru",
"mgo": "Metaʼ",
"es-MX": "Mexican Spanish",
+ "mdf": "Moksha",
"ro-MD": "Moldavian",
"mn": "Mongolian",
"mfe": "Morisyen",
@@ -144,6 +149,7 @@
"yrl": "Nheengatu",
"pcm": "Nigerian Pidgin",
"nd": "North Ndebele",
+ "frr": "Northern Frisian",
"lrc": "Northern Luri",
"se": "Northern Sami",
"no": "Norwegian",
@@ -151,22 +157,25 @@
"nn": "Norwegian Nynorsk",
"nus": "Nuer",
"nyn": "Nyankole",
+ "ann": "Obolo",
+ "oc": "Occitan",
"or": "Odia",
"om": "Oromo",
"os": "Ossetic",
"ps": "Pashto",
"fa": "Persian",
+ "pis": "Pijin",
"pl": "Polish",
"pt": "Portuguese",
"pa": "Punjabi",
"qu": "Quechua",
+ "raj": "Rajasthani",
"ro": "Romanian",
"rm": "Romansh",
"rof": "Rombo",
"rn": "Rundi",
"ru": "Russian",
"rwk": "Rwa",
- "sah": "Sakha",
"saq": "Samburu",
"sg": "Sango",
"sbp": "Sangu",
@@ -182,6 +191,7 @@
"zh-Hans": "Simplified Chinese",
"sd": "Sindhi",
"si": "Sinhala",
+ "sms": "Skolt Sami",
"sk": "Slovak",
"sl": "Slovenian",
"xog": "Soga",
@@ -205,6 +215,7 @@
"th": "Thai",
"bo": "Tibetan",
"ti": "Tigrinya",
+ "tok": "Toki Pona",
"to": "Tongan",
"zh-Hant": "Traditional Chinese",
"tr": "Turkish",
@@ -223,6 +234,7 @@
"fy": "Western Frisian",
"wo": "Wolof",
"xh": "Xhosa",
+ "sah": "Yakut",
"yav": "Yangben",
"yi": "Yiddish",
"yo": "Yoruba",
diff --git a/vendor/commerceguys/intl/resources/language/es-419.json b/vendor/commerceguys/intl/resources/language/es-419.json
index 937759e9d..954722cc6 100644
--- a/vendor/commerceguys/intl/resources/language/es-419.json
+++ b/vendor/commerceguys/intl/resources/language/es-419.json
@@ -24,6 +24,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalí",
+ "bho": "bhoyapurí",
"be": "bielorruso",
"my": "birmano",
"brx": "bodo",
@@ -43,6 +44,7 @@
"zh": "chino",
"zh-Hans": "chino simplificado",
"zh-Hant": "chino tradicional",
+ "cv": "chuvasio",
"si": "cingalés",
"ko": "coreano",
"kw": "córnico",
@@ -70,6 +72,7 @@
"fr-CA": "francés canadiense",
"fr-CH": "francés suizo",
"fy": "frisón occidental",
+ "frr": "frisón septentrional",
"fur": "friulano",
"ff": "fula",
"gd": "gaélico escocés",
@@ -81,10 +84,12 @@
"kl": "groenlandés",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiano",
"he": "hebreo",
"hi": "hindi",
+ "hi-Latn": "hindi (latín)",
"hu": "húngaro",
"ig": "igbo",
"id": "indonesio",
@@ -100,7 +105,7 @@
"jv": "javanés",
"km": "jemer",
"dyo": "jola-fonyi",
- "kgp": "Kaingang",
+ "kgp": "káingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -143,6 +148,7 @@
"mzn": "mazandaraní",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavo",
"mn": "mongol",
"mua": "mundang",
@@ -152,12 +158,14 @@
"ne": "nepalí",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"no": "noruego",
"nb": "noruego bokmal",
"nn": "noruego nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "yrl": "ñe’engatú",
+ "ann": "obolo",
+ "oc": "occitano",
"or": "oriya",
"om": "oromo",
"os": "osético",
@@ -165,10 +173,12 @@
"ps": "pastún",
"fa": "persa",
"pcm": "pidgin de Nigeria",
+ "pis": "pidgin salomonense",
"pl": "polaco",
"pt": "portugués",
"pt-PT": "portugués de Portugal",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "retorrománico",
"rof": "rombo",
"ro": "rumano",
@@ -178,6 +188,7 @@
"saq": "samburu",
"smn": "sami inari",
"se": "sami septentrional",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sánscrito",
@@ -207,6 +218,7 @@
"teo": "teso",
"bo": "tibetano",
"ti": "tigriña",
+ "tok": "toki pona",
"to": "tongano",
"tr": "turco",
"tk": "turcomano",
diff --git a/vendor/commerceguys/intl/resources/language/es-AR.json b/vendor/commerceguys/intl/resources/language/es-AR.json
index d3b295e6c..1b23a9c2a 100644
--- a/vendor/commerceguys/intl/resources/language/es-AR.json
+++ b/vendor/commerceguys/intl/resources/language/es-AR.json
@@ -24,6 +24,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalí",
+ "bho": "bhojpuri",
"be": "bielorruso",
"my": "birmano",
"brx": "bodo",
@@ -43,6 +44,7 @@
"zh": "chino",
"zh-Hans": "chino simplificado",
"zh-Hant": "chino tradicional",
+ "cv": "chuvasio",
"si": "cingalés",
"ko": "coreano",
"kw": "córnico",
@@ -71,6 +73,7 @@
"fr-CA": "francés canadiense",
"fr-CH": "francés suizo",
"fy": "frisón occidental",
+ "frr": "frisón septentrional",
"fur": "friulano",
"ff": "fula",
"gd": "gaélico escocés",
@@ -82,10 +85,12 @@
"kl": "groenlandés",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiano",
"he": "hebreo",
"hi": "hindi",
+ "hi-Latn": "hindi (latín)",
"hu": "húngaro",
"ig": "igbo",
"id": "indonesio",
@@ -101,7 +106,7 @@
"jv": "javanés",
"km": "jemer",
"dyo": "jola-fonyi",
- "kgp": "Kaingang",
+ "kgp": "káingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -144,6 +149,7 @@
"mzn": "mazandaraní",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavo",
"mn": "mongol",
"mua": "mundang",
@@ -153,23 +159,27 @@
"ne": "nepalí",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"no": "noruego",
"nb": "noruego bokmal",
"nn": "noruego nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "yrl": "ñe’engatú",
+ "ann": "obolo",
+ "oc": "occitano",
"or": "oriya",
"om": "oromo",
"os": "osético",
"ps": "pastún",
"fa": "persa",
"pcm": "pidgin de Nigeria",
+ "pis": "pidgin salomonense",
"pl": "polaco",
"pt": "portugués",
"pt-PT": "portugués de Portugal",
"pa": "punyabí",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "retorrománico",
"rof": "rombo",
"ro": "rumano",
@@ -179,6 +189,7 @@
"saq": "samburu",
"smn": "sami inari",
"se": "sami septentrional",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sánscrito",
@@ -208,6 +219,7 @@
"teo": "teso",
"bo": "tibetano",
"ti": "tigriña",
+ "tok": "toki pona",
"to": "tongano",
"tr": "turco",
"tk": "turcomano",
diff --git a/vendor/commerceguys/intl/resources/language/es-BO.json b/vendor/commerceguys/intl/resources/language/es-BO.json
index d3b295e6c..1b23a9c2a 100644
--- a/vendor/commerceguys/intl/resources/language/es-BO.json
+++ b/vendor/commerceguys/intl/resources/language/es-BO.json
@@ -24,6 +24,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalí",
+ "bho": "bhojpuri",
"be": "bielorruso",
"my": "birmano",
"brx": "bodo",
@@ -43,6 +44,7 @@
"zh": "chino",
"zh-Hans": "chino simplificado",
"zh-Hant": "chino tradicional",
+ "cv": "chuvasio",
"si": "cingalés",
"ko": "coreano",
"kw": "córnico",
@@ -71,6 +73,7 @@
"fr-CA": "francés canadiense",
"fr-CH": "francés suizo",
"fy": "frisón occidental",
+ "frr": "frisón septentrional",
"fur": "friulano",
"ff": "fula",
"gd": "gaélico escocés",
@@ -82,10 +85,12 @@
"kl": "groenlandés",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiano",
"he": "hebreo",
"hi": "hindi",
+ "hi-Latn": "hindi (latín)",
"hu": "húngaro",
"ig": "igbo",
"id": "indonesio",
@@ -101,7 +106,7 @@
"jv": "javanés",
"km": "jemer",
"dyo": "jola-fonyi",
- "kgp": "Kaingang",
+ "kgp": "káingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -144,6 +149,7 @@
"mzn": "mazandaraní",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavo",
"mn": "mongol",
"mua": "mundang",
@@ -153,23 +159,27 @@
"ne": "nepalí",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"no": "noruego",
"nb": "noruego bokmal",
"nn": "noruego nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "yrl": "ñe’engatú",
+ "ann": "obolo",
+ "oc": "occitano",
"or": "oriya",
"om": "oromo",
"os": "osético",
"ps": "pastún",
"fa": "persa",
"pcm": "pidgin de Nigeria",
+ "pis": "pidgin salomonense",
"pl": "polaco",
"pt": "portugués",
"pt-PT": "portugués de Portugal",
"pa": "punyabí",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "retorrománico",
"rof": "rombo",
"ro": "rumano",
@@ -179,6 +189,7 @@
"saq": "samburu",
"smn": "sami inari",
"se": "sami septentrional",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sánscrito",
@@ -208,6 +219,7 @@
"teo": "teso",
"bo": "tibetano",
"ti": "tigriña",
+ "tok": "toki pona",
"to": "tongano",
"tr": "turco",
"tk": "turcomano",
diff --git a/vendor/commerceguys/intl/resources/language/es-CL.json b/vendor/commerceguys/intl/resources/language/es-CL.json
index d3b295e6c..1b23a9c2a 100644
--- a/vendor/commerceguys/intl/resources/language/es-CL.json
+++ b/vendor/commerceguys/intl/resources/language/es-CL.json
@@ -24,6 +24,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalí",
+ "bho": "bhojpuri",
"be": "bielorruso",
"my": "birmano",
"brx": "bodo",
@@ -43,6 +44,7 @@
"zh": "chino",
"zh-Hans": "chino simplificado",
"zh-Hant": "chino tradicional",
+ "cv": "chuvasio",
"si": "cingalés",
"ko": "coreano",
"kw": "córnico",
@@ -71,6 +73,7 @@
"fr-CA": "francés canadiense",
"fr-CH": "francés suizo",
"fy": "frisón occidental",
+ "frr": "frisón septentrional",
"fur": "friulano",
"ff": "fula",
"gd": "gaélico escocés",
@@ -82,10 +85,12 @@
"kl": "groenlandés",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiano",
"he": "hebreo",
"hi": "hindi",
+ "hi-Latn": "hindi (latín)",
"hu": "húngaro",
"ig": "igbo",
"id": "indonesio",
@@ -101,7 +106,7 @@
"jv": "javanés",
"km": "jemer",
"dyo": "jola-fonyi",
- "kgp": "Kaingang",
+ "kgp": "káingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -144,6 +149,7 @@
"mzn": "mazandaraní",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavo",
"mn": "mongol",
"mua": "mundang",
@@ -153,23 +159,27 @@
"ne": "nepalí",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"no": "noruego",
"nb": "noruego bokmal",
"nn": "noruego nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "yrl": "ñe’engatú",
+ "ann": "obolo",
+ "oc": "occitano",
"or": "oriya",
"om": "oromo",
"os": "osético",
"ps": "pastún",
"fa": "persa",
"pcm": "pidgin de Nigeria",
+ "pis": "pidgin salomonense",
"pl": "polaco",
"pt": "portugués",
"pt-PT": "portugués de Portugal",
"pa": "punyabí",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "retorrománico",
"rof": "rombo",
"ro": "rumano",
@@ -179,6 +189,7 @@
"saq": "samburu",
"smn": "sami inari",
"se": "sami septentrional",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sánscrito",
@@ -208,6 +219,7 @@
"teo": "teso",
"bo": "tibetano",
"ti": "tigriña",
+ "tok": "toki pona",
"to": "tongano",
"tr": "turco",
"tk": "turcomano",
diff --git a/vendor/commerceguys/intl/resources/language/es-CO.json b/vendor/commerceguys/intl/resources/language/es-CO.json
index d3b295e6c..1b23a9c2a 100644
--- a/vendor/commerceguys/intl/resources/language/es-CO.json
+++ b/vendor/commerceguys/intl/resources/language/es-CO.json
@@ -24,6 +24,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalí",
+ "bho": "bhojpuri",
"be": "bielorruso",
"my": "birmano",
"brx": "bodo",
@@ -43,6 +44,7 @@
"zh": "chino",
"zh-Hans": "chino simplificado",
"zh-Hant": "chino tradicional",
+ "cv": "chuvasio",
"si": "cingalés",
"ko": "coreano",
"kw": "córnico",
@@ -71,6 +73,7 @@
"fr-CA": "francés canadiense",
"fr-CH": "francés suizo",
"fy": "frisón occidental",
+ "frr": "frisón septentrional",
"fur": "friulano",
"ff": "fula",
"gd": "gaélico escocés",
@@ -82,10 +85,12 @@
"kl": "groenlandés",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiano",
"he": "hebreo",
"hi": "hindi",
+ "hi-Latn": "hindi (latín)",
"hu": "húngaro",
"ig": "igbo",
"id": "indonesio",
@@ -101,7 +106,7 @@
"jv": "javanés",
"km": "jemer",
"dyo": "jola-fonyi",
- "kgp": "Kaingang",
+ "kgp": "káingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -144,6 +149,7 @@
"mzn": "mazandaraní",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavo",
"mn": "mongol",
"mua": "mundang",
@@ -153,23 +159,27 @@
"ne": "nepalí",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"no": "noruego",
"nb": "noruego bokmal",
"nn": "noruego nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "yrl": "ñe’engatú",
+ "ann": "obolo",
+ "oc": "occitano",
"or": "oriya",
"om": "oromo",
"os": "osético",
"ps": "pastún",
"fa": "persa",
"pcm": "pidgin de Nigeria",
+ "pis": "pidgin salomonense",
"pl": "polaco",
"pt": "portugués",
"pt-PT": "portugués de Portugal",
"pa": "punyabí",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "retorrománico",
"rof": "rombo",
"ro": "rumano",
@@ -179,6 +189,7 @@
"saq": "samburu",
"smn": "sami inari",
"se": "sami septentrional",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sánscrito",
@@ -208,6 +219,7 @@
"teo": "teso",
"bo": "tibetano",
"ti": "tigriña",
+ "tok": "toki pona",
"to": "tongano",
"tr": "turco",
"tk": "turcomano",
diff --git a/vendor/commerceguys/intl/resources/language/es-CR.json b/vendor/commerceguys/intl/resources/language/es-CR.json
index d3b295e6c..1b23a9c2a 100644
--- a/vendor/commerceguys/intl/resources/language/es-CR.json
+++ b/vendor/commerceguys/intl/resources/language/es-CR.json
@@ -24,6 +24,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalí",
+ "bho": "bhojpuri",
"be": "bielorruso",
"my": "birmano",
"brx": "bodo",
@@ -43,6 +44,7 @@
"zh": "chino",
"zh-Hans": "chino simplificado",
"zh-Hant": "chino tradicional",
+ "cv": "chuvasio",
"si": "cingalés",
"ko": "coreano",
"kw": "córnico",
@@ -71,6 +73,7 @@
"fr-CA": "francés canadiense",
"fr-CH": "francés suizo",
"fy": "frisón occidental",
+ "frr": "frisón septentrional",
"fur": "friulano",
"ff": "fula",
"gd": "gaélico escocés",
@@ -82,10 +85,12 @@
"kl": "groenlandés",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiano",
"he": "hebreo",
"hi": "hindi",
+ "hi-Latn": "hindi (latín)",
"hu": "húngaro",
"ig": "igbo",
"id": "indonesio",
@@ -101,7 +106,7 @@
"jv": "javanés",
"km": "jemer",
"dyo": "jola-fonyi",
- "kgp": "Kaingang",
+ "kgp": "káingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -144,6 +149,7 @@
"mzn": "mazandaraní",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavo",
"mn": "mongol",
"mua": "mundang",
@@ -153,23 +159,27 @@
"ne": "nepalí",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"no": "noruego",
"nb": "noruego bokmal",
"nn": "noruego nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "yrl": "ñe’engatú",
+ "ann": "obolo",
+ "oc": "occitano",
"or": "oriya",
"om": "oromo",
"os": "osético",
"ps": "pastún",
"fa": "persa",
"pcm": "pidgin de Nigeria",
+ "pis": "pidgin salomonense",
"pl": "polaco",
"pt": "portugués",
"pt-PT": "portugués de Portugal",
"pa": "punyabí",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "retorrománico",
"rof": "rombo",
"ro": "rumano",
@@ -179,6 +189,7 @@
"saq": "samburu",
"smn": "sami inari",
"se": "sami septentrional",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sánscrito",
@@ -208,6 +219,7 @@
"teo": "teso",
"bo": "tibetano",
"ti": "tigriña",
+ "tok": "toki pona",
"to": "tongano",
"tr": "turco",
"tk": "turcomano",
diff --git a/vendor/commerceguys/intl/resources/language/es-DO.json b/vendor/commerceguys/intl/resources/language/es-DO.json
index d3b295e6c..1b23a9c2a 100644
--- a/vendor/commerceguys/intl/resources/language/es-DO.json
+++ b/vendor/commerceguys/intl/resources/language/es-DO.json
@@ -24,6 +24,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalí",
+ "bho": "bhojpuri",
"be": "bielorruso",
"my": "birmano",
"brx": "bodo",
@@ -43,6 +44,7 @@
"zh": "chino",
"zh-Hans": "chino simplificado",
"zh-Hant": "chino tradicional",
+ "cv": "chuvasio",
"si": "cingalés",
"ko": "coreano",
"kw": "córnico",
@@ -71,6 +73,7 @@
"fr-CA": "francés canadiense",
"fr-CH": "francés suizo",
"fy": "frisón occidental",
+ "frr": "frisón septentrional",
"fur": "friulano",
"ff": "fula",
"gd": "gaélico escocés",
@@ -82,10 +85,12 @@
"kl": "groenlandés",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiano",
"he": "hebreo",
"hi": "hindi",
+ "hi-Latn": "hindi (latín)",
"hu": "húngaro",
"ig": "igbo",
"id": "indonesio",
@@ -101,7 +106,7 @@
"jv": "javanés",
"km": "jemer",
"dyo": "jola-fonyi",
- "kgp": "Kaingang",
+ "kgp": "káingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -144,6 +149,7 @@
"mzn": "mazandaraní",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavo",
"mn": "mongol",
"mua": "mundang",
@@ -153,23 +159,27 @@
"ne": "nepalí",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"no": "noruego",
"nb": "noruego bokmal",
"nn": "noruego nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "yrl": "ñe’engatú",
+ "ann": "obolo",
+ "oc": "occitano",
"or": "oriya",
"om": "oromo",
"os": "osético",
"ps": "pastún",
"fa": "persa",
"pcm": "pidgin de Nigeria",
+ "pis": "pidgin salomonense",
"pl": "polaco",
"pt": "portugués",
"pt-PT": "portugués de Portugal",
"pa": "punyabí",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "retorrománico",
"rof": "rombo",
"ro": "rumano",
@@ -179,6 +189,7 @@
"saq": "samburu",
"smn": "sami inari",
"se": "sami septentrional",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sánscrito",
@@ -208,6 +219,7 @@
"teo": "teso",
"bo": "tibetano",
"ti": "tigriña",
+ "tok": "toki pona",
"to": "tongano",
"tr": "turco",
"tk": "turcomano",
diff --git a/vendor/commerceguys/intl/resources/language/es-EC.json b/vendor/commerceguys/intl/resources/language/es-EC.json
index d3b295e6c..1b23a9c2a 100644
--- a/vendor/commerceguys/intl/resources/language/es-EC.json
+++ b/vendor/commerceguys/intl/resources/language/es-EC.json
@@ -24,6 +24,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalí",
+ "bho": "bhojpuri",
"be": "bielorruso",
"my": "birmano",
"brx": "bodo",
@@ -43,6 +44,7 @@
"zh": "chino",
"zh-Hans": "chino simplificado",
"zh-Hant": "chino tradicional",
+ "cv": "chuvasio",
"si": "cingalés",
"ko": "coreano",
"kw": "córnico",
@@ -71,6 +73,7 @@
"fr-CA": "francés canadiense",
"fr-CH": "francés suizo",
"fy": "frisón occidental",
+ "frr": "frisón septentrional",
"fur": "friulano",
"ff": "fula",
"gd": "gaélico escocés",
@@ -82,10 +85,12 @@
"kl": "groenlandés",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiano",
"he": "hebreo",
"hi": "hindi",
+ "hi-Latn": "hindi (latín)",
"hu": "húngaro",
"ig": "igbo",
"id": "indonesio",
@@ -101,7 +106,7 @@
"jv": "javanés",
"km": "jemer",
"dyo": "jola-fonyi",
- "kgp": "Kaingang",
+ "kgp": "káingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -144,6 +149,7 @@
"mzn": "mazandaraní",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavo",
"mn": "mongol",
"mua": "mundang",
@@ -153,23 +159,27 @@
"ne": "nepalí",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"no": "noruego",
"nb": "noruego bokmal",
"nn": "noruego nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "yrl": "ñe’engatú",
+ "ann": "obolo",
+ "oc": "occitano",
"or": "oriya",
"om": "oromo",
"os": "osético",
"ps": "pastún",
"fa": "persa",
"pcm": "pidgin de Nigeria",
+ "pis": "pidgin salomonense",
"pl": "polaco",
"pt": "portugués",
"pt-PT": "portugués de Portugal",
"pa": "punyabí",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "retorrománico",
"rof": "rombo",
"ro": "rumano",
@@ -179,6 +189,7 @@
"saq": "samburu",
"smn": "sami inari",
"se": "sami septentrional",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sánscrito",
@@ -208,6 +219,7 @@
"teo": "teso",
"bo": "tibetano",
"ti": "tigriña",
+ "tok": "toki pona",
"to": "tongano",
"tr": "turco",
"tk": "turcomano",
diff --git a/vendor/commerceguys/intl/resources/language/es-GT.json b/vendor/commerceguys/intl/resources/language/es-GT.json
index d3b295e6c..1b23a9c2a 100644
--- a/vendor/commerceguys/intl/resources/language/es-GT.json
+++ b/vendor/commerceguys/intl/resources/language/es-GT.json
@@ -24,6 +24,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalí",
+ "bho": "bhojpuri",
"be": "bielorruso",
"my": "birmano",
"brx": "bodo",
@@ -43,6 +44,7 @@
"zh": "chino",
"zh-Hans": "chino simplificado",
"zh-Hant": "chino tradicional",
+ "cv": "chuvasio",
"si": "cingalés",
"ko": "coreano",
"kw": "córnico",
@@ -71,6 +73,7 @@
"fr-CA": "francés canadiense",
"fr-CH": "francés suizo",
"fy": "frisón occidental",
+ "frr": "frisón septentrional",
"fur": "friulano",
"ff": "fula",
"gd": "gaélico escocés",
@@ -82,10 +85,12 @@
"kl": "groenlandés",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiano",
"he": "hebreo",
"hi": "hindi",
+ "hi-Latn": "hindi (latín)",
"hu": "húngaro",
"ig": "igbo",
"id": "indonesio",
@@ -101,7 +106,7 @@
"jv": "javanés",
"km": "jemer",
"dyo": "jola-fonyi",
- "kgp": "Kaingang",
+ "kgp": "káingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -144,6 +149,7 @@
"mzn": "mazandaraní",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavo",
"mn": "mongol",
"mua": "mundang",
@@ -153,23 +159,27 @@
"ne": "nepalí",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"no": "noruego",
"nb": "noruego bokmal",
"nn": "noruego nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "yrl": "ñe’engatú",
+ "ann": "obolo",
+ "oc": "occitano",
"or": "oriya",
"om": "oromo",
"os": "osético",
"ps": "pastún",
"fa": "persa",
"pcm": "pidgin de Nigeria",
+ "pis": "pidgin salomonense",
"pl": "polaco",
"pt": "portugués",
"pt-PT": "portugués de Portugal",
"pa": "punyabí",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "retorrománico",
"rof": "rombo",
"ro": "rumano",
@@ -179,6 +189,7 @@
"saq": "samburu",
"smn": "sami inari",
"se": "sami septentrional",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sánscrito",
@@ -208,6 +219,7 @@
"teo": "teso",
"bo": "tibetano",
"ti": "tigriña",
+ "tok": "toki pona",
"to": "tongano",
"tr": "turco",
"tk": "turcomano",
diff --git a/vendor/commerceguys/intl/resources/language/es-HN.json b/vendor/commerceguys/intl/resources/language/es-HN.json
index d3b295e6c..1b23a9c2a 100644
--- a/vendor/commerceguys/intl/resources/language/es-HN.json
+++ b/vendor/commerceguys/intl/resources/language/es-HN.json
@@ -24,6 +24,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalí",
+ "bho": "bhojpuri",
"be": "bielorruso",
"my": "birmano",
"brx": "bodo",
@@ -43,6 +44,7 @@
"zh": "chino",
"zh-Hans": "chino simplificado",
"zh-Hant": "chino tradicional",
+ "cv": "chuvasio",
"si": "cingalés",
"ko": "coreano",
"kw": "córnico",
@@ -71,6 +73,7 @@
"fr-CA": "francés canadiense",
"fr-CH": "francés suizo",
"fy": "frisón occidental",
+ "frr": "frisón septentrional",
"fur": "friulano",
"ff": "fula",
"gd": "gaélico escocés",
@@ -82,10 +85,12 @@
"kl": "groenlandés",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiano",
"he": "hebreo",
"hi": "hindi",
+ "hi-Latn": "hindi (latín)",
"hu": "húngaro",
"ig": "igbo",
"id": "indonesio",
@@ -101,7 +106,7 @@
"jv": "javanés",
"km": "jemer",
"dyo": "jola-fonyi",
- "kgp": "Kaingang",
+ "kgp": "káingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -144,6 +149,7 @@
"mzn": "mazandaraní",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavo",
"mn": "mongol",
"mua": "mundang",
@@ -153,23 +159,27 @@
"ne": "nepalí",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"no": "noruego",
"nb": "noruego bokmal",
"nn": "noruego nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "yrl": "ñe’engatú",
+ "ann": "obolo",
+ "oc": "occitano",
"or": "oriya",
"om": "oromo",
"os": "osético",
"ps": "pastún",
"fa": "persa",
"pcm": "pidgin de Nigeria",
+ "pis": "pidgin salomonense",
"pl": "polaco",
"pt": "portugués",
"pt-PT": "portugués de Portugal",
"pa": "punyabí",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "retorrománico",
"rof": "rombo",
"ro": "rumano",
@@ -179,6 +189,7 @@
"saq": "samburu",
"smn": "sami inari",
"se": "sami septentrional",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sánscrito",
@@ -208,6 +219,7 @@
"teo": "teso",
"bo": "tibetano",
"ti": "tigriña",
+ "tok": "toki pona",
"to": "tongano",
"tr": "turco",
"tk": "turcomano",
diff --git a/vendor/commerceguys/intl/resources/language/es-MX.json b/vendor/commerceguys/intl/resources/language/es-MX.json
index 8fad74b24..e40a3730c 100644
--- a/vendor/commerceguys/intl/resources/language/es-MX.json
+++ b/vendor/commerceguys/intl/resources/language/es-MX.json
@@ -24,6 +24,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalí",
+ "bho": "bhoshpuri",
"be": "bielorruso",
"my": "birmano",
"brx": "bodo",
@@ -43,6 +44,7 @@
"zh": "chino",
"zh-Hans": "chino simplificado",
"zh-Hant": "chino tradicional",
+ "cv": "chuvasio",
"si": "cingalés",
"ko": "coreano",
"kw": "córnico",
@@ -71,6 +73,7 @@
"fr-CA": "francés canadiense",
"fr-CH": "francés suizo",
"fy": "frisón occidental",
+ "frr": "frisón septentrional",
"fur": "friulano",
"ff": "fula",
"gd": "gaélico escocés",
@@ -82,10 +85,12 @@
"kl": "groenlandés",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiano",
"he": "hebreo",
"hi": "hindi",
+ "hi-Latn": "hindi (latín)",
"hu": "húngaro",
"ig": "igbo",
"id": "indonesio",
@@ -101,7 +106,7 @@
"jv": "javanés",
"km": "jemer",
"dyo": "jola-fonyi",
- "kgp": "Kaingang",
+ "kgp": "kaingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -144,6 +149,7 @@
"mzn": "mazandaraní",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavo",
"mn": "mongol",
"mua": "mundang",
@@ -153,23 +159,27 @@
"ne": "nepalí",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"no": "noruego",
"nb": "noruego bokmal",
"nn": "noruego nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "yrl": "ñe’engatú",
+ "ann": "obolo",
+ "oc": "occitano",
"or": "oriya",
"om": "oromo",
"os": "osético",
"ps": "pastún",
"fa": "persa",
"pcm": "pidgin de Nigeria",
+ "pis": "pidgin salomonense",
"pl": "polaco",
"pt": "portugués",
"pt-PT": "portugués de Portugal",
"pa": "punyabí",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "retorrománico",
"rof": "rombo",
"ro": "rumano",
@@ -179,6 +189,7 @@
"saq": "samburu",
"smn": "sami inari",
"se": "sami septentrional",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sánscrito",
@@ -208,6 +219,7 @@
"teo": "teso",
"bo": "tibetano",
"ti": "tigriña",
+ "tok": "toki pona",
"to": "tongano",
"tr": "turco",
"tk": "turcomano",
diff --git a/vendor/commerceguys/intl/resources/language/es-NI.json b/vendor/commerceguys/intl/resources/language/es-NI.json
index d3b295e6c..1b23a9c2a 100644
--- a/vendor/commerceguys/intl/resources/language/es-NI.json
+++ b/vendor/commerceguys/intl/resources/language/es-NI.json
@@ -24,6 +24,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalí",
+ "bho": "bhojpuri",
"be": "bielorruso",
"my": "birmano",
"brx": "bodo",
@@ -43,6 +44,7 @@
"zh": "chino",
"zh-Hans": "chino simplificado",
"zh-Hant": "chino tradicional",
+ "cv": "chuvasio",
"si": "cingalés",
"ko": "coreano",
"kw": "córnico",
@@ -71,6 +73,7 @@
"fr-CA": "francés canadiense",
"fr-CH": "francés suizo",
"fy": "frisón occidental",
+ "frr": "frisón septentrional",
"fur": "friulano",
"ff": "fula",
"gd": "gaélico escocés",
@@ -82,10 +85,12 @@
"kl": "groenlandés",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiano",
"he": "hebreo",
"hi": "hindi",
+ "hi-Latn": "hindi (latín)",
"hu": "húngaro",
"ig": "igbo",
"id": "indonesio",
@@ -101,7 +106,7 @@
"jv": "javanés",
"km": "jemer",
"dyo": "jola-fonyi",
- "kgp": "Kaingang",
+ "kgp": "káingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -144,6 +149,7 @@
"mzn": "mazandaraní",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavo",
"mn": "mongol",
"mua": "mundang",
@@ -153,23 +159,27 @@
"ne": "nepalí",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"no": "noruego",
"nb": "noruego bokmal",
"nn": "noruego nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "yrl": "ñe’engatú",
+ "ann": "obolo",
+ "oc": "occitano",
"or": "oriya",
"om": "oromo",
"os": "osético",
"ps": "pastún",
"fa": "persa",
"pcm": "pidgin de Nigeria",
+ "pis": "pidgin salomonense",
"pl": "polaco",
"pt": "portugués",
"pt-PT": "portugués de Portugal",
"pa": "punyabí",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "retorrománico",
"rof": "rombo",
"ro": "rumano",
@@ -179,6 +189,7 @@
"saq": "samburu",
"smn": "sami inari",
"se": "sami septentrional",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sánscrito",
@@ -208,6 +219,7 @@
"teo": "teso",
"bo": "tibetano",
"ti": "tigriña",
+ "tok": "toki pona",
"to": "tongano",
"tr": "turco",
"tk": "turcomano",
diff --git a/vendor/commerceguys/intl/resources/language/es-PA.json b/vendor/commerceguys/intl/resources/language/es-PA.json
index d3b295e6c..1b23a9c2a 100644
--- a/vendor/commerceguys/intl/resources/language/es-PA.json
+++ b/vendor/commerceguys/intl/resources/language/es-PA.json
@@ -24,6 +24,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalí",
+ "bho": "bhojpuri",
"be": "bielorruso",
"my": "birmano",
"brx": "bodo",
@@ -43,6 +44,7 @@
"zh": "chino",
"zh-Hans": "chino simplificado",
"zh-Hant": "chino tradicional",
+ "cv": "chuvasio",
"si": "cingalés",
"ko": "coreano",
"kw": "córnico",
@@ -71,6 +73,7 @@
"fr-CA": "francés canadiense",
"fr-CH": "francés suizo",
"fy": "frisón occidental",
+ "frr": "frisón septentrional",
"fur": "friulano",
"ff": "fula",
"gd": "gaélico escocés",
@@ -82,10 +85,12 @@
"kl": "groenlandés",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiano",
"he": "hebreo",
"hi": "hindi",
+ "hi-Latn": "hindi (latín)",
"hu": "húngaro",
"ig": "igbo",
"id": "indonesio",
@@ -101,7 +106,7 @@
"jv": "javanés",
"km": "jemer",
"dyo": "jola-fonyi",
- "kgp": "Kaingang",
+ "kgp": "káingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -144,6 +149,7 @@
"mzn": "mazandaraní",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavo",
"mn": "mongol",
"mua": "mundang",
@@ -153,23 +159,27 @@
"ne": "nepalí",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"no": "noruego",
"nb": "noruego bokmal",
"nn": "noruego nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "yrl": "ñe’engatú",
+ "ann": "obolo",
+ "oc": "occitano",
"or": "oriya",
"om": "oromo",
"os": "osético",
"ps": "pastún",
"fa": "persa",
"pcm": "pidgin de Nigeria",
+ "pis": "pidgin salomonense",
"pl": "polaco",
"pt": "portugués",
"pt-PT": "portugués de Portugal",
"pa": "punyabí",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "retorrománico",
"rof": "rombo",
"ro": "rumano",
@@ -179,6 +189,7 @@
"saq": "samburu",
"smn": "sami inari",
"se": "sami septentrional",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sánscrito",
@@ -208,6 +219,7 @@
"teo": "teso",
"bo": "tibetano",
"ti": "tigriña",
+ "tok": "toki pona",
"to": "tongano",
"tr": "turco",
"tk": "turcomano",
diff --git a/vendor/commerceguys/intl/resources/language/es-PE.json b/vendor/commerceguys/intl/resources/language/es-PE.json
index d3b295e6c..1b23a9c2a 100644
--- a/vendor/commerceguys/intl/resources/language/es-PE.json
+++ b/vendor/commerceguys/intl/resources/language/es-PE.json
@@ -24,6 +24,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalí",
+ "bho": "bhojpuri",
"be": "bielorruso",
"my": "birmano",
"brx": "bodo",
@@ -43,6 +44,7 @@
"zh": "chino",
"zh-Hans": "chino simplificado",
"zh-Hant": "chino tradicional",
+ "cv": "chuvasio",
"si": "cingalés",
"ko": "coreano",
"kw": "córnico",
@@ -71,6 +73,7 @@
"fr-CA": "francés canadiense",
"fr-CH": "francés suizo",
"fy": "frisón occidental",
+ "frr": "frisón septentrional",
"fur": "friulano",
"ff": "fula",
"gd": "gaélico escocés",
@@ -82,10 +85,12 @@
"kl": "groenlandés",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiano",
"he": "hebreo",
"hi": "hindi",
+ "hi-Latn": "hindi (latín)",
"hu": "húngaro",
"ig": "igbo",
"id": "indonesio",
@@ -101,7 +106,7 @@
"jv": "javanés",
"km": "jemer",
"dyo": "jola-fonyi",
- "kgp": "Kaingang",
+ "kgp": "káingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -144,6 +149,7 @@
"mzn": "mazandaraní",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavo",
"mn": "mongol",
"mua": "mundang",
@@ -153,23 +159,27 @@
"ne": "nepalí",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"no": "noruego",
"nb": "noruego bokmal",
"nn": "noruego nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "yrl": "ñe’engatú",
+ "ann": "obolo",
+ "oc": "occitano",
"or": "oriya",
"om": "oromo",
"os": "osético",
"ps": "pastún",
"fa": "persa",
"pcm": "pidgin de Nigeria",
+ "pis": "pidgin salomonense",
"pl": "polaco",
"pt": "portugués",
"pt-PT": "portugués de Portugal",
"pa": "punyabí",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "retorrománico",
"rof": "rombo",
"ro": "rumano",
@@ -179,6 +189,7 @@
"saq": "samburu",
"smn": "sami inari",
"se": "sami septentrional",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sánscrito",
@@ -208,6 +219,7 @@
"teo": "teso",
"bo": "tibetano",
"ti": "tigriña",
+ "tok": "toki pona",
"to": "tongano",
"tr": "turco",
"tk": "turcomano",
diff --git a/vendor/commerceguys/intl/resources/language/es-PR.json b/vendor/commerceguys/intl/resources/language/es-PR.json
index 7dd194728..b23c9e460 100644
--- a/vendor/commerceguys/intl/resources/language/es-PR.json
+++ b/vendor/commerceguys/intl/resources/language/es-PR.json
@@ -24,6 +24,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalí",
+ "bho": "bhojpuri",
"be": "bielorruso",
"my": "birmano",
"brx": "bodo",
@@ -43,6 +44,7 @@
"zh": "chino",
"zh-Hans": "chino simplificado",
"zh-Hant": "chino tradicional",
+ "cv": "chuvasio",
"si": "cingalés",
"ko": "coreano",
"kw": "córnico",
@@ -70,6 +72,7 @@
"fr-CA": "francés canadiense",
"fr-CH": "francés suizo",
"fy": "frisón occidental",
+ "frr": "frisón septentrional",
"fur": "friulano",
"ff": "fula",
"gd": "gaélico escocés",
@@ -81,10 +84,12 @@
"kl": "groenlandés",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiano",
"he": "hebreo",
"hi": "hindi",
+ "hi-Latn": "hindi (latín)",
"hu": "húngaro",
"ig": "igbo",
"id": "indonesio",
@@ -100,7 +105,7 @@
"jv": "javanés",
"km": "jemer",
"dyo": "jola-fonyi",
- "kgp": "Kaingang",
+ "kgp": "káingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -143,6 +148,7 @@
"mzn": "mazandaraní",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavo",
"mn": "mongol",
"mua": "mundang",
@@ -152,12 +158,14 @@
"ne": "nepalí",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"no": "noruego",
"nb": "noruego bokmal",
"nn": "noruego nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "yrl": "ñe’engatú",
+ "ann": "obolo",
+ "oc": "occitano",
"or": "oriya",
"om": "oromo",
"os": "osético",
@@ -165,10 +173,12 @@
"ps": "pastún",
"fa": "persa",
"pcm": "pidgin de Nigeria",
+ "pis": "pidgin salomonense",
"pl": "polaco",
"pt": "portugués",
"pt-PT": "portugués de Portugal",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "retorrománico",
"rof": "rombo",
"ro": "rumano",
@@ -178,6 +188,7 @@
"saq": "samburu",
"smn": "sami inari",
"se": "sami septentrional",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sánscrito",
@@ -207,6 +218,7 @@
"teo": "teso",
"bo": "tibetano",
"ti": "tigriña",
+ "tok": "toki pona",
"to": "tongano",
"tr": "turco",
"tk": "turcomano",
diff --git a/vendor/commerceguys/intl/resources/language/es-PY.json b/vendor/commerceguys/intl/resources/language/es-PY.json
index d3b295e6c..1b23a9c2a 100644
--- a/vendor/commerceguys/intl/resources/language/es-PY.json
+++ b/vendor/commerceguys/intl/resources/language/es-PY.json
@@ -24,6 +24,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalí",
+ "bho": "bhojpuri",
"be": "bielorruso",
"my": "birmano",
"brx": "bodo",
@@ -43,6 +44,7 @@
"zh": "chino",
"zh-Hans": "chino simplificado",
"zh-Hant": "chino tradicional",
+ "cv": "chuvasio",
"si": "cingalés",
"ko": "coreano",
"kw": "córnico",
@@ -71,6 +73,7 @@
"fr-CA": "francés canadiense",
"fr-CH": "francés suizo",
"fy": "frisón occidental",
+ "frr": "frisón septentrional",
"fur": "friulano",
"ff": "fula",
"gd": "gaélico escocés",
@@ -82,10 +85,12 @@
"kl": "groenlandés",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiano",
"he": "hebreo",
"hi": "hindi",
+ "hi-Latn": "hindi (latín)",
"hu": "húngaro",
"ig": "igbo",
"id": "indonesio",
@@ -101,7 +106,7 @@
"jv": "javanés",
"km": "jemer",
"dyo": "jola-fonyi",
- "kgp": "Kaingang",
+ "kgp": "káingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -144,6 +149,7 @@
"mzn": "mazandaraní",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavo",
"mn": "mongol",
"mua": "mundang",
@@ -153,23 +159,27 @@
"ne": "nepalí",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"no": "noruego",
"nb": "noruego bokmal",
"nn": "noruego nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "yrl": "ñe’engatú",
+ "ann": "obolo",
+ "oc": "occitano",
"or": "oriya",
"om": "oromo",
"os": "osético",
"ps": "pastún",
"fa": "persa",
"pcm": "pidgin de Nigeria",
+ "pis": "pidgin salomonense",
"pl": "polaco",
"pt": "portugués",
"pt-PT": "portugués de Portugal",
"pa": "punyabí",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "retorrománico",
"rof": "rombo",
"ro": "rumano",
@@ -179,6 +189,7 @@
"saq": "samburu",
"smn": "sami inari",
"se": "sami septentrional",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sánscrito",
@@ -208,6 +219,7 @@
"teo": "teso",
"bo": "tibetano",
"ti": "tigriña",
+ "tok": "toki pona",
"to": "tongano",
"tr": "turco",
"tk": "turcomano",
diff --git a/vendor/commerceguys/intl/resources/language/es-SV.json b/vendor/commerceguys/intl/resources/language/es-SV.json
index 7dd194728..b23c9e460 100644
--- a/vendor/commerceguys/intl/resources/language/es-SV.json
+++ b/vendor/commerceguys/intl/resources/language/es-SV.json
@@ -24,6 +24,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalí",
+ "bho": "bhojpuri",
"be": "bielorruso",
"my": "birmano",
"brx": "bodo",
@@ -43,6 +44,7 @@
"zh": "chino",
"zh-Hans": "chino simplificado",
"zh-Hant": "chino tradicional",
+ "cv": "chuvasio",
"si": "cingalés",
"ko": "coreano",
"kw": "córnico",
@@ -70,6 +72,7 @@
"fr-CA": "francés canadiense",
"fr-CH": "francés suizo",
"fy": "frisón occidental",
+ "frr": "frisón septentrional",
"fur": "friulano",
"ff": "fula",
"gd": "gaélico escocés",
@@ -81,10 +84,12 @@
"kl": "groenlandés",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiano",
"he": "hebreo",
"hi": "hindi",
+ "hi-Latn": "hindi (latín)",
"hu": "húngaro",
"ig": "igbo",
"id": "indonesio",
@@ -100,7 +105,7 @@
"jv": "javanés",
"km": "jemer",
"dyo": "jola-fonyi",
- "kgp": "Kaingang",
+ "kgp": "káingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -143,6 +148,7 @@
"mzn": "mazandaraní",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavo",
"mn": "mongol",
"mua": "mundang",
@@ -152,12 +158,14 @@
"ne": "nepalí",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"no": "noruego",
"nb": "noruego bokmal",
"nn": "noruego nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "yrl": "ñe’engatú",
+ "ann": "obolo",
+ "oc": "occitano",
"or": "oriya",
"om": "oromo",
"os": "osético",
@@ -165,10 +173,12 @@
"ps": "pastún",
"fa": "persa",
"pcm": "pidgin de Nigeria",
+ "pis": "pidgin salomonense",
"pl": "polaco",
"pt": "portugués",
"pt-PT": "portugués de Portugal",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "retorrománico",
"rof": "rombo",
"ro": "rumano",
@@ -178,6 +188,7 @@
"saq": "samburu",
"smn": "sami inari",
"se": "sami septentrional",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sánscrito",
@@ -207,6 +218,7 @@
"teo": "teso",
"bo": "tibetano",
"ti": "tigriña",
+ "tok": "toki pona",
"to": "tongano",
"tr": "turco",
"tk": "turcomano",
diff --git a/vendor/commerceguys/intl/resources/language/es-US.json b/vendor/commerceguys/intl/resources/language/es-US.json
index e269f3083..e1836be7f 100644
--- a/vendor/commerceguys/intl/resources/language/es-US.json
+++ b/vendor/commerceguys/intl/resources/language/es-US.json
@@ -24,6 +24,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalí",
+ "bho": "bhojpuri",
"be": "bielorruso",
"my": "birmano",
"brx": "bodo",
@@ -43,6 +44,7 @@
"zh": "chino",
"zh-Hans": "chino simplificado",
"zh-Hant": "chino tradicional",
+ "cv": "chuvasio",
"si": "cingalés",
"ko": "coreano",
"kw": "córnico",
@@ -71,6 +73,7 @@
"fr-CA": "francés canadiense",
"fr-CH": "francés suizo",
"fy": "frisón occidental",
+ "frr": "frisón septentrional",
"fur": "friulano",
"ff": "fula",
"gd": "gaélico escocés",
@@ -82,10 +85,12 @@
"kl": "groenlandés",
"gu": "gurayatí",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiano",
"he": "hebreo",
"hi": "hindi",
+ "hi-Latn": "hindi (latín)",
"hu": "húngaro",
"ig": "igbo",
"id": "indonesio",
@@ -101,7 +106,7 @@
"jv": "javanés",
"km": "jemer",
"dyo": "jola-fonyi",
- "kgp": "Kaingang",
+ "kgp": "káingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -144,6 +149,7 @@
"mzn": "mazandaraní",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavo",
"mn": "mongol",
"mua": "mundang",
@@ -153,12 +159,14 @@
"ne": "nepalí",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"no": "noruego",
"nb": "noruego bokmal",
"nn": "noruego nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "yrl": "ñe’engatú",
+ "ann": "obolo",
+ "oc": "occitano",
"or": "oriya",
"om": "oromo",
"os": "osético",
@@ -166,10 +174,12 @@
"ps": "pastún",
"fa": "persa",
"pcm": "pidgin de Nigeria",
+ "pis": "pijín",
"pl": "polaco",
"pt": "portugués",
"pt-PT": "portugués de Portugal",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "romanche",
"rof": "rombo",
"ro": "rumano",
@@ -179,6 +189,7 @@
"saq": "samburu",
"smn": "sami de Inari",
"se": "sami del norte",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sánscrito",
@@ -197,7 +208,7 @@
"sw-CD": "swahili del Congo",
"th": "tailandés",
"dav": "taita",
- "tzm": "tamazight del Marruecos Central",
+ "tzm": "tamazight del Atlas Central",
"zgh": "tamazight estándar marroquí",
"ta": "tamil",
"tt": "tártaro",
@@ -208,6 +219,7 @@
"teo": "teso",
"bo": "tibetano",
"ti": "tigriña",
+ "tok": "toki pona",
"to": "tongano",
"tr": "turco",
"tk": "turcomano",
diff --git a/vendor/commerceguys/intl/resources/language/es-VE.json b/vendor/commerceguys/intl/resources/language/es-VE.json
index d3b295e6c..1b23a9c2a 100644
--- a/vendor/commerceguys/intl/resources/language/es-VE.json
+++ b/vendor/commerceguys/intl/resources/language/es-VE.json
@@ -24,6 +24,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalí",
+ "bho": "bhojpuri",
"be": "bielorruso",
"my": "birmano",
"brx": "bodo",
@@ -43,6 +44,7 @@
"zh": "chino",
"zh-Hans": "chino simplificado",
"zh-Hant": "chino tradicional",
+ "cv": "chuvasio",
"si": "cingalés",
"ko": "coreano",
"kw": "córnico",
@@ -71,6 +73,7 @@
"fr-CA": "francés canadiense",
"fr-CH": "francés suizo",
"fy": "frisón occidental",
+ "frr": "frisón septentrional",
"fur": "friulano",
"ff": "fula",
"gd": "gaélico escocés",
@@ -82,10 +85,12 @@
"kl": "groenlandés",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiano",
"he": "hebreo",
"hi": "hindi",
+ "hi-Latn": "hindi (latín)",
"hu": "húngaro",
"ig": "igbo",
"id": "indonesio",
@@ -101,7 +106,7 @@
"jv": "javanés",
"km": "jemer",
"dyo": "jola-fonyi",
- "kgp": "Kaingang",
+ "kgp": "káingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -144,6 +149,7 @@
"mzn": "mazandaraní",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavo",
"mn": "mongol",
"mua": "mundang",
@@ -153,23 +159,27 @@
"ne": "nepalí",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"no": "noruego",
"nb": "noruego bokmal",
"nn": "noruego nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "yrl": "ñe’engatú",
+ "ann": "obolo",
+ "oc": "occitano",
"or": "oriya",
"om": "oromo",
"os": "osético",
"ps": "pastún",
"fa": "persa",
"pcm": "pidgin de Nigeria",
+ "pis": "pidgin salomonense",
"pl": "polaco",
"pt": "portugués",
"pt-PT": "portugués de Portugal",
"pa": "punyabí",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "retorrománico",
"rof": "rombo",
"ro": "rumano",
@@ -179,6 +189,7 @@
"saq": "samburu",
"smn": "sami inari",
"se": "sami septentrional",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sánscrito",
@@ -208,6 +219,7 @@
"teo": "teso",
"bo": "tibetano",
"ti": "tigriña",
+ "tok": "toki pona",
"to": "tongano",
"tr": "turco",
"tk": "turcomano",
diff --git a/vendor/commerceguys/intl/resources/language/es.json b/vendor/commerceguys/intl/resources/language/es.json
index 34841c1b6..995e3e3b0 100644
--- a/vendor/commerceguys/intl/resources/language/es.json
+++ b/vendor/commerceguys/intl/resources/language/es.json
@@ -24,6 +24,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalí",
+ "bho": "bhoyapurí",
"be": "bielorruso",
"my": "birmano",
"brx": "bodo",
@@ -43,6 +44,7 @@
"zh": "chino",
"zh-Hans": "chino simplificado",
"zh-Hant": "chino tradicional",
+ "cv": "chuvasio",
"si": "cingalés",
"ko": "coreano",
"kw": "córnico",
@@ -71,6 +73,7 @@
"fr-CA": "francés canadiense",
"fr-CH": "francés suizo",
"fy": "frisón occidental",
+ "frr": "frisón septentrional",
"fur": "friulano",
"ff": "fula",
"gd": "gaélico escocés",
@@ -82,10 +85,12 @@
"kl": "groenlandés",
"guz": "gusii",
"gu": "guyaratí",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiano",
"he": "hebreo",
"hi": "hindi",
+ "hi-Latn": "hindi (latino)",
"hu": "húngaro",
"ig": "igbo",
"id": "indonesio",
@@ -101,7 +106,7 @@
"jv": "javanés",
"km": "jemer",
"dyo": "jola-fonyi",
- "kgp": "Kaingang",
+ "kgp": "káingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -137,13 +142,14 @@
"ms": "malayo",
"mg": "malgache",
"mt": "maltés",
- "mni": "manipuri",
+ "mni": "manipurí",
"mi": "maorí",
"mr": "maratí",
"mas": "masái",
"mzn": "mazandaraní",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavo",
"mn": "mongol",
"mua": "mundang",
@@ -153,23 +159,27 @@
"ne": "nepalí",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"no": "noruego",
"nb": "noruego bokmal",
"nn": "noruego nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "yrl": "ñe’engatú",
+ "ann": "obolo",
+ "oc": "occitano",
"or": "oriya",
"om": "oromo",
"os": "osético",
"ps": "pastún",
"fa": "persa",
"pcm": "pidgin de Nigeria",
+ "pis": "pidgin salomonense",
"pl": "polaco",
"pt": "portugués",
"pt-PT": "portugués de Portugal",
"pa": "punyabí",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "romanche",
"rof": "rombo",
"ro": "rumano",
@@ -179,6 +189,7 @@
"saq": "samburu",
"smn": "sami inari",
"se": "sami septentrional",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sánscrito",
@@ -188,7 +199,7 @@
"sr": "serbio",
"ksb": "shambala",
"sn": "shona",
- "sd": "sindhi",
+ "sd": "sindi",
"xog": "soga",
"so": "somalí",
"sw": "suajili",
@@ -208,6 +219,7 @@
"teo": "teso",
"bo": "tibetano",
"ti": "tigriña",
+ "tok": "toki pona",
"to": "tongano",
"tr": "turco",
"tk": "turcomano",
diff --git a/vendor/commerceguys/intl/resources/language/et.json b/vendor/commerceguys/intl/resources/language/et.json
index 6f66f2041..5c8e878f1 100644
--- a/vendor/commerceguys/intl/resources/language/et.json
+++ b/vendor/commerceguys/intl/resources/language/et.json
@@ -21,6 +21,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengali",
+ "bho": "bhodžpuri",
"my": "birma",
"brx": "bodo",
"bs": "bosnia",
@@ -49,11 +50,13 @@
"kl": "grööni",
"gu": "gudžarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "havai",
"he": "heebrea",
"zh": "hiina",
"hi": "hindi",
+ "hi-Latn": "hindi (ladina)",
"es": "hispaania",
"nl": "hollandi",
"nds-NL": "Hollandi alamsaksa",
@@ -89,6 +92,7 @@
"km": "khmeeri",
"ki": "kikuju",
"ky": "kirgiisi",
+ "sms": "koltasaami",
"sw-CD": "Kongo suahiili",
"kok": "konkani",
"xh": "koosa",
@@ -131,6 +135,7 @@
"es-MX": "Mehhiko hispaania",
"mer": "meru",
"mgo": "meta",
+ "mdf": "mokša",
"ro-MD": "moldova",
"mn": "mongoli",
"mua": "mundangi",
@@ -145,18 +150,23 @@
"nb": "norra bokmål",
"nus": "nueri",
"ii": "nuosu",
+ "ann": "obolo",
+ "oc": "oksitaani",
"or": "oria",
"om": "oromo",
"os": "osseedi",
"pa": "pandžabi",
+ "pis": "pijini",
"pl": "poola",
"pt": "portugali",
"fr": "prantsuse",
"ps": "puštu",
+ "frr": "põhjafriisi",
"lrc": "põhjaluri",
"nd": "põhjandebele",
"se": "põhjasaami",
"fa": "pärsia",
+ "raj": "radžastani",
"rm": "romanši",
"rof": "rombo",
"sv": "rootsi",
@@ -204,12 +214,14 @@
"teo": "teso",
"ti": "tigrinja",
"bo": "tiibeti",
+ "tok": "toki pona",
"to": "tonga",
"zh-Hant": "traditsiooniline hiina",
"cs": "tšehhi",
"chr": "tšerokii",
"ce": "tšetšeeni",
"cgg": "tšiga",
+ "cv": "tšuvaši",
"tr": "türgi",
"tk": "türkmeeni",
"ug": "uiguuri",
diff --git a/vendor/commerceguys/intl/resources/language/eu.json b/vendor/commerceguys/intl/resources/language/eu.json
index ff4c449fd..2efba9f40 100644
--- a/vendor/commerceguys/intl/resources/language/eu.json
+++ b/vendor/commerceguys/intl/resources/language/eu.json
@@ -1,36 +1,36 @@
{
- "af": "afrikaans",
+ "af": "afrikaansa",
"agq": "aghemera",
"ak": "akanera",
"sq": "albaniera",
- "de": "aleman",
+ "de": "alemana",
"zgh": "amazigera estandarra",
"am": "amharera",
- "nyn": "ankolera",
"ar": "arabiera",
"hy": "armeniera",
"as": "assamera",
"ast": "asturiera",
- "asa": "asu",
- "en-AU": "Australiako ingeles",
- "de-AT": "Austriako aleman",
+ "asa": "asua",
+ "en-AU": "Australiako ingelesa",
+ "de-AT": "Austriako alemana",
"az": "azerbaijanera",
"ksf": "bafiera",
"bm": "bambarera",
"bas": "basaa",
- "nds": "behe-aleman",
+ "nds": "behe-alemana",
"nds-NL": "behe-saxoiera",
"dsb": "behe-sorabiera",
"bem": "bembera",
"bez": "benera",
"bn": "bengalera",
+ "bho": "bhojpurera",
"be": "bielorrusiera",
"my": "birmaniera",
"brx": "bodoera",
"nb": "bokmål (norvegiera)",
"bs": "bosniera",
"br": "bretoiera",
- "en-GB": "Britania Handiko ingeles",
+ "en-GB": "Britainia Handiko ingelesa",
"bg": "bulgariera",
"kea": "Cabo Verdeko kreolera",
"ceb": "cebuanoera",
@@ -45,25 +45,25 @@
"rm": "erretorromaniera",
"ro": "errumaniera",
"ru": "errusiera",
- "gd": "Eskoziako gaeliko",
+ "gd": "Eskoziako gaelikoa",
"sk": "eslovakiera",
"sl": "esloveniera",
"es": "espainiera",
"et": "estoniera",
- "pt-PT": "Europako portuges",
+ "pt-PT": "Europako portugesa",
"eu": "euskara",
"ee": "eweera",
- "ewo": "ewondera",
+ "ewo": "ewondoa",
"fo": "faroera",
"fil": "filipinera",
"fi": "finlandiera",
"nl-BE": "flandriera",
"dyo": "fonyi jolera",
- "fr": "frantses",
+ "fr": "frantsesa",
"fy": "frisiera",
- "fur": "fruilera",
+ "fur": "friulera",
"ff": "fula",
- "cy": "gales",
+ "cy": "galesa",
"gl": "galiziera",
"ka": "georgiera",
"hsb": "goi-sorabiera",
@@ -71,16 +71,19 @@
"kl": "groenlandiera",
"gu": "gujaratera",
"guz": "gusiiera",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiiera",
"he": "hebreera",
- "hi": "hindi",
+ "hi": "hindia",
+ "hi-Latn": "hindia (latinoa)",
"hu": "hungariera",
"ig": "igboera",
"smn": "Inariko samiera",
"id": "indonesiera",
- "en": "ingeles",
- "iu": "inuktitut",
+ "en": "ingelesa",
+ "iu": "inuitera",
+ "frr": "iparraldeko frisiera",
"lrc": "iparraldeko lurera",
"nd": "iparraldeko ndebeleera",
"se": "iparraldeko samiera",
@@ -90,16 +93,16 @@
"ja": "japoniera",
"jv": "javera",
"yo": "jorubera",
- "kab": "kabilera",
- "kgp": "kaingang",
- "kkj": "kako",
+ "kab": "kabiliera",
+ "kgp": "kaingangera",
+ "kkj": "kakoa",
"kln": "kalenjinera",
"kam": "kambera",
- "fr-CA": "Kanadako frantses",
- "en-CA": "Kanadako ingeles",
+ "fr-CA": "Kanadako frantsesa",
+ "en-CA": "Kanadako ingelesa",
"kn": "kannada",
"yue": "kantonera",
- "ca": "katalan",
+ "ca": "katalana",
"lu": "Katangako lubera",
"ks": "kaxmirera",
"kk": "kazakhera",
@@ -113,8 +116,8 @@
"kok": "konkanera",
"ko": "koreera",
"kw": "kornubiera",
- "khq": "koyra chiini",
- "ses": "koyraboro senni",
+ "khq": "koyra chiinia",
+ "ses": "koyraboro sennia",
"hr": "kroaziera",
"ku": "kurduera",
"nmg": "kwasiera",
@@ -129,13 +132,13 @@
"luy": "luhyera",
"luo": "luoera",
"lb": "luxenburgera",
- "jmc": "machame",
- "mai": "maithilera",
+ "jmc": "machamea",
+ "mai": "maithilia",
"mgh": "makhuwa-meettoera",
"kde": "makondeera",
"ml": "malabarera",
"ms": "malaysiera",
- "mg": "malgaxe",
+ "mg": "malgaxea",
"mt": "maltera",
"mni": "manipurera",
"mi": "maoriera",
@@ -147,6 +150,7 @@
"mer": "meruera",
"mgo": "metaʼera",
"es-MX": "Mexikoko espainiera",
+ "mdf": "mokxera",
"ro-MD": "moldaviera",
"mn": "mongoliera",
"mua": "mudangera",
@@ -155,27 +159,32 @@
"ne": "nepalera",
"nnh": "ngiemboonera",
"jgo": "ngomba",
- "yrl": "Nheengatu",
+ "yrl": "nheengatua",
"pcm": "Nigeriako pidgina",
+ "nyn": "nkoreera",
"no": "norvegiera",
"nus": "nuerera",
"nn": "nynorsk (norvegiera)",
+ "ann": "oboloera",
+ "oc": "okzitaniera",
"or": "oriya",
"om": "oromoera",
"os": "osetiera",
- "ps": "paxtuera",
+ "ps": "paxtunera",
"fa": "persiera",
+ "pis": "pijina",
"pl": "poloniera",
- "pt": "portuges",
+ "pt": "portugesa",
"pa": "punjabera",
- "rof": "rombo",
+ "raj": "Rajasthani",
+ "rof": "romboa",
"rn": "rundiera",
"rwk": "rwera",
"sah": "sakhera",
"saq": "samburuera",
- "sg": "sango",
+ "sg": "sangoa",
"sbp": "sanguera",
- "sa": "sanskrito",
+ "sa": "sanskritoa",
"sat": "santalera",
"sc": "sardiniera",
"seh": "senera",
@@ -183,27 +192,29 @@
"ksb": "shambalera",
"sn": "shonera",
"ii": "Sichuango yiera",
- "sd": "sindhi",
+ "sd": "sindhia",
"si": "sinhala",
+ "sms": "skolten samiera",
"xog": "sogera",
"so": "somaliera",
"sv": "suediera",
- "gsw": "Suitzako aleman",
- "de-CH": "Suitzako aleman garai",
- "fr-CH": "Suitzako frantses",
+ "de-CH": "Suitzako aleman garaia",
+ "gsw": "Suitzako alemana",
+ "fr-CH": "Suitzako frantsesa",
"su": "sundanera",
"sw": "swahilia",
- "shi": "tachelhit",
+ "shi": "tachelhita",
"dav": "taitera",
"tg": "tajikera",
"ta": "tamilera",
- "twq": "tasawaq",
+ "twq": "tasawaqa",
"tt": "tatarera",
- "te": "telugu",
+ "te": "telugua",
"teo": "tesoera",
"th": "thailandiera",
"bo": "tibetera",
"ti": "tigrinyera",
+ "tok": "toki pona",
"to": "tongera",
"tr": "turkiera",
"tk": "turkmenera",
@@ -211,21 +222,22 @@
"chr": "txerokiera",
"ce": "txetxenera",
"zh": "txinera",
- "zh-Hans": "txinera sinplifikatu",
+ "zh-Hans": "txinera sinplifikatua",
"zh-Hant": "txinera tradizionala",
+ "cv": "txuvaxera",
"ug": "uigurrera",
"uk": "ukrainera",
- "ur": "urdu",
+ "ur": "urdua",
"uz": "uzbekera",
"vai": "vaiera",
"vi": "vietnamera",
- "vun": "vunjo",
+ "vun": "vunjoa",
"wa": "waloiera",
"wae": "walserera",
"wo": "wolofera",
"xh": "xhosera",
"yav": "yangbenera",
- "yi": "yiddish",
+ "yi": "yiddisha",
"dje": "zarma",
"zu": "zuluera"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/fa-AF.json b/vendor/commerceguys/intl/resources/language/fa-AF.json
index 70d54d12a..13a44f3a4 100644
--- a/vendor/commerceguys/intl/resources/language/fa-AF.json
+++ b/vendor/commerceguys/intl/resources/language/fa-AF.json
@@ -22,8 +22,10 @@
"es-419": "اسپانیایی امریکای لاتین",
"es-MX": "اسپانیایی مکزیک",
"et": "استونیایی",
+ "sms": "اسکولت سامی",
"sk": "اسلواکی",
"sl": "اسلوونیایی",
+ "oc": "اکسیتان",
"sq": "البانیایی",
"ebu": "امبو",
"am": "امهری",
@@ -34,6 +36,7 @@
"en-GB": "انگلیسی بریتانیا",
"en-CA": "انگلیسی کانادا",
"ewo": "اواندو",
+ "ann": "اوبولو",
"om": "اورومویی",
"or": "اوریه‌ای",
"uk": "اوکراینی",
@@ -54,6 +57,7 @@
"bem": "بمبایی",
"bez": "بنایی",
"bn": "بنگالی",
+ "bho": "بوجپوری",
"brx": "بودویی",
"bs": "بوسنیایی",
"pt-PT": "پرتغالی اروپا",
@@ -61,6 +65,7 @@
"ps": "پشتو",
"pa": "پنجابی",
"pl": "پولندی",
+ "pis": "پی‌جین",
"tt": "تاتاری",
"tg": "تاجکی",
"shi": "تاچل‌هیت",
@@ -73,6 +78,7 @@
"twq": "تسواکی",
"teo": "تسویی",
"te": "تلوگویی",
+ "tok": "توکی پونا",
"to": "تونگایی",
"ti": "تیگرینیایی",
"ja": "جاپانی",
@@ -80,6 +86,7 @@
"ce": "چچنی",
"chr": "چروکی",
"cs": "چکی",
+ "cv": "چوواشی",
"cgg": "چیگا",
"zh": "چینی",
"zh-Hans": "چینی ساده شده",
@@ -91,6 +98,7 @@
"dua": "دوآلایی",
"doi": "دوگری",
"dyo": "دیولا فونی",
+ "raj": "راجستانی",
"rwk": "روایی",
"ru": "روسی",
"rm": "رومانش",
@@ -129,6 +137,7 @@
"fr": "فرانسوی",
"fr-CH": "فرانسوی سوئیس",
"fr-CA": "فرانسوی کانادا",
+ "frr": "فریزی شمالی",
"fy": "فریسی غربی",
"fur": "فریولیایی",
"nl-BE": "فلمیش",
@@ -145,6 +154,7 @@
"kam": "کامبایی",
"kn": "کانارا",
"yue": "کانتونی",
+ "kgp": "کاین گنگ",
"qu": "کچوایی",
"ku": "کردی",
"ckb": "کردی سورانی",
@@ -196,6 +206,7 @@
"mer": "مرویی",
"mn": "مغلی",
"mk": "مقدونی",
+ "mdf": "مکشایی",
"mfe": "موریسین",
"ro-MD": "مولداویایی",
"no": "نارویژی",
@@ -203,6 +214,7 @@
"nb": "نروژی کتابی",
"nn": "نروژی نو",
"jgo": "نگومبا",
+ "yrl": "نهین گاتو",
"nus": "نویر",
"nnh": "نیامبون",
"nyn": "نیانکوله‌ای",
@@ -212,6 +224,7 @@
"haw": "هاوایی",
"es": "هسپانوی",
"hi": "هندی",
+ "hi-Latn": "هندی (لاتین)",
"ha": "هوسایی",
"wae": "والسر",
"wa": "والونی",
@@ -226,6 +239,5 @@
"yo": "یوروبایی",
"el": "یونانی",
"ii": "یی سیچوان",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/fa.json b/vendor/commerceguys/intl/resources/language/fa.json
index b224e47a4..61fab3f4b 100644
--- a/vendor/commerceguys/intl/resources/language/fa.json
+++ b/vendor/commerceguys/intl/resources/language/fa.json
@@ -21,8 +21,10 @@
"es-419": "اسپانیایی امریکای لاتین",
"es-MX": "اسپانیایی مکزیک",
"et": "استونیایی",
+ "sms": "اسکولت سامی",
"sk": "اسلواکی",
"sl": "اسلوونیایی",
+ "oc": "اکسیتان",
"ebu": "امبو",
"am": "امهری",
"id": "اندونزیایی",
@@ -32,6 +34,7 @@
"en-GB": "انگلیسی بریتانیا",
"en-CA": "انگلیسی کانادا",
"ewo": "اواندو",
+ "ann": "اوبولو",
"om": "اورومویی",
"or": "اوریه‌ای",
"uk": "اوکراینی",
@@ -54,12 +57,14 @@
"bem": "بمبایی",
"bez": "بنایی",
"bn": "بنگالی",
+ "bho": "بوجپوری",
"brx": "بودویی",
"bs": "بوسنیایی",
"pt": "پرتغالی",
"pt-PT": "پرتغالی اروپا",
"ps": "پشتو",
"pa": "پنجابی",
+ "pis": "پی‌جین",
"tt": "تاتاری",
"tg": "تاجیکی",
"shi": "تاچل‌هیت",
@@ -73,12 +78,14 @@
"twq": "تسواکی",
"teo": "تسویی",
"te": "تلوگویی",
+ "tok": "توکی پونا",
"to": "تونگایی",
"ti": "تیگرینیایی",
"jv": "جاوه‌ای",
"ce": "چچنی",
"chr": "چروکی",
"cs": "چکی",
+ "cv": "چوواشی",
"cgg": "چیگا",
"zh": "چینی",
"zh-Hans": "چینی ساده‌شده",
@@ -90,6 +97,7 @@
"dua": "دوآلایی",
"doi": "دوگری",
"dyo": "دیولا فونی",
+ "raj": "راجستانی",
"rwk": "روایی",
"ru": "روسی",
"rm": "رومانش",
@@ -129,6 +137,7 @@
"fr": "فرانسوی",
"fr-CH": "فرانسوی سوئیس",
"fr-CA": "فرانسوی کانادا",
+ "frr": "فریزی شمالی",
"fy": "فریسی غربی",
"fur": "فریولیایی",
"nl-BE": "فلمنگی",
@@ -145,6 +154,7 @@
"kam": "کامبایی",
"kn": "کانارا",
"yue": "کانتونی",
+ "kgp": "کاین گنگ",
"qu": "کچوایی",
"ku": "کردی",
"ckb": "کردی مرکزی",
@@ -197,6 +207,7 @@
"mer": "مرویی",
"mn": "مغولی",
"mk": "مقدونی",
+ "mdf": "مکشایی",
"mfe": "موریسین",
"ro-MD": "مولداویایی",
"naq": "نامایی",
@@ -206,6 +217,7 @@
"nn": "نروژی نی‌نُشک",
"jgo": "نگومبا",
"nus": "نویر",
+ "yrl": "نهین گاتو",
"nnh": "نیامبون",
"nyn": "نیانکوله‌ای",
"pcm": "نیم‌زبان نیجریه‌ای",
@@ -219,6 +231,7 @@
"haw": "هاوایی",
"nl": "هلندی",
"hi": "هندی",
+ "hi-Latn": "هندی (لاتین)",
"ha": "هوسایی",
"sah": "یاقوتی",
"yav": "یانگبنی",
@@ -226,6 +239,5 @@
"yo": "یوروبایی",
"el": "یونانی",
"ii": "یی سیچوان",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/fi.json b/vendor/commerceguys/intl/resources/language/fi.json
index 325151cec..5c1e28695 100644
--- a/vendor/commerceguys/intl/resources/language/fi.json
+++ b/vendor/commerceguys/intl/resources/language/fi.json
@@ -22,6 +22,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengali",
+ "bho": "bhodžpuri",
"brx": "bodo",
"bs": "bosnia",
"br": "bretoni",
@@ -51,10 +52,12 @@
"ka": "georgia",
"gu": "gudžarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "havaiji",
"he": "heprea",
"hi": "hindi",
+ "hi-Latn": "hindi (latinalainen)",
"nl": "hollanti",
"ig": "igbo",
"ga": "iiri",
@@ -93,8 +96,9 @@
"zh-Hant": "kiina (perinteinen)",
"zh-Hans": "kiina (yksinkertaistettu)",
"ki": "kikuju",
- "sw-CD": "kingwana",
"ky": "kirgiisi",
+ "sms": "koltansaame",
+ "sw-CD": "kongonswahili",
"kok": "konkani",
"ko": "korea",
"kw": "korni",
@@ -133,6 +137,7 @@
"es-MX": "meksikonespanja",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "mokša",
"ro-MD": "moldova",
"mn": "mongoli",
"mfe": "morisyen",
@@ -148,17 +153,22 @@
"nn": "norjan nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "ann": "obolo",
+ "oc": "oksitaani",
"or": "orija",
"om": "oromo",
"os": "osseetti",
"pa": "pandžabi",
"ps": "paštu",
"fa": "persia",
+ "pis": "pijin",
"nd": "pohjois-ndebele",
+ "frr": "pohjoisfriisi",
"lrc": "pohjoisluri",
"se": "pohjoissaame",
"pt": "portugali",
"pl": "puola",
+ "raj": "radžastani",
"fr": "ranska",
"rm": "retoromaani",
"ro": "romania",
@@ -204,9 +214,11 @@
"th": "thai",
"ti": "tigrinja",
"bo": "tiibet",
+ "tok": "toki pona",
"to": "tonga",
"cs": "tšekki",
"ce": "tšetšeeni",
+ "cv": "tšuvassi",
"tr": "turkki",
"tk": "turkmeeni",
"ug": "uiguuri",
diff --git a/vendor/commerceguys/intl/resources/language/fil.json b/vendor/commerceguys/intl/resources/language/fil.json
index 08f31dcf6..97078e120 100644
--- a/vendor/commerceguys/intl/resources/language/fil.json
+++ b/vendor/commerceguys/intl/resources/language/fil.json
@@ -9,7 +9,6 @@
"as": "Assamese",
"ast": "Asturian",
"asa": "Asu",
- "de-AT": "Austrian German",
"az": "Azerbaijani",
"ksf": "Bafia",
"bm": "Bambara",
@@ -19,6 +18,7 @@
"be": "Belarusian",
"bem": "Bemba",
"bez": "Bena",
+ "bho": "Bhojpuri",
"brx": "Bodo",
"bs": "Bosnian",
"br": "Breton",
@@ -33,6 +33,7 @@
"chr": "Cherokee",
"cgg": "Chiga",
"zh": "Chinese",
+ "cv": "Chuvash",
"ksh": "Colognian",
"sw-CD": "Congo Swahili",
"kw": "Cornish",
@@ -53,23 +54,27 @@
"fi": "Finnish",
"nl-BE": "Flemish",
"fr": "French",
- "fr-CA": "French sa Canada",
+ "fr-CA": "French (Canada)",
"fur": "Friulian",
"ff": "Fulah",
"gl": "Galician",
"lg": "Ganda",
"ka": "Georgian",
"de": "German",
+ "de-AT": "German (Austria)",
"el": "Greek",
"gu": "Gujarati",
"guz": "Gusii",
+ "bgc": "Haryanvi",
"ha": "Hausa",
"haw": "Hawaiian",
"he": "Hebrew",
+ "frr": "Hilagang Frisian",
"lrc": "Hilagang Luri",
"nd": "Hilagang Ndebele",
"se": "Hilagang Sami",
"hi": "Hindi",
+ "hi-Latn": "Hindi (Latin)",
"hu": "Hungarian",
"is": "Icelandic",
"ig": "Igbo",
@@ -77,9 +82,9 @@
"id": "Indonesian",
"iu": "Inuktitut",
"en": "Ingles",
+ "en-AU": "Ingles (Australia)",
+ "en-CA": "Ingles (Canada)",
"en-GB": "Ingles na British",
- "en-AU": "Ingles ng Australia",
- "en-CA": "Ingles sa Canada",
"ga": "Irish",
"it": "Italian",
"ja": "Japanese",
@@ -137,6 +142,7 @@
"mer": "Meru",
"mgo": "Meta’",
"es-MX": "Mexican na Espanyol",
+ "mdf": "Moksha",
"ro-MD": "Moldavian",
"mn": "Mongolian",
"mfe": "Morisyen",
@@ -152,16 +158,20 @@
"nyn": "Nyankole",
"nnh": "Ngiemboon",
"jgo": "Ngomba",
+ "ann": "Obolo",
+ "oc": "Occitan",
"or": "Odia",
"om": "Oromo",
"os": "Ossetic",
"ps": "Pashto",
"fa": "Persian",
+ "pis": "Pijin",
"zh-Hans": "Pinasimpleng Chinese",
"pl": "Polish",
"pt": "Portuguese",
"pa": "Punjabi",
"qu": "Quechua",
+ "raj": "Rajasthani",
"ro": "Romanian",
"rm": "Romansh",
"rof": "Rombo",
@@ -183,6 +193,7 @@
"ii": "Sichuan Yi",
"sd": "Sindhi",
"si": "Sinhala",
+ "sms": "Skolt Sami",
"sk": "Slovak",
"sl": "Slovenian",
"xog": "Soga",
@@ -206,6 +217,7 @@
"th": "Thai",
"bo": "Tibetan",
"ti": "Tigrinya",
+ "tok": "Toki Pona",
"to": "Tongan",
"zh-Hant": "Tradisyonal na Chinese",
"tr": "Turkish",
diff --git a/vendor/commerceguys/intl/resources/language/fr-BE.json b/vendor/commerceguys/intl/resources/language/fr-BE.json
index 3b8e1fb47..b4a030559 100644
--- a/vendor/commerceguys/intl/resources/language/fr-BE.json
+++ b/vendor/commerceguys/intl/resources/language/fr-BE.json
@@ -29,6 +29,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengali",
+ "bho": "bhodjpouri",
"be": "biélorusse",
"my": "birman",
"brx": "bodo",
@@ -73,6 +74,7 @@
"fr-CH": "français suisse",
"fur": "frioulan",
"fy": "frison occidental",
+ "frr": "frison septentrional",
"gd": "gaélique écossais",
"gl": "galicien",
"cy": "gallois",
@@ -83,10 +85,12 @@
"gu": "gujarati",
"guz": "gusii",
"ha": "haoussa",
+ "bgc": "Haryanvi",
"hsb": "haut-sorabe",
"haw": "hawaïen",
"he": "hébreu",
"hi": "hindi",
+ "hi-Latn": "hindi (latin)",
"hu": "hongrois",
"sah": "iakoute",
"ig": "igbo",
@@ -141,6 +145,7 @@
"mzn": "mazandérani",
"mer": "meru",
"mgo": "metaʼ",
+ "mdf": "mokcha",
"ro-MD": "moldave",
"mn": "mongol",
"mua": "moundang",
@@ -157,6 +162,8 @@
"nn": "norvégien nynorsk",
"nus": "nuer",
"nyn": "nyankolé",
+ "ann": "obolo",
+ "oc": "occitan",
"or": "odia",
"om": "oromo",
"os": "ossète",
@@ -168,10 +175,12 @@
"fa": "persan",
"ff": "peul",
"pcm": "pidgin nigérian",
+ "pis": "pijin",
"pl": "polonais",
"pt": "portugais",
"pt-PT": "portugais européen",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "romanche",
"rof": "rombo",
"ro": "roumain",
@@ -181,6 +190,7 @@
"saq": "samburu",
"smn": "same d’Inari",
"se": "same du Nord",
+ "sms": "same skolt",
"sg": "sango",
"sa": "sanskrit",
"sat": "santali",
@@ -206,11 +216,13 @@
"tt": "tatar",
"cs": "tchèque",
"ce": "tchétchène",
+ "cv": "tchouvache",
"te": "télougou",
"teo": "teso",
"th": "thaï",
"bo": "tibétain",
"ti": "tigrigna",
+ "tok": "toki pona",
"to": "tongien",
"tr": "turc",
"tk": "turkmène",
diff --git a/vendor/commerceguys/intl/resources/language/fr-CA.json b/vendor/commerceguys/intl/resources/language/fr-CA.json
index 12503d16f..944ec2167 100644
--- a/vendor/commerceguys/intl/resources/language/fr-CA.json
+++ b/vendor/commerceguys/intl/resources/language/fr-CA.json
@@ -28,6 +28,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengali",
+ "bho": "bhodjpouri",
"be": "biélorusse",
"my": "birman",
"brx": "bodo",
@@ -72,6 +73,7 @@
"fr-CH": "français suisse",
"fur": "frioulan",
"fy": "frison occidental",
+ "frr": "frison septentrional",
"gd": "gaélique écossais",
"gl": "galicien",
"cy": "gallois",
@@ -81,10 +83,12 @@
"gu": "gujarati",
"guz": "gusii",
"ha": "haoussa",
+ "bgc": "Haryanvi",
"hsb": "haut-sorabe",
"haw": "hawaïen",
"he": "hébreu",
"hi": "hindi",
+ "hi-Latn": "hindi (latin)",
"hu": "hongrois",
"sah": "iakoute",
"ig": "igbo",
@@ -142,6 +146,7 @@
"mzn": "mazandérani",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "mokcha",
"ro-MD": "moldave",
"mn": "mongol",
"mua": "moundang",
@@ -157,6 +162,8 @@
"nb": "norvégien bokmål",
"nn": "norvégien nynorsk",
"nus": "nuer",
+ "ann": "obolo",
+ "oc": "occitan",
"or": "odia",
"om": "oromo",
"os": "ossète",
@@ -167,11 +174,13 @@
"pa": "pendjabi",
"fa": "persan",
"ff": "peul",
+ "pis": "pidgin",
"pcm": "pidgin nigérian",
"pl": "polonais",
"pt": "portugais",
"pt-PT": "portugais européen",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "romanche",
"rof": "rombo",
"ro": "roumain",
@@ -180,6 +189,7 @@
"rwk": "rwa",
"saq": "samburu",
"se": "same du Nord",
+ "sms": "same skolt",
"smn": "sami d’Inari",
"sg": "sango",
"sbp": "sangu",
@@ -206,11 +216,13 @@
"tt": "tatar",
"cs": "tchèque",
"ce": "tchétchène",
+ "cv": "tchouvache",
"te": "télougou",
"teo": "teso",
"th": "thaï",
"bo": "tibétain",
"ti": "tigrigna",
+ "tok": "toki pona",
"to": "tongien",
"tr": "turc",
"tk": "turkmène",
diff --git a/vendor/commerceguys/intl/resources/language/fr-CH.json b/vendor/commerceguys/intl/resources/language/fr-CH.json
index e4ac7a52c..0e36a8749 100644
--- a/vendor/commerceguys/intl/resources/language/fr-CH.json
+++ b/vendor/commerceguys/intl/resources/language/fr-CH.json
@@ -29,6 +29,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengali",
+ "bho": "bhodjpouri",
"be": "biélorusse",
"my": "birman",
"brx": "bodo",
@@ -73,6 +74,7 @@
"fr-CH": "français suisse",
"fur": "frioulan",
"fy": "frison occidental",
+ "frr": "frison septentrional",
"gd": "gaélique écossais",
"gl": "galicien",
"cy": "gallois",
@@ -83,10 +85,12 @@
"kl": "groenlandais",
"guz": "gusii",
"ha": "haoussa",
+ "bgc": "Haryanvi",
"hsb": "haut-sorabe",
"haw": "hawaïen",
"he": "hébreu",
"hi": "hindi",
+ "hi-Latn": "hindi (latin)",
"hu": "hongrois",
"sah": "iakoute",
"ig": "igbo",
@@ -141,6 +145,7 @@
"mzn": "mazandérani",
"mer": "meru",
"mgo": "metaʼ",
+ "mdf": "mokcha",
"ro-MD": "moldave",
"mn": "mongol",
"mua": "moundang",
@@ -157,6 +162,8 @@
"nn": "norvégien nynorsk",
"nus": "nuer",
"nyn": "nyankolé",
+ "ann": "obolo",
+ "oc": "occitan",
"or": "odia",
"om": "oromo",
"os": "ossète",
@@ -168,10 +175,12 @@
"fa": "persan",
"ff": "peul",
"pcm": "pidgin nigérian",
+ "pis": "pijin",
"pl": "polonais",
"pt": "portugais",
"pt-PT": "portugais européen",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "romanche",
"rof": "rombo",
"ro": "roumain",
@@ -181,6 +190,7 @@
"saq": "samburu",
"smn": "same d’Inari",
"se": "same du Nord",
+ "sms": "same skolt",
"sg": "sango",
"sa": "sanskrit",
"sat": "santali",
@@ -206,11 +216,13 @@
"tt": "tatar",
"cs": "tchèque",
"ce": "tchétchène",
+ "cv": "tchouvache",
"te": "télougou",
"teo": "teso",
"th": "thaï",
"bo": "tibétain",
"ti": "tigrigna",
+ "tok": "toki pona",
"to": "tongien",
"tr": "turc",
"tk": "turkmène",
diff --git a/vendor/commerceguys/intl/resources/language/fr.json b/vendor/commerceguys/intl/resources/language/fr.json
index 06dea39ce..7b2f91f8d 100644
--- a/vendor/commerceguys/intl/resources/language/fr.json
+++ b/vendor/commerceguys/intl/resources/language/fr.json
@@ -29,6 +29,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengali",
+ "bho": "bhodjpouri",
"be": "biélorusse",
"my": "birman",
"brx": "bodo",
@@ -73,6 +74,7 @@
"fr-CH": "français suisse",
"fur": "frioulan",
"fy": "frison occidental",
+ "frr": "frison septentrional",
"gd": "gaélique écossais",
"gl": "galicien",
"cy": "gallois",
@@ -83,10 +85,12 @@
"kl": "groenlandais",
"guz": "gusii",
"ha": "haoussa",
+ "bgc": "Haryanvi",
"hsb": "haut-sorabe",
"haw": "hawaïen",
"he": "hébreu",
"hi": "hindi",
+ "hi-Latn": "hindi (latin)",
"hu": "hongrois",
"sah": "iakoute",
"ig": "igbo",
@@ -141,6 +145,7 @@
"mzn": "mazandérani",
"mer": "meru",
"mgo": "metaʼ",
+ "mdf": "mokcha",
"ro-MD": "moldave",
"mn": "mongol",
"mua": "moundang",
@@ -157,6 +162,8 @@
"nn": "norvégien nynorsk",
"nus": "nuer",
"nyn": "nyankolé",
+ "ann": "obolo",
+ "oc": "occitan",
"or": "odia",
"om": "oromo",
"os": "ossète",
@@ -168,10 +175,12 @@
"fa": "persan",
"ff": "peul",
"pcm": "pidgin nigérian",
+ "pis": "pijin",
"pl": "polonais",
"pt": "portugais",
"pt-PT": "portugais européen",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "romanche",
"rof": "rombo",
"ro": "roumain",
@@ -181,6 +190,7 @@
"saq": "samburu",
"smn": "same d’Inari",
"se": "same du Nord",
+ "sms": "same skolt",
"sg": "sango",
"sa": "sanskrit",
"sat": "santali",
@@ -206,11 +216,13 @@
"tt": "tatar",
"cs": "tchèque",
"ce": "tchétchène",
+ "cv": "tchouvache",
"te": "télougou",
"teo": "teso",
"th": "thaï",
"bo": "tibétain",
"ti": "tigrigna",
+ "tok": "toki pona",
"to": "tongien",
"tr": "turc",
"tk": "turkmène",
diff --git a/vendor/commerceguys/intl/resources/language/ga.json b/vendor/commerceguys/intl/resources/language/ga.json
index 3fa665834..49541790f 100644
--- a/vendor/commerceguys/intl/resources/language/ga.json
+++ b/vendor/commerceguys/intl/resources/language/ga.json
@@ -18,9 +18,9 @@
"be": "Bealarúisis",
"bn": "Beangáilis",
"en": "Béarla",
- "en-AU": "Béarla Astrálach",
- "en-GB": "Béarla Briotanach",
- "en-CA": "Béarla Ceanadach",
+ "en-CA": "Béarla Cheanada",
+ "en-GB": "Béarla na Breataine",
+ "en-AU": "Béarla na hAstráile",
"bem": "Beimbis",
"bez": "Beinis",
"nb": "Bocmál",
@@ -39,8 +39,8 @@
"kk": "Casaicis",
"ca": "Catalóinis",
"qu": "Ceatsuais",
- "cgg": "Chiga",
"ebu": "Ciambúis",
+ "cgg": "Cígis",
"km": "Ciméiris",
"rw": "Ciniaruaindis",
"ki": "Ciocúis",
@@ -67,8 +67,9 @@
"fil": "Filipínis",
"fi": "Fionlainnis",
"fr": "Fraincis",
- "fr-CA": "Fraincis Cheanadach",
- "fr-CH": "Fraincis Eilvéiseach",
+ "fr-CA": "Fraincis Cheanada",
+ "fr-CH": "Fraincis na hEilvéise",
+ "frr": "Freaslainnis an Tuaiscirt",
"fy": "Freaslainnis Iartharach",
"fur": "Friúilis",
"ff": "Fuláinis",
@@ -78,14 +79,16 @@
"de": "Gearmáinis",
"gsw": "Gearmáinis Eilvéiseach",
"nds": "Gearmáinis Íochtarach",
- "de-AT": "Gearmáinis Ostarach",
+ "de-AT": "Gearmáinis na hOstaire",
"yi": "Giúdais",
"el": "Gréigis",
"gu": "Gúisearáitis",
"guz": "Gúsaís",
+ "bgc": "Haryanvi",
"ha": "Hásais",
"haw": "Haváis",
"hi": "Hiondúis",
+ "hi-Latn": "Hiondúis (Laidineach)",
"jv": "Iáivis",
"yo": "Iarúibis",
"id": "Indinéisis",
@@ -126,6 +129,7 @@
"mgh": "Meiteo-Macuais",
"mer": "Meru",
"mgo": "Metaʼ",
+ "mdf": "Mocsais",
"ro-MD": "Moldáivis",
"mn": "Mongóilis",
"mfe": "Morisyen",
@@ -139,6 +143,8 @@
"nyn": "Niancóilis",
"nn": "Nua-Ioruais",
"nus": "Nuairis",
+ "ann": "Obolo",
+ "oc": "Ocsatáinis",
"or": "Odia",
"os": "Oiséitis",
"nl": "Ollainnis",
@@ -146,11 +152,13 @@
"ps": "Paistis",
"fa": "Peirsis",
"pcm": "pidsean na Nigéire",
+ "pis": "Pijin",
"nl-BE": "Pléimeannais",
"pl": "Polainnis",
"pt": "Portaingéilis",
"pt-PT": "Portaingéilis Ibéarach",
"pa": "Puinseáibis",
+ "raj": "Rajasthani",
"rm": "Rómainis",
"ro": "Rómáinis",
"rof": "Rombo",
@@ -161,6 +169,7 @@
"nds-NL": "Sacsainis Íochtarach",
"se": "Sáimis an Tuaiscirt",
"smn": "Sáimis Inari",
+ "sms": "Sáimis Skolt",
"sc": "Sairdínis",
"saq": "Samburu",
"sg": "Sangóis",
@@ -197,6 +206,7 @@
"sv": "Sualainnis",
"zu": "Súlúis",
"su": "Sundais",
+ "cv": "Suvaisis",
"sw": "Svahaílis",
"sw-CD": "Svahaílis an Chongó",
"shi": "Tachelhit",
@@ -212,6 +222,7 @@
"teo": "Teso",
"bo": "Tibéidis",
"ti": "Tigrinis",
+ "tok": "Toki Pona",
"to": "Tongais",
"tr": "Tuircis",
"tk": "Tuircméinis",
@@ -223,6 +234,7 @@
"vai": "Vadhais",
"wa": "Vallúnais",
"vi": "Vítneaimis",
+ "bho": "Vóispiris",
"wo": "Volaifis",
"vun": "Vunjo",
"wae": "Walser",
diff --git a/vendor/commerceguys/intl/resources/language/gd.json b/vendor/commerceguys/intl/resources/language/gd.json
index dbbf624d9..b79ff7924 100644
--- a/vendor/commerceguys/intl/resources/language/gd.json
+++ b/vendor/commerceguys/intl/resources/language/gd.json
@@ -25,6 +25,7 @@
"en-CA": "Beurla Chanada",
"pcm": "Beurla Nigèiriach",
"vi": "Bhiet-Namais",
+ "bho": "Bhojpuri",
"brx": "Bodo",
"nb": "Bokmål na Nirribhidh",
"bs": "Bosnais",
@@ -42,6 +43,7 @@
"ceb": "Cebuano",
"chr": "Cherokee",
"cgg": "Chiga",
+ "cv": "Chuvash",
"ky": "Cìorgasais",
"km": "Cmèar",
"ko": "Coirèanais",
@@ -66,11 +68,12 @@
"fo": "Fàrothais",
"fil": "Filipinis",
"fi": "Fionnlannais",
- "nl-BE": "Flannrais",
+ "nl-BE": "Flànrais",
"fr": "Fraingis",
"fr-CA": "Fraingis Chanada",
"fr-CH": "Fraingis Eilbheiseach",
"fy": "Frìoslannais Shiarach",
+ "frr": "Frìoslannais Thuathach",
"fur": "Friùilis",
"ff": "Fulah",
"ga": "Gaeilge",
@@ -86,8 +89,10 @@
"el": "Greugais",
"gu": "Gujarati",
"guz": "Gusii",
+ "bgc": "Haryanvi",
"ha": "Hausa",
"hi": "Hindis",
+ "hi-Latn": "Hindis (Laideann)",
"ig": "Igbo",
"id": "Innd-Innsis",
"is": "Innis Tìlis",
@@ -138,6 +143,7 @@
"mzn": "Mazanderani",
"mer": "Meru",
"mgo": "Meta’",
+ "mdf": "Moksha",
"ro-MD": "Moldobhais",
"mn": "Mongolais",
"mfe": "Morisyen",
@@ -152,16 +158,20 @@
"nus": "Nuer",
"nyn": "Nyankole",
"nn": "Nynorsk na Nirribhidh",
+ "ann": "Obolo",
"or": "Odia",
+ "oc": "Ogsatanais",
"om": "Oromo",
"os": "Ossetic",
"pa": "Panjabi",
"ps": "Pashto",
"fa": "Peirsis",
+ "pis": "Pijin",
"pl": "Pòlainnis",
"pt": "Portagailis",
"pt-PT": "Portagailis Eòrpach",
"qu": "Quechua",
+ "raj": "Rajasthani",
"ro": "Romàinis",
"rof": "Rombo",
"ru": "Ruisis",
@@ -170,6 +180,7 @@
"nds-NL": "Sagsannais Ìochdarach",
"sah": "Sakha",
"smn": "Sàmais Inari",
+ "sms": "Sàmais Skolt",
"se": "Sàmais Thuathach",
"saq": "Samburu",
"sg": "Sango",
@@ -210,6 +221,7 @@
"teo": "Teso",
"bo": "Tibeitis",
"ti": "Tigrinya",
+ "tok": "Toki Pona",
"to": "Tonga",
"tr": "Turcais",
"tk": "Turcmanais",
diff --git a/vendor/commerceguys/intl/resources/language/gl.json b/vendor/commerceguys/intl/resources/language/gl.json
index 31d7cad58..85c4062b7 100644
--- a/vendor/commerceguys/intl/resources/language/gl.json
+++ b/vendor/commerceguys/intl/resources/language/gl.json
@@ -25,6 +25,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalí",
+ "bho": "bhojpuri",
"my": "birmano",
"brx": "bodo",
"bs": "bosníaco",
@@ -32,6 +33,7 @@
"bg": "búlgaro",
"kab": "cabila",
"kea": "caboverdiano",
+ "kgp": "caingangue",
"yue": "cantonés",
"ca": "catalán",
"ks": "caxemirés",
@@ -42,6 +44,7 @@
"zh": "chinés",
"zh-Hans": "chinés simplificado",
"zh-Hant": "chinés tradicional",
+ "cv": "chuvaxo",
"si": "cingalés",
"ko": "coreano",
"kw": "córnico",
@@ -69,6 +72,7 @@
"fr-CA": "francés canadense",
"fr-CH": "francés suízo",
"fy": "frisón occidental",
+ "frr": "frisón setentrional",
"fur": "friulano",
"ff": "fula",
"gd": "gaélico escocés",
@@ -79,10 +83,12 @@
"kl": "groenlandés",
"guz": "gusii",
"gu": "guxarati",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiano",
"he": "hebreo",
"hi": "hindi",
+ "hi-Latn": "hindi (alfabeto latino)",
"hu": "húngaro",
"sah": "iacuto",
"ig": "igbo",
@@ -97,7 +103,6 @@
"is": "islandés",
"it": "italiano",
"dyo": "jola-fonyi",
- "kgp": "Kaingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -142,6 +147,7 @@
"mzn": "mazandaraní",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavo",
"mn": "mongol",
"mua": "mundang",
@@ -151,12 +157,14 @@
"ne": "nepalí",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
+ "yrl": "nheengatu",
"no": "noruegués",
"nb": "noruegués bokmål",
"nn": "noruegués nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "ann": "obolo",
+ "oc": "occitano",
"or": "odiá",
"om": "oromo",
"os": "ossetio",
@@ -164,10 +172,12 @@
"ps": "paxto",
"fa": "persa",
"pcm": "pidgin nixeriano",
+ "pis": "pijin",
"pl": "polaco",
"pt": "portugués",
"pt-PT": "portugués de Portugal",
"qu": "quechua",
+ "raj": "Rajasthani",
"rm": "romanche",
"ro": "romanés",
"rof": "rombo",
@@ -176,6 +186,7 @@
"rwk": "rwa",
"smn": "saami de Inari",
"se": "saami setentrional",
+ "sms": "saami skolt",
"saq": "samburu",
"sg": "sango",
"sbp": "sangu",
@@ -206,6 +217,7 @@
"teo": "teso",
"bo": "tibetano",
"ti": "tigriña",
+ "tok": "toki pona",
"to": "tongano",
"tr": "turco",
"tk": "turkmeno",
diff --git a/vendor/commerceguys/intl/resources/language/gsw.json b/vendor/commerceguys/intl/resources/language/gsw.json
index 99d5faf1b..a8bdbb4fc 100644
--- a/vendor/commerceguys/intl/resources/language/gsw.json
+++ b/vendor/commerceguys/intl/resources/language/gsw.json
@@ -19,6 +19,7 @@
"bem": "Bemba",
"bez": "Bena",
"bn": "Bengalisch",
+ "bho": "Bhodschpuri",
"my": "Birmanisch",
"brx": "Bodo",
"bs": "Bosnisch",
@@ -53,10 +54,12 @@
"kl": "Gröönländisch",
"gu": "Gujarati",
"guz": "Gusii",
+ "bgc": "Haryanvi",
"ha": "Haussa",
"haw": "Hawaiianisch",
"he": "Hebräisch",
"hi": "Hindi",
+ "hi-Latn": "Hindi (Latiinisch)",
"pt-PT": "Iberischs Portugiisisch",
"ig": "Igbo",
"ga": "Iirisch",
@@ -120,6 +123,7 @@
"mni": "Meithei-Schpraach",
"mer": "Meru",
"mgo": "Metaʼ",
+ "mdf": "Mokschamordwinisch",
"ro-MD": "Moldawisch",
"mn": "Mongolisch",
"mfe": "Morisyen",
@@ -136,6 +140,7 @@
"pcm": "Nigerian Pidgin",
"nd": "Nord-Ndebele-Schpraach",
"se": "Nord-Samisch",
+ "frr": "Nordfriesisch",
"lrc": "Northern Luri",
"no": "Norwegisch",
"nb": "Norwegisch Bokmål",
@@ -143,6 +148,8 @@
"nus": "Nuer",
"nyn": "Nyankole",
"hsb": "Obersorbisch",
+ "ann": "Obolo",
+ "oc": "Okzitanisch",
"or": "Orija",
"om": "Oromo",
"de-AT": "Öschtriichischs Tüütsch",
@@ -150,9 +157,11 @@
"pa": "Pandschabisch",
"ps": "Paschtu",
"fa": "Persisch",
+ "pis": "Pijin",
"pl": "Polnisch",
"pt": "Portugiisisch",
"qu": "Quechua",
+ "raj": "Rajasthani",
"rm": "Rätoromanisch",
"rof": "Rombo",
"rw": "Ruandisch",
@@ -180,6 +189,7 @@
"ksb": "Shambala",
"sd": "Sindhi",
"si": "Singhalesisch",
+ "sms": "Skolt-Samisch",
"sk": "Slowakisch",
"sl": "Slowenisch",
"xog": "Soga",
@@ -201,10 +211,12 @@
"bo": "Tibeetisch",
"ti": "Tigrinja",
"doi": "Togri",
+ "tok": "Toki Pona",
"to": "Tongaisch",
"zh-Hant": "Tradizionells Chineesisch",
"cs": "Tschechisch",
"ce": "Tschetscheenisch",
+ "cv": "Tschuwaschisch",
"dua": "Tuala",
"tr": "Türkisch",
"tk": "Turkmenisch",
diff --git a/vendor/commerceguys/intl/resources/language/gu.json b/vendor/commerceguys/intl/resources/language/gu.json
index a768ba54c..0eff76476 100644
--- a/vendor/commerceguys/intl/resources/language/gu.json
+++ b/vendor/commerceguys/intl/resources/language/gu.json
@@ -24,12 +24,15 @@
"uz": "ઉઝ્બેક",
"or": "ઉડિયા",
"nd": "ઉત્તર દેબેલ",
+ "frr": "ઉત્તરી ફ્રિશિયન",
"lrc": "ઉત્તરી લુરી",
"se": "ઉત્તરી સામી",
"ur": "ઉર્દૂ",
"ebu": "ઍમ્બુ",
"am": "એમ્હારિક",
"et": "એસ્ટોનિયન",
+ "oc": "ઓક્સિટન",
+ "ann": "ઓબોલો",
"om": "ઓરોમો",
"de-AT": "ઓસ્ટ્રિઅન જર્મન",
"en-AU": "ઓસ્ટ્રેલિયન અંગ્રેજી",
@@ -51,6 +54,7 @@
"yue": "કેંટોનીઝ",
"en-CA": "કેનેડિયન અંગ્રેજી",
"fr-CA": "કેનેડિયન ફ્રેંચ",
+ "kgp": "કૈંગાંગ",
"kok": "કોંકણી",
"sw-CD": "કોંગો સ્વાહિલી",
"khq": "કોયરા ચિનિ",
@@ -70,6 +74,7 @@
"el": "ગ્રીક",
"zh": "ચાઇનીઝ",
"cgg": "ચિગા",
+ "cv": "ચૂવાશ",
"cs": "ચેક",
"ce": "ચેચન",
"de": "જર્મન",
@@ -82,6 +87,7 @@
"tr": "ટર્કિશ",
"ti": "ટાઇગ્રિનિયા",
"to": "ટોંગાન",
+ "tok": "ટોકી પોના",
"nl": "ડચ",
"da": "ડેનિશ",
"doi": "ડોગ્રી",
@@ -100,6 +106,7 @@
"dua": "દુઆલા",
"jgo": "નગોમ્બા",
"naq": "નમા",
+ "yrl": "નહેનગાતુ",
"pcm": "નાઇજેરિયન પીજીન",
"nnh": "નીએમબુન",
"nus": "નુએર",
@@ -109,9 +116,10 @@
"nb": "નોર્વેજિયન બોકમાલ",
"nyn": "ન્યાનકોલ",
"pa": "પંજાબી",
- "fy": "પશ્ચિમી ફ્રિસિયન",
+ "fy": "પશ્ચિમિ ફ્રિશિયન",
"ps": "પશ્તો",
"zh-Hant": "પારંપરિક ચાઇનીઝ",
+ "pis": "પિજિન",
"pt": "પોર્ટુગીઝ",
"pl": "પોલીશ",
"fa": "ફારસી",
@@ -136,6 +144,7 @@
"bs": "બોસ્નિયન",
"en-GB": "બ્રિટિશ અંગ્રેજી",
"br": "બ્રેટોન",
+ "bho": "ભોજપુરી",
"jmc": "મકામે",
"kde": "મકોન્ડે",
"mzn": "મઝાન્દેરાની",
@@ -156,6 +165,7 @@
"mk": "મેસેડોનિયન",
"mai": "મૈથિલી",
"mn": "મોંગોલિયન",
+ "mdf": "મોક્ષ",
"mfe": "મોરીસ્યેન",
"ro-MD": "મોલડાવિયન",
"yav": "યાન્ગબેન",
@@ -165,6 +175,7 @@
"yo": "યોરૂબા",
"rwk": "રવા",
"ru": "રશિયન",
+ "raj": "રાજસ્થાની",
"rn": "રૂન્દી",
"ro": "રોમાનિયન",
"rm": "રોમાન્શ",
@@ -213,6 +224,7 @@
"xog": "સોગા",
"so": "સોમાલી",
"gd": "સ્કોટીસ ગેલિક",
+ "sms": "સ્કોલ્ટ સામી",
"es": "સ્પેનિશ",
"sk": "સ્લોવૅક",
"sl": "સ્લોવેનિયન",
@@ -224,8 +236,8 @@
"hu": "હંગેરિયન",
"haw": "હવાઇયન",
"hi": "હિન્દી",
+ "hi-Latn": "હિન્દી (લેટિન)",
"he": "હીબ્રુ",
"ha": "હૌસા",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/he.json b/vendor/commerceguys/intl/resources/language/he.json
index 135e7b7a8..751c685ba 100644
--- a/vendor/commerceguys/intl/resources/language/he.json
+++ b/vendor/commerceguys/intl/resources/language/he.json
@@ -1,9 +1,11 @@
{
+ "ann": "אובולו",
"ee": "אווה",
"ewo": "אוונדו",
"uz": "אוזבקית",
"ug": "אויגורית",
"os": "אוסטית",
+ "oc": "אוקסיטנית",
"uk": "אוקראינית",
"ur": "אורדו",
"om": "אורומו",
@@ -32,6 +34,7 @@
"ak": "אקאן",
"hy": "ארמנית",
"ksf": "באפיה",
+ "bho": "בוג׳פורי",
"brx": "בודו",
"bg": "בולגרית",
"bs": "בוסנית",
@@ -64,8 +67,10 @@
"ha": "האוסה",
"haw": "הוואית",
"nl": "הולנדית",
+ "nl-BE": "הולנדית (פלמית)",
"hu": "הונגרית",
"hi": "הינדי",
+ "hi-Latn": "הינדי (לטיני)",
"vai": "וואי",
"wae": "וואלסר",
"wo": "וולוף",
@@ -79,6 +84,7 @@
"dav": "טאיטה",
"tg": "טג׳יקית",
"to": "טונגאית",
+ "tok": "טוקי פונה",
"tr": "טורקית",
"tk": "טורקמנית",
"tt": "טטרית",
@@ -114,6 +120,7 @@
"ro-MD": "מולדבית",
"mn": "מונגולית",
"mua": "מונדאנג",
+ "mdf": "מוקשה",
"mgo": "מטא",
"ms": "מלאית",
"mg": "מלגשית",
@@ -123,7 +130,7 @@
"mas": "מסאית",
"mk": "מקדונית",
"kde": "מקונדה",
- "mr": "מראטהי",
+ "mr": "מראטהית",
"mer": "מרו",
"naq": "נאמה",
"jgo": "נגומבה",
@@ -134,7 +141,7 @@
"nn": "נורווגית חדשה",
"nb": "נורווגית ספרותית",
"nyn": "ניאנקולה",
- "pcm": "ניגרית פידג׳ית",
+ "yrl": "נינגטו",
"ne": "נפאלית",
"sah": "סאחה",
"sbp": "סאנגו",
@@ -163,6 +170,7 @@
"es-419": "ספרדית (אמריקה הלטינית)",
"es-MX": "ספרדית (מקסיקו)",
"ii": "סצ׳ואן יי",
+ "sms": "סקולט סאמי",
"nds-NL": "סקסונית תחתית",
"sr": "סרבית",
"sc": "סרדינית",
@@ -174,13 +182,16 @@
"pl": "פולנית",
"pt": "פורטוגזית",
"pt-PT": "פורטוגזית (פורטוגל)",
+ "pcm": "פידגין ניגרי",
+ "pis": "פייג׳ין",
"fil": "פיליפינית",
"fi": "פינית",
- "nl-BE": "פלמית",
"pa": "פנג׳אבי",
"fur": "פריולית",
"fy": "פריזית מערבית",
+ "frr": "פריזית צפונית",
"fa": "פרסית",
+ "cv": "צ׳ובאש",
"cgg": "צ׳יגה",
"cs": "צ׳כית",
"ce": "צ׳צ׳נית",
@@ -214,6 +225,7 @@
"hr": "קרואטית",
"mfe": "קריאולית מאוריציאנית",
"ks": "קשמירית",
+ "raj": "ראג׳סטאני",
"rwk": "ראווה",
"rm": "רומאנש",
"rof": "רומבו",
@@ -227,5 +239,5 @@
"ti": "תיגרינית",
"tzm": "תמאזיגת של מרכז מרוקו",
"zgh": "תמזיע׳ת מרוקאית תקנית",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/hi-Latn.json b/vendor/commerceguys/intl/resources/language/hi-Latn.json
new file mode 100644
index 000000000..589d7c1c0
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/language/hi-Latn.json
@@ -0,0 +1,243 @@
+{
+ "af": "Afreeki",
+ "agq": "Aghem",
+ "ak": "Akan",
+ "sq": "Albanian",
+ "am": "Amharic",
+ "ar": "Arabic",
+ "hy": "Armenian",
+ "as": "Assamese",
+ "ast": "Asturian",
+ "asa": "Asu",
+ "en-AU": "Australian English",
+ "de-AT": "Austrian German",
+ "az": "Azerbaijani",
+ "ksf": "Bafia",
+ "bm": "Bambara",
+ "bn": "Bangla",
+ "bas": "Basaa",
+ "eu": "Basque",
+ "be": "Belarusian",
+ "bem": "Bemba",
+ "bez": "Bena",
+ "bho": "Bhojpuri",
+ "brx": "Bodo",
+ "bs": "Bosnian",
+ "br": "Breton",
+ "en-GB": "British English",
+ "bg": "Bulgarian",
+ "my": "Burmese",
+ "en-CA": "Canadian English",
+ "fr-CA": "Canadian French",
+ "yue": "Cantonese",
+ "ca": "Catalan",
+ "ceb": "Cebuano",
+ "tzm": "Central Atlas Tamazight",
+ "ce": "Chechen",
+ "chr": "Cherokee",
+ "cgg": "Chiga",
+ "zh": "Chinese",
+ "cv": "Chuvash",
+ "ksh": "Colognian",
+ "sw-CD": "Congo Swahili",
+ "kw": "Cornish",
+ "hr": "Croatian",
+ "cs": "Czech",
+ "da": "Danish",
+ "doi": "Dogri",
+ "dua": "Duala",
+ "nl": "Dutch",
+ "dz": "Dzongkha",
+ "ebu": "Embu",
+ "en": "English",
+ "et": "Estonian",
+ "pt-PT": "European Portuguese",
+ "ee": "Ewe",
+ "ewo": "Ewondo",
+ "fa": "Faarsi",
+ "fo": "Faroese",
+ "fil": "Filipino",
+ "fi": "Finnish",
+ "nl-BE": "Flemish",
+ "fr": "French",
+ "fur": "Friulian",
+ "ff": "Fulah",
+ "gl": "Galician",
+ "lg": "Ganda",
+ "ka": "Georgian",
+ "de": "German",
+ "el": "Greek",
+ "gu": "Gujarati",
+ "guz": "Gusii",
+ "bgc": "Haryanvi",
+ "ha": "Hausa",
+ "haw": "Hawaiian",
+ "he": "Hebrew",
+ "hi": "Hindi",
+ "hi-Latn": "Hindi (Latin)",
+ "hu": "Hungarian",
+ "is": "Icelandic",
+ "ig": "Igbo",
+ "smn": "Inari Sami",
+ "id": "Indonesian",
+ "iu": "Inuktitut",
+ "ga": "Irish",
+ "it": "Italian",
+ "ja": "Japanese",
+ "jv": "Javanese",
+ "dyo": "Jola-Fonyi",
+ "kea": "Kabuverdianu",
+ "kab": "Kabyle",
+ "kgp": "Kaingang",
+ "kkj": "Kako",
+ "kl": "Kalaallisut",
+ "kln": "Kalenjin",
+ "kam": "Kamba",
+ "kn": "Kannada",
+ "ks": "Kashmiri",
+ "kk": "Kazakh",
+ "km": "Khmer",
+ "ki": "Kikuyu",
+ "rw": "Kinyarwanda",
+ "kok": "Konkani",
+ "ko": "Korean",
+ "khq": "Koyra Chiini",
+ "ses": "Koyraboro Senni",
+ "ku": "Kurdish",
+ "ckb": "Kurdish, Sorani",
+ "nmg": "Kwasio",
+ "ky": "Kyrgyz",
+ "lkt": "Lakota",
+ "lag": "Langi",
+ "lo": "Lao",
+ "es-419": "Latin American Spanish",
+ "lv": "Latvian",
+ "ln": "Lingala",
+ "lt": "Lithuanian",
+ "nds": "Low German",
+ "nds-NL": "Low Saxon",
+ "dsb": "Lower Sorbian",
+ "lu": "Luba-Katanga",
+ "luo": "Luo",
+ "lb": "Luxembourgish",
+ "luy": "Luyia",
+ "mk": "Macedonian",
+ "jmc": "Machame",
+ "mai": "Maithili",
+ "mgh": "Makhuwa-Meetto",
+ "kde": "Makonde",
+ "mg": "Malagasy",
+ "ms": "Malay",
+ "ml": "Malayalam",
+ "mt": "Maltese",
+ "mni": "Manipuri",
+ "mi": "Māori",
+ "mr": "Marathi",
+ "mas": "Masai",
+ "mzn": "Mazanderani",
+ "mer": "Meru",
+ "mgo": "Metaʼ",
+ "es-MX": "Mexican Spanish",
+ "mdf": "Moksha",
+ "ro-MD": "Moldavian",
+ "mn": "Mongolian",
+ "mfe": "Morisyen",
+ "mua": "Mundang",
+ "naq": "Nama",
+ "ne": "Nepali",
+ "nnh": "Ngiemboon",
+ "jgo": "Ngomba",
+ "yrl": "Nheengatu",
+ "pcm": "Nigerian Pidgin",
+ "nd": "North Ndebele",
+ "frr": "Northern Frisian",
+ "lrc": "Northern Luri",
+ "se": "Northern Sami",
+ "no": "Norwegian",
+ "nb": "Norwegian Bokmal",
+ "nn": "Norwegian Nynorsk",
+ "nus": "Nuer",
+ "nyn": "Nyankole",
+ "ann": "Obolo",
+ "oc": "Occitan",
+ "or": "Odia",
+ "om": "Oromo",
+ "os": "Ossetic",
+ "ps": "Pashto",
+ "pis": "Pijin",
+ "pl": "Polish",
+ "pt": "Portuguese",
+ "pa": "Punjabi",
+ "qu": "Quechua",
+ "raj": "Rajasthani",
+ "ro": "Romanian",
+ "rm": "Romansh",
+ "rof": "Rombo",
+ "rn": "Rundi",
+ "ru": "Russian",
+ "rwk": "Rwa",
+ "saq": "Samburu",
+ "sg": "Sango",
+ "sbp": "Sangu",
+ "sa": "Sanskrit",
+ "sat": "Santali",
+ "sc": "Sardinian",
+ "gd": "Scottish Gaelic",
+ "seh": "Sena",
+ "sr": "Serbian",
+ "ksb": "Shambala",
+ "sn": "Shona",
+ "ii": "Sichuan Yi",
+ "zh-Hans": "Simplified Chinese",
+ "sd": "Sindhi",
+ "si": "Sinhala",
+ "sms": "Skolt Sami",
+ "sk": "Slovak",
+ "sl": "Slovenian",
+ "xog": "Soga",
+ "so": "Somali",
+ "es": "Spanish",
+ "zgh": "Standard Moroccan Tamazight",
+ "su": "Sundanese",
+ "sw": "Swahili",
+ "sv": "Swedish",
+ "fr-CH": "Swiss French",
+ "gsw": "Swiss German",
+ "de-CH": "Swiss High German",
+ "shi": "Tachelhit",
+ "dav": "Taita",
+ "tg": "Tajik",
+ "ta": "Tamil",
+ "twq": "Tasawaq",
+ "tt": "Tatar",
+ "te": "Telugu",
+ "teo": "Teso",
+ "th": "Thai",
+ "bo": "Tibbati",
+ "ti": "Tigrinya",
+ "tok": "Toki Pona",
+ "to": "Tongan",
+ "zh-Hant": "Traditional Chinese",
+ "tr": "Turkish",
+ "tk": "Turkmen",
+ "ug": "Uighur",
+ "uk": "Ukrainian",
+ "hsb": "Upper Sorbian",
+ "ur": "Urdu",
+ "uz": "Uzbek",
+ "vai": "Vai",
+ "vi": "Vietnamese",
+ "vun": "Vunjo",
+ "wa": "Walloon",
+ "wae": "Walser",
+ "cy": "Welsh",
+ "fy": "Western Frisian",
+ "wo": "Wolof",
+ "xh": "Xhosa",
+ "sah": "Yakut",
+ "yav": "Yangben",
+ "yi": "Yiddish",
+ "yo": "Yoruba",
+ "dje": "Zarma",
+ "zu": "Zulu"
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/hi.json b/vendor/commerceguys/intl/resources/language/hi.json
index 96bc4941e..4a9aa8628 100644
--- a/vendor/commerceguys/intl/resources/language/hi.json
+++ b/vendor/commerceguys/intl/resources/language/hi.json
@@ -16,14 +16,14 @@
"id": "इंडोनेशियाई",
"it": "इतालवी",
"smn": "इनारी सामी",
- "iu": "इनूकीटूत्",
+ "iu": "इनुक्टिटुट",
"ewo": "इवोन्डो",
"ig": "ईग्बो",
"ee": "ईवे",
"ug": "उइगर",
"uz": "उज़्बेक",
- "or": "उड़िया",
"nd": "उत्तरी देबेल",
+ "frr": "उत्तरी फ़्रीसियाई",
"lrc": "उत्तरी लूरी",
"ur": "उर्दू",
"hsb": "ऊपरी सॉर्बियन",
@@ -31,7 +31,10 @@
"et": "एस्टोनियाई",
"de-AT": "ऑस्ट्रियाई जर्मन",
"en-AU": "ऑस्ट्रेलियाई अंग्रेज़ी",
+ "or": "ओड़िया",
+ "ann": "ओबोलो",
"om": "ओरोमो",
+ "oc": "ओसीटान",
"os": "ओस्सेटिक",
"kk": "कज़ाख़",
"en-CA": "कनाडाई अंग्रेज़ी",
@@ -43,6 +46,7 @@
"kln": "कलेंजिन",
"ks": "कश्मीरी",
"sw-CD": "कांगो स्वाहिली",
+ "kgp": "काइंगांग",
"kkj": "काको",
"ca": "कातालान",
"kea": "काबुवेर्दियानु",
@@ -68,6 +72,7 @@
"nnh": "गैम्बू",
"gl": "गैलिशियन",
"zh": "चीनी",
+ "cv": "चूवाश",
"cs": "चेक",
"ce": "चेचन",
"chr": "चेरोकी",
@@ -82,6 +87,7 @@
"twq": "टासवाक",
"teo": "टेसो",
"to": "टोंगन",
+ "tok": "टोकी पोना",
"nl": "डच",
"da": "डेनिश",
"doi": "डोगरी",
@@ -104,6 +110,7 @@
"dsb": "निचला सॉर्बियन",
"nds-NL": "निचली सैक्सन",
"nus": "नुएर",
+ "yrl": "नेइंगातू",
"ne": "नेपाली",
"se": "नॉर्दन सामी",
"no": "नॉर्वेजियाई",
@@ -113,6 +120,7 @@
"pa": "पंजाबी",
"fy": "पश्चिमी फ़्रिसियाई",
"ps": "पश्तो",
+ "pis": "पाईजिन",
"zh-Hant": "पारंपरिक चीनी",
"pt": "पुर्तगाली",
"pl": "पोलिश",
@@ -138,6 +146,7 @@
"bs": "बोस्नियाई",
"en-GB": "ब्रिटिश अंग्रेज़ी",
"br": "ब्रेटन",
+ "bho": "भोजपुरी",
"mn": "मंगोलियाई",
"mk": "मकदूनियाई",
"mni": "मणिपुरी",
@@ -159,6 +168,7 @@
"es-MX": "मैक्सिकन स्पेनिश",
"mgh": "मैखुवा-मीट्टो",
"mai": "मैथिली",
+ "mdf": "मोक्ष",
"mfe": "मोरीस्येन",
"ro-MD": "मोलडावियन",
"yi": "यहूदी",
@@ -169,6 +179,7 @@
"pt-PT": "यूरोपीय पुर्तगाली",
"yo": "योरूबा",
"rwk": "रवा",
+ "raj": "राजस्थानी",
"rn": "रुन्दी",
"ru": "रूसी",
"ro": "रोमानियाई",
@@ -213,7 +224,8 @@
"so": "सोमाली",
"ckb": "सोरानी कुर्दिश",
"gd": "स्कॉटिश गाएलिक",
- "es": "स्पेनी",
+ "sms": "स्कोल्ट सामी",
+ "es": "स्पेनिश",
"sk": "स्लोवाक",
"sl": "स्लोवेनियाई",
"sw": "स्वाहिली",
@@ -224,8 +236,8 @@
"hu": "हंगेरियाई",
"haw": "हवाई",
"hi": "हिन्दी",
+ "hi-Latn": "हिन्दी (लैटिन)",
"he": "हिब्रू",
"ha": "हौसा",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/hr.json b/vendor/commerceguys/intl/resources/language/hr.json
index f73223316..cf95a4fa9 100644
--- a/vendor/commerceguys/intl/resources/language/hr.json
+++ b/vendor/commerceguys/intl/resources/language/hr.json
@@ -19,6 +19,7 @@
"eu": "baskijski",
"bem": "bemba",
"bez": "bena",
+ "bho": "bhojpuri",
"be": "bjeloruski",
"brx": "bodo",
"bs": "bosanski",
@@ -31,6 +32,7 @@
"ce": "čečenski",
"chr": "čerokijski",
"cs": "češki",
+ "cv": "čuvaški",
"da": "danski",
"doi": "dogri",
"dsb": "donjolužički",
@@ -59,10 +61,12 @@
"ka": "gruzijski",
"gu": "gudžaratski",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "havajski",
"he": "hebrejski",
"hi": "hindski",
+ "hi-Latn": "hindski (latinica)",
"hr": "hrvatski",
"ig": "igbo",
"smn": "inari sami",
@@ -77,7 +81,7 @@
"dyo": "jola-fonyi",
"yo": "jorupski",
"kab": "kabilski",
- "kgp": "Kaingang",
+ "kgp": "kaingang",
"kkj": "kako",
"kl": "kalaallisut",
"kln": "kalenjin",
@@ -136,6 +140,7 @@
"es-MX": "meksički španjolski",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavski",
"mn": "mongolski",
"mua": "mundang",
@@ -143,7 +148,7 @@
"ne": "nepalski",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
+ "yrl": "nheengatu",
"pcm": "nigerijski pidžin",
"nl": "nizozemski",
"no": "norveški",
@@ -152,14 +157,18 @@
"nus": "nuerski",
"nyn": "nyankole",
"de": "njemački",
+ "ann": "obolo",
+ "oc": "okcitanski",
"or": "orijski",
"om": "oromski",
"os": "osetski",
"pa": "pandžapski",
"ps": "paštunski",
"fa": "perzijski",
+ "pis": "pijin",
"pl": "poljski",
"pt": "portugalski",
+ "raj": "rajasthani",
"rm": "retoromanski",
"rof": "rombo",
"ro": "rumunjski",
@@ -180,7 +189,9 @@
"si": "sinhaleški",
"nd": "sjeverni ndebele",
"se": "sjeverni sami",
+ "frr": "sjevernofrizijski",
"lrc": "sjevernolurski",
+ "sms": "skolt sami",
"sk": "slovački",
"sl": "slovenski",
"xog": "soga",
@@ -208,6 +219,7 @@
"teo": "teso",
"bo": "tibetski",
"ti": "tigrinja",
+ "tok": "toki pona",
"to": "tonganski",
"tk": "turkmenski",
"tr": "turski",
diff --git a/vendor/commerceguys/intl/resources/language/hu.json b/vendor/commerceguys/intl/resources/language/hu.json
index b0b5ce66e..1d9191157 100644
--- a/vendor/commerceguys/intl/resources/language/hu.json
+++ b/vendor/commerceguys/intl/resources/language/hu.json
@@ -23,6 +23,7 @@
"bem": "bemba",
"bez": "bena",
"brx": "bodo",
+ "bho": "bodzspuri",
"bg": "bolgár",
"bs": "bosnyák",
"br": "breton",
@@ -31,12 +32,14 @@
"ce": "csecsen",
"cs": "cseh",
"chr": "cseroki",
+ "cv": "csuvas",
"da": "dán",
"doi": "dogri",
"dua": "duala",
"dz": "dzsonga",
"zh-Hans": "egyszerűsített kínai",
"ebu": "embu",
+ "frr": "északi fríz",
"lrc": "északi luri",
"nd": "északi ndebele",
"se": "északi számi",
@@ -60,10 +63,12 @@
"gu": "gudzsaráti",
"guz": "guszii",
"zh-Hant": "hagyományos kínai",
+ "bgc": "Haryanvi",
"ha": "hausza",
"haw": "hawaii",
"he": "héber",
"hi": "hindi",
+ "hi-Latn": "hindi (Latin)",
"nl": "holland",
"hr": "horvát",
"ig": "igbó",
@@ -80,7 +85,7 @@
"yo": "joruba",
"kab": "kabije",
"kea": "kabuverdianu",
- "kgp": "Kaingang",
+ "kgp": "kaingang",
"kkj": "kakó",
"kln": "kalendzsin",
"kam": "kamba",
@@ -101,6 +106,7 @@
"rn": "kirundi",
"khq": "kojra-csíni",
"ses": "kojra-szenni",
+ "sms": "kolta számi",
"sw-CD": "kongói szuahéli",
"kok": "konkani",
"ko": "koreai",
@@ -140,6 +146,7 @@
"mzn": "mázanderáni",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksán",
"ro-MD": "moldvai",
"mn": "mongol",
"mua": "mundang",
@@ -149,7 +156,7 @@
"nnh": "ngiemboon",
"jgo": "ngomba",
"nmg": "ngumba",
- "yrl": "Nheengatu",
+ "yrl": "nheengatu",
"pcm": "nigériai pidgin",
"no": "norvég",
"nb": "norvég (bokmål)",
@@ -157,7 +164,9 @@
"nus": "nuer",
"nyn": "nyankole",
"fy": "nyugati fríz",
+ "ann": "obolo",
"or": "odia",
+ "oc": "okszitán",
"it": "olasz",
"om": "oromo",
"ru": "orosz",
@@ -167,7 +176,9 @@
"pa": "pandzsábi",
"ps": "pastu",
"fa": "perzsa",
+ "pis": "pidzsin",
"pt": "portugál",
+ "raj": "radzsasztáni",
"rm": "rétoromán",
"ro": "román",
"rof": "rombo",
@@ -211,6 +222,7 @@
"th": "thai",
"bo": "tibeti",
"ti": "tigrinya",
+ "tok": "toki pona",
"to": "tongai",
"tr": "török",
"tk": "türkmén",
diff --git a/vendor/commerceguys/intl/resources/language/hy.json b/vendor/commerceguys/intl/resources/language/hy.json
index 76c322c17..62d2d4c39 100644
--- a/vendor/commerceguys/intl/resources/language/hy.json
+++ b/vendor/commerceguys/intl/resources/language/hy.json
@@ -7,6 +7,7 @@
"as": "ասամերեն",
"asa": "ասու",
"ast": "աստուրերեն",
+ "zh-Hant": "ավանդական չինարեն",
"en-AU": "ավստրալիական անգլերեն",
"de-AT": "ավստրիական գերմաներեն",
"ar": "արաբերեն",
@@ -22,6 +23,7 @@
"bez": "բենա",
"bn": "բենգալերեն",
"my": "բիրմայերեն",
+ "bho": "բհոպուրի",
"brx": "բոդո",
"bs": "բոսնիերեն",
"bg": "բուլղարերեն",
@@ -76,6 +78,7 @@
"hr": "խորվաթերեն",
"kab": "կաբիլերեն",
"kea": "կաբուվերդերեն",
+ "kgp": "կաինգան",
"kl": "կալաալիսուտ",
"kln": "կալենջին",
"kkj": "կակո",
@@ -100,9 +103,11 @@
"ha": "հաուսա",
"haw": "հավայիերեն",
"hi": "հինդի",
+ "hi-Latn": "հինդի (լատինական)",
"lrc": "հյուսիսային լուրիերեն",
"nd": "հյուսիսային նդեբելե",
"se": "հյուսիսային սաամի",
+ "frr": "հյուսիսային ֆրիզերեն",
"nl": "հոլանդերեն",
"el": "հունարեն",
"hu": "հունգարերեն",
@@ -128,6 +133,7 @@
"mer": "մերու",
"es-MX": "մեքսիկական իսպաներեն",
"ro-MD": "մոլդովերեն",
+ "mdf": "մոկշայերեն",
"mn": "մոնղոլերեն",
"mfe": "մորիսյեն",
"mua": "մունդանգ",
@@ -138,7 +144,8 @@
"nnh": "նգիեմբուն",
"jgo": "նգոմբա",
"ne": "նեպալերեն",
- "pcm": "նիգերյան կրեոլերեն",
+ "pcm": "նիգերիական փիջին",
+ "yrl": "նինգաթու",
"nyn": "նյանկոլե",
"nn": "նոր նորվեգերեն",
"no": "նորվեգերեն",
@@ -160,12 +167,13 @@
"chr": "չերոկի",
"cgg": "չիգա",
"zh": "չինարեն",
- "zh-Hant": "չինարեն, ավանդական",
+ "cv": "չուվաշերեն",
"zh-Hans": "պարզեցված չինարեն",
"fa": "պարսկերեն",
"pt": "պորտուգալերեն",
"dyo": "ջոլա-ֆոնյի",
"dz": "ջոնգքհա",
+ "raj": "ռաջաստաներեն",
"rm": "ռոմանշերեն",
"rof": "ռոմբո",
"ro": "ռումիներեն",
@@ -186,6 +194,7 @@
"ii": "սիչուան",
"sk": "սլովակերեն",
"sl": "սլովեներեն",
+ "sms": "սկոլտ սաամի",
"xog": "սոգա",
"so": "սոմալիերեն",
"ckb": "սորանի քրդերեն",
@@ -208,17 +217,21 @@
"teo": "տեսո",
"bo": "տիբեթերեն",
"ti": "տիգրինյա",
+ "tok": "տոկիպոնա",
"to": "տոնգերեն",
"pa": "փենջաբերեն",
+ "pis": "փիջին",
"ps": "փուշթու",
"ks": "քաշմիրերեն",
"km": "քմերերեն",
"ksh": "քյոլներեն",
"xh": "քոսա",
"ku": "քրդերեն",
+ "ann": "օբոլո",
"os": "օսերեն",
"or": "օրիյա",
"om": "օրոմո",
+ "oc": "օքսիտաներեն",
"fo": "ֆարյորերեն",
"fil": "ֆիլիպիներեն",
"fi": "ֆիններեն",
@@ -226,6 +239,5 @@
"ff": "ֆուլահ",
"fr": "ֆրանսերեն",
"fur": "ֆրիուլիերեն",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/id.json b/vendor/commerceguys/intl/resources/language/id.json
index 1e67d132b..97c5ec34e 100644
--- a/vendor/commerceguys/intl/resources/language/id.json
+++ b/vendor/commerceguys/intl/resources/language/id.json
@@ -20,6 +20,7 @@
"bem": "Bemba",
"bez": "Bena",
"bn": "Bengali",
+ "bho": "Bhojpuri",
"brx": "Bodo",
"nb": "Bokmål Norwegia",
"bs": "Bosnia",
@@ -30,6 +31,7 @@
"ce": "Chechen",
"chr": "Cherokee",
"cs": "Cheska",
+ "cv": "Chuvash",
"da": "Dansk",
"ksh": "Dialek Kolsch",
"doi": "Dogri",
@@ -42,6 +44,7 @@
"fo": "Faroe",
"fil": "Filipino",
"fy": "Frisia Barat",
+ "frr": "Frisia Utara",
"fur": "Friuli",
"ff": "Fula",
"gd": "Gaelik Skotlandia",
@@ -50,9 +53,11 @@
"ka": "Georgia",
"gu": "Gujarat",
"guz": "Gusii",
+ "bgc": "Haryanvi",
"ha": "Hausa",
"haw": "Hawaii",
"hi": "Hindi",
+ "hi-Latn": "Hindi (Latin)",
"hu": "Hungaria",
"he": "Ibrani",
"ig": "Igbo",
@@ -60,7 +65,7 @@
"id": "Indonesia",
"en": "Inggris",
"en-AU": "Inggris (Australia)",
- "en-GB": "Inggris (Inggris)",
+ "en-GB": "Inggris (Britania)",
"en-CA": "Inggris (Kanada)",
"iu": "Inuktitut",
"ga": "Irlandia",
@@ -128,6 +133,7 @@
"ms": "Melayu",
"mer": "Meru",
"mgo": "Meta’",
+ "mdf": "Moksha",
"ro-MD": "Moldavia",
"mn": "Mongolia",
"mfe": "Morisien",
@@ -142,12 +148,15 @@
"nus": "Nuer",
"nyn": "Nyankole",
"nn": "Nynorsk Norwegia",
+ "ann": "Obolo",
"or": "Oriya",
"om": "Oromo",
+ "oc": "Ositania",
"os": "Ossetia",
"ps": "Pashto",
"fa": "Persia",
"pcm": "Pidgin Nigeria",
+ "pis": "Pijin",
"pl": "Polski",
"pt": "Portugis",
"pt-PT": "Portugis (Eropa)",
@@ -156,6 +165,7 @@
"fr-CH": "Prancis (Swiss)",
"pa": "Punjabi",
"qu": "Quechua",
+ "raj": "Rajasthani",
"rm": "Reto-Roman",
"rof": "Rombo",
"ro": "Rumania",
@@ -177,6 +187,7 @@
"ii": "Sichuan Yi",
"sd": "Sindhi",
"si": "Sinhala",
+ "sms": "Skolt Sami",
"sk": "Slovak",
"sl": "Sloven",
"xog": "Soga",
@@ -207,6 +218,7 @@
"zh": "Tionghoa",
"zh-Hans": "Tionghoa (Sederhana)",
"zh-Hant": "Tionghoa (Tradisional)",
+ "tok": "Toki Pona",
"to": "Tonga",
"tr": "Turki",
"tk": "Turkmen",
diff --git a/vendor/commerceguys/intl/resources/language/is.json b/vendor/commerceguys/intl/resources/language/is.json
index 1e149d42a..a5b6418f3 100644
--- a/vendor/commerceguys/intl/resources/language/is.json
+++ b/vendor/commerceguys/intl/resources/language/is.json
@@ -19,6 +19,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalska",
+ "bho": "bojpúrí",
"bs": "bosníska",
"brx": "bódó",
"en-GB": "bresk enska",
@@ -52,11 +53,13 @@
"kl": "grænlenska",
"guz": "gusii",
"gu": "gújaratí",
+ "bgc": "Haryanvi",
"haw": "havaíska",
"ha": "hása",
"hsb": "hásorbneska",
"he": "hebreska",
"hi": "hindí",
+ "hi-Latn": "hindí (latneskt)",
"nl": "hollenska",
"be": "hvítrússneska",
"id": "indónesíska",
@@ -72,7 +75,7 @@
"dyo": "jola-fonyi",
"yo": "jórúba",
"kab": "kabíle",
- "kgp": "Kaingang",
+ "kgp": "kaingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -135,6 +138,7 @@
"mgo": "meta’",
"es-MX": "mexíkósk spænska",
"ckb": "miðkúrdíska",
+ "mdf": "moksa",
"ro-MD": "moldóvska",
"mn": "mongólska",
"mua": "mundang",
@@ -142,9 +146,10 @@
"ne": "nepalska",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
+ "yrl": "nheengatu",
"pcm": "nígerískt pidgin",
"nd": "norður-ndebele",
+ "frr": "norðurfrísneska",
"lrc": "norðurlúrí",
"se": "norðursamíska",
"no": "norska",
@@ -152,14 +157,18 @@
"nus": "núer",
"nyn": "nyankole",
"nn": "nýnorska",
+ "ann": "obolo",
+ "oc": "oksítaníska",
"om": "oromo",
"os": "ossetíska",
"or": "óría",
"ps": "pastú",
"fa": "persneska",
+ "pis": "pijin",
"pt": "portúgalska",
"pl": "pólska",
"pa": "púnjabí",
+ "raj": "rajastaní",
"rof": "rombó",
"rm": "rómanska",
"es-419": "rómönsk-amerísk spænska",
@@ -180,6 +189,8 @@
"si": "singalíska",
"ii": "sísúanjí",
"ksb": "sjambala",
+ "cv": "sjúvas",
+ "sms": "skoltesamíska",
"gd": "skosk gelíska",
"sk": "slóvakíska",
"sl": "slóvenska",
@@ -208,6 +219,7 @@
"cs": "tékkneska",
"bo": "tíbeska",
"ti": "tígrinja",
+ "tok": "toki pona",
"to": "tongverska",
"ce": "tsjetsjenska",
"tk": "túrkmenska",
diff --git a/vendor/commerceguys/intl/resources/language/it.json b/vendor/commerceguys/intl/resources/language/it.json
index 489a904cd..0e0abc220 100644
--- a/vendor/commerceguys/intl/resources/language/it.json
+++ b/vendor/commerceguys/intl/resources/language/it.json
@@ -21,6 +21,7 @@
"nds-NL": "basso tedesco olandese",
"bez": "bena",
"bn": "bengalese",
+ "bho": "bhojpuri",
"be": "bielorusso",
"my": "birmano",
"brx": "bodo",
@@ -39,6 +40,7 @@
"zh": "cinese",
"zh-Hans": "cinese semplificato",
"zh-Hant": "cinese tradizionale",
+ "cv": "ciuvascio",
"ksh": "coloniese",
"ko": "coreano",
"kw": "cornico",
@@ -63,6 +65,7 @@
"fr-CA": "francese canadese",
"fr-CH": "francese svizzero",
"fy": "frisone occidentale",
+ "frr": "frisone settentrionale",
"fur": "friulano",
"ff": "fulah",
"gd": "gaelico scozzese",
@@ -76,9 +79,11 @@
"kl": "groenlandese",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiano",
"hi": "hindi",
+ "hi-Latn": "hindi (latino)",
"ig": "igbo",
"id": "indonesiano",
"en": "inglese",
@@ -132,6 +137,7 @@
"mzn": "mazandarani",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavo",
"mn": "mongolo",
"mua": "mundang",
@@ -146,6 +152,8 @@
"nn": "norvegese nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "ann": "obolo",
+ "oc": "occitano",
"or": "odia",
"nl": "olandese",
"om": "oromo",
@@ -153,11 +161,13 @@
"ps": "pashto",
"fa": "persiano",
"pcm": "pidgin nigeriano",
+ "pis": "pijin",
"pl": "polacco",
"pt": "portoghese",
"pt-PT": "portoghese europeo",
"pa": "punjabi",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "romancio",
"rof": "rombo",
"ro": "rumeno",
@@ -168,6 +178,7 @@
"saq": "samburu",
"se": "sami del nord",
"smn": "sami di Inari",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sanscrito",
@@ -204,9 +215,10 @@
"gsw": "tedesco svizzero",
"te": "telugu",
"teo": "teso",
- "th": "thai",
+ "th": "thailandese",
"bo": "tibetano",
"ti": "tigrino",
+ "tok": "toki pona",
"to": "tongano",
"tr": "turco",
"tk": "turcomanno",
diff --git a/vendor/commerceguys/intl/resources/language/ja.json b/vendor/commerceguys/intl/resources/language/ja.json
index 9d03c991c..cccd51a92 100644
--- a/vendor/commerceguys/intl/resources/language/ja.json
+++ b/vendor/commerceguys/intl/resources/language/ja.json
@@ -1,4 +1,5 @@
{
+ "bgc": "Haryanvi",
"is": "アイスランド語",
"ga": "アイルランド語",
"ak": "アカン語",
@@ -34,7 +35,9 @@
"ebu": "エンブ語",
"en-AU": "オーストラリア英語",
"os": "オセット語",
+ "oc": "オック語",
"or": "オディア語",
+ "ann": "オボロ語",
"nl": "オランダ語",
"om": "オロモ語",
"kea": "カーボベルデ・クレオール語",
@@ -88,6 +91,7 @@
"sv": "スウェーデン語",
"zu": "ズールー語",
"gd": "スコットランド・ゲール語",
+ "sms": "スコルト・サーミ語",
"es": "スペイン語",
"es-MX": "スペイン語 (メキシコ)",
"es-419": "スペイン語 (ラテンアメリカ)",
@@ -113,6 +117,7 @@
"chr": "チェロキー語",
"cgg": "チガ語",
"bo": "チベット語",
+ "cv": "チュヴァシ語",
"ti": "ティグリニア語",
"teo": "テソ語",
"te": "テルグ語",
@@ -121,6 +126,7 @@
"de-AT": "ドイツ語 (オーストリア)",
"dua": "ドゥアラ語",
"doi": "ドーグリー語",
+ "tok": "トキポナ語",
"tk": "トルクメン語",
"tr": "トルコ語",
"to": "トンガ語",
@@ -142,7 +148,9 @@
"hu": "ハンガリー語",
"pa": "パンジャブ語",
"bm": "バンバラ語",
+ "pis": "ピジン語",
"hi": "ヒンディー語",
+ "hi-Latn": "ヒンディー語 (ラテン文字)",
"fil": "フィリピノ語",
"fi": "フィンランド語",
"fo": "フェロー語",
@@ -161,6 +169,7 @@
"fa": "ペルシア語",
"bn": "ベンガル語",
"bem": "ベンバ語",
+ "bho": "ボージュプリー語",
"pl": "ポーランド語",
"bs": "ボスニア語",
"brx": "ボド語",
@@ -185,10 +194,12 @@
"mgo": "メタ語",
"mer": "メル語",
"mfe": "モーリシャス・クレオール語",
+ "mdf": "モクシャ語",
"ro-MD": "モルダビア語",
"mn": "モンゴル語",
"yav": "ヤンベン語",
"yo": "ヨルバ語",
+ "raj": "ラージャスターン語",
"lo": "ラオ語",
"lkt": "ラコタ語",
"lv": "ラトビア語",
@@ -226,6 +237,7 @@
"de-CH": "標準ドイツ語 (スイス)",
"zgh": "標準モロッコ タマジクト語",
"se": "北サーミ語",
+ "frr": "北フリジア語",
"lrc": "北ロル語",
"nd": "北ンデベレ語"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/ka.json b/vendor/commerceguys/intl/resources/language/ka.json
index be385762f..05ef1a571 100644
--- a/vendor/commerceguys/intl/resources/language/ka.json
+++ b/vendor/commerceguys/intl/resources/language/ka.json
@@ -23,6 +23,7 @@
"my": "ბირმული",
"brx": "ბოდო",
"bs": "ბოსნიური",
+ "bho": "ბოჯპური",
"br": "ბრეტონული",
"en-GB": "ბრიტანული ინგლისური",
"bg": "ბულგარული",
@@ -73,6 +74,7 @@
"it": "იტალიური",
"kab": "კაბილური",
"kea": "კაბუვერდიანუ",
+ "kgp": "კაინგანგი",
"kkj": "კაკო",
"kln": "კალენჯინი",
"kam": "კამბა",
@@ -123,10 +125,12 @@
"ro-MD": "მოლდავური",
"mn": "მონღოლური",
"mfe": "მორისიენი",
+ "mdf": "მოქშა",
"mua": "მუნდანგი",
"naq": "ნამა",
"nnh": "ნგიმბუნი",
"jgo": "ნგომბა",
+ "yrl": "ნენგატუ",
"ne": "ნეპალური",
"nyn": "ნიანკოლე",
"pcm": "ნიგერიული კრეოლური",
@@ -135,13 +139,17 @@
"nb": "ნორვეგიული ბუკმოლი",
"nn": "ნორვეგიული ნიუნორსკი",
"nus": "ნუერი",
+ "ann": "ობოლო",
"or": "ორია",
"om": "ორომო",
"os": "ოსური",
+ "oc": "ოქსიტანური",
"pa": "პენჯაბური",
+ "pis": "პიჯინი",
"pl": "პოლონური",
"pt": "პორტუგალიური",
"ps": "პუშტუ",
+ "raj": "რაჯასთანი",
"rm": "რეტორომანული",
"rof": "რომბო",
"rwk": "რუა",
@@ -160,6 +168,7 @@
"sd": "სინდჰური",
"si": "სინჰალური",
"ii": "სიჩუანის ი",
+ "sms": "სკოლტ-საამური",
"sk": "სლოვაკური",
"sl": "სლოვენური",
"xog": "სოგა",
@@ -169,7 +178,7 @@
"zgh": "სტანდარტული მაროკოული ტამაზიგხტი",
"sw": "სუაჰილი",
"su": "სუნდური",
- "th": "ტაი",
+ "th": "ტაილანდური",
"dav": "ტაიტა",
"ta": "ტამილური",
"twq": "ტასავაქი",
@@ -178,6 +187,7 @@
"teo": "ტესო",
"bo": "ტიბეტური",
"ti": "ტიგრინია",
+ "tok": "ტოკი-პონა",
"to": "ტონგანური",
"zh-Hant": "ტრადიციული ჩინური",
"cy": "უელსური",
@@ -219,6 +229,8 @@
"lrc": "ჩრდილოეთ ლური",
"nd": "ჩრდილოეთ ნდებელე",
"se": "ჩრდილოეთ საამური",
+ "frr": "ჩრდილოფრიზიული",
+ "cv": "ჩუვაშური",
"tzm": "ცენტრალური მოროკოს ტამაზიგხტი",
"ckb": "ცენტრალური ქურთული",
"dz": "ძონგკხა",
@@ -226,6 +238,6 @@
"haw": "ჰავაიური",
"ha": "ჰაუსა",
"hi": "ჰინდი",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "hi-Latn": "ჰინდი (ლათინური)",
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/kk.json b/vendor/commerceguys/intl/resources/language/kk.json
index 31684ee28..ce9987414 100644
--- a/vendor/commerceguys/intl/resources/language/kk.json
+++ b/vendor/commerceguys/intl/resources/language/kk.json
@@ -1,8 +1,9 @@
{
- "en-AU": "австралиялық ағылшын тілі",
- "de-AT": "австриялық неміс тілі",
"agq": "агем тілі",
"en": "ағылшын тілі",
+ "en-AU": "ағылшын тілі (Аустралия)",
+ "en-CA": "ағылшын тілі (Канада)",
+ "en-GB": "ағылшын тілі (Ұлыбритания)",
"ak": "акан тілі",
"sq": "албан тілі",
"am": "амхар тілі",
@@ -27,7 +28,7 @@
"bg": "болгар тілі",
"bs": "босния тілі",
"br": "бретон тілі",
- "en-GB": "британиялық ағылшын тілі",
+ "bho": "бходжпури тілі",
"vai": "вай тілі",
"cy": "валлий тілі",
"wa": "валлон тілі",
@@ -47,7 +48,7 @@
"zh-Hant": "дәстүрлі қытай тілі",
"dz": "дзонг-кэ тілі",
"dyo": "диола тілі",
- "doi": "Догри",
+ "doi": "догри тілі",
"dua": "дуала тілі",
"pt-PT": "еуропалық португал тілі",
"ja": "жапон тілі",
@@ -64,16 +65,17 @@
"ga": "ирланд тілі",
"is": "исланд тілі",
"es": "испан тілі",
+ "es-419": "испан тілі (Латын Америкасы)",
+ "es-MX": "испан тілі (Мексика)",
"it": "итальян тілі",
"yo": "йоруба тілі",
"kab": "кабил тілі",
"kea": "кабувердьяну тілі",
+ "kgp": "кайнганг тілі",
"kkj": "како тілі",
"kl": "калаалисут тілі",
"kln": "каленжин тілі",
"kam": "камба тілі",
- "en-CA": "канадалық ағылшын тілі",
- "fr-CA": "канадалық француз тілі",
"kn": "каннада тілі",
"yue": "кантон тілі",
"ca": "каталан тілі",
@@ -86,6 +88,7 @@
"rw": "киньяруанда тілі",
"khq": "койра чини тілі",
"ses": "койраборо сенни тілі",
+ "sms": "колтта саам тілі",
"sw-CD": "конго суахили тілі",
"kok": "конкани тілі",
"ko": "корей тілі",
@@ -99,7 +102,6 @@
"lkt": "лакота тілі",
"lag": "ланги тілі",
"lo": "лаос тілі",
- "es-419": "латынамерикалық испан тілі",
"lv": "латыш тілі",
"ln": "лингала тілі",
"lt": "литва тілі",
@@ -122,9 +124,9 @@
"zgh": "марокколық стандартты тамазигхт тілі",
"mas": "масай тілі",
"jmc": "мачаме тілі",
- "es-MX": "мексикалық испан тілі",
"mer": "меру тілі",
"mgo": "мета тілі",
+ "mdf": "мокша тілі",
"ro-MD": "молдован тілі",
"mn": "моңғол тілі",
"mfe": "морисиен тілі",
@@ -133,6 +135,8 @@
"nnh": "нгиембун тілі",
"jgo": "нгомба тілі",
"de": "неміс тілі",
+ "de-AT": "неміс тілі (Аустрия)",
+ "gsw": "неміс тілі (Швейцария)",
"ne": "непал тілі",
"nyn": "нианколе тілі",
"pcm": "нигериялық пиджин тілі",
@@ -141,6 +145,9 @@
"nb": "норвегиялық букмол тілі",
"nn": "норвегиялық нюнорск тілі",
"nus": "нуэр тілі",
+ "yrl": "ньенгату тілі",
+ "ann": "оболо тілі",
+ "oc": "окситан тілі",
"or": "ория тілі",
"om": "оромо тілі",
"tzm": "орталық атлас тамазигхт тілі",
@@ -149,6 +156,7 @@
"uz": "өзбек тілі",
"fa": "парсы тілі",
"pa": "пенджаб тілі",
+ "pis": "пиджин тілі",
"pl": "поляк тілі",
"pt": "португал тілі",
"ps": "пушту тілі",
@@ -175,6 +183,7 @@
"lrc": "солтүстік люри тілі",
"nd": "солтүстік ндебеле тілі",
"se": "солтүстік саам тілі",
+ "frr": "солтүстік фриз тілі",
"so": "сомали тілі",
"ckb": "сорани тілі",
"sw": "суахили тілі",
@@ -191,6 +200,7 @@
"teo": "тесо тілі",
"bo": "тибет тілі",
"ti": "тигринья тілі",
+ "tok": "токипона тілі",
"to": "тонган тілі",
"dsb": "төменгі лужица тілі",
"nds": "төменгі неміс тілі",
@@ -205,18 +215,20 @@
"fi": "фин тілі",
"nl-BE": "фламанд тілі",
"fr": "француз тілі",
+ "fr-CA": "француз тілі (Канада)",
+ "fr-CH": "француз тілі (Швейцария)",
"fur": "фриуль тілі",
"ff": "фула тілі",
"ha": "хауса тілі",
+ "hi-Latn": "Хинди (латын жазуы)",
"hi": "хинди тілі",
"hr": "хорват тілі",
"chr": "чероки тілі",
"cs": "чех тілі",
+ "cv": "чуваш тілі",
"ksb": "шамбала тілі",
"sv": "швед тілі",
"de-CH": "швейцариялық әдеби неміс тілі",
- "gsw": "швейцариялық неміс тілі",
- "fr-CH": "швейцариялық француз тілі",
"ce": "шешен тілі",
"sn": "шона тілі",
"gd": "шотландиялық гэль тілі",
@@ -226,6 +238,6 @@
"et": "эстон тілі",
"jv": "ява тілі",
"yav": "янгбен тілі",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi",
+ "raj": "Rajasthani"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/km.json b/vendor/commerceguys/intl/resources/language/km.json
index de2bb2908..84e866038 100644
--- a/vendor/commerceguys/intl/resources/language/km.json
+++ b/vendor/commerceguys/intl/resources/language/km.json
@@ -17,6 +17,7 @@
"el": "ក្រិក",
"hr": "ក្រូអាត",
"nmg": "ក្វាស្យូ",
+ "kgp": "ខាងហ្កេង",
"kn": "ខាណាដា",
"km": "ខ្មែរ",
"rw": "គិនយ៉ាវ៉ាន់ដា",
@@ -39,6 +40,8 @@
"jv": "ជ្វា",
"ce": "ឈីឆេន",
"cgg": "ឈីហ្កា",
+ "cv": "ឈូវ៉ាស",
+ "yrl": "ញីនហ្កាទូ",
"da": "ដាណឺម៉ាក",
"dz": "ដុងខា",
"doi": "ដូហ្គ្រី",
@@ -53,6 +56,7 @@
"twq": "តាសាវ៉ាក់",
"tg": "តាហ្ស៊ីគ",
"to": "តុងហ្គា",
+ "tok": "តូគីប៉ូណា",
"tk": "តួកម៉េន",
"te": "តេលុគុ",
"teo": "តេសូ",
@@ -78,6 +82,7 @@
"ksf": "បាហ្វៀ",
"pa": "បឹនជាពិ",
"bg": "ប៊ុលហ្ការី",
+ "bho": "បូចពូរី",
"brx": "បូដូ",
"bs": "បូស្នី",
"pl": "ប៉ូឡូញ",
@@ -88,6 +93,7 @@
"nl-BE": "ផ្លាមីស",
"pt": "ព័រទុយហ្គាល់",
"pt-PT": "ព័រទុយហ្គាល់ (អឺរ៉ុប)",
+ "pis": "ពីជីន",
"pcm": "ភាសាទំនាក់ទំនងនីហ្សេរីយ៉ា",
"fa": "ភឺសៀន",
"my": "ភូមា",
@@ -103,6 +109,7 @@
"ml": "ម៉ាឡាយ៉ាឡាម",
"mg": "ម៉ាឡាហ្គាស៊ី",
"ms": "ម៉ាឡេ",
+ "mdf": "មុខសា",
"mn": "ម៉ុងហ្គោលី",
"mua": "មុនដាង",
"ro-MD": "ម៉ុលដាវី",
@@ -156,12 +163,14 @@
"sr": "ស៊ែប",
"sa": "សំស្ក្រឹត",
"gd": "ស្កុតហ្កែលិគ",
+ "sms": "ស្កុលសាមី",
"si": "ស្រីលង្កា",
"sk": "ស្លូវ៉ាគី",
"sl": "ស្លូវ៉ានី",
"sw": "ស្វាហ៊ីលី",
"haw": "ហាវ៉ៃ",
"hi": "ហិណ្ឌី",
+ "hi-Latn": "ហិណ្ឌី (ឡាតាំង)",
"hu": "ហុងគ្រី",
"ha": "ហូសា",
"nl": "ហូឡង់",
@@ -176,6 +185,7 @@
"ff": "ហ្វ៊ូឡា",
"fi": "ហ្វាំងឡង់",
"fy": "ហ្វ្រីស៊ានខាងលិច",
+ "frr": "ហ្វ្រ៊ីសៀន​ខាងជើង",
"fur": "ហ៊្វ្រូលាន",
"ka": "ហ្សក​ហ្ស៊ី",
"nds-NL": "ហ្សាក់ស្យុងក្រោម",
@@ -215,9 +225,11 @@
"uk": "អ៊ុយក្រែន",
"ug": "អ៊ុយហ្គឺរ",
"or": "អូឌៀ",
+ "ann": "អូបូឡូ",
"ur": "អ៊ូរឌូ",
"om": "អូរ៉ូម៉ូ",
"uz": "អ៊ូសបេគ",
+ "oc": "អូសីតាន់",
"os": "អូស៊ីទិក",
"ga": "អៀរឡង់",
"ebu": "អេមប៊ូ",
@@ -226,6 +238,6 @@
"es-MX": "អេស្ប៉ាញ (ម៉ិកស៊ិក)",
"es-419": "អេស្ប៉ាញ (អាមេរិក​ឡាទីន)",
"am": "អាំហារិក",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi",
+ "raj": "Rajasthani"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/ko.json b/vendor/commerceguys/intl/resources/language/ko.json
index 79ac1385b..cda2a701d 100644
--- a/vendor/commerceguys/intl/resources/language/ko.json
+++ b/vendor/commerceguys/intl/resources/language/ko.json
@@ -12,6 +12,7 @@
"pcm": "나이지리아 피진어",
"nl": "네덜란드어",
"ne": "네팔어",
+ "yrl": "넨가투어",
"no": "노르웨이어",
"nn": "노르웨이어(니노르스크)",
"nb": "노르웨이어(보크말)",
@@ -20,11 +21,13 @@
"nyn": "니안콜어",
"da": "덴마크어",
"doi": "도그리어",
+ "tok": "도기 보나",
"de": "독일어",
"gsw": "독일어(스위스)",
"de-AT": "독일어(오스트리아)",
"dua": "두알라어",
"lo": "라오어",
+ "raj": "라자스탄어",
"lkt": "라코타어",
"lv": "라트비아어",
"lag": "랑기어",
@@ -57,6 +60,7 @@
"mer": "메루어",
"mgo": "메타어",
"mfe": "모리스얀어",
+ "mdf": "모크샤어",
"ro-MD": "몰도바어",
"mt": "몰타어",
"mn": "몽골어",
@@ -77,6 +81,7 @@
"lrc": "북부 루리어",
"se": "북부 사미어",
"nd": "북부 은데벨레어",
+ "frr": "북부 프리지아어",
"vun": "분조어",
"bg": "불가리아어",
"br": "브르타뉴어",
@@ -99,6 +104,7 @@
"sw": "스와힐리어",
"sv": "스웨덴어",
"gd": "스코틀랜드 게일어",
+ "sms": "스콜트 사미어",
"es": "스페인어",
"es-419": "스페인어(라틴 아메리카)",
"es-MX": "스페인어(멕시코)",
@@ -131,7 +137,9 @@
"en-CA": "영어(캐나다)",
"om": "오로모어",
"or": "오리야어",
+ "ann": "오볼로어",
"os": "오세트어",
+ "oc": "오크어",
"wa": "왈론어",
"yo": "요루바어",
"ur": "우르두어",
@@ -166,8 +174,10 @@
"chr": "체로키어",
"ce": "체첸어",
"cs": "체코어",
+ "cv": "추바시어",
"cgg": "치가어",
"ks": "카슈미르어",
+ "kgp": "카잉강어",
"kk": "카자흐어",
"kkj": "카코어",
"ca": "카탈로니아어",
@@ -218,14 +228,16 @@
"fr-CA": "프랑스어(캐나다)",
"fur": "프리울리어",
"nl-BE": "플라망어",
+ "pis": "피진어",
"fi": "핀란드어",
"fil": "필리핀어",
"haw": "하와이어",
"ha": "하우사어",
"ko": "한국어",
"hu": "헝가리어",
+ "bho": "호즈푸리어",
"he": "히브리어",
"hi": "힌디어",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "hi-Latn": "힌디어(로마자)",
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/kok.json b/vendor/commerceguys/intl/resources/language/kok.json
index bc25a27ec..93fef5d86 100644
--- a/vendor/commerceguys/intl/resources/language/kok.json
+++ b/vendor/commerceguys/intl/resources/language/kok.json
@@ -1,14 +1,15 @@
{
"ak": "अकान",
"agq": "अघेम",
- "az": "अज़रबैजानी",
+ "az": "अझरबैजानी",
"hsb": "अपर सोर्बियन",
"af": "अफ्रिकान्स",
"am": "अमहारिक्",
"ar": "अरेबिक",
"asa": "असु",
"ast": "अस्टुरियान",
- "is": "आईस्लान्डिक",
+ "ga": "आयरिश",
+ "is": "आयस्लान्डिक",
"hy": "आर्मेनियन",
"sq": "आल्बेनियन्",
"as": "आसामी",
@@ -16,34 +17,33 @@
"id": "इंडोनेशियन",
"ig": "इग्बो",
"it": "इटालियन",
- "yi": "इद्दिष्",
- "iu": "इन्युकट्ट",
- "et": "इस्टोनियन्",
+ "iu": "इन्युक्तिटुट",
+ "et": "इस्टोनियन",
"smn": "ईनारी सामी",
"uz": "उझबेक",
- "nd": "उत्तर न्डेबेले",
+ "or": "उडीया",
+ "nd": "उत्तर डेबेले",
+ "frr": "उत्तरीय फ्रिशियन",
"lrc": "उत्तरीय लुरी",
"se": "उत्तरीय सामी",
"ug": "उयघूर",
"ur": "उर्दू",
- "wo": "उलोफ़",
"ebu": "एम्बु",
"ee": "एव",
"ewo": "एवोंडो",
- "ga": "ऐरिष",
+ "oc": "ऑक्सिटन",
"de-AT": "ऑस्ट्रियन जर्मन",
"en-AU": "ऑस्ट्रेलियन इंग्लीश",
- "or": "ओडिया",
+ "ann": "ओबोलो",
"om": "ओरोमो",
"os": "ओसेटिक",
"kam": "कंबा",
- "km": "कंबोडियन",
- "kk": "कज़ख्",
+ "kk": "कझाख",
"ca": "कटलान",
- "kn": "कन्नडा",
+ "kn": "कन्नड",
+ "ku": "कर्दिश",
"ks": "कश्मीरी",
"sw-CD": "काँगो स्वाहिली",
- "yue": "कांटोसी",
"kkj": "काको",
"kab": "काबायले",
"kea": "काबुवर्डियनु",
@@ -51,86 +51,90 @@
"kln": "कालेंजीन",
"ki": "किकुयु",
"rw": "किन्यार्वान्डा",
- "ky": "किर्गिज़",
- "ku": "कुर्दिष",
+ "ky": "किर्गिझ",
+ "yue": "कॅण्टोनीस",
"en-CA": "कॅनडियन इंग्लीश",
"fr-CA": "कॅनडियन फ्रेंच",
"tzm": "केंद्रीय अटलास तामाझायट",
+ "kgp": "कैनगँग",
"kok": "कोंकणी",
"khq": "कोयरा छिनी",
"ses": "कोयराबोरो सेन्नी",
- "ko": "कोरियन्",
+ "ko": "कोरियन",
"kw": "कोर्निश",
"ksh": "कोलोनियन",
- "hr": "क्रोयेषियन्",
+ "hr": "क्रोएशियन",
+ "nmg": "क्वासीयो",
"qu": "क्वेच्वा",
- "nmg": "ख्वासी",
+ "xh": "खोसा",
+ "km": "ख्मेर",
"lg": "गांडा",
+ "nnh": "गियेम्बून",
"gu": "गुजराती",
"guz": "गुसी",
"gl": "गेलीशियन",
- "el": "ग्रीक्",
+ "jgo": "गोंबा",
+ "el": "ग्रीक",
"cgg": "चिगा",
"ce": "चिचेन",
"zh": "चिनी",
+ "cv": "चुवाश",
"chr": "चॅरोकी",
"cs": "चेक",
"ja": "जपानी",
"de": "जर्मन",
- "ka": "जार्जियन्",
- "jv": "जावनीस्",
- "zu": "जुलू",
- "dyo": "जोला-फोनी",
+ "jv": "जावनीज",
+ "ka": "जॉर्जियन",
+ "dyo": "जोला-फोन्यी",
"dje": "झर्मा",
+ "zu": "झुलू",
"dz": "झोंग्खा",
- "xh": "झ़ौसा",
- "nl": "डच्",
+ "nl": "डच",
+ "dua": "डुआला",
"da": "डॅनिश",
"doi": "डोग्री",
- "dua": "डौल",
- "tt": "तटार",
"ta": "तमिळ",
- "shi": "ताछेहीट",
+ "shi": "ताछेल्हीट",
"tg": "ताजिक",
+ "tt": "तातर",
"dav": "तायता",
"twq": "तासावाक",
"ti": "तिग्रिन्या",
"bo": "तिबेटी",
"tk": "तुर्कमेन",
- "tr": "तुर्किष",
+ "tr": "तुर्की",
"te": "तेलुगू",
"teo": "तेसो",
- "to": "तोंगा",
+ "to": "तोंगान",
+ "tok": "तोकी पोना",
"th": "थाई",
"nyn": "नानकोले",
"naq": "नामा",
- "pcm": "नायझेरियन पिडगीन",
- "nds": "निम्न जर्मन",
- "nds-NL": "निम्न जर्मन (नॅदरलँड)",
+ "pcm": "नायजिरियन पिजिन",
"ne": "नेपाळी",
"nn": "नॉर्वेजियन नायनोर्स्क",
"nb": "नॉर्वेजियन बोकमाल",
"no": "नोर्वेजियन",
- "nnh": "न्गेबून",
- "jgo": "न्गोंबा",
"nus": "न्युयर",
+ "yrl": "न्हीनगातु",
"pa": "पंजाबी",
"fa": "पर्शियन",
"fy": "पश्चिमी फ्रिशियन",
+ "ps": "पश्तो",
"zh-Hant": "पारंपारीक चिनी",
- "ps": "पाष्टो",
- "pl": "पॉलीश",
+ "pis": "पिजिन",
"pt": "पोर्तुगीज",
+ "pl": "पोलिश",
"zgh": "प्रमाणीत मॉरोक्कन तमाझीट",
- "fi": "फिन्निष्",
+ "fi": "फिनिश",
"fil": "फिलिपिनो",
"ff": "फुला",
- "fo": "फेरोस्",
+ "fo": "फेरोस",
"fur": "फ्रिलियन",
"fr": "फ्रेंच",
"nl-BE": "फ्लेमिश",
"bm": "बंबारा",
- "my": "बर्मीज़्",
+ "my": "बर्मीज",
"bg": "बल्गेरियन",
"bas": "बस्सा",
"bn": "बांग्ला",
@@ -138,94 +142,102 @@
"eu": "बास्क",
"bez": "बेना",
"bem": "बेम्बा",
- "be": "बैलोरुसियन्",
+ "be": "बेलारुशियन",
"brx": "बोडो",
"bs": "बोस्नियन",
"en-GB": "ब्रिटीश इंग्लीश",
"br": "ब्रेटन",
+ "bho": "भोजपुरी",
"mn": "मंगोलियन",
"jmc": "मचामे",
"mzn": "मझांडेराणी",
"mni": "मणिपुरी",
- "ckb": "मध्य खुर्दीश",
+ "ckb": "मध्य कर्दिश",
"mr": "मराठी",
"ms": "मलय",
"mg": "मलागसी",
+ "ml": "मल्याळम",
"mas": "मसाई",
- "mk": "मसीडोनियन्",
- "ml": "मळियाळम",
+ "mi": "माओरी",
"kde": "माकोंडे",
"mgh": "माखुवा-मिट्टो",
- "mt": "मालतीस्",
+ "mt": "माल्टिज",
"mua": "मुडांग",
- "mi": "मुरी",
"es-MX": "मॅक्सिकन स्पॅनीश",
"mgo": "मेटा",
"mer": "मेरू",
+ "mk": "मेसेडोनियन",
"mai": "मैथिली",
"mfe": "मोरिसेन",
"ro-MD": "मोल्डावियन्",
+ "mdf": "मोक्ष",
"yav": "यांगबेन",
- "uk": "युक्रेनियन्",
+ "yi": "यिडिश",
+ "uk": "युक्रेनियन",
"pt-PT": "युरोपियन पोर्तुगीज",
- "yo": "यूरुबा",
+ "yo": "योरुबा",
"rwk": "रवा",
"ru": "रशियन",
"rn": "रुंदी",
"ro": "रोमानियन",
"rm": "रोमान्श",
"rof": "रोम्बो",
- "lb": "लक्सेमबर्गीश",
+ "lb": "लक्झेम्बर्गीश",
"lag": "लांगी",
"lo": "लाओ",
"lkt": "लाकोटा",
- "lv": "लाट्वियन् (लेट्टिष्)",
"es-419": "लातीं अमेरिकन स्पॅनीश",
+ "lv": "लात्वियन",
"ln": "लिंगाला",
- "lt": "लिथुआनियन्",
+ "lt": "लिथुआनियन",
"luo": "लुओ",
"lu": "लुबा-काटांगा",
- "luy": "लुय",
+ "nds": "लोवर जर्मन",
+ "nds-NL": "लोवर जर्मन (नॅदरलँड)",
"dsb": "लोवर सोर्बियन",
+ "luy": "ल्युइया",
"vai": "वाई",
"wa": "वालून",
"wae": "वाल्सर",
- "vi": "वियत्नामीज़",
"vun": "वुंजो",
- "cy": "वेळ्ष्",
+ "cy": "वेल्श",
+ "wo": "वोलोफ",
+ "vi": "व्हिएतनामीज",
"ksb": "शांबाला",
"sn": "शोना",
"sat": "संथाली",
"sa": "संस्कृत",
- "sah": "सखा",
"sr": "सर्बियन",
"sbp": "सांगू",
"sg": "सांगो",
- "saq": "साम्बरू",
+ "sah": "साखा",
+ "saq": "साम्बुरू",
"sc": "सार्डिनियान",
"sd": "सिंधी",
+ "si": "सिंहला",
"ii": "सिच्युआन यी",
- "si": "सिनहालीस",
- "ceb": "सिबौना",
"su": "सुंदनीस",
"seh": "सेना",
+ "ceb": "सेबुआनो",
"zh-Hans": "सोंपी चिनी",
"xog": "सोगा",
"so": "सोमाली",
"gd": "स्कॉटीश गॅलीक",
+ "sms": "स्कोल्ट सामी",
"es": "स्पॅनीश",
"sk": "स्लोवाक",
"sl": "स्लोवानियन",
"sw": "स्वाहिली",
- "gsw": "स्विज जर्मन",
"fr-CH": "स्विझ फ्रेंच",
"de-CH": "स्विझ हाय जर्मन",
"sv": "स्विडीश",
- "hu": "हंगेरियन्",
+ "gsw": "स्विस जर्मन",
+ "hu": "हंगेरियन",
"haw": "हवायियान",
"hi": "हिन्दी",
+ "hi-Latn": "हिन्दी (लॅटीन)",
"he": "हिब्रू",
"ha": "हौसा",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi",
+ "raj": "Rajasthani"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/ks.json b/vendor/commerceguys/intl/resources/language/ks.json
index 4c691c7a2..50de050ab 100644
--- a/vendor/commerceguys/intl/resources/language/ks.json
+++ b/vendor/commerceguys/intl/resources/language/ks.json
@@ -11,6 +11,7 @@
"ksh": "Colognian",
"ebu": "Embu",
"guz": "Gusii",
+ "bgc": "Haryanvi",
"dyo": "Jola-Fonyi",
"kea": "Kabuverdianu",
"kgp": "Kaingang",
@@ -37,6 +38,8 @@
"pcm": "Nigerian Pidgin",
"lrc": "Northern Luri",
"nus": "Nuer",
+ "ann": "Obolo",
+ "pis": "Pijin",
"rof": "Rombo",
"rwk": "Rwa",
"saq": "Samburu",
@@ -49,6 +52,7 @@
"dav": "Taita",
"twq": "Tasawaq",
"teo": "Teso",
+ "tok": "Toki Pona",
"ug": "Uyghur",
"vun": "Vunjo",
"wae": "Walser",
@@ -57,12 +61,12 @@
"en-AU": "آسٹریلیَن اَنگریٖزۍ",
"de-AT": "آسٹرِیَن جٔرمَن",
"is": "آیِسلینڈِک",
- "it": "اِٹیلیَن",
"ur": "اُردوٗ",
"hy": "اَرمینیَن",
"uz": "اُزبیک",
"az": "اَزَربیجانی",
"as": "اسٲمۍ",
+ "it": "اِطالوی",
"af": "اَفریٖکانز",
"ak": "اَکان",
"ig": "اِگبو",
@@ -72,6 +76,7 @@
"id": "اِنڈونیشیا",
"iu": "اِنُکتِتوٗ",
"en": "اَنگیٖزۍ",
+ "oc": "اوکسیٖٹَن",
"om": "اۆرومو",
"or": "اۆرِیا",
"os": "اۆسیٹِک",
@@ -87,6 +92,7 @@
"bm": "بَمبارا",
"my": "بٔمیٖز",
"bn": "بَنگٲلۍ",
+ "bho": "بوجپوٗری",
"bs": "بوسنِیَن",
"nds": "بۆنِم جٔرمَن",
"nds-NL": "بۆنِم جٔرمَن (نیٖدَرلینڑ)",
@@ -112,15 +118,17 @@
"ka": "جارجِیَن",
"de": "جٔرمَن",
"jv": "جَوَنیٖز",
+ "cv": "چُواش",
"ce": "چیچَن",
"chr": "چیروکی",
"cs": "چیک",
- "zh": "چیٖنی",
+ "zh": "چیٖنی ﴿ترجمع اِشارٕ: خاص طور، مینڈارن چیٖنی۔﴾",
"km": "خَمیر",
"dua": "دُوالا",
"nl": "ڈَچ",
"doi": "ڈوگری",
"da": "ڈینِش",
+ "raj": "راجِستھٲنۍ",
"rn": "رُندی",
"zh-Hant": "رِوٲجی چیٖنی",
"ru": "روٗسی",
@@ -128,12 +136,11 @@
"rm": "رومانش",
"zu": "زُلوٗ",
"dz": "زونگکھا",
- "es": "سپینِش",
- "es-MX": "سپینِش (مؠکسِکو)",
"ii": "سِچوان یٖی",
"sc": "سراڈیٖنی",
"sr": "سٔربِیَن",
"gd": "سکوٹِش گیےلِک",
+ "sms": "سکولٹ سَمی",
"sk": "سلووَک",
"sl": "سلووینیَن",
"sat": "سَنتالی",
@@ -142,24 +149,25 @@
"sa": "سَنسکرٕت",
"sg": "سَنگو",
"si": "سِنہالا",
+ "zh-Hans": "سَہل چیٖنی",
"sw": "سواہِلی",
"sw-CD": "سواہِلی (کونگو کِنشاسا)",
"gsw": "سٕوِس جٔرمَن",
- "fr-CH": "سٕوٕس فرینچ",
- "de-CH": "سٕوِس ہاےجٔرمَن",
+ "fr-CH": "سٕوٕس فرانسیسی",
+ "de-CH": "سٕوِس ہائی جٔرمَن",
"so": "سومٲلی",
"sv": "سویٖڈِش",
"ceb": "سیباونو",
- "zh-Hans": "سیود چیٖنی",
"se": "شُمٲلی سَمی",
+ "frr": "شُمٲلی فرِشیَن",
"nd": "شُمال ڈَبیل",
"sn": "شونا",
"he": "عبرٲنۍ",
"ar": "عربی",
"fa": "فارسی",
+ "fr": "فرانسیسی",
"fo": "فَروس",
"fur": "فروٗلِیَن",
- "fr": "فرینچ",
"ff": "فُلاہ",
"fil": "فِلِپیٖنو",
"nl-BE": "فلیمِش",
@@ -176,7 +184,7 @@
"kl": "کَلالِسُت",
"kn": "کَنَڑ",
"rw": "کِنیاوِندا",
- "fr-CA": "کَنیڈیَن فرینچ",
+ "fr-CA": "کَنیڈیَن فرانسیسی",
"xh": "کھوسا",
"kw": "کورنِش",
"ko": "کوریَن",
@@ -186,15 +194,14 @@
"lg": "گاندا",
"gu": "گُجرٲتی",
"gl": "گیلِشِیَن",
+ "es-419": "لاطیٖنی امریٖکی ہسپانوی",
"lo": "لاو",
- "pt-PT": "لِبیریَن پُرتَگیٖز",
"lt": "لِتھوانِیَن",
"lv": "لَتوِیَن",
"lb": "لُکھزیمبورگِش",
"ln": "لِنگالا",
"lu": "لوُبا کَتَنگا",
"luo": "لُوو",
- "es-419": "لیٹٕن امریٖکی سپینِش",
"mi": "ماوری",
"mr": "مَرٲٹھۍ",
"mas": "مَساے",
@@ -205,16 +212,20 @@
"ms": "مَلَے",
"mn": "مَنگولی",
"mni": "مَنیپوٗری",
+ "mdf": "موکشا",
"ro-MD": "مولداوِیَن",
"mai": "میتَھلی",
"mk": "میکَڈونیَن",
+ "es-MX": "میکسیکن ہسپانوی",
"no": "ناروییَن",
"nb": "ناروییَن بوکمال",
"nn": "ناروییَن نَے نورسک",
"ne": "نیپٲلۍ",
"nyn": "نِیَنکول",
"ha": "ہاوسا",
+ "es": "ہسپانوی",
"hi": "ہِندی",
+ "hi-Latn": "ہِندی (لاطیٖنی)",
"hu": "ہَنگیریَن",
"haw": "ہوایِیَن",
"hsb": "ہیرِم ساربِیَن",
@@ -226,6 +237,7 @@
"sah": "یاکُت",
"yi": "یِدِش",
"yo": "یورُبا",
+ "pt-PT": "یوٗرپی پُرتَگیٖز",
"uk": "یوٗکرینیٲیی",
"el": "یوٗنٲنی"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/ku.json b/vendor/commerceguys/intl/resources/language/ku.json
index 6aff2b035..b5cb36e00 100644
--- a/vendor/commerceguys/intl/resources/language/ku.json
+++ b/vendor/commerceguys/intl/resources/language/ku.json
@@ -16,6 +16,7 @@
"bez": "Bena",
"bn": "bengalî",
"brx": "Bodo",
+ "bho": "bojpûrî",
"bs": "bosnî",
"br": "bretonî",
"bg": "bulgarî",
@@ -26,6 +27,7 @@
"ce": "çeçenî",
"cs": "çekî",
"chr": "çerokî",
+ "cv": "çuvaşî",
"da": "danmarkî",
"dua": "diwalayî",
"doi": "Dogri",
@@ -56,9 +58,11 @@
"gu": "gujaratî",
"ka": "gurcî",
"guz": "Gusii",
+ "bgc": "Haryanvi",
"haw": "hawayî",
"ha": "hawsayî",
"hi": "hindî",
+ "hi-Latn": "hindî (latînî)",
"nl": "holendî",
"id": "indonezî",
"he": "îbranî",
@@ -127,6 +131,7 @@
"hu": "mecarî",
"mer": "Meru",
"mgo": "Metaʼ",
+ "mdf": "mokşayî",
"mn": "mongolî",
"mfe": "Morisyen",
"mua": "Mundang",
@@ -138,22 +143,27 @@
"yrl": "Nheengatu",
"pcm": "Nigerian Pidgin",
"nd": "North Ndebele",
+ "frr": "Northern Frisian",
"nb": "norwecî (bokmål)",
"nn": "norwecî (nynorsk)",
"no": "Norwegian",
"nus": "Nuer",
"nyn": "Nyankole",
+ "ann": "Obolo",
+ "oc": "oksîtanî",
"or": "oriyayî",
"om": "oromoyî",
"os": "osetî",
"ug": "oygurî",
"uz": "ozbekî",
"ps": "peştûyî",
+ "pis": "Pijin",
"pl": "polonî",
"pt": "portugalî",
"pt-PT": "portugalî (Portûgal)",
"pa": "puncabî",
"kk": "qazaxî",
+ "raj": "Rajasthani",
"ksh": "rîpwarî",
"rm": "romancî",
"ro": "romanî",
@@ -162,7 +172,6 @@
"rn": "Rundi",
"ru": "rusî",
"rwk": "Rwa",
- "sah": "Sakha",
"saq": "Samburu",
"se": "samiya bakur",
"smn": "samiya înarî",
@@ -177,6 +186,7 @@
"ii": "Sichuan Yi",
"sd": "sindhî",
"sr": "sirbî",
+ "sms": "Skolt Sami",
"sk": "slovakî",
"sl": "slovenî",
"xog": "Soga",
@@ -207,6 +217,7 @@
"tr": "tirkî",
"tk": "tirkmenî",
"bo": "tîbetî",
+ "tok": "Toki Pona",
"to": "tongî",
"uk": "ukraynî",
"ur": "urdûyî",
@@ -220,6 +231,7 @@
"km": "ximêrî",
"hr": "xirwatî",
"xh": "xosayî",
+ "sah": "Yakut",
"yav": "Yangben",
"el": "yewnanî",
"yi": "yidîşî",
diff --git a/vendor/commerceguys/intl/resources/language/ky.json b/vendor/commerceguys/intl/resources/language/ky.json
index 6dbbf317f..ffbe14cdc 100644
--- a/vendor/commerceguys/intl/resources/language/ky.json
+++ b/vendor/commerceguys/intl/resources/language/ky.json
@@ -32,6 +32,7 @@
"bs": "боснийче",
"br": "бретончо",
"my": "бурмача",
+ "bho": "бхожпуриче",
"vai": "вайиче",
"wa": "валлончо",
"wae": "валцерче",
@@ -72,6 +73,7 @@
"kea": "кабувердиче",
"kab": "кабылча",
"kk": "казакча",
+ "kgp": "кайнгангча (индей тили)",
"kkj": "какочо",
"kl": "калаалисутча",
"kln": "каленжиче",
@@ -124,6 +126,7 @@
"jmc": "мачамече",
"mer": "меруча",
"mgo": "метача",
+ "mdf": "мокшача",
"ro-MD": "молдованча",
"mn": "монголчо",
"mfe": "морисианча",
@@ -140,11 +143,15 @@
"nn": "норвежче (нинорск)",
"nus": "нуерче",
"nyn": "ныйанколчо",
+ "yrl": "ньенгатуча (түштүк америка тилдери)",
+ "ann": "оболочо (Нигерия)",
+ "oc": "окситанча",
"or": "орияча",
"om": "оромочо",
"ru": "орусча",
"os": "осетинче",
"uz": "өзбекче",
+ "pis": "пижинче (Соломон Аралдары)",
"pl": "полякча",
"pt": "португалча",
"pt-PT": "португалча (Европа)",
@@ -168,6 +175,7 @@
"sr": "сербче",
"si": "сингалача",
"sd": "синдхиче",
+ "sms": "сколт саамиче",
"sk": "словакча",
"sl": "словенче",
"xog": "согача",
@@ -186,6 +194,7 @@
"teo": "тесочо",
"bo": "тибетче",
"ti": "тигриниача",
+ "tok": "токипонача (эксперименталдык тил)",
"to": "тонгача",
"nds": "төмөнкү немисче",
"nds-NL": "төмөнкү саксончо",
@@ -193,6 +202,7 @@
"lrc": "түндүк луриче",
"nd": "түндүк ндыбелче",
"se": "түндүк саамиче",
+ "frr": "түндүк фризче (евразиялык тилдер)",
"tk": "түркмөнчө",
"tr": "түркчө",
"cy": "уелшче",
@@ -212,11 +222,13 @@
"ff": "фулача",
"ha": "хаусача",
"hi": "хиндиче",
+ "hi-Latn": "хиндиче (Латын)",
"hr": "хорватча",
"chr": "черокиче",
"cs": "чехче",
"ce": "чеченче",
"cgg": "чигача",
+ "cv": "чувашча",
"ksb": "шамабалача",
"sv": "шведче",
"sn": "шонача",
@@ -226,6 +238,6 @@
"ebu": "эмбуча",
"et": "эстончо",
"yav": "янгбенче",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi",
+ "raj": "Rajasthani"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/lb.json b/vendor/commerceguys/intl/resources/language/lb.json
index 1b8393427..deb898e9b 100644
--- a/vendor/commerceguys/intl/resources/language/lb.json
+++ b/vendor/commerceguys/intl/resources/language/lb.json
@@ -18,6 +18,7 @@
"bem": "Bemba-Sprooch",
"bez": "Bena",
"bn": "Bengalesch",
+ "bho": "Bhodschpuri",
"dz": "Bhutanesch",
"my": "Birmanesch",
"brx": "Bodo",
@@ -54,10 +55,12 @@
"kl": "Grönlännesch",
"gu": "Gujarati",
"guz": "Gusii-Sprooch",
+ "bgc": "Haryanvi",
"ha": "Hausa",
"haw": "Hawaiesch",
"he": "Hebräesch",
"hi": "Hindi",
+ "hi-Latn": "Hindi (Laténgesch)",
"nl": "Hollännesch",
"ig": "Igbo-Sprooch",
"smn": "Inari-Lappesch",
@@ -128,6 +131,7 @@
"mgo": "Meta’",
"tzm": "Mëttlert-Atlas-Tamazight",
"es-MX": "Mexikanescht Spuenesch",
+ "mdf": "Moksha",
"ro-MD": "Moldawesch",
"mn": "Mongolesch",
"mfe": "Morisyen",
@@ -142,6 +146,7 @@
"dsb": "Niddersorbesch",
"pcm": "Nigerian Pidgin",
"nd": "Nord-Ndebele-Sprooch",
+ "frr": "Nordfriesesch",
"se": "Nordsamesch",
"lrc": "Northern Luri",
"no": "Norwegesch",
@@ -149,6 +154,8 @@
"nn": "Norwegesch Nynorsk",
"nus": "Nuer",
"nyn": "Nyankole",
+ "ann": "Obolo",
+ "oc": "Okzitanesch",
"luy": "Olulujia",
"or": "Orija",
"om": "Oromo",
@@ -156,9 +163,11 @@
"pa": "Pandschabesch",
"ps": "Paschtu",
"fa": "Persesch",
+ "pis": "Pijin",
"pl": "Polnesch",
"pt": "Portugisesch",
"qu": "Quechua",
+ "raj": "Rajasthani",
"rm": "Rätoromanesch",
"rof": "Rombo",
"rw": "Ruandesch",
@@ -184,6 +193,7 @@
"ii": "Sichuan Yi",
"sd": "Sindhi",
"si": "Singhalesesch",
+ "sms": "Skolt-Lappesch",
"sk": "Slowakesch",
"sl": "Slowenesch",
"xog": "Soga",
@@ -204,9 +214,11 @@
"bo": "Tibetesch",
"tr": "Tierkesch",
"ti": "Tigrinja",
+ "tok": "Toki Pona",
"to": "Tongaesch",
"cs": "Tschechesch",
"ce": "Tschetschenesch",
+ "cv": "Tschuwaschesch",
"tk": "Turkmenesch",
"hsb": "Uewersorbesch",
"ug": "Uiguresch",
diff --git a/vendor/commerceguys/intl/resources/language/lo.json b/vendor/commerceguys/intl/resources/language/lo.json
index 37bd04b70..4d65691bd 100644
--- a/vendor/commerceguys/intl/resources/language/lo.json
+++ b/vendor/commerceguys/intl/resources/language/lo.json
@@ -26,6 +26,7 @@
"ki": "ຄິຄູຢຸ",
"rw": "ຄິນຢາວານດາ",
"qu": "ຄີຊົວ",
+ "kgp": "ເຄນກັງ",
"ku": "ເຄີດິສ",
"ses": "ໂຄຍຣາໂບໂຣ ເຊນນິ",
"hr": "ໂຄຣເອທຽນ",
@@ -38,6 +39,7 @@
"zh-Hans": "ຈີນແບບຮຽບງ່າຍ",
"nnh": "ຈີ່ມບູນ",
"dyo": "ໂຈລາ-ຟອນຢີ",
+ "sms": "ສກອດຊາມິ",
"gd": "ສະກັອດເກລິກ",
"es": "ສະແປນນິຊ",
"sl": "ສະໂລເວນຽນ",
@@ -68,6 +70,7 @@
"chr": "ຊີໂຣກີ",
"su": "ຊຸນແດນນີສ",
"zu": "ຊູລູ",
+ "cv": "ຊູວາຊ",
"cs": "ເຊກ",
"sr": "ເຊີບຽນ",
"sg": "ແຊງໂກ",
@@ -95,12 +98,14 @@
"bo": "ທິເບທັນ",
"tk": "ເທີກເມັນ",
"tr": "ເທີຄິຊ",
+ "tok": "ໂທກີໂພນາ",
"th": "ໄທ",
"nn": "ນໍເວຈຽນ ນີນອກ",
"nb": "ນໍເວຈຽນ ບັອກມອລ",
"no": "ນໍເວຍ",
"nyn": "ນານຄອນ",
"naq": "ນາມາ",
+ "yrl": "ນີນກາຕູ",
"ne": "ເນປາລີ",
"nus": "ເນີ",
"pcm": "ໄນຈີຣຽນພິດກິນ",
@@ -116,23 +121,27 @@
"bn": "ເບັງກາລີ",
"bem": "ເບັມບາ",
"brx": "ໂບດູ",
+ "bho": "ໂບພູຣິ",
"pt": "ປອກຕຸຍກິສ",
"pt-PT": "ປອກຕຸຍກິສ ຢຸໂຣບ",
"pa": "ປັນຈາບີ",
"ps": "ປາສໂຕ",
+ "pis": "ປິຈິນ",
"fa": "ເປີຊຽນ",
"pl": "ໂປລິຊ",
"fr": "ຝຣັ່ງ",
+ "fr-CA": "ຝຣັ່ງ (ແຄນາດາ)",
"fr-CH": "ຝຣັ່ງ (ສວິສ)",
"fy": "ຟຣິຊຽນ ຕາເວັນຕົກ",
+ "frr": "ຟຣີຊຽນເໜືອ",
"fur": "ຟຣີລຽນ",
- "fr-CA": "ຟລັງ(ການາດາ)",
"nl-BE": "ຟລີມິຊ",
"fo": "ຟາໂຣສ",
"fi": "ຟິນນິຊ",
"fil": "ຟີລິປີໂນ",
"ff": "ຟູລາ",
"mfe": "ມໍຣິສເຢນ",
+ "mdf": "ມອກຊາ",
"mn": "ມອງໂກເລຍ",
"mt": "ມອລທີສ",
"mua": "ມັນດັງ",
@@ -161,6 +170,7 @@
"de-AT": "ເຢຍລະມັນ (ໂອສຕຣິດ)",
"nds": "ເຢຍລະມັນ ຕອນໄຕ້",
"yo": "ໂຢຣູບາ",
+ "raj": "ຣາຈັສທານິ",
"rn": "ຣຸນດິ",
"rof": "ຣົມໂບ",
"rm": "ໂຣແມນຊ໌",
@@ -187,12 +197,13 @@
"vi": "ຫວຽດນາມ",
"os": "ອອດເຊຕິກ",
"en": "ອັງກິດ",
+ "en-CA": "ອັງກິດ (ແຄນາດາ)",
"en-GB": "ອັງກິດ (ບຣິດທິຊ)",
- "en-AU": "ອັງກິດ (ໂອດສະຕາລີ)",
- "en-CA": "ອັງກິດແຄນາດາ",
+ "en-AU": "ອັງກິດ (ອອສເຕຣເລຍ)",
"as": "ອັສຊາມີສ",
"ast": "ອັສຕູຮຽນ",
"tzm": "ອັດລາສ ທາມາຊີກ ກາງ",
+ "oc": "ອັອກຊີຕານ",
"ak": "ອາການ",
"asa": "ອາຊູ",
"az": "ອາເຊີໄບຈານິ",
@@ -216,6 +227,7 @@
"et": "ເອສໂຕນຽນ",
"nd": "ເອັນເດເບເລເໜືອ",
"ebu": "ເອັມບູ",
+ "ann": "ໂອໂບໂລ",
"or": "ໂອຣິຢາ",
"om": "ໂອໂຣໂມ",
"is": "ໄອສແລນດິກ",
@@ -223,9 +235,9 @@
"hu": "ຮັງກາຣຽນ",
"haw": "ຮາໄວອຽນ",
"hi": "ຮິນດິ",
+ "hi-Latn": "ຮິນດິ (ລາຕິນ)",
"he": "ຮີບຣິວ",
"ha": "ເຮົາຊາ",
"xh": "ໂຮຊາ",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/lt.json b/vendor/commerceguys/intl/resources/language/lt.json
index f600addaf..bdde1e6d8 100644
--- a/vendor/commerceguys/intl/resources/language/lt.json
+++ b/vendor/commerceguys/intl/resources/language/lt.json
@@ -20,6 +20,7 @@
"bm": "bambarų",
"eu": "baskų",
"bas": "basų",
+ "bho": "baučpuri",
"bem": "bembų",
"bn": "bengalų",
"bez": "benų",
@@ -34,6 +35,7 @@
"cs": "čekų",
"chr": "čerokių",
"cgg": "čigų",
+ "cv": "čiuvašų",
"da": "danų",
"en-GB": "Didžiosios Britanijos anglų",
"doi": "dogri",
@@ -55,10 +57,12 @@
"ka": "gruzinų",
"gu": "gudžaratų",
"guz": "gusi",
+ "bgc": "Haryanvi",
"ha": "hausų",
"haw": "havajiečių",
"he": "hebrajų",
"hi": "hindi",
+ "hi-Latn": "hindi (lotynų)",
"ig": "igbų",
"smn": "Inario samių",
"id": "indoneziečių",
@@ -130,6 +134,7 @@
"es-MX": "Meksikos ispanų",
"mer": "merų",
"mgo": "meta",
+ "mdf": "mokša",
"ro-MD": "moldavų",
"mn": "mongolų",
"mfe": "morisijų",
@@ -146,15 +151,19 @@
"no": "norvegų",
"nb": "norvegų bukmolas",
"nus": "nuerų",
+ "ann": "obolų",
+ "oc": "očitarų",
"or": "odijų",
"nl": "olandų",
"om": "oromų",
"os": "osetinų",
"pa": "pendžabų",
"fa": "persų",
+ "pis": "pidžinų",
"pt": "portugalų",
"fr": "prancūzų",
"ps": "puštūnų",
+ "raj": "Radžastano",
"rm": "retoromanų",
"rof": "rombo",
"rwk": "rua",
@@ -173,6 +182,7 @@
"ii": "sičuan ji",
"sd": "sindų",
"si": "sinhalų",
+ "sms": "Skolto samių",
"sk": "slovakų",
"sl": "slovėnų",
"xog": "sogų",
@@ -187,6 +197,7 @@
"lrc": "šiaurės luri",
"nd": "šiaurės ndebelų",
"se": "šiaurės samių",
+ "frr": "šiaurinių fryzų",
"gd": "škotų (gėlų)",
"sn": "šonų",
"sv": "švedų",
@@ -203,6 +214,7 @@
"teo": "teso",
"bo": "tibetiečių",
"ti": "tigrajų",
+ "tok": "Toki Pona",
"to": "tonganų",
"tt": "totorių",
"zh-Hant": "tradicinė kinų",
diff --git a/vendor/commerceguys/intl/resources/language/lv.json b/vendor/commerceguys/intl/resources/language/lv.json
index 1ad3f7fa0..08fe1e074 100644
--- a/vendor/commerceguys/intl/resources/language/lv.json
+++ b/vendor/commerceguys/intl/resources/language/lv.json
@@ -24,6 +24,7 @@
"bem": "bembu",
"bez": "bena",
"bn": "bengāļu",
+ "bho": "bhodžpūru",
"my": "birmiešu",
"brx": "bodo",
"bs": "bosniešu",
@@ -34,6 +35,7 @@
"ce": "čečenu",
"cs": "čehu",
"chr": "čiroku",
+ "cv": "čuvašu",
"da": "dāņu",
"dyo": "diola-fonjī",
"doi": "dogru",
@@ -56,9 +58,11 @@
"ka": "gruzīnu",
"gu": "gudžaratu",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausu",
"haw": "havajiešu",
"hi": "hindi",
+ "hi-Latn": "hindi (latīņu)",
"nl": "holandiešu",
"hr": "horvātu",
"et": "igauņu",
@@ -79,7 +83,7 @@
"yo": "jorubu",
"kab": "kabilu",
"kea": "kaboverdiešu",
- "kgp": "Kaingang",
+ "kgp": "kaingangs",
"kkj": "kako",
"kln": "kalendžīnu",
"kam": "kambu",
@@ -138,6 +142,7 @@
"mzn": "mazanderāņu",
"mer": "meru",
"mgo": "metu",
+ "mdf": "mokšu",
"ro-MD": "moldāvu",
"mn": "mongoļu",
"mua": "mundangu",
@@ -145,21 +150,25 @@
"ne": "nepāliešu",
"nnh": "ngjembūnu",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"pcm": "Nigērijas pidžinvaloda",
+ "yrl": "njengatu",
"no": "norvēģu",
"nb": "norvēģu bukmols",
"nus": "nueru",
"nyn": "ņankolu",
+ "ann": "obolo",
+ "oc": "oksitāņu",
"or": "oriju",
"om": "oromu",
"os": "osetīnu",
"pa": "pandžabu",
"fa": "persiešu",
+ "pis": "pidžinvaloda",
"pl": "poļu",
"pt": "portugāļu",
"pt-PT": "portugāļu (Portugāle)",
"ps": "puštu",
+ "raj": "radžastāņu",
"rm": "retoromāņu",
"fy": "rietumfrīzu",
"rof": "rombo",
@@ -178,6 +187,7 @@
"ii": "Sičuaņas ji",
"sd": "sindhu",
"si": "singāļu",
+ "sms": "skoltsāmu",
"gd": "skotu gēlu",
"sk": "slovāku",
"sl": "slovēņu",
@@ -204,6 +214,7 @@
"teo": "teso",
"bo": "tibetiešu",
"ti": "tigrinja",
+ "tok": "tokiponu",
"to": "tongiešu",
"tk": "turkmēņu",
"tr": "turku",
@@ -222,6 +233,7 @@
"wo": "volofu",
"vun": "vundžo",
"dje": "zarmu",
+ "frr": "ziemeļfrīzu",
"lrc": "ziemeļluru",
"nd": "ziemeļndebelu",
"se": "ziemeļsāmu",
diff --git a/vendor/commerceguys/intl/resources/language/mai.json b/vendor/commerceguys/intl/resources/language/mai.json
new file mode 100644
index 000000000..5c46af9d1
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/language/mai.json
@@ -0,0 +1,243 @@
+{
+ "bgc": "Haryanvi",
+ "frr": "Northern Frisian",
+ "raj": "Rajasthani",
+ "ak": "अकेन",
+ "en": "अंगरेजी",
+ "agq": "अगेम",
+ "az": "अजरबैजानी",
+ "af": "अफ्रीकांस",
+ "am": "अम्हरिक",
+ "ar": "अरबी",
+ "hy": "अर्मेनियाई",
+ "sq": "अलबानिया",
+ "as": "असमी",
+ "asa": "असु",
+ "ast": "अस्तुरियाई",
+ "ga": "आइरिश",
+ "is": "आइसलैंडी",
+ "en-AU": "आस्ट्रेलियाई अंंगरेजी",
+ "ig": "इगबो",
+ "id": "इंडोनेशियाई",
+ "it": "इतालवी",
+ "smn": "इनारी सामी",
+ "iu": "इनुकतितुत",
+ "ee": "इयु",
+ "ewo": "इवोनडो",
+ "yi": "ईडिश",
+ "ug": "उइगर",
+ "hsb": "उच्च सोर्बियाई",
+ "uz": "उजबेक",
+ "or": "उड़िया",
+ "nd": "उत्तरी डेबले",
+ "lrc": "उत्तरी लूरी",
+ "se": "उत्तरी सामी",
+ "ur": "उर्दू",
+ "yrl": "एनहींगाटु",
+ "ebu": "एमबु",
+ "et": "एसटोनियाई",
+ "de-AT": "ऑस्ट्रियाई जर्मन",
+ "ann": "ओबोलो",
+ "om": "ओरोमो",
+ "os": "ओसेटिक",
+ "oc": "औकसीटान",
+ "kk": "कजाक",
+ "en-CA": "कनाडाई अंग्रेज़ी",
+ "fr-CA": "कनाडाई फ़्रेंच",
+ "kn": "कन्नड़",
+ "kab": "कबाइल",
+ "kl": "कलालिसुत",
+ "nmg": "कवासियो",
+ "ks": "कशमीरी",
+ "kkj": "काको",
+ "kea": "काबुबरदियानु",
+ "kam": "कामबा",
+ "ki": "किकुयू",
+ "rw": "किनयरवांडा",
+ "ky": "किर्गिज",
+ "qu": "कुएचुआ",
+ "ku": "कुर्दी",
+ "ca": "केटालान",
+ "yue": "केंटोनी",
+ "kln": "केलैंजिन",
+ "kgp": "कैनगैंग",
+ "kok": "कोंकणी",
+ "khq": "कोयरा चीनी",
+ "ses": "कोयराबोरो सैनी",
+ "ko": "कोरियाई",
+ "kw": "कोर्निश",
+ "ksh": "कोलोनियन",
+ "hr": "क्रोशियाई",
+ "km": "खमेर",
+ "xh": "खोसा",
+ "lg": "गंडा",
+ "gu": "गुजराती",
+ "guz": "गुसी",
+ "gl": "गेलिशियन",
+ "cgg": "चिजिया",
+ "zh": "चीनी",
+ "cs": "चेक",
+ "ce": "चेचेन",
+ "chr": "चेरोकी",
+ "dje": "जरमा",
+ "de": "जर्मन",
+ "ja": "जापानी",
+ "ka": "जार्जियाई",
+ "jv": "जावानी",
+ "nnh": "जियमबून",
+ "zu": "जुलू",
+ "dz": "जोनखा",
+ "dyo": "जोला-फोनी",
+ "tr": "टर्किश",
+ "twq": "टासावाक",
+ "ti": "टिगरिनया",
+ "shi": "टेचलहिट",
+ "teo": "टेसो",
+ "dav": "टैटा",
+ "tok": "टोकी पोना",
+ "to": "टोंगन",
+ "nl": "डच",
+ "dua": "डुआला",
+ "da": "डेनिश",
+ "doi": "डोगरी",
+ "tt": "ततार",
+ "ta": "तमिल",
+ "tg": "ताजिक",
+ "bo": "तिब्बती",
+ "tk": "तुर्कमैन",
+ "te": "तेलगू",
+ "th": "थाई",
+ "pcm": "नाइजीरियाई पिजिन",
+ "naq": "नामा",
+ "no": "नार्वेजियन",
+ "nn": "नार्वेजियन निनोरेस्क",
+ "nb": "नार्वेजियन बोकमाल",
+ "nyn": "नीयनकोले",
+ "nus": "नूअर",
+ "jgo": "नेगोमबा",
+ "ne": "नेपाली",
+ "pa": "पंजाबी",
+ "fa": "परसियन",
+ "fy": "पश्चिमी फ्रीजन",
+ "ps": "पश्तो",
+ "zh-Hant": "पारंपरिक चीनी",
+ "pis": "पिजिन",
+ "pt": "पुर्तगाली",
+ "pl": "पोलिश",
+ "fi": "फिनिश",
+ "fil": "फिलिपीनो",
+ "ff": "फुलाह",
+ "fo": "फेरोइज",
+ "fur": "फ्रियूयन",
+ "fr": "फ़्रेंच",
+ "nl-BE": "फ्लेमिश",
+ "bn": "बंगाली",
+ "bm": "बमबारा",
+ "my": "बर्मी",
+ "wa": "बलून",
+ "vai": "बाई",
+ "ksf": "बाफिया",
+ "wae": "बालसर",
+ "bas": "बासा",
+ "eu": "बास्क",
+ "vi": "बियतनामी",
+ "vun": "बुंजो",
+ "bg": "बुलगेरियाई",
+ "bez": "बेना",
+ "bem": "बेम्बा",
+ "be": "बेलारूसी",
+ "cy": "बेल्श",
+ "brx": "बोडो",
+ "wo": "बोलोफ",
+ "bs": "बोसनियाई",
+ "en-GB": "ब्रिटिश अंग्रेज़ी",
+ "br": "ब्रेटन",
+ "bho": "भोजपुरी",
+ "kde": "मकोंडे",
+ "mgh": "मखुआ-मेटो",
+ "mzn": "मजनदेरानी",
+ "mni": "मणिपुरी",
+ "mr": "मराठी",
+ "mg": "मलगासी",
+ "mt": "मलटीज",
+ "ms": "मलय",
+ "ml": "मलयालम",
+ "mas": "मसाई",
+ "mi": "माओरी",
+ "zgh": "मानक मोरोक्कन टेमेजिग्थ",
+ "mua": "मुंडांग",
+ "mgo": "मेटा",
+ "mer": "मेरू",
+ "mk": "मेसिडोनियाई",
+ "jmc": "मैकेम",
+ "es-MX": "मैक्सिकन स्पेनिश",
+ "mai": "मैथिली",
+ "mdf": "मोकशा",
+ "mn": "मोंगोलियाई",
+ "mfe": "मोरीसेन",
+ "yav": "यंगबैन",
+ "uk": "यूक्रेनी",
+ "el": "यूनानी",
+ "pt-PT": "यूरोपीय पुर्तगाली",
+ "yo": "योरूबा",
+ "rn": "रूंडी",
+ "rwk": "रूवा",
+ "ru": "रूसी",
+ "rof": "रोमबो",
+ "ro": "रोमानियाई",
+ "ro-MD": "रोमानियाई (मोलडोवा)",
+ "rm": "रोमांश",
+ "lkt": "लकोटा",
+ "lb": "लगजमबर्गी",
+ "lag": "लंगी",
+ "lo": "लाओ",
+ "lv": "लातवियाई",
+ "ln": "लिंगाला",
+ "lt": "लिथुआनियाई",
+ "luo": "लुओ",
+ "lu": "लुबा-कटांगा",
+ "luy": "लुुइया",
+ "es-419": "लैटिन अमेरिकी स्पेनिश",
+ "nds": "लो जर्मन",
+ "nds-NL": "लो जर्मन (नीदरलैंड)",
+ "dsb": "लोअर सोर्बियाई",
+ "ksb": "शमबाला",
+ "cv": "शुवास",
+ "sn": "शोना",
+ "sah": "सखा",
+ "sat": "संथाली",
+ "saq": "समबुरू",
+ "zh-Hans": "सरलीकृत चीनी",
+ "sr": "सर्बियाई",
+ "sa": "संस्कृत",
+ "sbp": "सांगू",
+ "sg": "सांगो",
+ "sc": "सार्डिनियाई",
+ "ii": "सिचुआन यी",
+ "sd": "सिंधी",
+ "si": "सिंहला",
+ "su": "सुंदनेजे",
+ "tzm": "सेंट्रल एटलस टेमेजिघ",
+ "ckb": "सेंट्रल कुर्दी",
+ "seh": "सेना",
+ "ceb": "सेबुयानो",
+ "xog": "सोगा",
+ "so": "सोमाली",
+ "gd": "स्काउटिस गेलिक",
+ "sms": "स्कोल्ट समी",
+ "es": "स्पेनिश",
+ "sk": "स्लोबाक",
+ "sl": "स्लोबेनियाई",
+ "sw": "स्वाहिलि",
+ "sw-CD": "स्वाहिलि (कांगो-किंशासा)",
+ "de-CH": "स्विस उच्च जर्मन",
+ "fr-CH": "स्विस फ़्रेंच",
+ "sv": "स्वीडिश",
+ "gsw": "स्वीस जर्मन",
+ "ha": "हउसा",
+ "hu": "हंगेरियन",
+ "haw": "हवाईयन",
+ "hi": "हिन्दी",
+ "hi-Latn": "हिन्दी (लातिन)",
+ "he": "हीब्रू"
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/mg.json b/vendor/commerceguys/intl/resources/language/mg.json
index 1c2d9b283..8d9bdc8d8 100644
--- a/vendor/commerceguys/intl/resources/language/mg.json
+++ b/vendor/commerceguys/intl/resources/language/mg.json
@@ -24,6 +24,7 @@
"bem": "Bemba",
"bez": "Bena",
"bn": "Bengali",
+ "bho": "Bhojpuri",
"be": "Bielorosy",
"bg": "Biolgara",
"my": "Birmana",
@@ -38,6 +39,7 @@
"ce": "Chechen",
"chr": "Cherokee",
"cgg": "Chiga",
+ "cv": "Chuvash",
"ksh": "Colognian",
"kw": "Cornish",
"hr": "Croatian",
@@ -47,7 +49,6 @@
"dz": "Dzongkha",
"ebu": "Embu",
"es": "Espaniola",
- "es-419": "Espaniola (419)",
"es-MX": "Espaniola (Meksika)",
"et": "Estonian",
"ee": "Ewe",
@@ -59,7 +60,7 @@
"fr-CA": "Frantsay (Kanada)",
"fr-CH": "Frantsay (Soisa)",
"fur": "Friulian",
- "ff": "Fulah",
+ "ff": "Fula",
"gl": "Galician",
"lg": "Ganda",
"ka": "Georgian",
@@ -67,9 +68,11 @@
"gu": "Gujarati",
"guz": "Gusii",
"ha": "haoussa",
+ "bgc": "Haryanvi",
"haw": "Hawaiian",
"he": "Hebrew",
"hi": "hindi",
+ "hi-Latn": "hindi (Latn)",
"nl": "Holandey",
"nl-BE": "Holandey (Belzika)",
"hu": "hongroà",
@@ -105,6 +108,7 @@
"lkt": "Lakota",
"lag": "Langi",
"lo": "Lao",
+ "es-419": "Latin American Spanish",
"lv": "Latvian",
"ln": "Lingala",
"lt": "Lithuanian",
@@ -130,6 +134,7 @@
"mzn": "Mazanderani",
"mer": "Meru",
"mgo": "Metaʼ",
+ "mdf": "Moksha",
"mn": "Mongolian",
"mfe": "Morisyen",
"mua": "Mundang",
@@ -141,6 +146,7 @@
"yrl": "Nheengatu",
"pcm": "Nigerian Pidgin",
"nd": "North Ndebele",
+ "frr": "Northern Frisian",
"lrc": "Northern Luri",
"se": "Northern Sami",
"no": "Norwegian",
@@ -148,6 +154,8 @@
"nn": "Norwegian Nynorsk",
"nus": "Nuer",
"nyn": "Nyankole",
+ "ann": "Obolo",
+ "oc": "Occitan",
"or": "Odia",
"uk": "Okrainianina",
"ur": "Ordò",
@@ -156,10 +164,12 @@
"ps": "Pashto",
"pa": "Penjabi",
"fa": "Persa",
+ "pis": "Pijin",
"pl": "Poloney",
"pt": "Portiogey",
"pt-PT": "Portiogey (Pôrtiogala)",
"qu": "Quechua",
+ "raj": "Rajasthani",
"rw": "Roande",
"ro": "Romanianina",
"ro-MD": "Romanianina (Môldavia)",
@@ -168,7 +178,6 @@
"ru": "Rosianina",
"rn": "Rundi",
"rwk": "Rwa",
- "sah": "Sakha",
"saq": "Samburu",
"sg": "Sango",
"sbp": "Sangu",
@@ -186,6 +195,7 @@
"zh": "Sinoa, Mandarin",
"zh-Hans": "Sinoa, Mandarin (Hans)",
"zh-Hant": "Sinoa, Mandarin (Hant)",
+ "sms": "Skolt Sami",
"sk": "Slovak",
"sl": "Slovenian",
"xog": "Soga",
@@ -208,6 +218,7 @@
"bo": "Tibetan",
"ti": "Tigrinya",
"tr": "Tiorka",
+ "tok": "Toki Pona",
"to": "Tongan",
"cs": "Tseky",
"tk": "Turkmen",
@@ -223,6 +234,7 @@
"fy": "Western Frisian",
"wo": "Wolof",
"xh": "Xhosa",
+ "sah": "Yakut",
"yav": "Yangben",
"yi": "Yiddish",
"yo": "Yôrobà",
diff --git a/vendor/commerceguys/intl/resources/language/mk.json b/vendor/commerceguys/intl/resources/language/mk.json
index fd276b519..754514b66 100644
--- a/vendor/commerceguys/intl/resources/language/mk.json
+++ b/vendor/commerceguys/intl/resources/language/mk.json
@@ -22,6 +22,7 @@
"bn": "бенгалски",
"brx": "бодо",
"bs": "босански",
+ "bho": "боџпури",
"br": "бретонски",
"en-GB": "британски англиски",
"bg": "бугарски",
@@ -127,6 +128,7 @@
"es-MX": "мексикански шпански",
"mer": "меру",
"mgo": "мета",
+ "mdf": "мокшански",
"ro-MD": "молдавски",
"mn": "монголски",
"mfe": "морисјен",
@@ -142,16 +144,20 @@
"nus": "нуер",
"nyn": "њанколе",
"yrl": "њенгату",
+ "ann": "оболо",
"or": "одија",
+ "oc": "окситански",
"om": "оромо",
"os": "осетски",
"ps": "паштунски",
"pa": "пенџапски",
"fa": "персиски",
+ "pis": "пиџин",
"zh-Hans": "поедноставен кинески",
"pl": "полски",
"pt": "португалски",
"pt-PT": "португалски (Европа)",
+ "raj": "раџастански",
"rm": "реторомански",
"ro": "романски",
"rof": "ромбо",
@@ -170,10 +176,12 @@
"nd": "северен ндебеле",
"se": "северен сами",
"lrc": "севернолуриски",
+ "frr": "севернофризиски",
"seh": "сена",
"sd": "синди",
"si": "синхалски",
"ii": "сичуан ји",
+ "sms": "сколт сами",
"sk": "словачки",
"sl": "словенечки",
"xog": "сога",
@@ -192,6 +200,7 @@
"teo": "тесо",
"bo": "тибетски",
"ti": "тигриња",
+ "tok": "токи пона",
"to": "тонгајски",
"zh-Hant": "традиционален кинески",
"tk": "туркменски",
@@ -212,6 +221,7 @@
"ha": "хауса",
"he": "хебрејски",
"hi": "хинди",
+ "hi-Latn": "хинди (латинично писмо)",
"nl": "холандски",
"hr": "хрватски",
"tzm": "централноатлански тамазитски",
@@ -220,6 +230,7 @@
"ce": "чеченски",
"cs": "чешки",
"cgg": "чига",
+ "cv": "чувашки",
"ksb": "шамбала",
"gsw": "швајцарски германски",
"de-CH": "швајцарски горногермански",
@@ -227,5 +238,6 @@
"sv": "шведски",
"gd": "шкотски гелски",
"sn": "шона",
- "es": "шпански"
+ "es": "шпански",
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/ml.json b/vendor/commerceguys/intl/resources/language/ml.json
index 05ee9d0b3..5f13a24bf 100644
--- a/vendor/commerceguys/intl/resources/language/ml.json
+++ b/vendor/commerceguys/intl/resources/language/ml.json
@@ -26,8 +26,10 @@
"is": "ഐസ്‌ലാൻഡിക്",
"ga": "ഐറിഷ്",
"or": "ഒഡിയ",
+ "ann": "ഒബോളോ",
"os": "ഒസ്സെറ്റിക്",
"om": "ഒറോമോ",
+ "oc": "ഓക്‌സിറ്റൻ",
"ast": "ഓസ്‌ട്രിയൻ",
"de-AT": "ഓസ്‌ട്രിയൻ ജർമൻ",
"en-AU": "ഓസ്‌ട്രേലിയൻ ഇംഗ്ലീഷ്",
@@ -48,6 +50,7 @@
"rw": "കിന്യാർവാണ്ട",
"ky": "കിർഗിസ്",
"ku": "കുർദ്ദിഷ്",
+ "kgp": "കെയിൻഗാംഗ്",
"kok": "കൊങ്കണി",
"khq": "കൊയ്റ ചീനി",
"ses": "കൊയ്റാബൊറോ സെന്നി",
@@ -68,6 +71,7 @@
"jgo": "ഗോമ്പ",
"el": "ഗ്രീക്ക്",
"cgg": "ചിഗ",
+ "cv": "ചുവാഷ്",
"cs": "ചെക്ക്",
"ce": "ചെചൻ",
"zh": "ചൈനീസ്",
@@ -81,6 +85,7 @@
"bo": "ടിബറ്റൻ",
"teo": "ടെസോ",
"ti": "ടൈഗ്രിന്യ",
+ "tok": "ടോകി പോന",
"to": "ടോംഗൻ",
"nl": "ഡച്ച്",
"da": "ഡാനിഷ്",
@@ -95,9 +100,11 @@
"dua": "ദ്വാല",
"dz": "ദ്‌സോങ്ക",
"naq": "നാമ",
+ "yrl": "നീൻഗാറ്റു",
"nus": "നുവേർ",
"ne": "നേപ്പാളി",
"pcm": "നൈജീരിയൻ പിഡ്‌ഗിൻ",
+ "frr": "നോർത്തേൻ ഫ്രിഷ്യൻ",
"nd": "നോർത്ത് ഡെബിൾ",
"no": "നോർവീജിയൻ",
"nn": "നോർവീജിയൻ നൈനോർക്‌സ്",
@@ -107,6 +114,7 @@
"zh-Hant": "പരമ്പരാഗത ചൈനീസ്",
"fy": "പശ്ചിമ ഫ്രിഷിയൻ",
"ps": "പഷ്‌തോ",
+ "pis": "പിജിൻ",
"fa": "പേർഷ്യൻ",
"pt": "പോർച്ചുഗീസ്",
"pl": "പോളിഷ്",
@@ -131,6 +139,7 @@
"bs": "ബോസ്നിയൻ",
"en-GB": "ബ്രിട്ടീഷ് ഇംഗ്ലീഷ്",
"br": "ബ്രെട്ടൺ",
+ "bho": "ഭോജ്‌പുരി",
"kde": "മക്കോണ്ടെ",
"jmc": "മചേം",
"mni": "മണിപ്പൂരി",
@@ -152,6 +161,7 @@
"mer": "മേരു",
"mai": "മൈഥിലി",
"mfe": "മൊറിസിൻ",
+ "mdf": "മോക്ഷ",
"ro-MD": "മോൾഡാവിയൻ",
"yav": "യാംഗ്ബെൻ",
"yi": "യിദ്ദിഷ്",
@@ -159,6 +169,7 @@
"pt-PT": "യൂറോപ്യൻ പോർച്ചുഗീസ്",
"yo": "യൊറൂബാ",
"dyo": "യോല-ഫോന്യി",
+ "raj": "രാജസ്ഥാനി",
"lb": "ലക്‌സംബർഗിഷ്",
"lkt": "ലഗോത്ത",
"zh-Hans": "ലളിതമാക്കിയ ചൈനീസ്",
@@ -206,6 +217,7 @@
"xog": "സോഗോ",
"so": "സോമാലി",
"gd": "സ്കോട്ടിഷ് ഗൈലിക്",
+ "sms": "സ്കോൾട്ട് സമി",
"es": "സ്‌പാനിഷ്",
"sk": "സ്ലോവാക്",
"sl": "സ്ലോവേനിയൻ",
@@ -218,6 +230,7 @@
"hu": "ഹംഗേറിയൻ",
"haw": "ഹവായിയൻ",
"hi": "ഹിന്ദി",
+ "hi-Latn": "ഹിന്ദി (ലാറ്റിൻ)",
"he": "ഹീബ്രു",
"ha": "ഹൗസ",
"ru": "റഷ്യൻ",
@@ -226,6 +239,5 @@
"rm": "റൊമാഞ്ച്",
"ro": "റൊമാനിയൻ",
"rof": "റോംബോ",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/mn.json b/vendor/commerceguys/intl/resources/language/mn.json
index 14c87aadb..c1d36c447 100644
--- a/vendor/commerceguys/intl/resources/language/mn.json
+++ b/vendor/commerceguys/intl/resources/language/mn.json
@@ -13,7 +13,6 @@
"ast": "астури",
"asa": "асу",
"af": "африкаанс",
- "nds-NL": "бага саксон",
"ne": "балба",
"bm": "бамбара",
"fy": "баруун фриз",
@@ -26,6 +25,7 @@
"bn": "бенгал",
"my": "бирм",
"brx": "бодо",
+ "bho": "божпури",
"bg": "болгар",
"bs": "босни",
"br": "бретон",
@@ -44,6 +44,7 @@
"da": "дани",
"doi": "догри",
"nds": "доод герман",
+ "nds-NL": "доод герман (Нидерланд)",
"dsb": "доод сорби",
"dua": "дуала",
"hsb": "дээд сорби",
@@ -67,6 +68,7 @@
"kab": "кабиле",
"kea": "кабүвердиану",
"kk": "казах",
+ "kgp": "кайнганг",
"kkj": "како",
"kl": "калалисут",
"kln": "каленжин",
@@ -117,6 +119,7 @@
"jmc": "мачамэ",
"mer": "меру",
"mgo": "мета",
+ "mdf": "мокша",
"ro-MD": "молдав",
"mn": "монгол",
"mfe": "морисен",
@@ -130,13 +133,17 @@
"nb": "норвегийн букмол",
"nn": "норвегийн нинорск",
"nus": "нуер",
+ "yrl": "ньенгату",
"nyn": "нянколе",
+ "ann": "оболо",
+ "oc": "окситан",
"or": "ория",
"om": "оромо",
"ru": "орос",
"os": "оссетин",
"pa": "панжаби",
"fa": "перс",
+ "pis": "пижин",
"pl": "польш",
"pt": "португал",
"pt-PT": "португал хэл (Европ)",
@@ -159,6 +166,7 @@
"sr": "серб",
"sd": "синдхи",
"si": "синхала",
+ "sms": "сколт сами",
"sk": "словак",
"sl": "словени",
"xog": "сога",
@@ -175,6 +183,7 @@
"tt": "татар",
"shi": "тачелхит",
"ti": "тигринья",
+ "tok": "токипона",
"to": "тонга",
"tzm": "Төв Атласын тамазигхт",
"ckb": "төв курд",
@@ -201,9 +210,11 @@
"haw": "хавай",
"ha": "хауса",
"hi": "хинди",
+ "hi-Latn": "хинди (латин)",
"lrc": "хойд лури",
"nd": "хойд ндебеле",
"se": "хойд сами",
+ "frr": "хойд фриз",
"hr": "хорват",
"xh": "хоса",
"zh-Hans": "хялбаршуулсан хятад",
@@ -212,6 +223,7 @@
"cs": "чех",
"ce": "чечень",
"cgg": "чига",
+ "cv": "чуваш",
"ksb": "шамбал",
"sv": "швед",
"gsw": "швейцари-герман",
@@ -226,6 +238,6 @@
"jv": "ява",
"yav": "янгбен",
"ja": "япон",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi",
+ "raj": "Rajasthani"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/mr.json b/vendor/commerceguys/intl/resources/language/mr.json
index f7bd59beb..f38815e71 100644
--- a/vendor/commerceguys/intl/resources/language/mr.json
+++ b/vendor/commerceguys/intl/resources/language/mr.json
@@ -25,13 +25,16 @@
"uz": "उझ्बेक",
"or": "उडिया",
"nd": "उत्तर देबेली",
+ "frr": "उत्तरी फ्रिशियन",
"lrc": "उत्तरी ल्युरी",
"se": "उत्तरी सामी",
"ur": "उर्दू",
"ebu": "एम्बू",
"ee": "एवे",
+ "oc": "ऑक्सितान",
"de-AT": "ऑस्ट्रियन जर्मन",
"en-AU": "ऑस्ट्रेलियन इंग्रजी",
+ "ann": "ओबोलो",
"om": "ओरोमो",
"os": "ओस्सेटिक",
"yue": "कँटोनीज",
@@ -40,6 +43,7 @@
"kab": "कबाइल",
"kl": "कलाल्लिसत",
"sw-CD": "काँगो स्वाहिली",
+ "kgp": "काइंगांग",
"kkj": "काको",
"ca": "कातालान",
"kea": "काबवर्दियानु",
@@ -71,6 +75,7 @@
"jgo": "गोम्बा",
"el": "ग्रीक",
"zh": "चीनी",
+ "cv": "चूवाश",
"ce": "चेचेन",
"chr": "चेरोकी",
"ja": "जपानी",
@@ -84,6 +89,7 @@
"cs": "झेक",
"dz": "झोंगखा",
"to": "टोंगन",
+ "tok": "टोकि पोना",
"nl": "डच",
"da": "डॅनिश",
"doi": "डोगरी",
@@ -109,10 +115,12 @@
"nb": "नॉर्वेजियन बोकमाल",
"no": "नोर्वेजियन",
"nyn": "न्यानकोल",
+ "yrl": "न्हेंगाटू",
"pa": "पंजाबी",
"fy": "पश्चिमी फ्रिशियन",
"ps": "पश्तो",
"zh-Hant": "पारंपारिक चीनी",
+ "pis": "पिजिन",
"pt": "पोर्तुगीज",
"pl": "पोलिश",
"zgh": "प्रमाण मोरोक्कन तॅमॅझायट",
@@ -138,6 +146,7 @@
"bs": "बोस्नियन",
"en-GB": "ब्रिटिश इंग्रजी",
"br": "ब्रेतॉन",
+ "bho": "भोजपुरी",
"mn": "मंगोलियन",
"mni": "मणिपुरी",
"tzm": "मध्य अ‍ॅटलास तॅमाझाइट",
@@ -161,6 +170,7 @@
"mai": "मैथिली",
"mfe": "मोरिस्येन",
"ro-MD": "मोल्डाव्हियन",
+ "mdf": "मोक्ष",
"yav": "यांगबेन",
"yi": "यिद्दिश",
"uk": "युक्रेनियन",
@@ -168,6 +178,7 @@
"yo": "योरुबा",
"rwk": "रव्हा",
"ru": "रशियन",
+ "raj": "राजस्थानी",
"rn": "रुन्दी",
"ro": "रोमानियन",
"rm": "रोमान्श",
@@ -213,6 +224,7 @@
"xog": "सोगा",
"so": "सोमाली",
"gd": "स्कॉटिश गेलिक",
+ "sms": "स्कोल्ट सामी",
"es": "स्पॅनिश",
"sk": "स्लोव्हाक",
"sl": "स्लोव्हेनियन",
@@ -224,8 +236,8 @@
"hu": "हंगेरियन",
"haw": "हवाईयन",
"hi": "हिंदी",
+ "hi-Latn": "हिंदी (लॅटिन)",
"he": "हिब्रू",
"ha": "हौसा",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/ms.json b/vendor/commerceguys/intl/resources/language/ms.json
index b6111ec6c..a6701f67d 100644
--- a/vendor/commerceguys/intl/resources/language/ms.json
+++ b/vendor/commerceguys/intl/resources/language/ms.json
@@ -19,8 +19,9 @@
"bem": "Bemba",
"bez": "Bena",
"bn": "Benggali",
+ "bho": "Bhojpuri",
"brx": "Bodo",
- "nb": "Bokmål Norway",
+ "nb": "Bokmal Norway",
"bs": "Bosnia",
"br": "Breton",
"bg": "Bulgaria",
@@ -30,6 +31,7 @@
"ce": "Chechen",
"chr": "Cherokee",
"cgg": "Chiga",
+ "cv": "Chuvash",
"zh": "Cina",
"zh-Hans": "Cina Ringkas",
"zh-Hant": "Cina Tradisional",
@@ -51,6 +53,7 @@
"fi": "Finland",
"nl-BE": "Flemish",
"fy": "Frisian Barat",
+ "frr": "Frisian Utara",
"fur": "Friulian",
"ff": "Fulah",
"gl": "Galicia",
@@ -59,9 +62,11 @@
"el": "Greek",
"gu": "Gujerat",
"guz": "Gusii",
+ "bgc": "Haryanvi",
"ha": "Hausa",
"haw": "Hawaii",
"hi": "Hindi",
+ "hi-Latn": "Hindi (Latin)",
"hu": "Hungary",
"he": "Ibrani",
"is": "Iceland",
@@ -132,6 +137,7 @@
"ms": "Melayu",
"mer": "Meru",
"mgo": "Meta’",
+ "mdf": "Moksha",
"ro-MD": "Moldavia",
"mn": "Mongolia",
"mfe": "Morisyen",
@@ -147,6 +153,8 @@
"nus": "Nuer",
"nyn": "Nyankole",
"nn": "Nynorsk Norway",
+ "ann": "Obolo",
+ "oc": "Occitania",
"or": "Odia",
"om": "Oromo",
"os": "Ossete",
@@ -155,11 +163,13 @@
"fr": "Perancis",
"fr-CA": "Perancis Kanada",
"fr-CH": "Perancis Switzerland",
+ "pis": "Pijin",
"pl": "Poland",
"pt": "Portugis",
"pt-PT": "Portugis Eropah",
"pa": "Punjabi",
"qu": "Quechua",
+ "raj": "Rajasthani",
"ro": "Romania",
"rm": "Romansh",
"rof": "Rombo",
@@ -186,6 +196,7 @@
"ii": "Sichuan Yi",
"sd": "Sindhi",
"si": "Sinhala",
+ "sms": "Skolt Sami",
"sk": "Slovak",
"sl": "Slovenia",
"xog": "Soga",
@@ -208,6 +219,7 @@
"th": "Thai",
"bo": "Tibet",
"ti": "Tigrinya",
+ "tok": "Toki Pona",
"to": "Tonga",
"tr": "Turki",
"tk": "Turkmen",
diff --git a/vendor/commerceguys/intl/resources/language/mt.json b/vendor/commerceguys/intl/resources/language/mt.json
index 47fdea99c..7db9ba026 100644
--- a/vendor/commerceguys/intl/resources/language/mt.json
+++ b/vendor/commerceguys/intl/resources/language/mt.json
@@ -17,6 +17,7 @@
"bem": "Bemba",
"bez": "Bena",
"bn": "Bengali",
+ "bho": "Bhojpuri",
"brx": "Bodo",
"nb": "Bokmal Norveġiż",
"bs": "Bożnijaku",
@@ -32,6 +33,7 @@
"ce": "Chechen",
"chr": "Cherokee",
"cgg": "Chiga",
+ "cv": "Chuvash",
"da": "Daniż",
"doi": "Dogri",
"dua": "Dwala",
@@ -66,8 +68,10 @@
"gu": "Gujarati",
"guz": "Gusii",
"ar": "Għarbi",
+ "bgc": "Haryanvi",
"ha": "Hausa",
"hi": "Hindi",
+ "hi-Latn": "Hindi (Latin)",
"haw": "Ħawajjan",
"ig": "Igbo",
"smn": "Inari Sami",
@@ -132,6 +136,7 @@
"mzn": "Mazanderani",
"mer": "Meru",
"mgo": "Metà",
+ "mdf": "Moksha",
"ro-MD": "Moldovan",
"mn": "Mongoljan",
"mfe": "Morisyen",
@@ -143,9 +148,12 @@
"jgo": "Ngomba",
"yrl": "Nheengatu",
"nn": "Ninorsk Norveġiż",
+ "frr": "Northern Frisian",
"no": "Norveġiż",
"nus": "Nuer",
"nyn": "Nyankole",
+ "ann": "Obolo",
+ "oc": "Oċċitan",
"or": "Odia",
"nl": "Olandiż",
"om": "Oromo",
@@ -153,11 +161,13 @@
"ps": "Pashto",
"fa": "Persjan",
"pcm": "Pidgin Niġerjan",
+ "pis": "Pijin",
"pl": "Pollakk",
"pt": "Portugiż",
"pt-PT": "Portugiż Ewropew",
"pa": "Punjabi",
"qu": "Quechua",
+ "raj": "Raġastani",
"rm": "Romanz",
"rof": "Rombo",
"ro": "Rumen",
@@ -180,6 +190,7 @@
"ii": "Sichuan Yi",
"sd": "Sindhi",
"si": "Sinhala",
+ "sms": "Skolt Sami",
"sk": "Slovakk",
"sl": "Sloven",
"xog": "Soga",
@@ -206,6 +217,7 @@
"teo": "Teso",
"bo": "Tibetjan",
"ti": "Tigrinya",
+ "tok": "Toki Pona",
"to": "Tongan",
"tr": "Tork",
"tk": "Turkmeni",
diff --git a/vendor/commerceguys/intl/resources/language/my.json b/vendor/commerceguys/intl/resources/language/my.json
index 97768fd2a..8105d2946 100644
--- a/vendor/commerceguys/intl/resources/language/my.json
+++ b/vendor/commerceguys/intl/resources/language/my.json
@@ -18,6 +18,7 @@
"ca": "ကတ်တလန်",
"ku": "ကဒ်",
"kn": "ကန်နာဒါ",
+ "kgp": "ကိန်းဂန်",
"kam": "ကမ်ဘာ",
"nmg": "ကွာစီအို",
"kok": "ကွန်ကနီ",
@@ -29,6 +30,7 @@
"kw": "ခိုနီရှ်",
"chr": "ချာရိုကီ",
"cgg": "ချီဂါ",
+ "cv": "ချူဗက်ရှ်",
"cs": "ချက်",
"ce": "ချက်ချန်း",
"el": "ဂရိ",
@@ -40,11 +42,11 @@
"jv": "ဂျာဗား",
"de": "ဂျာမန်",
"nds-NL": "ဂျာမန် (နယ်သာလန်)",
- "yi": "ဂျူး",
"ka": "ဂျော်ဂျီယာ",
"dyo": "ဂျိုလာ-ဖွန်ရီ",
"jgo": "ဂွမ်ဘာ",
"gd": "စကော့တစ်ရှ် ဂေးလစ်ခ်",
+ "sms": "စခိုးလ် ဆာမိ",
"es": "စပိန်",
"es-MX": "စပိန် (မက္ကဆီကို)",
"es-419": "စပိန် (လက်တင်အမေရိက)",
@@ -87,7 +89,7 @@
"te": "တီလီဂူ",
"ti": "တီဂ်ရင်ယာ",
"tr": "တူရကီ",
- "af": "တောင်အာဖရိက",
+ "tok": "တိုကီပိုနာ",
"dav": "တိုင်တာ",
"to": "တွန်ဂါ",
"th": "ထိုင်း",
@@ -100,11 +102,12 @@
"naq": "နာမာ",
"ne": "နီပေါ",
"nus": "နူအာ",
+ "no": "နော်ဝေ",
"nn": "နော်ဝေ နီးနောစ်",
"nb": "နော်ဝေ ဘွတ်ခ်မော်လ်",
- "no": "နော်ဝေး",
"pcm": "နိုင်ဂျီးရီးယား ပစ်ဂျင်",
"fa": "ပါရှန်",
+ "pis": "ပီဂျင်",
"pt": "ပေါ်တူဂီ",
"pl": "ပိုလန်",
"ps": "ပက်ရှ်တွန်း",
@@ -129,6 +132,7 @@
"be": "ဘီလာရုစ်",
"bg": "ဘူလ်ဂေးရီးယား",
"bs": "ဘော့စ်နီးယား",
+ "bho": "ဘို့ဂျ်ပူရီ",
"bn": "ဘင်္ဂါလီ",
"eu": "ဘာစ်ခ်",
"bm": "ဘန်ဘာရာ",
@@ -150,9 +154,11 @@
"ro-MD": "မော်လဒိုဗာ",
"mt": "မော်လ်တာ",
"zgh": "မိုရိုကို တမဇိုက်",
+ "mdf": "မို့ခ်ရှာ",
"mk": "မက်ဆီဒိုးနီးယား",
"mai": "မိုင်သီလီ",
"se": "မြောက် ဆာမိ",
+ "frr": "မြောက် ဖရီစီရန်",
"nd": "မြောက် အွန်န်ဒီဘီလီ",
"lrc": "မြောက်လူရီ",
"my": "မြန်မာ",
@@ -160,6 +166,7 @@
"mua": "မွန်ဒန်း",
"uk": "ယူကရိန်း",
"yo": "ယိုရူဘာ",
+ "yi": "ရဟူဒီ",
"ru": "ရုရှ",
"rwk": "ရူဝမ်",
"rm": "ရောမ",
@@ -187,9 +194,10 @@
"sa": "သင်္သကရိုက်",
"haw": "ဟာဝိုင်ယီ",
"ha": "ဟာဥစာ",
- "he": "ဟီးဘရူး",
+ "he": "ဟီဘရူး",
"hu": "ဟန်ဂေရီ",
"hi": "ဟိန်ဒူ",
+ "hi-Latn": "ဟိန်ဒူ (လက်တင်)",
"az": "အဇာဘိုင်ဂျန်",
"fy": "အနောက် ဖရီစီရန်",
"nds": "အနိမ့် ဂျာမန်",
@@ -198,6 +206,7 @@
"tzm": "အလယ်အာ့တလာစ် တာမာဇိုက်",
"ak": "အာကန်",
"asa": "အာစု",
+ "af": "အာဖရိကန်",
"hy": "အာမေးနီးယား",
"ar": "အာရဗီ",
"as": "အာသံ",
@@ -211,7 +220,9 @@
"ur": "အူရ်ဒူ",
"de-AT": "ဩစတြီးယား ဂျာမန်",
"en-AU": "ဩစတြေးလျ အင်္ဂလိပ်",
+ "oc": "အိုစီတန်",
"os": "အိုဆဲတစ်ခ်",
+ "ann": "အိုဘိုလို",
"or": "အိုရီရာ",
"om": "အိုရိုမို",
"et": "အက်စ်တိုးနီးယား",
@@ -222,10 +233,11 @@
"id": "အင်ဒိုနီးရှား",
"ga": "အိုင်းရစ်ရှ်",
"ig": "အစ္ဂဘို",
+ "yrl": "အန်ဟင်းဂတူ",
"ebu": "အမ်ဘူ",
"am": "အမ်ဟာရစ်ခ်",
"sq": "အယ်လ်ဘေးနီးယား",
"nnh": "အွန်ရဲဘွန်း",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi",
+ "raj": "Rajasthani"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/ne.json b/vendor/commerceguys/intl/resources/language/ne.json
index 12a2bd909..88804a9fa 100644
--- a/vendor/commerceguys/intl/resources/language/ne.json
+++ b/vendor/commerceguys/intl/resources/language/ne.json
@@ -1,4 +1,5 @@
{
+ "oc": "अक्सिटन",
"en": "अङ्ग्रेजी",
"az": "अजरबैजानी",
"af": "अफ्रिकान्स",
@@ -27,10 +28,12 @@
"uz": "उज्बेकी",
"or": "उडिया",
"nd": "उत्तरी न्डेबेले",
+ "frr": "उत्तरी फ्रिजी",
"lrc": "उत्तरी लुरी",
"se": "उत्तरी सामी",
"ur": "उर्दु",
"ebu": "एम्बु",
+ "ann": "ओबोलो",
"om": "ओरोमो",
"os": "ओस्सेटिक",
"sw-CD": "कङ्गो स्वाहिली",
@@ -71,6 +74,7 @@
"el": "ग्रीक",
"cgg": "चिगा",
"zh": "चिनियाँ",
+ "cv": "चुभास",
"cs": "चेक",
"ce": "चेचेन",
"chr": "चेरोकी",
@@ -87,6 +91,7 @@
"shi": "टाचेल्हिट",
"ti": "टिग्रिन्या",
"teo": "टेसो",
+ "tok": "टोकी पोना",
"to": "टोङ्गन",
"nl": "डच",
"da": "डेनिस",
@@ -118,6 +123,7 @@
"zh-Hant": "परम्परागत चिनियाँ",
"fy": "पश्चिमी फ्रिसियन",
"ps": "पास्तो",
+ "pis": "पिजिन",
"pt": "पोर्तुगी",
"pl": "पोलिस",
"fa": "फारसी",
@@ -145,6 +151,7 @@
"vai": "भाइ",
"vi": "भियतनामी",
"vun": "भुन्जो",
+ "bho": "भोजपुरी",
"mn": "मङ्गोलियाली",
"mzn": "मजानडेरानी",
"ckb": "मध्यवर्ती कुर्दिस",
@@ -166,6 +173,7 @@
"mgo": "मेटा",
"mer": "मेरू",
"mai": "मैथिली",
+ "mdf": "मोक्ष",
"mfe": "मोरिसेन",
"ro-MD": "मोल्डाभियाली",
"mk": "म्यासेडोनियन",
@@ -175,6 +183,7 @@
"pt-PT": "युरोपेली पोर्तुगी",
"yo": "योरूवा",
"ru": "रसियाली",
+ "raj": "राजस्थानी",
"rn": "रुन्डी",
"ro": "रोमानियाली",
"rm": "रोमानिस",
@@ -215,6 +224,7 @@
"xog": "सोगा",
"so": "सोमाली",
"gd": "स्कटिस गाएलिक",
+ "sms": "स्कोइट सामी",
"es": "स्पेनी",
"sk": "स्लोभाकियाली",
"sl": "स्लोभेनियाली",
@@ -227,5 +237,7 @@
"haw": "हवाइयन",
"ha": "हाउसा",
"hi": "हिन्दी",
- "he": "हिब्रु"
+ "hi-Latn": "हिन्दी (ल्याटिन)",
+ "he": "हिब्रु",
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/nl.json b/vendor/commerceguys/intl/resources/language/nl.json
index 2c626e1eb..be9f8e5f6 100644
--- a/vendor/commerceguys/intl/resources/language/nl.json
+++ b/vendor/commerceguys/intl/resources/language/nl.json
@@ -19,6 +19,7 @@
"bem": "Bemba",
"bez": "Bena",
"bn": "Bengaals",
+ "bho": "Bhojpuri",
"my": "Birmaans",
"brx": "Bodo",
"bs": "Bosnisch",
@@ -63,10 +64,12 @@
"kl": "Groenlands",
"gu": "Gujarati",
"guz": "Gusii",
+ "bgc": "Haryanvi",
"ha": "Hausa",
"haw": "Hawaïaans",
"he": "Hebreeuws",
"hi": "Hindi",
+ "hi-Latn": "Hindi (Latijns)",
"hu": "Hongaars",
"ga": "Iers",
"ig": "Igbo",
@@ -128,6 +131,7 @@
"mni": "Meitei",
"mer": "Meru",
"mgo": "Meta’",
+ "mdf": "Moksja",
"mn": "Mongools",
"mfe": "Morisyen",
"mua": "Mundang",
@@ -142,6 +146,7 @@
"nmg": "Ngumba",
"yrl": "Nheengatu",
"pcm": "Nigeriaans Pidgin",
+ "frr": "Noord-Fries",
"nd": "Noord-Ndebele",
"se": "Noord-Samisch",
"lrc": "Noordelijk Luri",
@@ -150,6 +155,8 @@
"nn": "Noors - Nynorsk",
"nus": "Nuer",
"nyn": "Nyankole",
+ "ann": "Obolo",
+ "oc": "Occitaans",
"or": "Odia",
"ug": "Oeigoers",
"uk": "Oekraïens",
@@ -158,11 +165,13 @@
"os": "Ossetisch",
"ps": "Pasjtoe",
"fa": "Perzisch",
+ "pis": "Pijin",
"pl": "Pools",
"pt": "Portugees",
"pt-PT": "Portugees (Portugal)",
"pa": "Punjabi",
"qu": "Quechua",
+ "raj": "Rajasthani",
"rm": "Reto-Romaans",
"ro": "Roemeens",
"ro-MD": "Roemeens (Moldavië)",
@@ -182,6 +191,7 @@
"sn": "Shona",
"sd": "Sindhi",
"si": "Singalees",
+ "sms": "Skolt-Samisch",
"sl": "Sloveens",
"sk": "Slowaaks",
"su": "Soendanees",
@@ -206,9 +216,11 @@
"th": "Thai",
"bo": "Tibetaans",
"ti": "Tigrinya",
+ "tok": "Toki Pona",
"to": "Tongaans",
"cs": "Tsjechisch",
"ce": "Tsjetsjeens",
+ "cv": "Tsjoevasjisch",
"tk": "Turkmeens",
"tr": "Turks",
"ur": "Urdu",
diff --git a/vendor/commerceguys/intl/resources/language/nn.json b/vendor/commerceguys/intl/resources/language/nn.json
index af52998b4..f74b63c06 100644
--- a/vendor/commerceguys/intl/resources/language/nn.json
+++ b/vendor/commerceguys/intl/resources/language/nn.json
@@ -17,6 +17,7 @@
"bem": "bemba",
"bez": "bena (Tanzania)",
"bn": "bengali",
+ "bho": "bhojpuri",
"brx": "bodo",
"bs": "bosnisk",
"br": "bretonsk",
@@ -54,10 +55,12 @@
"kl": "grønlandsk (kalaallisut)",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiisk",
"he": "hebraisk",
"hi": "hindi",
+ "hi-Latn": "hindi (latinsk)",
"hsb": "høgsorbisk",
"ig": "ibo",
"id": "indonesisk",
@@ -126,6 +129,7 @@
"mzn": "mazanderani",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"ro-MD": "moldavisk",
"mn": "mongolsk",
"mfe": "morisyen",
@@ -139,23 +143,28 @@
"pcm": "nigeriansk pidgin",
"lrc": "nord-lurisk",
"nd": "nord-ndebele",
+ "frr": "nordfrisisk",
"se": "nordsamisk",
"no": "norsk",
"nb": "norsk bokmål",
"nn": "norsk nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "ann": "obolo",
"or": "odia",
+ "oc": "oksitansk",
"luy": "olulujia",
"om": "oromo",
"os": "ossetisk",
"pa": "panjabi",
"ps": "pashto",
"fa": "persisk",
+ "pis": "pijin",
"pl": "polsk",
"pt": "portugisisk",
"pt-PT": "portugisisk (Portugal)",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "retoromansk",
"rof": "rombo",
"ro": "rumensk",
@@ -177,6 +186,7 @@
"ii": "sichuan-yi",
"sd": "sindhi",
"si": "singalesisk",
+ "sms": "skoltesamisk",
"gd": "skotsk-gælisk",
"sk": "slovakisk",
"sl": "slovensk",
@@ -202,10 +212,12 @@
"th": "thai",
"bo": "tibetansk",
"ti": "tigrinja",
+ "tok": "toki pona",
"to": "tongansk",
"zh-Hant": "tradisjonell kinesisk",
"cs": "tsjekkisk",
"ce": "tsjetsjensk",
+ "cv": "tsjuvansk",
"tk": "turkmensk",
"tr": "tyrkisk",
"de": "tysk",
diff --git a/vendor/commerceguys/intl/resources/language/no.json b/vendor/commerceguys/intl/resources/language/no.json
index 477989a28..c7e2cc86a 100644
--- a/vendor/commerceguys/intl/resources/language/no.json
+++ b/vendor/commerceguys/intl/resources/language/no.json
@@ -17,12 +17,13 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengali",
+ "bho": "bhojpuri",
"brx": "bodo",
"bs": "bosnisk",
"br": "bretonsk",
"bg": "bulgarsk",
"my": "burmesisk",
- "ceb": "cebuansk",
+ "ceb": "cebuano",
"chr": "cherokesisk",
"da": "dansk",
"doi": "dogri",
@@ -54,10 +55,12 @@
"kl": "grønlandsk",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiisk",
"he": "hebraisk",
"hi": "hindi",
+ "hi-Latn": "hindi (latinsk)",
"be": "hviterussisk",
"hsb": "høysorbisk",
"ig": "ibo",
@@ -97,7 +100,6 @@
"ses": "koyraboro senni",
"hr": "kroatisk",
"ku": "kurdisk",
- "ckb": "kurdisk (sorani)",
"nmg": "kwasio",
"ksh": "kølnsk",
"lkt": "lakota",
@@ -127,6 +129,7 @@
"mzn": "mazandarani",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksja",
"ro-MD": "moldovsk",
"mn": "mongolsk",
"mua": "mundang",
@@ -141,22 +144,27 @@
"pcm": "nigeriansk pidginspråk",
"lrc": "nord-luri",
"nd": "nord-ndebele",
+ "frr": "nordfrisisk",
"se": "nordsamisk",
"no": "norsk",
"nb": "norsk bokmål",
"nn": "norsk nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "ann": "obolo",
"or": "odia",
+ "oc": "oksitansk",
"om": "oromo",
"os": "ossetisk",
"pa": "panjabi",
"ps": "pashto",
"fa": "persisk",
+ "pis": "pijin",
"pl": "polsk",
"pt": "portugisisk",
"pt-PT": "portugisisk (Portugal)",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "retoromansk",
"rof": "rombo",
"ro": "rumensk",
@@ -171,6 +179,7 @@
"sat": "santali",
"sc": "sardisk",
"seh": "sena",
+ "ckb": "sentralkurdisk",
"tzm": "sentralmarokkansk tamazight",
"sr": "serbisk",
"ksb": "shambala",
@@ -178,6 +187,7 @@
"ii": "sichuan-yi",
"sd": "sindhi",
"si": "singalesisk",
+ "sms": "skoltesamisk",
"gd": "skotsk-gælisk",
"sk": "slovakisk",
"sl": "slovensk",
@@ -202,10 +212,12 @@
"th": "thai",
"bo": "tibetansk",
"ti": "tigrinja",
+ "tok": "toki pona",
"to": "tongansk",
"zh-Hant": "tradisjonell kinesisk",
"cs": "tsjekkisk",
"ce": "tsjetsjensk",
+ "cv": "tsjuvasjisk",
"tk": "turkmensk",
"tr": "tyrkisk",
"de": "tysk",
diff --git a/vendor/commerceguys/intl/resources/language/pa.json b/vendor/commerceguys/intl/resources/language/pa.json
index de8ee0e95..a64d2eb3a 100644
--- a/vendor/commerceguys/intl/resources/language/pa.json
+++ b/vendor/commerceguys/intl/resources/language/pa.json
@@ -3,10 +3,13 @@
"uz": "ਉਜ਼ਬੇਕ",
"se": "ਉੱਤਰੀ ਸਾਮੀ",
"nd": "ਉੱਤਰੀ ਨਡੇਬੇਲੇ",
+ "frr": "ਉੱਤਰੀ ਫ੍ਰੀਜ਼ੀਅਨ",
"lrc": "ਉੱਤਰੀ ਲੁਰੀ",
"ur": "ਉਰਦੂ",
"or": "ਉੜੀਆ",
"os": "ਓਸੈਟਿਕ",
+ "oc": "ਓਕਸੀਟਾਨ",
+ "ann": "ਓਬੋਲੋ",
"om": "ਓਰੋਮੋ",
"ast": "ਅਸਤੂਰੀ",
"as": "ਅਸਾਮੀ",
@@ -37,9 +40,10 @@
"ee": "ਈਵਈ",
"sa": "ਸੰਸਕ੍ਰਿਤ",
"gd": "ਸਕਾਟਿਸ਼ ਗੇਲਿਕ",
+ "sms": "ਸਕੌਲਟ ਸਾਮੀ",
"sat": "ਸੰਥਾਲੀ",
"es": "ਸਪੇਨੀ",
- "es-MX": "ਸਪੇਨੀ (ਮੈਕਸੀਕੀ)",
+ "es-MX": "ਸਪੇਨੀ (ਮੈਕਸੀਕੋ)",
"es-419": "ਸਪੇਨੀ (ਲਾਤੀਨੀ ਅਮਰੀਕੀ)",
"ksb": "ਸ਼ੰਬਾਲਾ",
"saq": "ਸਮਬੁਰੂ",
@@ -65,6 +69,7 @@
"haw": "ਹਵਾਈ",
"de-CH": "ਹਾਈ ਜਰਮਨ (ਸਵਿਟਜ਼ਰਲੈਂਡ)",
"hi": "ਹਿੰਦੀ",
+ "hi-Latn": "ਹਿੰਦੀ (ਲਾਤੀਨੀ)",
"he": "ਹਿਬਰੂ",
"ha": "ਹੌਸਾ",
"ks": "ਕਸ਼ਮੀਰੀ",
@@ -88,6 +93,7 @@
"ckb": "ਕੇਂਦਰੀ ਕੁਰਦਿਸ਼",
"ca": "ਕੈਟਾਲਾਨ",
"yue": "ਕੈਂਟੋਨੀਜ਼",
+ "kgp": "ਕੈਨਗਾਂਗੋ",
"ses": "ਕੋਇਰਾਬੋਰੋ ਸੇਂਨੀ",
"kok": "ਕੋਂਕਣੀ",
"khq": "ਕੋਯਰਾ ਚੀਨੀ",
@@ -103,6 +109,7 @@
"zh": "ਚੀਨੀ",
"zh-Hans": "ਚੀਨੀ (ਸਰਲ)",
"zh-Hant": "ਚੀਨੀ (ਰਵਾਇਤੀ)",
+ "cv": "ਚੁਵਾਸ਼",
"ce": "ਚੇਚਨ",
"chr": "ਚੇਰੋਕੀ",
"cs": "ਚੈੱਕ",
@@ -133,7 +140,9 @@
"tk": "ਤੁਰਕਮੇਨ",
"tr": "ਤੁਰਕੀ",
"te": "ਤੇਲਗੂ",
+ "tok": "ਤੋਕੀ ਪੋਨਾ",
"th": "ਥਾਈ",
+ "yrl": "ਨਹੀਂਗਾਤੂ",
"jgo": "ਨਗੋਂਬਾ",
"pcm": "ਨਾਇਜੀਰੀਆਈ ਪਿਡਗਿਨ",
"naq": "ਨਾਮਾ",
@@ -147,6 +156,7 @@
"ps": "ਪਸ਼ਤੋ",
"fy": "ਪੱਛਮੀ ਫ੍ਰਿਸੀਅਨ",
"pa": "ਪੰਜਾਬੀ",
+ "pis": "ਪਿਜਿਨ",
"pt": "ਪੁਰਤਗਾਲੀ",
"pt-PT": "ਪੁਰਤਗਾਲੀ (ਯੂਰਪੀ)",
"pl": "ਪੋਲੈਂਡੀ",
@@ -169,10 +179,11 @@
"bas": "ਬਾਸਾ",
"bg": "ਬੁਲਗਾਰੀਆਈ",
"bez": "ਬੇਨਾ",
- "bem": "ਬੇਮਬਾ",
+ "bem": "ਬੇਂਬਾ",
"be": "ਬੇਲਾਰੂਸੀ",
"bs": "ਬੋਸਨੀਆਈ",
"brx": "ਬੋਡੋ",
+ "bho": "ਭੋਜਪੁਰੀ",
"mas": "ਮਸਾਈ",
"kde": "ਮਕੋਂਡ",
"mgh": "ਮਖੋਵਾ-ਮਿੱਟੋ",
@@ -193,6 +204,7 @@
"mer": "ਮੇਰੂ",
"mk": "ਮੈਕਡੋਨੀਆਈ",
"mai": "ਮੈਥਲੀ",
+ "mdf": "ਮੋਕਸ਼ਾ",
"mfe": "ਮੋਰੀਸਿਅਨ",
"ro-MD": "ਮੋਲਡਾਵੀਆਈ",
"yav": "ਯਾਂਗਬੇਨ",
@@ -201,6 +213,7 @@
"el": "ਯੂਨਾਨੀ",
"yo": "ਯੋਰੂਬਾ",
"rwk": "ਰਵਾ",
+ "raj": "ਰਾਜਸਥਾਨੀ",
"rn": "ਰੁੰਡੀ",
"ru": "ਰੂਸੀ",
"rof": "ਰੋਮਬੋ",
@@ -226,6 +239,5 @@
"vun": "ਵੂੰਜੋ",
"cy": "ਵੈਲਸ਼",
"wo": "ਵੋਲੋਫ",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/pl.json b/vendor/commerceguys/intl/resources/language/pl.json
index 88b850372..56a221fb1 100644
--- a/vendor/commerceguys/intl/resources/language/pl.json
+++ b/vendor/commerceguys/intl/resources/language/pl.json
@@ -22,6 +22,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalski",
+ "bho": "bhodżpuri",
"be": "białoruski",
"my": "birmański",
"brx": "bodo",
@@ -37,6 +38,7 @@
"ce": "czeczeński",
"cs": "czeski",
"chr": "czirokeski",
+ "cv": "czuwaski",
"dyo": "diola",
"doi": "dogri",
"dsb": "dolnołużycki",
@@ -69,10 +71,12 @@
"gu": "gudżarati",
"guz": "gusii",
"ksh": "gwara kolońska",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawajski",
"he": "hebrajski",
"hi": "hindi",
+ "hi-Latn": "hindi (alfabet łaciński)",
"es": "hiszpański",
"ig": "igbo",
"smn": "inari",
@@ -138,6 +142,7 @@
"es-MX": "meksykański hiszpański",
"mer": "meru",
"mgo": "meta",
+ "mdf": "moksza",
"ro-MD": "mołdawski",
"mn": "mongolski",
"mua": "mundang",
@@ -156,6 +161,8 @@
"nn": "norweski (nynorsk)",
"nus": "nuer",
"nyn": "nyankole",
+ "ann": "obolo",
+ "oc": "oksytański",
"or": "orija",
"hy": "ormiański",
"om": "oromo",
@@ -164,9 +171,12 @@
"pa": "pendżabski",
"fa": "perski",
"pcm": "pidżyn nigeryjski",
+ "pis": "pijin",
"pl": "polski",
"pt": "portugalski",
+ "frr": "północnofryzyjski",
"se": "północnolapoński",
+ "raj": "radźasthani",
"rm": "retoromański",
"rof": "rombo",
"ru": "rosyjski",
@@ -184,6 +194,7 @@
"sr": "serbski",
"sn": "shona",
"sd": "sindhi",
+ "sms": "skolt",
"sk": "słowacki",
"sl": "słoweński",
"xog": "soga",
@@ -207,6 +218,7 @@
"tt": "tatarski",
"te": "telugu",
"ti": "tigrinia",
+ "tok": "toki pona",
"to": "tonga",
"tr": "turecki",
"tk": "turkmeński",
diff --git a/vendor/commerceguys/intl/resources/language/ps-PK.json b/vendor/commerceguys/intl/resources/language/ps-PK.json
index adcbedf68..026b8a0cc 100644
--- a/vendor/commerceguys/intl/resources/language/ps-PK.json
+++ b/vendor/commerceguys/intl/resources/language/ps-PK.json
@@ -24,6 +24,7 @@
"uz": "اوزبکي",
"os": "اوسيټک",
"uk": "اوکرايني",
+ "oc": "اوکسيټاني",
"ewo": "اوونڊو",
"ug": "اويغوري",
"it": "ایټالوي",
@@ -40,6 +41,7 @@
"bg": "بلغاري",
"bm": "بمبارا",
"bn": "بنگالي",
+ "bho": "بهوجپوري",
"brx": "بودو",
"bs": "بوسني",
"be": "بېلاروسي",
@@ -50,6 +52,7 @@
"pt": "پورتګالي",
"hsb": "پورته سربيايي",
"pl": "پولنډي",
+ "pis": "پیجین",
"tt": "تاتار",
"tg": "تاجکي",
"shi": "تاکلهیټ",
@@ -59,6 +62,7 @@
"tk": "ترکمني",
"tr": "ترکي",
"twq": "تساواق",
+ "tok": "توکی پونا",
"to": "تونګان",
"teo": "تیسو",
"ti": "تيګريني",
@@ -68,11 +72,13 @@
"jv": "جاوايي",
"ka": "جورجيائي",
"dyo": "جولا فوني",
+ "cv": "چوواشي",
"ce": "چيچني",
"chr": "چېروکي",
"cs": "چېکي",
"cgg": "چيگايي",
"zh": "چیني",
+ "zh-Hans": "چیني (ساده شوی)",
"et": "حبشي",
"km": "خمر",
"xh": "خوسا",
@@ -89,13 +95,13 @@
"dje": "زرما",
"zu": "زولو",
"dz": "ژونگکه",
- "zh-Hans": "ساده چيني",
"sc": "سارڊيني",
"sg": "سانګو",
"sbp": "سانګوو",
"sah": "سخا",
"sr": "سربيائي",
"gd": "سکاټلېنډي ګېلک",
+ "sms": "سکولټ سمیع",
"sk": "سلوواکي",
"sl": "سلوواني",
"saq": "سمبورو",
@@ -115,6 +121,7 @@
"seh": "سینا",
"si": "سينهالي",
"se": "شمالي سامي",
+ "frr": "شمالي فریسیان",
"lrc": "شمالي لوری",
"nd": "شمالي نديبل",
"ksb": "شمبالا",
@@ -194,6 +201,7 @@
"ckb": "منځنۍ کوردي",
"mua": "مندانګ",
"mn": "منګولیایی",
+ "mdf": "موکشا",
"ro-MD": "مولداویایی",
"mgo": "ميټا",
"mer": "ميرو",
@@ -209,9 +217,11 @@
"nus": "نویر",
"ne": "نېپالي",
"nyn": "نینکول",
+ "yrl": "نینګاتو",
"nl": "هالېنډي",
"es": "هسپانوي",
"hi": "هندي",
+ "hi-Latn": "هندي (لاتيني)",
"hu": "هنګري",
"haw": "هوایی",
"ha": "هوسا",
@@ -226,6 +236,8 @@
"yav": "ینګبین",
"yo": "یوروبا",
"el": "یوناني",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi",
+ "kgp": "kgg",
+ "ann": "Obo",
+ "raj": "Rajasthani"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/ps.json b/vendor/commerceguys/intl/resources/language/ps.json
index d78421c9c..46491f98b 100644
--- a/vendor/commerceguys/intl/resources/language/ps.json
+++ b/vendor/commerceguys/intl/resources/language/ps.json
@@ -24,6 +24,7 @@
"uz": "اوزبکي",
"os": "اوسيټک",
"uk": "اوکرايني",
+ "oc": "اوکسيټاني",
"ewo": "اوونڊو",
"ug": "اويغوري",
"it": "ایټالوي",
@@ -40,6 +41,7 @@
"bg": "بلغاري",
"bm": "بمبارا",
"bn": "بنگالي",
+ "bho": "بهوجپوري",
"brx": "بودو",
"bs": "بوسني",
"be": "بېلاروسي",
@@ -50,6 +52,7 @@
"pt": "پورتګالي",
"hsb": "پورته سربيايي",
"pl": "پولنډي",
+ "pis": "پیجین",
"tt": "تاتار",
"tg": "تاجکي",
"shi": "تاکلهیټ",
@@ -59,6 +62,7 @@
"tk": "ترکمني",
"tr": "ترکي",
"twq": "تساواق",
+ "tok": "توکی پونا",
"to": "تونګان",
"teo": "تیسو",
"ti": "تيګريني",
@@ -68,11 +72,13 @@
"jv": "جاوايي",
"ka": "جورجيائي",
"dyo": "جولا فوني",
+ "cv": "چوواشي",
"ce": "چيچني",
"chr": "چېروکي",
"cs": "چېکي",
"cgg": "چيگايي",
"zh": "چیني",
+ "zh-Hans": "چیني (ساده شوی)",
"et": "حبشي",
"km": "خمر",
"xh": "خوسا",
@@ -89,13 +95,13 @@
"dje": "زرما",
"zu": "زولو",
"dz": "ژونگکه",
- "zh-Hans": "ساده چيني",
"sc": "سارڊيني",
"sg": "سانګو",
"sbp": "سانګوو",
"sah": "سخا",
"sr": "سربيائي",
"gd": "سکاټلېنډي ګېلک",
+ "sms": "سکولټ سمیع",
"sk": "سلوواکي",
"sl": "سلوواني",
"saq": "سمبورو",
@@ -115,6 +121,7 @@
"seh": "سینا",
"si": "سينهالي",
"se": "شمالي سامي",
+ "frr": "شمالي فریسیان",
"lrc": "شمالي لوری",
"nd": "شمالي نديبل",
"ksb": "شمبالا",
@@ -194,6 +201,7 @@
"ckb": "منځنۍ کوردي",
"mua": "مندانګ",
"mn": "منګولیایی",
+ "mdf": "موکشا",
"ro-MD": "مولداویایی",
"mgo": "ميټا",
"mer": "ميرو",
@@ -209,9 +217,11 @@
"nus": "نویر",
"ne": "نېپالي",
"nyn": "نینکول",
+ "yrl": "نینګاتو",
"nl": "هالېنډي",
"es": "هسپانوي",
"hi": "هندي",
+ "hi-Latn": "هندي (لاتيني)",
"hu": "هنګري",
"haw": "هوایی",
"ha": "هوسا",
@@ -226,6 +236,8 @@
"yav": "ینګبین",
"yo": "یوروبا",
"el": "یوناني",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi",
+ "kgp": "kgg",
+ "ann": "Obo",
+ "raj": "Rajasthani"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/pt-PT.json b/vendor/commerceguys/intl/resources/language/pt-PT.json
index 15c37cf67..11e3ae9e7 100644
--- a/vendor/commerceguys/intl/resources/language/pt-PT.json
+++ b/vendor/commerceguys/intl/resources/language/pt-PT.json
@@ -25,12 +25,14 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengalês",
+ "bho": "bhojpuri",
"be": "bielorrusso",
"my": "birmanês",
"brx": "bodo",
"bs": "bósnio",
"br": "bretão",
"bg": "búlgaro",
+ "kgp": "caingangue",
"kn": "canarim",
"yue": "cantonês",
"ca": "catalão",
@@ -44,6 +46,7 @@
"zh": "chinês",
"zh-Hans": "chinês simplificado",
"zh-Hant": "chinês tradicional",
+ "cv": "chuvash",
"si": "cingalês",
"kok": "concani",
"ko": "coreano",
@@ -74,6 +77,7 @@
"fr-CA": "francês canadiano",
"fr-CH": "francês suíço",
"fy": "frísico ocidental",
+ "frr": "frísio setentrional",
"fur": "friulano",
"ff": "fula",
"gd": "gaélico escocês",
@@ -85,10 +89,12 @@
"kl": "gronelandês",
"guz": "gusii",
"gu": "guzerate",
+ "bgc": "Haryanvi",
"ha": "haúça",
"haw": "havaiano",
"he": "hebraico",
"hi": "hindi",
+ "hi-Latn": "hindi (latim)",
"hu": "húngaro",
"ig": "igbo",
"yi": "iídiche",
@@ -107,7 +113,6 @@
"jv": "javanês",
"dyo": "jola-fonyi",
"kab": "kabyle",
- "kgp": "Kaingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -143,6 +148,7 @@
"mzn": "mazandarani",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "mocsa",
"ro-MD": "moldávio",
"mn": "mongol",
"mua": "mundang",
@@ -152,12 +158,14 @@
"ne": "nepalês",
"nnh": "ngiemboon",
"jgo": "nguemba",
- "yrl": "Nheengatu",
+ "yrl": "nheengatu",
"no": "norueguês",
"nb": "norueguês bokmål",
"nn": "norueguês nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "ann": "obolo",
+ "oc": "occitano",
"or": "oriá",
"om": "oromo",
"os": "ossético",
@@ -165,6 +173,7 @@
"ps": "pastó",
"fa": "persa",
"pcm": "pidgin nigeriano",
+ "pis": "pijin",
"pl": "polaco",
"pt": "português",
"pt-PT": "português europeu",
@@ -172,6 +181,7 @@
"ki": "quicuio",
"rw": "quiniaruanda",
"ky": "quirguiz",
+ "raj": "rajastanês",
"rm": "romanche",
"rof": "rombo",
"ro": "romeno",
@@ -180,6 +190,7 @@
"rwk": "rwa",
"sah": "sakha",
"saq": "samburu",
+ "sms": "sami de Skolt",
"se": "sami do norte",
"sg": "sango",
"sbp": "sangu",
@@ -211,6 +222,7 @@
"teo": "teso",
"bo": "tibetano",
"ti": "tigrínia",
+ "tok": "toki pona",
"to": "tonga",
"tr": "turco",
"tk": "turcomano",
diff --git a/vendor/commerceguys/intl/resources/language/pt.json b/vendor/commerceguys/intl/resources/language/pt.json
index 4cedd5a48..88ec608c7 100644
--- a/vendor/commerceguys/intl/resources/language/pt.json
+++ b/vendor/commerceguys/intl/resources/language/pt.json
@@ -25,6 +25,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengali",
+ "bho": "bhojpuri",
"be": "bielorrusso",
"my": "birmanês",
"brx": "bodo",
@@ -32,6 +33,7 @@
"bs": "bósnio",
"br": "bretão",
"bg": "búlgaro",
+ "kgp": "caingangue",
"kn": "canarim",
"yue": "cantonês",
"ca": "catalão",
@@ -73,6 +75,7 @@
"fr-CA": "francês (Canadá)",
"fr-CH": "francês (Suíça)",
"fy": "frísio ocidental",
+ "frr": "frísio setentrional",
"fur": "friulano",
"ff": "fula",
"gd": "gaélico escocês",
@@ -83,10 +86,12 @@
"kl": "groenlandês",
"guz": "gusii",
"gu": "guzerate",
+ "bgc": "Haryanvi",
"ha": "hauçá",
"haw": "havaiano",
"he": "hebraico",
"hi": "híndi",
+ "hi-Latn": "híndi (latim)",
"nl": "holandês",
"hu": "húngaro",
"ig": "igbo",
@@ -105,7 +110,6 @@
"jv": "javanês",
"dyo": "jola-fonyi",
"kab": "kabyle",
- "kgp": "Kaingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -144,6 +148,7 @@
"mzn": "mazandarani",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "mocsa",
"ro-MD": "moldávio",
"mn": "mongol",
"mfe": "morisyen",
@@ -153,11 +158,13 @@
"ne": "nepalês",
"nnh": "ngiemboon",
"jgo": "nguemba",
- "yrl": "Nheengatu",
+ "yrl": "nheengatu",
"no": "norueguês",
"nus": "nuer",
"nyn": "nyankole",
"nn": "nynorsk norueguês",
+ "ann": "obolo",
+ "oc": "occitânico",
"or": "oriá",
"om": "oromo",
"os": "osseto",
@@ -165,6 +172,7 @@
"ps": "pashto",
"fa": "persa",
"pcm": "pidgin nigeriano",
+ "pis": "pijin",
"pl": "polonês",
"pt": "português",
"pt-PT": "português (Portugal)",
@@ -172,6 +180,7 @@
"ki": "quicuio",
"rw": "quiniaruanda",
"ky": "quirguiz",
+ "raj": "rajastani",
"rm": "romanche",
"rof": "rombo",
"ro": "romeno",
@@ -180,6 +189,7 @@
"rwk": "rwa",
"sah": "sakha",
"saq": "samburu",
+ "sms": "sami de Skolt",
"se": "sami setentrional",
"sg": "sango",
"sbp": "sangu",
@@ -206,10 +216,12 @@
"tt": "tártaro",
"twq": "tasawaq",
"cs": "tcheco",
+ "cv": "tchuvache",
"te": "télugo",
"teo": "teso",
"bo": "tibetano",
"ti": "tigrínia",
+ "tok": "toki pona",
"to": "tonganês",
"tr": "turco",
"tk": "turcomeno",
diff --git a/vendor/commerceguys/intl/resources/language/rn.json b/vendor/commerceguys/intl/resources/language/rn.json
index 59f4c1988..817e6fac5 100644
--- a/vendor/commerceguys/intl/resources/language/rn.json
+++ b/vendor/commerceguys/intl/resources/language/rn.json
@@ -13,6 +13,7 @@
"eu": "Basque",
"bem": "Bemba",
"bez": "Bena",
+ "bho": "Bhojpuri",
"brx": "Bodo",
"bs": "Bosnian",
"br": "Breton",
@@ -24,6 +25,7 @@
"ce": "Chechen",
"chr": "Cherokee",
"cgg": "Chiga",
+ "cv": "Chuvash",
"ksh": "Colognian",
"kw": "Cornish",
"hr": "Croatian",
@@ -39,18 +41,18 @@
"fil": "Filipino",
"fi": "Finnish",
"fur": "Friulian",
- "ff": "Fulah",
+ "ff": "Fula",
"gl": "Galician",
"lg": "Ganda",
"ka": "Georgian",
"gu": "Gujarati",
"guz": "Gusii",
+ "bgc": "Haryanvi",
"haw": "Hawaiian",
"he": "Hebrew",
"ar": "Icarabu",
"is": "Icelandic",
"es": "Icesipanyolo",
- "es-419": "Icesipanyolo (419)",
"es-MX": "Icesipanyolo (Migizike)",
"en": "Icongereza",
"en-CA": "Icongereza (Kanada)",
@@ -62,6 +64,7 @@
"fr-CH": "Igifaransa (Ubusuwisi)",
"ha": "Igihawusa",
"hi": "Igihindi",
+ "hi-Latn": "Igihindi (Latn)",
"nl": "Igiholandi",
"nl-BE": "Igiholandi (Ububiligi)",
"km": "Igikambodiya",
@@ -131,6 +134,7 @@
"lkt": "Lakota",
"lag": "Langi",
"lo": "Lao",
+ "es-419": "Latin American Spanish",
"lv": "Latvian",
"ln": "Lingala",
"lt": "Lithuanian",
@@ -155,6 +159,7 @@
"mzn": "Mazanderani",
"mer": "Meru",
"mgo": "Metaʼ",
+ "mdf": "Moksha",
"mn": "Mongolian",
"mfe": "Morisyen",
"mua": "Mundang",
@@ -165,6 +170,7 @@
"yrl": "Nheengatu",
"pcm": "Nigerian Pidgin",
"nd": "North Ndebele",
+ "frr": "Northern Frisian",
"lrc": "Northern Luri",
"se": "Northern Sami",
"no": "Norwegian",
@@ -172,15 +178,18 @@
"nn": "Norwegian Nynorsk",
"nus": "Nuer",
"nyn": "Nyankole",
+ "ann": "Obolo",
+ "oc": "Occitan",
"or": "Odia",
"om": "Oromo",
"os": "Ossetic",
"ps": "Pashto",
+ "pis": "Pijin",
"qu": "Quechua",
+ "raj": "Rajasthani",
"rm": "Romansh",
"rof": "Rombo",
"rwk": "Rwa",
- "sah": "Sakha",
"saq": "Samburu",
"sg": "Sango",
"sbp": "Sangu",
@@ -195,6 +204,7 @@
"ii": "Sichuan Yi",
"sd": "Sindhi",
"si": "Sinhala",
+ "sms": "Skolt Sami",
"sk": "Slovak",
"sl": "Slovenian",
"xog": "Soga",
@@ -212,6 +222,7 @@
"teo": "Teso",
"bo": "Tibetan",
"ti": "Tigrinya",
+ "tok": "Toki Pona",
"to": "Tongan",
"tk": "Turkmen",
"hsb": "Upper Sorbian",
@@ -225,6 +236,7 @@
"fy": "Western Frisian",
"wo": "Wolof",
"xh": "Xhosa",
+ "sah": "Yakut",
"yav": "Yangben",
"yi": "Yiddish",
"dje": "Zarma"
diff --git a/vendor/commerceguys/intl/resources/language/ro-MD.json b/vendor/commerceguys/intl/resources/language/ro-MD.json
index 71b9479e6..308ab2d94 100644
--- a/vendor/commerceguys/intl/resources/language/ro-MD.json
+++ b/vendor/commerceguys/intl/resources/language/ro-MD.json
@@ -18,6 +18,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengaleză",
+ "bho": "bhojpuri",
"my": "birmană",
"brx": "bodo",
"bs": "bosniacă",
@@ -34,6 +35,7 @@
"zh": "chineză",
"zh-Hans": "chineză simplificată",
"zh-Hant": "chineză tradițională",
+ "cv": "ciuvașă",
"ko": "coreeană",
"kw": "cornică",
"hr": "croată",
@@ -58,6 +60,7 @@
"fr-CA": "franceză (Canada)",
"fr-CH": "franceză (Elveția)",
"fur": "friulană",
+ "frr": "frizonă nordică",
"fy": "frizonă occidentală",
"ff": "fulah",
"gd": "gaelică scoțiană",
@@ -73,9 +76,11 @@
"el": "greacă",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiiană",
"hi": "hindi",
+ "hi-Latn": "hindi (latină)",
"yi": "idiș",
"ig": "igbo",
"id": "indoneziană",
@@ -135,6 +140,7 @@
"mzn": "mazanderani",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"mn": "mongolă",
"mfe": "morisyen",
"mua": "mundang",
@@ -144,23 +150,27 @@
"ne": "nepaleză",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
+ "yrl": "nheengatu",
"no": "norvegiană",
"nb": "norvegiană bokmål",
"nn": "norvegiană nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "ann": "obolo",
+ "oc": "occitană",
"or": "odia",
"om": "oromo",
"os": "osetă",
"ps": "paștună",
"fa": "persană",
"pcm": "pidgin nigerian",
+ "pis": "pijin",
"pl": "poloneză",
"pt": "portugheză",
"pt-PT": "portugheză (Europa)",
"pa": "punjabi",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "romanșă",
"ro": "română",
"ro-MD": "română (Republica Moldova)",
@@ -171,6 +181,7 @@
"saq": "samburu",
"se": "sami de nord",
"smn": "sami inari",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sanscrită",
@@ -209,6 +220,7 @@
"th": "thailandeză",
"bo": "tibetană",
"ti": "tigrină",
+ "tok": "toki pona",
"to": "tongană",
"tr": "turcă",
"tk": "turkmenă",
diff --git a/vendor/commerceguys/intl/resources/language/ro.json b/vendor/commerceguys/intl/resources/language/ro.json
index 525f71acd..b64d791ca 100644
--- a/vendor/commerceguys/intl/resources/language/ro.json
+++ b/vendor/commerceguys/intl/resources/language/ro.json
@@ -18,6 +18,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengaleză",
+ "bho": "bhojpuri",
"my": "birmană",
"brx": "bodo",
"bs": "bosniacă",
@@ -34,6 +35,7 @@
"zh": "chineză",
"zh-Hans": "chineză simplificată",
"zh-Hant": "chineză tradițională",
+ "cv": "ciuvașă",
"ko": "coreeană",
"kw": "cornică",
"hr": "croată",
@@ -58,6 +60,7 @@
"fr-CA": "franceză (Canada)",
"fr-CH": "franceză (Elveția)",
"fur": "friulană",
+ "frr": "frizonă nordică",
"fy": "frizonă occidentală",
"ff": "fulah",
"gd": "gaelică scoțiană",
@@ -73,9 +76,11 @@
"el": "greacă",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiiană",
"hi": "hindi",
+ "hi-Latn": "hindi (latină)",
"yi": "idiș",
"ig": "igbo",
"id": "indoneziană",
@@ -135,6 +140,7 @@
"mzn": "mazanderani",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "moksha",
"mn": "mongolă",
"mfe": "morisyen",
"mua": "mundang",
@@ -144,23 +150,27 @@
"ne": "nepaleză",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
+ "yrl": "nheengatu",
"no": "norvegiană",
"nb": "norvegiană bokmål",
"nn": "norvegiană nynorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "ann": "obolo",
+ "oc": "occitană",
"or": "odia",
"om": "oromo",
"os": "osetă",
"ps": "paștună",
"fa": "persană",
"pcm": "pidgin nigerian",
+ "pis": "pijin",
"pl": "poloneză",
"pt": "portugheză",
"pt-PT": "portugheză (Europa)",
"pa": "punjabi",
"qu": "quechua",
+ "raj": "rajasthani",
"rm": "romanșă",
"ro": "română",
"ro-MD": "română (Republica Moldova)",
@@ -171,6 +181,7 @@
"saq": "samburu",
"se": "sami de nord",
"smn": "sami inari",
+ "sms": "sami skolt",
"sg": "sango",
"sbp": "sangu",
"sa": "sanscrită",
@@ -209,6 +220,7 @@
"th": "thailandeză",
"bo": "tibetană",
"ti": "tigrină",
+ "tok": "toki pona",
"to": "tongană",
"tr": "turcă",
"tk": "turkmenă",
diff --git a/vendor/commerceguys/intl/resources/language/ru.json b/vendor/commerceguys/intl/resources/language/ru.json
index 39649bf67..44669bf5e 100644
--- a/vendor/commerceguys/intl/resources/language/ru.json
+++ b/vendor/commerceguys/intl/resources/language/ru.json
@@ -27,6 +27,7 @@
"bs": "боснийский",
"br": "бретонский",
"en-GB": "британский английский",
+ "bho": "бходжпури",
"vai": "ваи",
"cy": "валлийский",
"wae": "валлисский",
@@ -68,6 +69,7 @@
"kab": "кабильский",
"kea": "кабувердьяну",
"kk": "казахский",
+ "kgp": "каинганг",
"kkj": "како",
"kln": "календжин",
"kam": "камба",
@@ -89,6 +91,7 @@
"zh-Hans": "китайский, упрощенное письмо",
"khq": "койра чиини",
"ses": "койраборо сенни",
+ "sms": "колтта-саамский",
"sw-CD": "конголезский суахили",
"kok": "конкани",
"ko": "корейский",
@@ -126,6 +129,7 @@
"es-MX": "мексиканский испанский",
"mer": "меру",
"mgo": "мета",
+ "mdf": "мокшанский",
"ro-MD": "молдавский",
"mn": "монгольский",
"mua": "мунданг",
@@ -143,8 +147,11 @@
"nb": "норвежский букмол",
"ii": "носу",
"nus": "нуэр",
+ "yrl": "ньенгату",
"nyn": "ньянколе",
"nn": "нюнорск",
+ "ann": "оболо",
+ "oc": "окситанский",
"or": "ория",
"om": "оромо",
"os": "осетинский",
@@ -153,6 +160,7 @@
"pl": "польский",
"pt": "португальский",
"ps": "пушту",
+ "raj": "раджастхани",
"rm": "романшский",
"rof": "ромбо",
"rwk": "руанда",
@@ -170,6 +178,7 @@
"lrc": "севернолурский",
"se": "северносаамский",
"nd": "северный ндебеле",
+ "frr": "северный фризский",
"seh": "сена",
"sr": "сербский",
"si": "сингальский",
@@ -177,6 +186,7 @@
"sk": "словацкий",
"sl": "словенский",
"xog": "сога",
+ "pis": "соломонский пиджин",
"so": "сомали",
"tzm": "среднеатласский тамазигхтский",
"sw": "суахили",
@@ -193,6 +203,7 @@
"teo": "тесо",
"bo": "тибетский",
"ti": "тигринья",
+ "tok": "токипона",
"to": "тонганский",
"tr": "турецкий",
"tk": "туркменский",
@@ -209,11 +220,13 @@
"ff": "фулах",
"ha": "хауса",
"hi": "хинди",
+ "hi-Latn": "хинди (латиница)",
"hr": "хорватский",
"ckb": "центральнокурдский",
"chr": "чероки",
"ce": "чеченский",
"cs": "чешский",
+ "cv": "чувашский",
"ksb": "шамбала",
"sv": "шведский",
"gsw": "швейцарский немецкий",
@@ -226,6 +239,5 @@
"jv": "яванский",
"yav": "янгбен",
"ja": "японский",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/rw.json b/vendor/commerceguys/intl/resources/language/rw.json
index 04b65a934..5f04dd356 100644
--- a/vendor/commerceguys/intl/resources/language/rw.json
+++ b/vendor/commerceguys/intl/resources/language/rw.json
@@ -8,6 +8,7 @@
"bas": "Basaa",
"bem": "Bemba",
"bez": "Bena",
+ "bho": "Bhojpuri",
"brx": "Bodo",
"my": "Burmese",
"yue": "Cantonese",
@@ -18,6 +19,7 @@
"chr": "Cherokee",
"cgg": "Chiga",
"zh": "Chinese",
+ "cv": "Chuvash",
"ksh": "Colognian",
"kw": "Cornish",
"doi": "Dogri",
@@ -27,16 +29,16 @@
"ee": "Ewe",
"ewo": "Ewondo",
"fur": "Friulian",
- "ff": "Fulah",
+ "ff": "Fula",
"lg": "Ganda",
"guz": "Gusii",
+ "bgc": "Haryanvi",
"ha": "Hausa",
"haw": "Hawaiian",
"sq": "Icyalubaniya",
"ar": "Icyarabu",
"as": "Icyasamizi",
"es": "Icyesipanyolo",
- "es-419": "Icyesipanyolo (419)",
"es-MX": "Icyesipanyolo (MX)",
"et": "Icyesitoniya",
"en": "Icyongereza",
@@ -52,6 +54,7 @@
"fy": "Igifiriziyani",
"he": "Igiheburayo",
"hi": "Igihindi",
+ "hi-Latn": "Igihindi (Latn)",
"hu": "Igihongiriya",
"km": "Igikambodiya",
"kn": "Igikanada",
@@ -138,6 +141,7 @@
"ur": "Inyeyurudu",
"uz": "Inyeyuzubeki",
"zu": "Inyezulu",
+ "oc": "Inyogusitani",
"or": "Inyoriya",
"dyo": "Jola-Fonyi",
"kea": "Kabuverdianu",
@@ -157,6 +161,7 @@
"nmg": "Kwasio",
"lkt": "Lakota",
"lag": "Langi",
+ "es-419": "Latin American Spanish",
"nds": "Low German",
"dsb": "Lower Sorbian",
"lu": "Luba-Katanga",
@@ -174,6 +179,7 @@
"mzn": "Mazanderani",
"mer": "Meru",
"mgo": "Metaʼ",
+ "mdf": "Moksha",
"mfe": "Morisyen",
"mua": "Mundang",
"naq": "Nama",
@@ -183,19 +189,22 @@
"yrl": "Nheengatu",
"pcm": "Nigerian Pidgin",
"nd": "North Ndebele",
+ "frr": "Northern Frisian",
"lrc": "Northern Luri",
"se": "Northern Sami",
"nb": "Norwegian Bokmål",
"nus": "Nuer",
"nyn": "Nyankole",
+ "ann": "Obolo",
"om": "Oromo",
"os": "Ossetic",
+ "pis": "Pijin",
"qu": "Quechua",
+ "raj": "Rajasthani",
"rm": "Romansh",
"rof": "Rombo",
"rn": "Rundi",
"rwk": "Rwa",
- "sah": "Sakha",
"saq": "Samburu",
"sg": "Sango",
"sbp": "Sangu",
@@ -205,6 +214,7 @@
"ksb": "Shambala",
"sn": "Shona",
"ii": "Sichuan Yi",
+ "sms": "Skolt Sami",
"xog": "Soga",
"zgh": "Standard Moroccan Tamazight",
"gsw": "Swiss German",
@@ -215,6 +225,7 @@
"tt": "Tatar",
"teo": "Teso",
"bo": "Tibetan",
+ "tok": "Toki Pona",
"to": "Tongan",
"hsb": "Upper Sorbian",
"bg": "Urunyabuligariya",
@@ -223,6 +234,7 @@
"wa": "Walloon",
"wae": "Walser",
"wo": "Wolof",
+ "sah": "Yakut",
"yav": "Yangben",
"yo": "Yoruba",
"dje": "Zarma",
diff --git a/vendor/commerceguys/intl/resources/language/sd.json b/vendor/commerceguys/intl/resources/language/sd.json
index 7bb1cf442..1b35c0117 100644
--- a/vendor/commerceguys/intl/resources/language/sd.json
+++ b/vendor/commerceguys/intl/resources/language/sd.json
@@ -1,8 +1,6 @@
{
- "doi": "Dogri",
- "kgp": "Kaingang",
- "yrl": "Nheengatu",
- "no": "Norwegian",
+ "bgc": "Haryanvi",
+ "raj": "Rajasthani",
"ga": "آئرش",
"is": "آئيس لينڊڪ",
"az": "آزربائيجاني",
@@ -10,14 +8,17 @@
"de-AT": "آسٽريائي جرمن",
"en-AU": "آسٽريليائي انگريزي",
"af": "آفريڪي",
+ "oc": "آڪسيٽن",
"hsb": "اپر سربيائي",
"nd": "اتر دبيلي",
"se": "اتر سامي",
"lrc": "اتر لوري",
+ "frr": "اترين فريسين",
"ur": "اردو",
"hy": "ارماني",
"uz": "ازبڪ",
"ast": "اسٽورين",
+ "sms": "اسڪاٽ سامي",
"gd": "اسڪاٽش گيلڪ",
"asa": "اسو",
"it": "اطالوي",
@@ -32,6 +33,7 @@
"en": "انگريزي",
"iu": "انو ڪتوت",
"ewo": "اوانڊو",
+ "ann": "اوبولو",
"or": "اوڊيا",
"om": "اورومو",
"os": "اوسيٽڪ",
@@ -52,10 +54,12 @@
"be": "بيلاروسي",
"bem": "بيمبا",
"bez": "بينا",
+ "pis": "پائجن",
"ps": "پشتو",
"pa": "پنجابي",
"pt": "پورٽگليز",
"pl": "پولش",
+ "bho": "ڀوجپوري",
"dav": "تائيتا",
"tt": "تاتار",
"tg": "تاجڪ",
@@ -66,6 +70,7 @@
"twq": "تساوڪي",
"ti": "تگرينيائي",
"te": "تلگو",
+ "tok": "توڪي پونا",
"to": "تونگن",
"shi": "تيچل هاتي",
"teo": "تيسو",
@@ -77,12 +82,14 @@
"dyo": "جولا فوني",
"chr": "چروڪي",
"cgg": "چگا",
+ "cv": "چو واش",
"cs": "چيڪ",
"zh": "چيني",
"zh-Hans": "چيني (سادي)",
"ce": "چیچن",
"km": "خمر",
"nl": "ڊچ",
+ "doi": "ڊوگري",
"da": "ڊينش",
"dua": "ڊيولا",
"rwk": "روا",
@@ -133,6 +140,7 @@
"fo": "فيروايس",
"kk": "قازق",
"kam": "ڪئمبا",
+ "kgp": "ڪئينگينگ",
"kl": "ڪالا ليسٽ",
"kab": "ڪبائل",
"ku": "ڪردي",
@@ -193,6 +201,7 @@
"mua": "من دانگ",
"mn": "منگولي",
"mfe": "موریسیین",
+ "mdf": "موڪشا",
"mgo": "ميتا",
"mai": "ميٿلي",
"mer": "ميرو",
@@ -202,14 +211,17 @@
"pcm": "نائيجرين پجن",
"nb": "نارويائي بوڪمال",
"nn": "نارويائي نيوناسڪ",
+ "no": "نارويجيائي",
"naq": "ناما",
"nyn": "نايانڪول",
"jgo": "نغومبا",
"nnh": "نغيمبون",
+ "yrl": "نھين گاٽو",
"ne": "نيپالي",
"nus": "نيور",
"es": "هسپانوي",
"hi": "هندي",
+ "hi-Latn": "هندي (لاطيني)",
"hu": "هنگري",
"haw": "هوائي",
"ha": "هوسا",
diff --git a/vendor/commerceguys/intl/resources/language/si.json b/vendor/commerceguys/intl/resources/language/si.json
index 3b69d1880..05ac9bd6e 100644
--- a/vendor/commerceguys/intl/resources/language/si.json
+++ b/vendor/commerceguys/intl/resources/language/si.json
@@ -23,6 +23,7 @@
"nd": "උතුරු එන්ඩිබෙලෙ",
"lrc": "උතුරු ලුරි",
"se": "උතුරු සාමි",
+ "frr": "උතුරු ෆ්‍රිසියානු",
"ug": "උයිගර්",
"ur": "උර්දු",
"uz": "උස්බෙක්",
@@ -30,7 +31,9 @@
"ewo": "එවොන්ඩො",
"et": "එස්තෝනියානු",
"or": "ඔඩියා",
+ "ann": "ඔබලෝ",
"om": "ඔරොමෝ",
+ "oc": "ඔසිටාන්",
"os": "ඔසිටෙක්",
"de-AT": "ඔස්ට්‍රියානු ජර්මන්",
"en-AU": "ඕස්ට්‍රේලියානු ඉංග්‍රීසි",
@@ -38,6 +41,7 @@
"kn": "කණ්ණඩ",
"kea": "කබුවෙර්ඩියානු",
"km": "කමර්",
+ "kgp": "කයිංගං",
"kl": "කලාලිසට්",
"kln": "කලෙන්ජන්",
"kk": "කසාඛ්",
@@ -67,6 +71,7 @@
"gu": "ගුජරාටි",
"guz": "ගුසී",
"el": "ග්‍රීක",
+ "cv": "චවේෂ්",
"cgg": "චිගා",
"zh": "චීන",
"cs": "චෙක්",
@@ -87,6 +92,7 @@
"bo": "ටිබෙට්",
"teo": "ටෙසෝ",
"to": "ටොංගා",
+ "tok": "ටෝකි පොනා",
"da": "ඩැනිශ්",
"dz": "ඩිසොන්කා",
"dua": "ඩුආලා",
@@ -101,6 +107,7 @@
"pcm": "නෛජීරියන් පෙන්ගින්",
"jgo": "නොම්බා",
"nus": "නොයර්",
+ "yrl": "නොහීඟටු",
"no": "නෝර්වීජියානු",
"nn": "නෝර්වීජියානු නයිනෝර්ස්ක්",
"nb": "නෝර්වීජියානු බොක්මල්",
@@ -111,6 +118,7 @@
"nds": "පහළ ජර්මන්",
"nds-NL": "පහළ සැක්සන්",
"dsb": "පහළ සෝබියානු",
+ "pis": "පිජින්",
"fil": "පිලිපීන",
"pt": "පෘතුගීසි",
"pl": "පෝලන්ත",
@@ -126,6 +134,7 @@
"bez": "බෙනා",
"bem": "බෙම්බා",
"be": "බෙලරුසියානු",
+ "bho": "බොජ්පුරි",
"brx": "බොඩො",
"bs": "බොස්නියානු",
"en-GB": "බ්‍රිතාන්‍ය ඉංග්‍රීසි",
@@ -149,6 +158,7 @@
"mgo": "මෙටා",
"mer": "මෙරු",
"mn": "මොංගෝලියානු",
+ "mdf": "මොක්ශා",
"mfe": "මොරිස්යෙම්",
"mt": "මොල්ටිස්",
"ro-MD": "මොල්ඩවිආනු",
@@ -208,6 +218,7 @@
"ckb": "සොරානි කුර්දිෂ්",
"so": "සෝමාලි",
"gd": "ස්කොට්ටිශ් ගෙලික්",
+ "sms": "ස්කොල්ට් සාමි",
"es": "ස්පාඤ්ඤ",
"sk": "ස්ලෝවැක්",
"sl": "ස්ලෝවේනියානු",
@@ -219,6 +230,7 @@
"hu": "හන්ගේරියානු",
"haw": "හවායි",
"hi": "හින්දි",
+ "hi-Latn": "හින්දි (ලතින්)",
"he": "හීබෲ",
"ha": "හෝසා",
"fo": "ෆාරෝස්",
@@ -226,6 +238,6 @@
"ff": "ෆුලාහ්",
"fur": "ෆ්‍රියුලියන්",
"nl-BE": "ෆ්ලෙමිශ්",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi",
+ "raj": "Rajasthani"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/sk.json b/vendor/commerceguys/intl/resources/language/sk.json
index 9f7f1bf83..00af9ece6 100644
--- a/vendor/commerceguys/intl/resources/language/sk.json
+++ b/vendor/commerceguys/intl/resources/language/sk.json
@@ -22,6 +22,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengálčina",
+ "bho": "bhódžpurčina",
"be": "bieloruština",
"brx": "bodo",
"bs": "bosniačtina",
@@ -34,6 +35,7 @@
"zh": "čínština",
"zh-Hant": "čínština (tradičná)",
"zh-Hans": "čínština (zjednodušená)",
+ "cv": "čuvaština",
"da": "dánčina",
"doi": "dógrí",
"nds": "dolná nemčina",
@@ -61,10 +63,12 @@
"ka": "gruzínčina",
"gu": "gudžarátčina",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hauština",
"haw": "havajčina",
"he": "hebrejčina",
"hi": "hindčina",
+ "hi-Latn": "hindčina (latinka)",
"nl": "holandčina",
"hsb": "hornolužická srbčina",
"hr": "chorvátčina",
@@ -81,7 +85,7 @@
"dyo": "jola-fonyi",
"yo": "jorubčina",
"kab": "kabylčina",
- "kgp": "Kaingang",
+ "kgp": "kaingang",
"kkj": "kako",
"kln": "kalendžin",
"kam": "kamba",
@@ -132,6 +136,7 @@
"mzn": "mázandaránčina",
"mer": "meru",
"mgo": "meta’",
+ "mdf": "mokšiančina",
"ro-MD": "moldavčina",
"mn": "mongolčina",
"mua": "mundang",
@@ -145,20 +150,24 @@
"ne": "nepálčina",
"nnh": "ngiemboon",
"jgo": "ngomba",
- "yrl": "Nheengatu",
+ "yrl": "nheengatu",
"pcm": "nigerijský pidžin",
"no": "nórčina",
"nb": "nórčina (bokmal)",
"nn": "nórčina (nynorsk)",
"nus": "nuer",
+ "ann": "obolo",
+ "oc": "okcitánčina",
"om": "oromčina",
"os": "osetčina",
"pa": "pandžábčina",
"ps": "paštčina",
"fa": "perzština",
+ "pis": "pidžin",
"pl": "poľština",
"pt": "portugalčina",
"pt-PT": "portugalčina (európska)",
+ "raj": "radžastančina",
"rm": "rétorománčina",
"rof": "rombo",
"ro": "rumunčina",
@@ -169,6 +178,7 @@
"ii": "s’čchuanská iovčina",
"smn": "saamčina (inarijská)",
"se": "saamčina (severná)",
+ "sms": "saamčina (skoltská)",
"saq": "samburu",
"sg": "sango",
"sbp": "sangu",
@@ -176,6 +186,7 @@
"sat": "santalčina",
"sc": "sardínčina",
"seh": "sena",
+ "frr": "severná frízština",
"lrc": "severné luri",
"sd": "sindhčina",
"si": "sinhalčina",
@@ -207,6 +218,7 @@
"th": "thajčina",
"bo": "tibetčina",
"ti": "tigriňa",
+ "tok": "toki pona",
"to": "tongčina",
"zgh": "tuaregčina (marocká štandardná)",
"tr": "turečtina",
diff --git a/vendor/commerceguys/intl/resources/language/sl.json b/vendor/commerceguys/intl/resources/language/sl.json
index 7ef3e1280..1b42ba59d 100644
--- a/vendor/commerceguys/intl/resources/language/sl.json
+++ b/vendor/commerceguys/intl/resources/language/sl.json
@@ -22,6 +22,7 @@
"bez": "benajščina",
"bn": "bengalščina",
"brx": "bodojščina",
+ "bho": "bodžpuri",
"bg": "bolgarščina",
"bs": "bosanščina",
"br": "bretonščina",
@@ -31,6 +32,7 @@
"chr": "čerokeščina",
"cs": "češčina",
"cgg": "čigajščina",
+ "cv": "čuvaščina",
"da": "danščina",
"doi": "dogri",
"dsb": "dolnja lužiška srbščina",
@@ -56,10 +58,12 @@
"ka": "gruzijščina",
"gu": "gudžaratščina",
"guz": "gusijščina",
+ "bgc": "Haryanvi",
"haw": "havajščina",
"ha": "havščina",
"he": "hebrejščina",
"hi": "hindijščina",
+ "hi-Latn": "hindijščina (latinica)",
"hr": "hrvaščina",
"ig": "igboščina",
"smn": "inarska samijščina",
@@ -76,7 +80,7 @@
"dyo": "jola-fonjiščina",
"yo": "jorubščina",
"kab": "kabilščina",
- "kgp": "Kaingang",
+ "kgp": "kaingangščina",
"kkj": "kako",
"kln": "kalenjinščina",
"kam": "kambaščina",
@@ -133,6 +137,7 @@
"es-MX": "mehiška španščina",
"mer": "meru",
"mgo": "meta",
+ "mdf": "mokšavščina",
"ro-MD": "moldavščina",
"mn": "mongolščina",
"mfe": "morisjenščina",
@@ -142,7 +147,7 @@
"ne": "nepalščina",
"nnh": "ngiemboonščina",
"jgo": "ngomba",
- "yrl": "Nheengatu",
+ "yrl": "nheengatu",
"pcm": "nigerijski pidžin",
"nds": "nizka nemščina",
"nds-NL": "nizka saščina",
@@ -151,15 +156,19 @@
"no": "norveščina",
"nn": "novonorveščina",
"nus": "nuerščina",
+ "ann": "obolo",
"or": "odijščina",
+ "oc": "okcitanščina",
"om": "oromo",
"os": "osetinščina",
"pa": "pandžabščina",
"ps": "paštunščina",
"fa": "perzijščina",
+ "pis": "pidžin",
"zh-Hans": "poenostavljena kitajščina",
"pl": "poljščina",
"pt": "portugalščina",
+ "raj": "radžastanščina",
"rm": "retoromanščina",
"rof": "rombo",
"ro": "romunščina",
@@ -176,11 +185,13 @@
"ceb": "sebuanščina",
"ii": "sečuanska jiščina",
"seh": "sena",
+ "frr": "severna frizijščina",
"lrc": "severna lurijščina",
"nd": "severna ndebelščina",
"se": "severna samijščina",
"sd": "sindščina",
"si": "sinhalščina",
+ "sms": "skoltska samijščina",
"sk": "slovaščina",
"sl": "slovenščina",
"xog": "sogščina",
@@ -208,6 +219,7 @@
"teo": "teso",
"bo": "tibetanščina",
"ti": "tigrajščina",
+ "tok": "toki pona",
"to": "tongščina",
"zh-Hant": "tradicionalna kitajščina",
"tk": "turkmenščina",
diff --git a/vendor/commerceguys/intl/resources/language/so.json b/vendor/commerceguys/intl/resources/language/so.json
index 5777c20bc..26e346077 100644
--- a/vendor/commerceguys/intl/resources/language/so.json
+++ b/vendor/commerceguys/intl/resources/language/so.json
@@ -9,10 +9,10 @@
"az": "Asarbayjan",
"ast": "Astuuriyaan",
"asa": "Asu",
- "am": "Axmaari",
+ "am": "Axmaar",
"ga": "Ayrish",
"is": "Ayslandays",
- "ksf": "Bafiya",
+ "ksf": "Bafia",
"bm": "Bambaara",
"bn": "Bangladesh",
"tzm": "Bartamaha Atlaas Tamasayt",
@@ -35,6 +35,7 @@
"my": "Burmese",
"ar": "Carabi",
"jmc": "Chaga",
+ "cv": "Chuvash",
"he": "Cibraani",
"dz": "D’zongqa",
"mai": "Dadka Maithili",
@@ -63,9 +64,11 @@
"gu": "Gujaraati",
"guz": "Guusii",
"hu": "Hangariyaan",
+ "bgc": "Haryanvi",
"haw": "Hawaay",
"ha": "Hawsa",
"hi": "Hindi",
+ "hi-Latn": "Hindi (Latin)",
"nl": "Holandays",
"xh": "Hoosta",
"ig": "Igbo",
@@ -109,7 +112,7 @@
"kea": "Kabuferdiyanu",
"kgp": "Kaingang",
"kl": "Kalaallisuut",
- "kln": "Kalenjiin",
+ "kln": "Kalenjin",
"km": "Kamboodhian",
"kn": "Kannadays",
"yue": "Kantoneese",
@@ -153,6 +156,7 @@
"mer": "Meeru",
"mgo": "Meetaa",
"mua": "Miyundhaang",
+ "mdf": "Moksha",
"mfe": "Moorisayn",
"zgh": "Morokaanka Tamasayt Rasmiga",
"naq": "Nama",
@@ -161,12 +165,17 @@
"nb": "Nawrijii Bokmål",
"ne": "Nebaali",
"yrl": "Nheengatu",
+ "frr": "Northern Frisian",
"nus": "Nuweer",
+ "ann": "Obolo",
+ "oc": "Occitan",
"or": "Oodhiya",
"om": "Oromo",
"os": "Oseetic",
+ "pis": "Pijin",
"qu": "Quwejuwa",
"rwk": "Raawa",
+ "raj": "Rajasthani",
"rm": "Romaanis",
"ro": "Romanka",
"ro-MD": "Romanka (Moldofa)",
@@ -197,6 +206,7 @@
"sd": "Siindhi",
"ii": "Sijuwan Yi",
"si": "Sinhaleys",
+ "sms": "Skolt Sami",
"xog": "Sooga",
"so": "Soomaali",
"dsb": "Soorbiyaanka Hoose",
@@ -213,9 +223,11 @@
"te": "Teluugu",
"bo": "Tibeetaan",
"ti": "Tigrinya",
+ "tok": "Toki Pona",
"to": "Toongan",
"tr": "Turkish",
"tk": "Turkumaanish",
+ "bho": "U dhashay Bhohp",
"ug": "Uighur",
"ur": "Urduu",
"uz": "Usbakis",
diff --git a/vendor/commerceguys/intl/resources/language/sq.json b/vendor/commerceguys/intl/resources/language/sq.json
index f630b5e3a..63f38dcab 100644
--- a/vendor/commerceguys/intl/resources/language/sq.json
+++ b/vendor/commerceguys/intl/resources/language/sq.json
@@ -24,12 +24,14 @@
"be": "bjellorusisht",
"brx": "bodoisht",
"bs": "boshnjakisht",
+ "bho": "boxhpurisht",
"br": "bretonisht",
"bg": "bullgarisht",
"ce": "çeçenisht",
"cs": "çekisht",
"chr": "çerokisht",
"cgg": "çigisht",
+ "cv": "çuvashisht",
"da": "danisht",
"doi": "dogrisht",
"dua": "dualaisht",
@@ -44,6 +46,7 @@
"fr": "frëngjisht",
"fr-CA": "frëngjishte kanadeze",
"fr-CH": "frëngjishte zvicerane",
+ "frr": "frisianishte veriore",
"fur": "friulianisht",
"fy": "frizianishte perëndimore",
"ff": "fulaisht",
@@ -60,6 +63,7 @@
"nds-NL": "gjermanishte saksone e vendeve të ulëta",
"gsw": "gjermanishte zvicerane",
"de-CH": "gjermanishte zvicerane (dialekti i Alpeve)",
+ "bgc": "Haryanvi",
"ha": "hausisht",
"haw": "havaisht",
"he": "hebraisht",
@@ -67,6 +71,7 @@
"hu": "hungarisht",
"ig": "igboisht",
"hi": "indisht",
+ "hi-Latn": "indisht (latin)",
"id": "indonezisht",
"iu": "inuktitutisht",
"ga": "irlandisht",
@@ -133,31 +138,36 @@
"mzn": "mazanderanisht",
"mer": "meruisht",
"mgo": "metaisht",
+ "mdf": "mokshaisht",
"ro-MD": "moldavisht",
"mn": "mongolisht",
"mfe": "morisjenisht",
"mua": "mundangisht",
"naq": "namaisht",
"nd": "ndebelishte veriore",
+ "yrl": "nejengatuisht",
"ne": "nepalisht",
"nnh": "ngiembunisht",
"jgo": "ngombisht",
- "yrl": "Nheengatu",
"nyn": "niankolisht",
"no": "norvegjisht",
"nb": "norvegjishte letrare",
"nn": "norvegjishte nynorsk",
"nus": "nuerisht",
+ "ann": "oboloisht",
"or": "odisht",
+ "oc": "oksitanisht",
"om": "oromoisht",
"os": "osetisht",
"ps": "pashtoisht",
"fa": "persisht",
+ "pis": "pixhinisht",
"pcm": "pixhinishte nigeriane",
"pl": "polonisht",
"pt": "portugalisht",
"pt-PT": "portugalishte evropiane",
"pa": "punxhabisht",
+ "raj": "Rajasthani",
"rm": "retoromanisht",
"rof": "romboisht",
"rwk": "ruaisht",
@@ -167,6 +177,7 @@
"sah": "sakaisht",
"saq": "samburisht",
"smn": "samishte inari",
+ "sms": "samishte skolti",
"se": "samishte veriore",
"sg": "sangoisht",
"sbp": "sanguisht",
@@ -209,6 +220,7 @@
"teo": "tesoisht",
"bo": "tibetisht",
"ti": "tigrinjaisht",
+ "tok": "tokiponaisht",
"to": "tonganisht",
"tk": "turkmenisht",
"tr": "turqisht",
diff --git a/vendor/commerceguys/intl/resources/language/sr-Cyrl-BA.json b/vendor/commerceguys/intl/resources/language/sr-Cyrl-BA.json
index 5f801e44a..74c7d18ae 100644
--- a/vendor/commerceguys/intl/resources/language/sr-Cyrl-BA.json
+++ b/vendor/commerceguys/intl/resources/language/sr-Cyrl-BA.json
@@ -20,6 +20,7 @@
"be": "бјелоруски",
"brx": "бодо",
"bs": "босански",
+ "bho": "боџпури",
"br": "бретонски",
"bg": "бугарски",
"my": "бурмански",
@@ -53,13 +54,12 @@
"fy": "западни фризијски",
"dje": "зарма",
"kea": "зеленортски",
+ "zu": "зулу",
"ig": "игбо",
"smn": "инари сами",
"id": "индонежански",
"iu": "инуктитутски",
"ga": "ирски",
- "zu": "исизулу",
- "xh": "исикоса",
"is": "исландски",
"it": "италијански",
"jv": "јавански",
@@ -68,9 +68,9 @@
"hy": "јерменски",
"yi": "јидиш",
"yo": "јоруба",
- "shi": "јужни шилха",
"kab": "кабиле",
"kk": "казашки",
+ "kgp": "каинганг",
"kkj": "како",
"kln": "каленџински",
"kam": "камба",
@@ -93,10 +93,11 @@
"kok": "конкани",
"ko": "корејски",
"kw": "корнволски",
+ "xh": "коса",
"ku": "курдски",
"lkt": "лакота",
"lag": "ланги",
- "lo": "лаошки",
+ "lo": "лаоски",
"lv": "летонски",
"ln": "лингала",
"lt": "литвански",
@@ -121,6 +122,7 @@
"jmc": "мачаме",
"mer": "меру",
"mgo": "мета",
+ "mdf": "мокша",
"ro-MD": "молдавски",
"mn": "монголски",
"mfe": "морисјен",
@@ -130,6 +132,7 @@
"jgo": "нгомба",
"ne": "непалски",
"pcm": "нигеријски пиџин",
+ "yrl": "нингату",
"nds": "нискоњемачки",
"nds-NL": "нискосаксонски",
"no": "норвешки",
@@ -139,16 +142,20 @@
"nyn": "њанколе",
"de": "њемачки",
"gsw": "њемачки (Швајцарска)",
+ "ann": "оболо",
"or": "одија",
+ "oc": "окситански",
"om": "оромо",
"os": "осетински",
"ps": "паштунски",
"pa": "пенџапски",
"fa": "персијски",
+ "pis": "пиџин",
"zh-Hans": "поједностављени кинески",
"pl": "пољски",
"pt": "португалски",
"pt-PT": "португалски (Португал)",
+ "raj": "раџастански",
"rm": "романш",
"rof": "ромбо",
"rwk": "руа",
@@ -166,16 +173,18 @@
"seh": "сена",
"ii": "сечуански ји",
"sd": "синди",
- "si": "синхалски",
+ "si": "синхалешки",
"lrc": "сјеверни лури",
"nd": "сјеверни ндебеле",
"se": "сјеверни сами",
+ "frr": "сјевернофризијски",
+ "sms": "сколт сами",
"sk": "словачки",
"sl": "словеначки",
"xog": "сога",
"so": "сомалски",
"sr": "српски",
- "zgh": "стандардни марокански тамашек",
+ "zgh": "стандардни марокански тамазигт",
"su": "сундански",
"dav": "таита",
"th": "тајски",
@@ -183,10 +192,12 @@
"twq": "тасавак",
"tt": "татарски",
"tg": "таџички",
+ "shi": "ташелхит",
"te": "телугу",
"teo": "тесо",
"bo": "тибетански",
"ti": "тигриња",
+ "tok": "токипона",
"to": "тонгански",
"zh-Hant": "традиционални кинески",
"tk": "туркменски",
@@ -208,14 +219,16 @@
"ha": "хауса",
"he": "хебрејски",
"hi": "хинди",
+ "hi-Latn": "хинди (латиница)",
"nl": "холандски",
"hr": "хрватски",
"ckb": "централни курдски",
- "tzm": "централноатласки тамашек",
+ "tzm": "централноатласки тамазигт",
"chr": "чероки",
"ce": "чеченски",
"cs": "чешки",
"cgg": "чига",
+ "cv": "чувашки",
"dyo": "џола фоњи",
"dz": "џонга",
"ksb": "шамбала",
@@ -226,6 +239,5 @@
"es": "шпански",
"es-419": "шпански (Латинска Америка)",
"es-MX": "шпански (Мексико)",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/sr-Cyrl-ME.json b/vendor/commerceguys/intl/resources/language/sr-Cyrl-ME.json
index d25f2de13..d879405b8 100644
--- a/vendor/commerceguys/intl/resources/language/sr-Cyrl-ME.json
+++ b/vendor/commerceguys/intl/resources/language/sr-Cyrl-ME.json
@@ -20,6 +20,7 @@
"be": "бјелоруски",
"brx": "бодо",
"bs": "босански",
+ "bho": "боџпури",
"br": "бретонски",
"bg": "бугарски",
"my": "бурмански",
@@ -71,6 +72,7 @@
"shi": "јужни шилха",
"kab": "кабиле",
"kk": "казашки",
+ "kgp": "каинганг",
"kkj": "како",
"kln": "каленџински",
"kam": "камба",
@@ -121,6 +123,7 @@
"jmc": "мачаме",
"mer": "меру",
"mgo": "мета",
+ "mdf": "мокша",
"ro-MD": "молдавски",
"mn": "монголски",
"mfe": "морисјен",
@@ -132,6 +135,7 @@
"gsw": "немачки (Швајцарска)",
"ne": "непалски",
"pcm": "нигеријски пиџин",
+ "yrl": "нингату",
"nds": "нисконемачки",
"nds-NL": "нискосаксонски",
"no": "норвешки",
@@ -139,16 +143,20 @@
"nn": "норвешки нинорск",
"nus": "нуер",
"nyn": "њанколе",
+ "ann": "оболо",
"or": "одија",
+ "oc": "окситански",
"om": "оромо",
"os": "осетински",
"ps": "паштунски",
"pa": "пенџапски",
"fa": "персијски",
+ "pis": "пиџин",
"zh-Hans": "поједностављени кинески",
"pl": "пољски",
"pt": "португалски",
"pt-PT": "португалски (Португал)",
+ "raj": "раџастански",
"rm": "романш",
"rof": "ромбо",
"rwk": "руа",
@@ -166,10 +174,12 @@
"lrc": "северни лури",
"nd": "северни ндебеле",
"se": "северни сами",
+ "frr": "севернофризијски",
"seh": "сена",
"ii": "сечуански ји",
"sd": "синди",
"si": "синхалешки",
+ "sms": "сколт сами",
"sk": "словачки",
"sl": "словеначки",
"xog": "сога",
@@ -187,6 +197,7 @@
"teo": "тесо",
"bo": "тибетански",
"ti": "тигриња",
+ "tok": "токипона",
"to": "тонгански",
"zh-Hant": "традиционални кинески",
"tk": "туркменски",
@@ -208,6 +219,7 @@
"ha": "хауса",
"he": "хебрејски",
"hi": "хинди",
+ "hi-Latn": "хинди (латиница)",
"nl": "холандски",
"hr": "хрватски",
"ckb": "централни курдски",
@@ -216,6 +228,7 @@
"ce": "чеченски",
"cs": "чешки",
"cgg": "чига",
+ "cv": "чувашки",
"dyo": "џола фоњи",
"dz": "џонга",
"ksb": "шамбала",
@@ -226,6 +239,5 @@
"es": "шпански",
"es-419": "шпански (Латинска Америка)",
"es-MX": "шпански (Мексико)",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/sr-Cyrl-XK.json b/vendor/commerceguys/intl/resources/language/sr-Cyrl-XK.json
index 084a65c5f..f2da0b16c 100644
--- a/vendor/commerceguys/intl/resources/language/sr-Cyrl-XK.json
+++ b/vendor/commerceguys/intl/resources/language/sr-Cyrl-XK.json
@@ -20,6 +20,7 @@
"bez": "бена",
"brx": "бодо",
"bs": "босански",
+ "bho": "боџпури",
"br": "бретонски",
"bg": "бугарски",
"my": "бурмански",
@@ -71,6 +72,7 @@
"shi": "јужни шилха",
"kab": "кабиле",
"kk": "казашки",
+ "kgp": "каинганг",
"kkj": "како",
"kln": "каленџински",
"kam": "камба",
@@ -121,6 +123,7 @@
"jmc": "мачаме",
"mer": "меру",
"mgo": "мета",
+ "mdf": "мокша",
"ro-MD": "молдавски",
"mn": "монголски",
"mfe": "морисјен",
@@ -131,6 +134,7 @@
"de": "немачки",
"ne": "непалски",
"pcm": "нигеријски пиџин",
+ "yrl": "нингату",
"nds": "нисконемачки",
"nds-NL": "нискосаксонски",
"no": "норвешки",
@@ -138,16 +142,20 @@
"nn": "норвешки нинорск",
"nus": "нуер",
"nyn": "њанколе",
+ "ann": "оболо",
"or": "одија",
+ "oc": "окситански",
"om": "оромо",
"os": "осетински",
"ps": "паштунски",
"pa": "пенџапски",
"fa": "персијски",
+ "pis": "пиџин",
"zh-Hans": "поједностављени кинески",
"pl": "пољски",
"pt": "португалски",
"pt-PT": "португалски (Португал)",
+ "raj": "раџастански",
"rm": "романш",
"rof": "ромбо",
"rwk": "руа",
@@ -165,10 +173,12 @@
"lrc": "северни лури",
"nd": "северни ндебеле",
"se": "северни сами",
+ "frr": "севернофризијски",
"seh": "сена",
"ii": "сечуански ји",
"sd": "синди",
"si": "синхалски",
+ "sms": "сколт сами",
"sk": "словачки",
"sl": "словеначки",
"xog": "сога",
@@ -186,6 +196,7 @@
"teo": "тесо",
"bo": "тибетански",
"ti": "тигриња",
+ "tok": "токипона",
"to": "тонгански",
"zh-Hant": "традиционални кинески",
"tk": "туркменски",
@@ -207,6 +218,7 @@
"ha": "хауса",
"he": "хебрејски",
"hi": "хинди",
+ "hi-Latn": "хинди (латиница)",
"nl": "холандски",
"hr": "хрватски",
"ckb": "централни курдски",
@@ -215,6 +227,7 @@
"ce": "чеченски",
"cs": "чешки",
"cgg": "чига",
+ "cv": "чувашки",
"dyo": "џола фоњи",
"dz": "џонга",
"ksb": "шамбала",
@@ -226,6 +239,5 @@
"es": "шпански",
"es-419": "шпански (Латинска Америка)",
"es-MX": "шпански (Мексико)",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/sr-Latn-BA.json b/vendor/commerceguys/intl/resources/language/sr-Latn-BA.json
index 73c918e7a..c9d46ea6b 100644
--- a/vendor/commerceguys/intl/resources/language/sr-Latn-BA.json
+++ b/vendor/commerceguys/intl/resources/language/sr-Latn-BA.json
@@ -19,16 +19,18 @@
"bez": "bena",
"be": "bjeloruski",
"brx": "bodo",
+ "bho": "bodžpuri",
"bs": "bosanski",
"br": "bretonski",
"bg": "bugarski",
"my": "burmanski",
"ckb": "centralni kurdski",
- "tzm": "centralnoatlaski tamašek",
+ "tzm": "centralnoatlaski tamazigt",
"ce": "čečenski",
"chr": "čeroki",
"cs": "češki",
"cgg": "čiga",
+ "cv": "čuvaški",
"da": "danski",
"doi": "dogri",
"dsb": "donjolužičkosrpski",
@@ -60,10 +62,12 @@
"ka": "gruzijski",
"gu": "gudžarati",
"guz": "gusi",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "havajski",
"he": "hebrejski",
"hi": "hindi",
+ "hi-Latn": "hindi (latinica)",
"nl": "holandski",
"hr": "hrvatski",
"ig": "igbo",
@@ -71,8 +75,6 @@
"id": "indonežanski",
"iu": "inuktitutski",
"ga": "irski",
- "xh": "isikosa",
- "zu": "isizulu",
"is": "islandski",
"it": "italijanski",
"yav": "jangben",
@@ -81,9 +83,8 @@
"hy": "jermenski",
"yi": "jidiš",
"yo": "joruba",
- "shi": "južni šilha",
"kab": "kabile",
- "kgp": "Kaingang",
+ "kgp": "kaingang",
"kkj": "kako",
"kln": "kalendžinski",
"kam": "kamba",
@@ -106,11 +107,12 @@
"kok": "konkani",
"ko": "korejski",
"kw": "kornvolski",
+ "xh": "kosa",
"ku": "kurdski",
"nmg": "kvasio",
"lkt": "lakota",
"lag": "langi",
- "lo": "laoški",
+ "lo": "laoski",
"lv": "letonski",
"ln": "lingala",
"lt": "litvanski",
@@ -135,6 +137,7 @@
"mzn": "mazanderanski",
"mer": "meru",
"mgo": "meta",
+ "mdf": "mokša",
"ro-MD": "moldavski",
"mn": "mongolski",
"mfe": "morisjen",
@@ -143,8 +146,8 @@
"ne": "nepalski",
"nnh": "ngiembun",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"pcm": "nigerijski pidžin",
+ "yrl": "ningatu",
"nds": "niskonjemački",
"nds-NL": "niskosaksonski",
"no": "norveški",
@@ -154,16 +157,20 @@
"nyn": "njankole",
"de": "njemački",
"gsw": "njemački (Švajcarska)",
+ "ann": "obolo",
"or": "odija",
+ "oc": "oksitanski",
"om": "oromo",
"os": "osetinski",
"ps": "paštunski",
"pa": "pendžapski",
"fa": "persijski",
+ "pis": "pidžin",
"zh-Hans": "pojednostavljeni kineski",
"pl": "poljski",
"pt": "portugalski",
"pt-PT": "portugalski (Portugal)",
+ "raj": "radžastanski",
"rm": "romanš",
"rof": "rombo",
"rwk": "rua",
@@ -180,16 +187,18 @@
"ii": "sečuanski ji",
"seh": "sena",
"sd": "sindi",
- "si": "sinhalski",
+ "si": "sinhaleški",
"lrc": "sjeverni luri",
"nd": "sjeverni ndebele",
"se": "sjeverni sami",
+ "frr": "sjevernofrizijski",
+ "sms": "skolt sami",
"sk": "slovački",
"sl": "slovenački",
"xog": "soga",
"so": "somalski",
"sr": "srpski",
- "zgh": "standardni marokanski tamašek",
+ "zgh": "standardni marokanski tamazigt",
"su": "sundanski",
"sw": "svahili",
"ksb": "šambala",
@@ -205,11 +214,13 @@
"th": "tajski",
"ta": "tamilski",
"twq": "tasavak",
+ "shi": "tašelhit",
"tt": "tatarski",
"te": "telugu",
"teo": "teso",
"bo": "tibetanski",
"ti": "tigrinja",
+ "tok": "tokipona",
"to": "tonganski",
"zh-Hant": "tradicionalni kineski",
"tk": "turkmenski",
@@ -227,5 +238,6 @@
"vun": "vundžo",
"fy": "zapadni frizijski",
"dje": "zarma",
- "kea": "zelenortski"
+ "kea": "zelenortski",
+ "zu": "zulu"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/sr-Latn-ME.json b/vendor/commerceguys/intl/resources/language/sr-Latn-ME.json
index 383d4d88a..4284ec9e8 100644
--- a/vendor/commerceguys/intl/resources/language/sr-Latn-ME.json
+++ b/vendor/commerceguys/intl/resources/language/sr-Latn-ME.json
@@ -19,6 +19,7 @@
"bez": "bena",
"be": "bjeloruski",
"brx": "bodo",
+ "bho": "bodžpuri",
"bs": "bosanski",
"br": "bretonski",
"bg": "bugarski",
@@ -29,6 +30,7 @@
"chr": "čeroki",
"cs": "češki",
"cgg": "čiga",
+ "cv": "čuvaški",
"da": "danski",
"doi": "dogri",
"dsb": "donjolužičkosrpski",
@@ -60,10 +62,12 @@
"ka": "gruzijski",
"gu": "gudžarati",
"guz": "gusi",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "havajski",
"he": "hebrejski",
"hi": "hindi",
+ "hi-Latn": "hindi (latinica)",
"nl": "holandski",
"hr": "hrvatski",
"ig": "igbo",
@@ -83,7 +87,7 @@
"yo": "joruba",
"shi": "južni šilha",
"kab": "kabile",
- "kgp": "Kaingang",
+ "kgp": "kaingang",
"kkj": "kako",
"kln": "kalendžinski",
"kam": "kamba",
@@ -135,6 +139,7 @@
"mzn": "mazanderanski",
"mer": "meru",
"mgo": "meta",
+ "mdf": "mokša",
"ro-MD": "moldavski",
"mn": "mongolski",
"mfe": "morisjen",
@@ -145,8 +150,8 @@
"ne": "nepalski",
"nnh": "ngiembun",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"pcm": "nigerijski pidžin",
+ "yrl": "ningatu",
"nds": "niskonemački",
"nds-NL": "niskosaksonski",
"no": "norveški",
@@ -154,16 +159,20 @@
"nn": "norveški ninorsk",
"nus": "nuer",
"nyn": "njankole",
+ "ann": "obolo",
"or": "odija",
+ "oc": "oksitanski",
"om": "oromo",
"os": "osetinski",
"ps": "paštunski",
"pa": "pendžapski",
"fa": "persijski",
+ "pis": "pidžin",
"zh-Hans": "pojednostavljeni kineski",
"pl": "poljski",
"pt": "portugalski",
"pt-PT": "portugalski (Portugal)",
+ "raj": "radžastanski",
"rm": "romanš",
"rof": "rombo",
"rwk": "rua",
@@ -182,8 +191,10 @@
"lrc": "severni luri",
"nd": "severni ndebele",
"se": "severni sami",
+ "frr": "severnofrizijski",
"sd": "sindi",
"si": "sinhaleški",
+ "sms": "skolt sami",
"sk": "slovački",
"sl": "slovenački",
"xog": "soga",
@@ -210,6 +221,7 @@
"teo": "teso",
"bo": "tibetanski",
"ti": "tigrinja",
+ "tok": "tokipona",
"to": "tonganski",
"zh-Hant": "tradicionalni kineski",
"tk": "turkmenski",
diff --git a/vendor/commerceguys/intl/resources/language/sr-Latn-XK.json b/vendor/commerceguys/intl/resources/language/sr-Latn-XK.json
index a665343a7..1cc18582a 100644
--- a/vendor/commerceguys/intl/resources/language/sr-Latn-XK.json
+++ b/vendor/commerceguys/intl/resources/language/sr-Latn-XK.json
@@ -19,6 +19,7 @@
"bem": "bemba",
"bez": "bena",
"brx": "bodo",
+ "bho": "bodžpuri",
"bs": "bosanski",
"br": "bretonski",
"bg": "bugarski",
@@ -29,6 +30,7 @@
"chr": "čeroki",
"cs": "češki",
"cgg": "čiga",
+ "cv": "čuvaški",
"da": "danski",
"doi": "dogri",
"dsb": "donjolužičkosrpski",
@@ -60,10 +62,12 @@
"ka": "gruzijski",
"gu": "gudžarati",
"guz": "gusi",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "havajski",
"he": "hebrejski",
"hi": "hindi",
+ "hi-Latn": "hindi (latinica)",
"nl": "holandski",
"hr": "hrvatski",
"ig": "igbo",
@@ -83,7 +87,7 @@
"yo": "joruba",
"shi": "južni šilha",
"kab": "kabile",
- "kgp": "Kaingang",
+ "kgp": "kaingang",
"kkj": "kako",
"kln": "kalendžinski",
"kam": "kamba",
@@ -135,6 +139,7 @@
"mzn": "mazanderanski",
"mer": "meru",
"mgo": "meta",
+ "mdf": "mokša",
"ro-MD": "moldavski",
"mn": "mongolski",
"mfe": "morisjen",
@@ -144,8 +149,8 @@
"ne": "nepalski",
"nnh": "ngiembun",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"pcm": "nigerijski pidžin",
+ "yrl": "ningatu",
"nds": "niskonemački",
"nds-NL": "niskosaksonski",
"no": "norveški",
@@ -153,16 +158,20 @@
"nn": "norveški ninorsk",
"nus": "nuer",
"nyn": "njankole",
+ "ann": "obolo",
"or": "odija",
+ "oc": "oksitanski",
"om": "oromo",
"os": "osetinski",
"ps": "paštunski",
"pa": "pendžapski",
"fa": "persijski",
+ "pis": "pidžin",
"zh-Hans": "pojednostavljeni kineski",
"pl": "poljski",
"pt": "portugalski",
"pt-PT": "portugalski (Portugal)",
+ "raj": "radžastanski",
"rm": "romanš",
"rof": "rombo",
"rwk": "rua",
@@ -181,8 +190,10 @@
"lrc": "severni luri",
"nd": "severni ndebele",
"se": "severni sami",
+ "frr": "severnofrizijski",
"sd": "sindi",
"si": "sinhalski",
+ "sms": "skolt sami",
"sk": "slovački",
"sl": "slovenački",
"xog": "soga",
@@ -210,6 +221,7 @@
"teo": "teso",
"bo": "tibetanski",
"ti": "tigrinja",
+ "tok": "tokipona",
"to": "tonganski",
"zh-Hant": "tradicionalni kineski",
"tk": "turkmenski",
diff --git a/vendor/commerceguys/intl/resources/language/sr-Latn.json b/vendor/commerceguys/intl/resources/language/sr-Latn.json
index 8ba82065a..514ee6eab 100644
--- a/vendor/commerceguys/intl/resources/language/sr-Latn.json
+++ b/vendor/commerceguys/intl/resources/language/sr-Latn.json
@@ -19,6 +19,7 @@
"bez": "bena",
"bn": "bengalski",
"brx": "bodo",
+ "bho": "bodžpuri",
"bs": "bosanski",
"br": "bretonski",
"bg": "bugarski",
@@ -29,6 +30,7 @@
"chr": "čeroki",
"cs": "češki",
"cgg": "čiga",
+ "cv": "čuvaški",
"da": "danski",
"doi": "dogri",
"dsb": "donjolužičkosrpski",
@@ -60,10 +62,12 @@
"ka": "gruzijski",
"gu": "gudžarati",
"guz": "gusi",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "havajski",
"he": "hebrejski",
"hi": "hindi",
+ "hi-Latn": "hindi (latinica)",
"nl": "holandski",
"hr": "hrvatski",
"ig": "igbo",
@@ -80,7 +84,7 @@
"yi": "jidiš",
"yo": "joruba",
"kab": "kabile",
- "kgp": "Kaingang",
+ "kgp": "kaingang",
"kkj": "kako",
"kln": "kalendžinski",
"kam": "kamba",
@@ -133,6 +137,7 @@
"mzn": "mazanderanski",
"mer": "meru",
"mgo": "meta",
+ "mdf": "mokša",
"ro-MD": "moldavski",
"mn": "mongolski",
"mfe": "morisjen",
@@ -143,8 +148,8 @@
"ne": "nepalski",
"nnh": "ngiembun",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"pcm": "nigerijski pidžin",
+ "yrl": "ningatu",
"nds": "niskonemački",
"nds-NL": "niskosaksonski",
"no": "norveški",
@@ -152,16 +157,20 @@
"nn": "norveški ninorsk",
"nus": "nuer",
"nyn": "njankole",
+ "ann": "obolo",
"or": "odija",
+ "oc": "oksitanski",
"om": "oromo",
"os": "osetinski",
"ps": "paštunski",
"pa": "pendžapski",
"fa": "persijski",
+ "pis": "pidžin",
"zh-Hans": "pojednostavljeni kineski",
"pl": "poljski",
"pt": "portugalski",
"pt-PT": "portugalski (Portugal)",
+ "raj": "radžastanski",
"rm": "romanš",
"rof": "rombo",
"rwk": "rua",
@@ -180,8 +189,10 @@
"lrc": "severni luri",
"nd": "severni ndebele",
"se": "severni sami",
+ "frr": "severnofrizijski",
"sd": "sindi",
"si": "sinhaleški",
+ "sms": "skolt sami",
"sk": "slovački",
"sl": "slovenački",
"xog": "soga",
@@ -209,6 +220,7 @@
"teo": "teso",
"bo": "tibetanski",
"ti": "tigrinja",
+ "tok": "tokipona",
"to": "tonganski",
"zh-Hant": "tradicionalni kineski",
"tk": "turkmenski",
diff --git a/vendor/commerceguys/intl/resources/language/sr.json b/vendor/commerceguys/intl/resources/language/sr.json
index 6d328c4c1..7a51867ee 100644
--- a/vendor/commerceguys/intl/resources/language/sr.json
+++ b/vendor/commerceguys/intl/resources/language/sr.json
@@ -20,6 +20,7 @@
"bn": "бенгалски",
"brx": "бодо",
"bs": "босански",
+ "bho": "боџпури",
"br": "бретонски",
"bg": "бугарски",
"my": "бурмански",
@@ -69,6 +70,7 @@
"yo": "јоруба",
"kab": "кабиле",
"kk": "казашки",
+ "kgp": "каинганг",
"kkj": "како",
"kln": "каленџински",
"kam": "камба",
@@ -120,6 +122,7 @@
"jmc": "мачаме",
"mer": "меру",
"mgo": "мета",
+ "mdf": "мокша",
"ro-MD": "молдавски",
"mn": "монголски",
"mfe": "морисјен",
@@ -131,6 +134,7 @@
"gsw": "немачки (Швајцарска)",
"ne": "непалски",
"pcm": "нигеријски пиџин",
+ "yrl": "нингату",
"nds": "нисконемачки",
"nds-NL": "нискосаксонски",
"no": "норвешки",
@@ -138,16 +142,20 @@
"nn": "норвешки нинорск",
"nus": "нуер",
"nyn": "њанколе",
+ "ann": "оболо",
"or": "одија",
+ "oc": "окситански",
"om": "оромо",
"os": "осетински",
"ps": "паштунски",
"pa": "пенџапски",
"fa": "персијски",
+ "pis": "пиџин",
"zh-Hans": "поједностављени кинески",
"pl": "пољски",
"pt": "португалски",
"pt-PT": "португалски (Португал)",
+ "raj": "раџастански",
"rm": "романш",
"rof": "ромбо",
"rwk": "руа",
@@ -165,10 +173,12 @@
"lrc": "северни лури",
"nd": "северни ндебеле",
"se": "северни сами",
+ "frr": "севернофризијски",
"seh": "сена",
"ii": "сечуански ји",
"sd": "синди",
"si": "синхалешки",
+ "sms": "сколт сами",
"sk": "словачки",
"sl": "словеначки",
"xog": "сога",
@@ -187,6 +197,7 @@
"teo": "тесо",
"bo": "тибетански",
"ti": "тигриња",
+ "tok": "токипона",
"to": "тонгански",
"zh-Hant": "традиционални кинески",
"tk": "туркменски",
@@ -208,6 +219,7 @@
"ha": "хауса",
"he": "хебрејски",
"hi": "хинди",
+ "hi-Latn": "хинди (латиница)",
"nl": "холандски",
"hr": "хрватски",
"ckb": "централни курдски",
@@ -216,6 +228,7 @@
"ce": "чеченски",
"cs": "чешки",
"cgg": "чига",
+ "cv": "чувашки",
"dyo": "џола фоњи",
"dz": "џонга",
"ksb": "шамбала",
@@ -226,6 +239,5 @@
"es": "шпански",
"es-419": "шпански (Латинска Америка)",
"es-MX": "шпански (Мексико)",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/sv.json b/vendor/commerceguys/intl/resources/language/sv.json
index 605c8ec62..ce54f3df5 100644
--- a/vendor/commerceguys/intl/resources/language/sv.json
+++ b/vendor/commerceguys/intl/resources/language/sv.json
@@ -20,6 +20,7 @@
"bem": "bemba",
"bez": "bena",
"bn": "bengali",
+ "bho": "bhojpuri",
"brx": "bodo",
"bs": "bosniska",
"br": "bretonska",
@@ -55,10 +56,12 @@
"kl": "grönländska",
"gu": "gujarati",
"guz": "gusii",
+ "bgc": "Haryanvi",
"ha": "hausa",
"haw": "hawaiiska",
"he": "hebreiska",
"hi": "hindi",
+ "hi-Latn": "hindi (latinsk)",
"hsb": "högsorbiska",
"ig": "igbo",
"id": "indonesiska",
@@ -133,6 +136,7 @@
"mgo": "meta’",
"es-MX": "mexikansk spanska",
"kkj": "mkako",
+ "mdf": "moksja",
"ro-MD": "moldaviska",
"mn": "mongoliska",
"mua": "mundang",
@@ -142,6 +146,7 @@
"jgo": "ngomba",
"yrl": "nheengatu",
"pcm": "nigeriansk pidgin",
+ "frr": "nordfrisiska",
"lrc": "nordluri",
"nd": "nordndebele",
"se": "nordsamiska",
@@ -150,14 +155,18 @@
"nus": "nuer",
"nyn": "nyankole",
"nn": "nynorska",
+ "ann": "obolo",
+ "oc": "occitanska",
"or": "oriya",
"om": "oromo",
"os": "ossetiska",
"fa": "persiska",
+ "pis": "pidginspråk",
"pl": "polska",
"pt": "portugisiska",
"pa": "punjabi",
"qu": "quechua",
+ "raj": "rajasthani",
"rof": "rombo",
"ro": "rumänska",
"rn": "rundi",
@@ -178,6 +187,7 @@
"sn": "shona",
"sd": "sindhi",
"si": "singalesiska",
+ "sms": "skoltsamiska",
"gd": "skotsk gäliska",
"sk": "slovakiska",
"sl": "slovenska",
@@ -203,6 +213,8 @@
"khq": "Timbuktu-songhai",
"cs": "tjeckiska",
"ce": "tjetjenska",
+ "cv": "tjuvasjiska",
+ "tok": "toki pona",
"to": "tonganska",
"zh-Hant": "traditionell kinesiska",
"tr": "turkiska",
diff --git a/vendor/commerceguys/intl/resources/language/sw-CD.json b/vendor/commerceguys/intl/resources/language/sw-CD.json
index de4631f60..4c16b590d 100644
--- a/vendor/commerceguys/intl/resources/language/sw-CD.json
+++ b/vendor/commerceguys/intl/resources/language/sw-CD.json
@@ -1,5 +1,5 @@
{
- "kgp": "Kaingang",
+ "bgc": "Haryanvi",
"af": "Kiafrikana",
"agq": "Kiaghem",
"fa": "Kiajemi",
@@ -22,6 +22,7 @@
"bez": "Kibena",
"bn": "Kibengali",
"zgh": "Kiberber Sanifu cha Moroko",
+ "bho": "Kibhojpuri",
"brx": "Kibodo",
"bs": "Kibosnia",
"br": "Kibretoni",
@@ -35,6 +36,7 @@
"zh": "Kichina",
"zh-Hans": "Kichina (Kilichorahisishwa)",
"zh-Hant": "Kichina cha Jadi",
+ "cv": "Kichuvash",
"ksh": "Kicologne",
"da": "Kidenmaki",
"doi": "Kidogri",
@@ -51,6 +53,7 @@
"fil": "Kifilipino",
"fi": "Kifini",
"nl-BE": "Kiflemi",
+ "frr": "Kifrisia cha Kaskazini",
"fy": "Kifrisia cha Magharibi",
"fur": "Kifriulian",
"ff": "Kifulani",
@@ -62,6 +65,7 @@
"ha": "Kihausa",
"haw": "Kihawai",
"hi": "Kihindi",
+ "hi-Latn": "Kihindi (Kilatini)",
"es": "Kihispania",
"es-419": "Kihispania (Amerika ya Latini)",
"es-MX": "Kihispania (Meksiko)",
@@ -87,6 +91,7 @@
"dyo": "Kijola-Fonyi",
"kea": "Kikabuverdianu",
"kab": "Kikabylia",
+ "kgp": "Kikaingang",
"kkj": "Kikako",
"kl": "Kikalaallisut",
"kln": "Kikalenjin",
@@ -135,6 +140,7 @@
"mzn": "Kimazanderani",
"mer": "Kimeru",
"mgo": "Kimeta",
+ "mdf": "Kimoksha",
"ro-MD": "Kimoldova cha Romania",
"mn": "Kimongolia",
"mfe": "Kimoriseni",
@@ -144,16 +150,20 @@
"ne": "Kinepali",
"nnh": "Kingiemboon",
"jgo": "Kingomba",
+ "yrl": "Kinheengatu",
"no": "Kinorwe",
"nb": "Kinorwe cha Bokmal",
"nn": "Kinorwe cha Nynorsk",
"nus": "Kinuer",
"nyn": "Kinyankole",
"rw": "Kinyarwanda",
+ "ann": "Kiobolo",
+ "oc": "Kiokitani",
"or": "Kioriya",
"om": "Kioromo",
"os": "Kiosetia",
"ps": "Kipashto",
+ "pis": "Kipijini",
"pl": "Kipolandi",
"pa": "Kipunjabi",
"lag": "Kirangi",
@@ -171,6 +181,7 @@
"saq": "Kisamburu",
"smn": "Kisami cha Inari",
"se": "Kisami cha Kaskazini",
+ "sms": "Kisami cha Skolt",
"sg": "Kisango",
"sbp": "Kisangu",
"sa": "Kisanskriti",
@@ -203,6 +214,7 @@
"th": "Kithai",
"bo": "Kitibeti",
"ti": "Kitigrinya",
+ "tok": "Kitoki Pona",
"to": "Kitonga",
"tr": "Kituruki",
"tk": "Kiturukimeni",
@@ -226,6 +238,6 @@
"dz": "Kizongkha",
"zu": "Kizulu",
"rwk": "Lugha ya Rwa",
- "yrl": "Nheengatu",
- "pcm": "Pijini ya Nijeria"
+ "pcm": "Pijini ya Nijeria",
+ "raj": "Rajasthani"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/sw-KE.json b/vendor/commerceguys/intl/resources/language/sw-KE.json
index d9f30441f..c8cbdb31b 100644
--- a/vendor/commerceguys/intl/resources/language/sw-KE.json
+++ b/vendor/commerceguys/intl/resources/language/sw-KE.json
@@ -1,40 +1,41 @@
{
- "kgp": "Kaingang",
+ "bgc": "Haryanvi",
"af": "Kiafrikana",
"agq": "Kiaghem",
+ "is": "Kiaisilandi",
"fa": "Kiajemi",
"ak": "Kiakani",
"sq": "Kialbania",
- "hy": "Kiamenia",
"am": "Kiamhari",
"ar": "Kiarabu",
- "as": "Kiasamisi",
+ "hy": "Kiarmenia",
+ "as": "Kiassam",
"ast": "Kiasturia",
"asa": "Kiasu",
"ga": "Kiayalandi",
- "az": "Kiazerbaijani",
+ "az": "Kiazabaijani",
"ksf": "Kibafia",
+ "my": "Kibama",
"bm": "Kibambara",
+ "bn": "Kibangla",
"bas": "Kibasaa",
"eu": "Kibaski",
"be": "Kibelarusi",
"bem": "Kibemba",
"bez": "Kibena",
- "bn": "Kibengali",
"brx": "Kibodo",
+ "bho": "Kibojpuri",
"bs": "Kibosnia",
"br": "Kibretoni",
"bg": "Kibulgaria",
- "my": "Kiburma",
- "ceb": "Kichebuano",
- "ce": "Kichechenia",
+ "ce": "Kichechen",
"cs": "Kicheki",
"chr": "Kicheroki",
"cgg": "Kichiga",
"zh": "Kichina",
- "zh-Hans": "Kichina (Kilichorahisishwa)",
- "zh-Hant": "Kichina cha Jadi",
- "ksh": "Kicologne",
+ "zh-Hant": "Kichina cha Kawaida",
+ "zh-Hans": "Kichina Kilichorahisishwa",
+ "cv": "Kichuvash",
"da": "Kidenmaki",
"doi": "Kidogri",
"dua": "Kiduala",
@@ -44,72 +45,79 @@
"ee": "Kiewe",
"ewo": "Kiewondo",
"fr": "Kifaransa",
- "fr-CA": "Kifaransa (Canada)",
- "fr-CH": "Kifaransa (Uswisi)",
- "fo": "Kifaroe",
+ "fr-CA": "Kifaransa cha Kanada",
+ "fr-CH": "Kifaransa cha Uswisi",
+ "fo": "Kifaro",
"fil": "Kifilipino",
"fi": "Kifini",
"nl-BE": "Kiflemi",
- "fy": "Kifrisia cha Magharibi",
- "fur": "Kifriulian",
- "ff": "Kifulani",
+ "frr": "Kifrisi cha Kaskazini",
+ "fy": "Kifrisi cha Magharibi",
+ "fur": "Kifriuli",
+ "ff": "Kifula",
"gd": "Kigaeli cha Uskoti",
"gl": "Kigalisi",
"lg": "Kiganda",
"el": "Kigiriki",
"gu": "Kigujarati",
"ha": "Kihausa",
- "haw": "Kihawai",
+ "haw": "Kihawaii",
"hi": "Kihindi",
+ "hi-Latn": "Kihindi (Kilatini)",
"es": "Kihispania",
- "es-419": "Kihispania (Amerika ya Latini)",
- "es-MX": "Kihispania (Meksiko)",
+ "es-419": "Kihispania cha Amerika Kusini",
+ "es-MX": "Kihispania cha Meksiko",
"nl": "Kiholanzi",
"hu": "Kihungaria",
- "ig": "Kiigbo",
+ "ig": "Kiibo",
"id": "Kiindonesia",
"en": "Kiingereza",
- "en-AU": "Kiingereza (Australia)",
- "en-CA": "Kiingereza (Canada)",
- "en-GB": "Kiingereza (Uingereza)",
+ "en-AU": "Kiingereza cha Australia",
+ "en-CA": "Kiingereza cha Kanada",
+ "en-GB": "Kiingereza cha Uingereza",
"nnh": "Kiingiemboon",
"iu": "Kiinuktituti",
- "is": "Kiisilandi",
"it": "Kiitaliano",
+ "ii": "Kiiyi cha Sichuan",
"luo": "Kijaluo",
"ja": "Kijapani",
"jv": "Kijava",
"de": "Kijerumani",
- "de-AT": "Kijerumani (Austria)",
- "de-CH": "Kijerumani (Uswisi)",
+ "de-AT": "Kijerumani cha Austria",
+ "nds": "Kijerumani cha Chini",
+ "nds-NL": "Kijerumani cha Chini (Uholanzi)",
+ "de-CH": "Kijerumani cha Kawaida cha Uswisi",
"gsw": "Kijerumani cha Uswisi",
"ka": "Kijojia",
"dyo": "Kijola-Fonyi",
- "kea": "Kikabuverdianu",
+ "kea": "Kikabuvedi",
"kab": "Kikabylia",
+ "kgp": "Kikaingang",
"kkj": "Kikako",
"kl": "Kikalaallisut",
"kln": "Kikalenjin",
"kam": "Kikamba",
- "kn": "Kikanada",
+ "kn": "Kikannada",
"yue": "Kikantoni",
"ks": "Kikashmiri",
"ca": "Kikatalani",
- "kk": "Kikazakh",
+ "kk": "Kikazaki",
"qu": "Kikechua",
- "km": "Kikhmeri",
+ "km": "Kikhema",
+ "xh": "Kikhosa",
"ki": "Kikikuyu",
+ "ky": "Kikirigizi",
"guz": "Kikisii",
+ "ksh": "Kikolon",
+ "kw": "Kikoni",
"kok": "Kikonkani",
- "hr": "Kikorasia",
"ko": "Kikorea",
- "kw": "Kikorni",
"ses": "Kikoyraborosenni",
"khq": "Kikoyrachiini",
+ "hr": "Kikroeshia",
"ku": "Kikurdi",
- "ckb": "Kikurdi cha Sorani",
+ "ckb": "Kikurdi cha Kati",
"nmg": "Kikwasio",
- "ky": "Kikyrgyz",
"lkt": "Kilakota",
"lag": "Kilangi",
"lo": "Kilaosi",
@@ -118,64 +126,70 @@
"ln": "Kilingala",
"lt": "Kilithuania",
"lu": "Kiluba-Katanga",
- "luy": "Kiluhya",
"lrc": "Kiluri cha Kaskazini",
- "mas": "Kimaasai",
+ "luy": "Kiluyia",
"jmc": "Kimachame",
"mai": "Kimaithili",
"mgh": "Kimakhuwa-Meetto",
"kde": "Kimakonde",
"mg": "Kimalagasi",
- "ml": "Kimalayalamu",
+ "ml": "Kimalayalam",
"ms": "Kimalei",
"mt": "Kimalta",
"mni": "Kimanipuri",
"mi": "Kimaori",
"mr": "Kimarathi",
+ "mas": "Kimasai",
"mk": "Kimasedonia",
"mzn": "Kimazanderani",
"mer": "Kimeru",
"mgo": "Kimeta",
+ "mdf": "Kimoksha",
"ro-MD": "Kimoldova cha Romania",
"mn": "Kimongolia",
- "mfe": "Kimoriseni",
+ "mfe": "Kimorisi",
"mua": "Kimundang",
"naq": "Kinama",
"nd": "Kindebele cha Kaskazini",
"ne": "Kinepali",
"jgo": "Kingomba",
+ "yrl": "Kinheengatu",
"no": "Kinorwe",
"nb": "Kinorwe cha Bokmal",
"nn": "Kinorwe cha Nynorsk",
"nus": "Kinuer",
"nyn": "Kinyankole",
"rw": "Kinyarwanda",
+ "ann": "Kiobolo",
"or": "Kiodia",
"om": "Kioromo",
"os": "Kiosetia",
+ "oc": "Kiositia",
"ps": "Kipashto",
- "pcm": "Kipijini cha Nigeria",
+ "pis": "Kipijini",
+ "pcm": "Kipijini cha Naijeria",
"pl": "Kipolandi",
"pa": "Kipunjabi",
"pt": "Kireno",
- "pt-PT": "Kireno (Ulaya)",
+ "pt-PT": "Kireno cha Ulaya",
"ro": "Kiromania",
- "rm": "Kiromanshi",
"rof": "Kirombo",
+ "rm": "Kirumi",
"rn": "Kirundi",
"ru": "Kirusi",
+ "rwk": "Kirwa",
+ "sc": "Kisadini",
"sah": "Kisakha",
- "nds": "Kisaksoni",
- "nds-NL": "Kisaksoni (Uholanzi)",
- "ksb": "Kisambaa",
+ "ksb": "Kisambala",
"saq": "Kisamburu",
"smn": "Kisami cha Inari",
"se": "Kisami cha Kaskazini",
+ "sms": "Kisami cha Skolt",
"sg": "Kisango",
"sbp": "Kisangu",
"sa": "Kisanskriti",
"sat": "Kisantali",
- "sc": "Kisardinia",
+ "ceb": "Kisebuano",
"seh": "Kisena",
"sr": "Kiserbia",
"sn": "Kishona",
@@ -187,15 +201,15 @@
"xog": "Kisoga",
"so": "Kisomali",
"hsb": "Kisorbia cha Juu",
- "su": "Kisunda",
+ "su": "Kisundani",
"sw": "Kiswahili",
"sw-CD": "Kiswahili cha Kongo",
"sv": "Kiswidi",
"shi": "Kitachelhit",
"dav": "Kitaita",
"tg": "Kitajiki",
- "tzm": "Kitamazighati cha Atlasi ya Kati",
- "zgh": "Kitamazighati Sanifu cha Moroko",
+ "tzm": "Kitamazight cha Atlas ya Kati",
+ "zgh": "Kitamazight cha Kawaida cha Moroko",
"ta": "Kitamili",
"twq": "Kitasawak",
"tt": "Kitatari",
@@ -204,28 +218,26 @@
"th": "Kithai",
"bo": "Kitibeti",
"ti": "Kitigrinya",
+ "tok": "Kitokipona",
"to": "Kitonga",
"tr": "Kituruki",
"tk": "Kiturukimeni",
"ug": "Kiuiguri",
- "uk": "Kiukraini",
+ "uk": "Kiukreni",
"ur": "Kiurdu",
"uz": "Kiuzbeki",
"vai": "Kivai",
"vi": "Kivietinamu",
"vun": "Kivunjo",
- "wa": "Kiwaloon",
- "wae": "Kiwalser",
- "cy": "Kiwelisi",
- "wo": "Kiwolofu",
- "xh": "Kixhosa",
- "yav": "Kiyangben",
- "ii": "Kiyi cha Sichuan",
- "yi": "Kiyiddi",
+ "wae": "Kiwalsa",
+ "wa": "Kiwaluni",
+ "cy": "Kiwels",
+ "wo": "Kiwolof",
+ "yav": "Kiyangbeni",
+ "yi": "Kiyidi",
"yo": "Kiyoruba",
- "dje": "Kizarma",
+ "dje": "Kizama",
"dz": "Kizongkha",
"zu": "Kizulu",
- "rwk": "Lugha ya Rwa",
- "yrl": "Nheengatu"
+ "raj": "Rajasthani"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/sw.json b/vendor/commerceguys/intl/resources/language/sw.json
index be663771c..07e9db1ab 100644
--- a/vendor/commerceguys/intl/resources/language/sw.json
+++ b/vendor/commerceguys/intl/resources/language/sw.json
@@ -1,5 +1,5 @@
{
- "kgp": "Kaingang",
+ "bgc": "Haryanvi",
"af": "Kiafrikana",
"agq": "Kiaghem",
"fa": "Kiajemi",
@@ -22,6 +22,7 @@
"bez": "Kibena",
"bn": "Kibengali",
"zgh": "Kiberber Sanifu cha Moroko",
+ "bho": "Kibhojpuri",
"brx": "Kibodo",
"bs": "Kibosnia",
"br": "Kibretoni",
@@ -35,6 +36,7 @@
"zh": "Kichina",
"zh-Hans": "Kichina (Kilichorahisishwa)",
"zh-Hant": "Kichina cha Jadi",
+ "cv": "Kichuvash",
"ksh": "Kicologne",
"da": "Kidenmaki",
"doi": "Kidogri",
@@ -51,6 +53,7 @@
"fil": "Kifilipino",
"fi": "Kifini",
"nl-BE": "Kiflemi",
+ "frr": "Kifrisia cha Kaskazini",
"fy": "Kifrisia cha Magharibi",
"fur": "Kifriulian",
"ff": "Kifulani",
@@ -62,6 +65,7 @@
"ha": "Kihausa",
"haw": "Kihawai",
"hi": "Kihindi",
+ "hi-Latn": "Kihindi (Kilatini)",
"es": "Kihispania",
"es-419": "Kihispania (Amerika ya Latini)",
"es-MX": "Kihispania (Meksiko)",
@@ -87,6 +91,7 @@
"dyo": "Kijola-Fonyi",
"kea": "Kikabuverdianu",
"kab": "Kikabylia",
+ "kgp": "Kikaingang",
"kl": "Kikalaallisut",
"kln": "Kikalenjin",
"kam": "Kikamba",
@@ -142,16 +147,20 @@
"nd": "Kindebele cha Kaskazini",
"ne": "Kinepali",
"jgo": "Kingomba",
+ "yrl": "Kinheengatu",
"no": "Kinorwe",
"nb": "Kinorwe cha Bokmal",
"nn": "Kinorwe cha Nynorsk",
"nus": "Kinuer",
"nyn": "Kinyankole",
"rw": "Kinyarwanda",
+ "ann": "Kiobolo",
+ "oc": "Kiokitani",
"or": "Kioriya",
"om": "Kioromo",
"os": "Kiosetia",
"ps": "Kipashto",
+ "pis": "Kipijini",
"pl": "Kipolandi",
"pa": "Kipunjabi",
"lag": "Kirangi",
@@ -169,6 +178,7 @@
"saq": "Kisamburu",
"smn": "Kisami cha Inari",
"se": "Kisami cha Kaskazini",
+ "sms": "Kisami cha Skolt",
"sg": "Kisango",
"sbp": "Kisangu",
"sa": "Kisanskriti",
@@ -201,6 +211,7 @@
"th": "Kithai",
"bo": "Kitibeti",
"ti": "Kitigrinya",
+ "tok": "Kitoki Pona",
"to": "Kitonga",
"tr": "Kituruki",
"tk": "Kiturukimeni",
@@ -224,8 +235,9 @@
"dz": "Kizongkha",
"zu": "Kizulu",
"kkj": "Lugha ya Kako",
+ "mdf": "Lugha ya Moksha",
"nnh": "Lugha ya Ngiemboon",
"rwk": "Lugha ya Rwa",
- "yrl": "Nheengatu",
- "pcm": "Pijini ya Nigeria"
+ "pcm": "Pijini ya Nigeria",
+ "raj": "Rajasthani"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/ta.json b/vendor/commerceguys/intl/resources/language/ta.json
index a174a705e..234583892 100644
--- a/vendor/commerceguys/intl/resources/language/ta.json
+++ b/vendor/commerceguys/intl/resources/language/ta.json
@@ -17,6 +17,7 @@
"ig": "இக்போ",
"it": "இத்தாலியன்",
"hi": "இந்தி",
+ "hi-Latn": "இந்தி (லத்தின்)",
"id": "இந்தோனேஷியன்",
"smn": "இனாரி சமி",
"iu": "இனுகிடூட்",
@@ -32,8 +33,10 @@
"ga": "ஐரிஷ்",
"pt-PT": "ஐரோப்பிய போர்ச்சுகீஸ்",
"is": "ஐஸ்லேண்டிக்",
+ "oc": "ஒக்கிடன்",
"os": "ஒசெட்டிக்",
"or": "ஒடியா",
+ "ann": "ஒபோலோ",
"om": "ஒரோமோ",
"wa": "ஒவாலூன்",
"wo": "ஓலோஃப்",
@@ -71,6 +74,7 @@
"guz": "குஸி",
"km": "கெமெர்",
"ca": "கேட்டலான்",
+ "kgp": "கைன்கேங்",
"kok": "கொங்கணி",
"khq": "கொய்ரா சீனீ",
"ses": "கொய்ராபோரோ சென்னி",
@@ -89,6 +93,7 @@
"sd": "சிந்தி",
"zh": "சீனம்",
"su": "சுண்டானீஸ்",
+ "cv": "சுவாஷ்",
"cs": "செக்",
"ce": "செச்சென்",
"ceb": "செபுவானோ",
@@ -105,6 +110,7 @@
"teo": "டெசோ",
"da": "டேனிஷ்",
"dav": "டைடா",
+ "tok": "டோக்கி போனா",
"doi": "டோக்ரி",
"to": "டோங்கான்",
"shi": "தசேஹித்",
@@ -116,6 +122,7 @@
"tk": "துருக்மென்",
"te": "தெலுங்கு",
"jgo": "நகொம்பா",
+ "yrl": "நஹீன்கட்டு",
"naq": "நாமா",
"no": "நார்வேஜியன்",
"nn": "நார்வேஜியன் நியூநார்ஸ்க்",
@@ -137,14 +144,16 @@
"en-GB": "பிரிட்டிஷ் ஆங்கிலம்",
"fr": "பிரெஞ்சு",
"br": "பிரெட்டன்",
+ "pis": "பிஜின்",
"dz": "பூடானி",
"bem": "பெம்பா",
"fa": "பெர்ஷியன்",
"be": "பெலாருஷியன்",
"bez": "பெனா",
"brx": "போடோ",
- "pt": "போர்ச்சுக்கீஸ்",
+ "pt": "போர்ச்சுகீஸ்",
"pl": "போலிஷ்",
+ "bho": "போஜ்பூரி",
"bs": "போஸ்னியன்",
"mgh": "மகுவா-மீட்டோ",
"kde": "மகொண்டே",
@@ -168,12 +177,14 @@
"fy": "மேற்கு ஃப்ரிஷியன்",
"mai": "மைதிலி",
"mfe": "மொரிசியன்",
+ "mdf": "மோக்க்ஷா",
"ro-MD": "மோல்டாவியன்",
"mi": "மௌரி",
"yav": "யாங்பென்",
"yi": "யெட்டிஷ்",
"yo": "யோருபா",
"ru": "ரஷியன்",
+ "raj": "ராஜஸ்தானி",
"rn": "ருண்டி",
"rwk": "ருவா",
"rof": "ரோம்போ",
@@ -194,6 +205,7 @@
"nds": "லோ ஜெர்மன்",
"dsb": "லோயர் சோர்பியன்",
"bn": "வங்காளம்",
+ "frr": "வடக்கு ஃப்ரிஸியான்",
"se": "வடக்கு சமி",
"nd": "வடக்கு தெபெலே",
"lrc": "வடக்கு லுரி",
@@ -211,6 +223,7 @@
"ksb": "ஷம்பாலா",
"sn": "ஷோனா",
"gd": "ஸ்காட்ஸ் கேலிக்",
+ "sms": "ஸ்கோல்ட் சமி",
"zgh": "ஸ்டாண்டர்ட் மொராக்கன் தமாசைட்",
"es": "ஸ்பானிஷ்",
"sk": "ஸ்லோவாக்",
@@ -226,6 +239,5 @@
"he": "ஹீப்ரூ",
"xh": "ஹோசா",
"ha": "ஹௌஸா",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/te.json b/vendor/commerceguys/intl/resources/language/te.json
index baada99cd..cc1582b9f 100644
--- a/vendor/commerceguys/intl/resources/language/te.json
+++ b/vendor/commerceguys/intl/resources/language/te.json
@@ -8,6 +8,7 @@
"sq": "అల్బేనియన్",
"asa": "అసు",
"as": "అస్సామీస్",
+ "oc": "ఆక్సిటన్",
"af": "ఆఫ్రికాన్స్",
"hy": "ఆర్మేనియన్",
"ast": "ఆస్టూరియన్",
@@ -24,6 +25,7 @@
"uk": "ఉక్రెయినియన్",
"uz": "ఉజ్బెక్",
"nd": "ఉత్తర దెబెలె",
+ "frr": "ఉత్తర ఫ్రిసియన్",
"lrc": "ఉత్తర లూరీ",
"se": "ఉత్తర సామి",
"ug": "ఉయ్‌ఘర్",
@@ -34,6 +36,7 @@
"ga": "ఐరిష్",
"is": "ఐస్లాండిక్",
"or": "ఒడియా",
+ "ann": "ఒబోలో",
"om": "ఒరోమో",
"os": "ఒసేటిక్",
"kam": "కంబా",
@@ -55,6 +58,7 @@
"qu": "కెచువా",
"en-CA": "కెనడియన్ ఇంగ్లీష్",
"fr-CA": "కెనడియెన్ ఫ్రెంచ్",
+ "kgp": "కైన్‌గ్యాంగ్",
"kok": "కొంకణి",
"khq": "కొయరా చీన్నీ",
"ko": "కొరియన్",
@@ -72,6 +76,7 @@
"jgo": "గోంబా",
"el": "గ్రీక్",
"cgg": "చిగా",
+ "cv": "చువాష్",
"cs": "చెక్",
"ce": "చెచెన్",
"chr": "చెరోకీ",
@@ -93,6 +98,7 @@
"bo": "టిబెటన్",
"teo": "టెసో",
"dav": "టైటా",
+ "tok": "టోకి పోనా",
"nl": "డచ్",
"da": "డానిష్",
"doi": "డోగ్రి",
@@ -107,6 +113,7 @@
"nb": "నార్వేజియన్ బొక్మాల్",
"nn": "నార్వేజియాన్ న్యోర్స్క్",
"ne": "నేపాలి",
+ "yrl": "నేహ్‌గటు",
"pcm": "నైజీరియా పిడ్గిన్",
"nyn": "న్యాన్కోలె",
"nus": "న్యుర్",
@@ -114,6 +121,7 @@
"fa": "పర్షియన్",
"fy": "పశ్చిమ ఫ్రిసియన్",
"ps": "పాష్టో",
+ "pis": "పిజిన్",
"pt": "పోర్చుగీస్",
"pl": "పోలిష్",
"zgh": "ప్రామాణిక మొరొకన్ టామజైట్",
@@ -138,6 +146,7 @@
"bs": "బోస్నియన్",
"en-GB": "బ్రిటిష్ ఇంగ్లీష్",
"br": "బ్రెటన్",
+ "bho": "భోజ్‌పురి",
"mn": "మంగోలియన్",
"mua": "మండాంగ్",
"kde": "మకొండే",
@@ -159,11 +168,13 @@
"mai": "మైథిలి",
"mfe": "మొరిస్యేన్",
"ro-MD": "మొల్డావియన్",
+ "mdf": "మోక్ష",
"yav": "యాంగ్‌బెన్",
"ee": "యూ",
"pt-PT": "యూరోపియన్ పోర్చుగీస్",
"yo": "యోరుబా",
"ru": "రష్యన్",
+ "raj": "రాజస్తానీ",
"rn": "రుండి",
"rof": "రోంబో",
"rm": "రోమన్ష్",
@@ -213,6 +224,7 @@
"xog": "సొగా",
"so": "సోమాలి",
"gd": "స్కాటిష్ గేలిక్",
+ "sms": "స్కోల్ట్ సామి",
"es": "స్పానిష్",
"sk": "స్లోవక్",
"sl": "స్లోవేనియన్",
@@ -224,8 +236,8 @@
"hu": "హంగేరియన్",
"haw": "హవాయియన్",
"hi": "హిందీ",
+ "hi-Latn": "హిందీ (లాటిన్)",
"he": "హిబ్రూ",
"ha": "హౌసా",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/tg.json b/vendor/commerceguys/intl/resources/language/tg.json
index 8f127ac6a..53be1d8fc 100644
--- a/vendor/commerceguys/intl/resources/language/tg.json
+++ b/vendor/commerceguys/intl/resources/language/tg.json
@@ -7,10 +7,12 @@
"bm": "Bambara",
"bas": "Basaa",
"bez": "Bena",
+ "bho": "Bhojpuri",
"brx": "Bodo",
"yue": "Cantonese",
"ce": "Chechen",
"cgg": "Chiga",
+ "cv": "Chuvash",
"ksh": "Colognian",
"kw": "Cornish",
"doi": "Dogri",
@@ -21,6 +23,7 @@
"fur": "Friulian",
"lg": "Ganda",
"guz": "Gusii",
+ "bgc": "Haryanvi",
"jv": "Javanese",
"dyo": "Jola-Fonyi",
"kea": "Kabuverdianu",
@@ -49,6 +52,7 @@
"mzn": "Mazanderani",
"mer": "Meru",
"mgo": "Metaʼ",
+ "mdf": "Moksha",
"mfe": "Morisyen",
"mua": "Mundang",
"naq": "Nama",
@@ -58,12 +62,16 @@
"yrl": "Nheengatu",
"pcm": "Nigerian Pidgin",
"nd": "North Ndebele",
+ "frr": "Northern Frisian",
"lrc": "Northern Luri",
"nb": "Norwegian Bokmål",
"nn": "Norwegian Nynorsk",
"nus": "Nuer",
"nyn": "Nyankole",
+ "ann": "Obolo",
"os": "Ossetic",
+ "pis": "Pijin",
+ "raj": "Rajasthani",
"rof": "Rombo",
"rn": "Rundi",
"rwk": "Rwa",
@@ -78,13 +86,14 @@
"xog": "Soga",
"zgh": "Standard Moroccan Tamazight",
"su": "Sundanese",
- "sw-CD": "sw (CD)",
+ "sw-CD": "sw (Конго [ҶДК])",
"sw": "Swahili",
"gsw": "Swiss German",
"shi": "Tachelhit",
"dav": "Taita",
"twq": "Tasawaq",
"teo": "Teso",
+ "tok": "Toki Pona",
"vai": "Vai",
"vun": "Vunjo",
"wa": "Walloon",
@@ -95,7 +104,7 @@
"zu": "Zulu",
"sq": "албанӣ",
"am": "амҳарӣ",
- "en": "англисӣ",
+ "en": "Англисӣ",
"en-AU": "англисии австралиягӣ",
"en-GB": "англисии британӣ",
"en-CA": "англисии канадагӣ",
@@ -168,6 +177,7 @@
"no": "норвегӣ",
"or": "одия",
"az": "озарбойҷонӣ",
+ "oc": "окситанӣ",
"om": "оромо",
"pa": "панҷобӣ",
"pt": "португалӣ",
@@ -187,6 +197,7 @@
"dsb": "сербии поёнӣ",
"si": "сингалӣ",
"sd": "синдӣ",
+ "sms": "сколти самӣ",
"sk": "словакӣ",
"sl": "словенӣ",
"so": "сомалӣ",
@@ -221,6 +232,7 @@
"haw": "ҳавайӣ",
"ha": "ҳауса",
"hi": "ҳиндӣ",
+ "hi-Latn": "ҳиндӣ (Лотинӣ)",
"chr": "черокӣ",
"cs": "чехӣ",
"sv": "шведӣ",
diff --git a/vendor/commerceguys/intl/resources/language/th.json b/vendor/commerceguys/intl/resources/language/th.json
index 6a6ce934e..e6cf66131 100644
--- a/vendor/commerceguys/intl/resources/language/th.json
+++ b/vendor/commerceguys/intl/resources/language/th.json
@@ -40,6 +40,7 @@
"dyo": "โจลา-ฟอนยี",
"jv": "ชวา",
"ksb": "ชัมบาลา",
+ "cv": "ชูวัช",
"cs": "เช็ก",
"ce": "เชเชน",
"chr": "เชอโรกี",
@@ -49,6 +50,7 @@
"dsb": "ซอร์เบียตอนล่าง",
"sg": "ซันโก",
"sah": "ซาคา",
+ "sms": "ซามิสคอลต์",
"se": "ซามิเหนือ",
"smn": "ซามิอีนารี",
"sc": "ซาร์เดญา",
@@ -82,6 +84,7 @@
"zgh": "ทามาไซต์โมร็อกโกมาตรฐาน",
"tzm": "ทามาไซต์แอตลาสกลาง",
"bo": "ทิเบต",
+ "tok": "โทคิโพนา",
"dav": "ไททา",
"th": "ไทย",
"no": "นอร์เวย์",
@@ -91,6 +94,7 @@
"ne": "เนปาล",
"nyn": "เนียนโกเล",
"nus": "เนือร์",
+ "pcm": "ไนจีเรียนพิดจิน",
"bs": "บอสเนีย",
"bn": "บังกลา",
"bm": "บัมบารา",
@@ -110,20 +114,23 @@
"pl": "โปแลนด์",
"fr": "ฝรั่งเศส",
"fr-CA": "ฝรั่งเศส - แคนาดา",
- "fr-CH": "ฝรั่งเศส (สวิส)",
+ "fr-CH": "ฝรั่งเศส - สวิส",
"my": "พม่า",
"ps": "พัชโต",
- "pcm": "พิดจิน",
+ "pis": "พิดจิน",
"brx": "โพโฑ",
"fy": "ฟริเซียนตะวันตก",
+ "frr": "ฟริเซียนเหนือ",
"fur": "ฟรูลี",
"fi": "ฟินแลนด์",
"fil": "ฟิลิปปินส์",
"ff": "ฟูลาห์",
"nl-BE": "เฟลมิช",
"fo": "แฟโร",
+ "bho": "โภชปุรี",
"mni": "มณีปุระ",
"mr": "มราฐี",
+ "mdf": "มอคชา",
"mn": "มองโกเลีย",
"mfe": "มอริสเยน",
"ro-MD": "มอลโดวา",
@@ -156,6 +163,7 @@
"rwk": "รวา",
"rof": "รอมโบ",
"ru": "รัสเซีย",
+ "raj": "ราชสถาน",
"ro": "โรมาเนีย",
"rm": "โรแมนซ์",
"lb": "ลักเซมเบิร์ก",
@@ -169,8 +177,8 @@
"luy": "ลูเยีย",
"lrc": "ลูรีเหนือ",
"lag": "แลนจี",
+ "wa": "วอลลูน",
"wae": "วัลเซอร์",
- "wa": "วาโลนี",
"vun": "วุนจู",
"cy": "เวลส์",
"vi": "เวียดนาม",
@@ -190,6 +198,7 @@
"sd": "สินธิ",
"ii": "เสฉวนยี่",
"yrl": "เหงงกาตุ",
+ "oc": "อ็อกซิตัน",
"os": "ออสเซเตีย",
"agq": "อักเฮม",
"en": "อังกฤษ",
@@ -220,12 +229,15 @@
"af": "แอฟริกานส์",
"sq": "แอลเบเนีย",
"or": "โอดิยา",
+ "ann": "โอโบโล",
"om": "โอโรโม",
"is": "ไอซ์แลนด์",
"ga": "ไอริช",
"hu": "ฮังการี",
"haw": "ฮาวาย",
"hi": "ฮินดี",
+ "hi-Latn": "ฮินดี (ละติน)",
"he": "ฮิบรู",
- "ha": "เฮาซา"
+ "ha": "เฮาซา",
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/tk.json b/vendor/commerceguys/intl/resources/language/tk.json
index 68f689de5..c0c612ed6 100644
--- a/vendor/commerceguys/intl/resources/language/tk.json
+++ b/vendor/commerceguys/intl/resources/language/tk.json
@@ -21,6 +21,7 @@
"bem": "bemba dili",
"bez": "bena dili",
"bn": "bengal dili",
+ "bho": "bhojpuri dili",
"my": "birma dili",
"brx": "bodo dili",
"bg": "bolgar dili",
@@ -29,7 +30,9 @@
"ce": "çeçen dili",
"cs": "çeh dili",
"chr": "çeroki",
+ "cv": "çuwaş dili",
"da": "daniýa dili",
+ "frr": "Demirgazyk friz dili",
"lrc": "demirgazyk luri dili",
"nd": "demirgazyk ndebele dili",
"se": "demirgazyk saam dili",
@@ -61,8 +64,10 @@
"guz": "gusii dili",
"fy": "günbatar friz dili",
"ky": "gyrgyz dili",
+ "bgc": "Haryanvi",
"ha": "hausa dili",
"hi": "hindi dili",
+ "hi-Latn": "hindi dili (Latyn elipbiýi)",
"hr": "horwat dili",
"zh": "hytaý dili",
"yi": "idiş dili",
@@ -82,7 +87,6 @@
"it": "italýan dili",
"kab": "kabil dili",
"kea": "kabuwerdianu dili",
- "kgp": "Kaingang",
"kkj": "kako dili",
"kln": "kalenjin dili",
"kam": "kamba dili",
@@ -90,6 +94,7 @@
"yue": "kanton dili",
"ks": "kaşmiri dili",
"ca": "katalan dili",
+ "kgp": "Kaýngang dili",
"qu": "keçua dili",
"ksh": "keln dili",
"km": "khmer dili",
@@ -132,6 +137,7 @@
"ckb": "merkezi kürt dili",
"mer": "meru dili",
"mgo": "meta dili",
+ "mdf": "mokşa dili",
"ro-MD": "moldaw dili",
"mn": "mongol dili",
"mfe": "morisýen dili",
@@ -143,7 +149,7 @@
"ne": "nepal dili",
"nnh": "ngembun dili",
"jgo": "ngomba dili",
- "yrl": "Nheengatu",
+ "yrl": "Nhengatu dili",
"nl": "niderland dili",
"pcm": "nigeriýa-pijin dili",
"no": "norweg dili",
@@ -151,6 +157,8 @@
"nn": "norwegiýa nýunorsk dili",
"nus": "nuer dili",
"nyn": "nýankole dili",
+ "ann": "Obolo dili",
+ "oc": "oksitan dili",
"or": "oriýa dili",
"om": "oromo dili",
"tzm": "orta-atlas tamazight dili",
@@ -159,9 +167,11 @@
"fa": "pars dili",
"pa": "penjab dili",
"ps": "peştun dili",
+ "pis": "Pijin dili",
"pl": "polýak dili",
"pt": "portugal dili",
"pt-PT": "portugal dili (Ýewropa)",
+ "raj": "Rajasthani",
"rm": "retoroman dili",
"rof": "rombo dili",
"ro": "rumyn dili",
@@ -179,6 +189,7 @@
"sr": "serb dili",
"sd": "sindhi dili",
"si": "singal dili",
+ "sms": "skolt-saam dili",
"sk": "slowak dili",
"sl": "slowen dili",
"xog": "soga dili",
@@ -202,6 +213,7 @@
"tg": "täjik dili",
"bo": "tibet dili",
"ti": "tigrinýa dili",
+ "tok": "Toki Pona dili",
"to": "tongan dili",
"tr": "türk dili",
"tk": "türkmen dili",
diff --git a/vendor/commerceguys/intl/resources/language/to.json b/vendor/commerceguys/intl/resources/language/to.json
index 9c6b75083..42daca5cd 100644
--- a/vendor/commerceguys/intl/resources/language/to.json
+++ b/vendor/commerceguys/intl/resources/language/to.json
@@ -1,11 +1,12 @@
{
- "or": "lea faka-ʻotia",
+ "bgc": "Haryanvi",
"fr": "lea fakafalanisē",
"fr-CA": "lea fakafalanisē-kānata",
"fr-CH": "lea fakafalanisē-suisilani",
"fo": "lea fakafaloe",
"fil": "lea fakafilipaini",
"fy": "lea fakafilisia-hihifo",
+ "frr": "lea fakafilisia-tokelau",
"fi": "lea fakafinilani",
"ff": "lea fakafulā",
"fur": "lea fakafulilāni",
@@ -13,6 +14,7 @@
"ha": "lea fakahausa",
"he": "lea fakahepelū",
"hi": "lea fakahinitī",
+ "hi-Latn": "lea fakahinitī (tohinima fakalatina)",
"nl": "lea fakahōlani",
"nl-BE": "lea fakahōlani-pelesiume",
"hu": "lea fakahungakalia",
@@ -56,6 +58,7 @@
"lb": "lea fakalakisimipeki",
"lkt": "lea fakalakota",
"lag": "lea fakalangi",
+ "raj": "lea fakalasasitani",
"lv": "lea fakalativia",
"lo": "lea fakalau",
"lt": "lea fakalituania",
@@ -83,6 +86,7 @@
"mi": "lea fakamauli",
"mer": "lea fakamelu",
"mgo": "lea fakametā",
+ "mdf": "lea fakamokisiā",
"mfe": "lea fakamolisieni",
"ro-MD": "lea fakamolitāvia",
"mn": "lea fakamongokōlia",
@@ -115,16 +119,19 @@
"bez": "lea fakapena",
"fa": "lea fakapēsia",
"en-GB": "lea fakapilitānia",
+ "pis": "lea fakapisini",
"pl": "lea fakapolani",
"bs": "lea fakaposinia",
+ "bho": "lea fakaposipuli",
"brx": "lea fakapōto",
"pt": "lea fakapotukali",
- "pt-PT": "lea fakapotukali-ʻiulope",
+ "pt-PT": "lea fakapotukali (Potukali)",
"bg": "lea fakapulukalia",
"pa": "lea fakapūnusapi",
"sah": "lea fakasaka",
"nds-NL": "lea fakasakisoni-hifo",
"sc": "lea fakasaletīnia",
+ "sms": "lea fakasami-sikolita",
"se": "lea fakasami-tokelau",
"smn": "lea fakasami-ʻinali",
"saq": "lea fakasamipulu",
@@ -168,6 +175,7 @@
"sv": "lea fakasuēteni",
"zu": "lea fakasulu",
"su": "lea fakasunitā",
+ "cv": "lea fakasuvasa",
"th": "lea fakatailani",
"dav": "lea fakataita",
"zgh": "lea fakatamasaiti-moloko",
@@ -185,6 +193,7 @@
"dje": "lea fakatisāma",
"dz": "lea fakatisōngika",
"tr": "lea fakatoake",
+ "tok": "lea fakatoki-pona",
"doi": "lea fakatokili",
"to": "lea fakatonga",
"xh": "lea fakatōsa",
@@ -215,11 +224,14 @@
"ml": "lea fakaʻinitia-malāialami",
"te": "lea fakaʻinitia-teluku",
"id": "lea fakaʻinitōnesia",
- "iu": "lea fakaʻinuketituti",
+ "iu": "lea fakaʻinuketītuti",
"yo": "lea fakaʻiōlupa",
"it": "lea fakaʻītali",
+ "oc": "lea fakaʻokitane",
"om": "lea fakaʻolomo",
+ "ann": "lea fakaʻopolo",
"os": "lea fakaʻosetiki",
+ "or": "lea fakaʻotia",
"wae": "lea fakaʻualiseli",
"wa": "lea fakaʻualonia",
"ug": "lea fakaʻuikūli",
diff --git a/vendor/commerceguys/intl/resources/language/tr.json b/vendor/commerceguys/intl/resources/language/tr.json
index 297740b7c..a4ef399de 100644
--- a/vendor/commerceguys/intl/resources/language/tr.json
+++ b/vendor/commerceguys/intl/resources/language/tr.json
@@ -5,6 +5,7 @@
"de": "Almanca",
"am": "Amharca",
"ar": "Arapça",
+ "bho": "Arayanice",
"sq": "Arnavutça",
"as": "Assamca",
"ast": "Asturyasça",
@@ -36,6 +37,7 @@
"cs": "Çekçe",
"chr": "Çerokice",
"zh": "Çince",
+ "cv": "Çuvaşça",
"da": "Danca",
"doi": "Dogri",
"dua": "Duala",
@@ -63,10 +65,12 @@
"guz": "Gusii",
"gu": "Güceratça",
"ka": "Gürcüce",
+ "bgc": "Haryanvi",
"ha": "Hausa dili",
"haw": "Hawaii dili",
"hr": "Hırvatça",
"hi": "Hintçe",
+ "hi-Latn": "Hintçe (Latin)",
"ig": "İbo dili",
"he": "İbranice",
"smn": "İnari Laponcası",
@@ -111,6 +115,7 @@
"khq": "Koyra Chiini",
"ses": "Koyraboro Senni",
"ksh": "Köln lehçesi",
+ "frr": "Kuzey Frizce",
"se": "Kuzey Laponcası",
"lrc": "Kuzey Luri",
"nd": "Kuzey Ndebele",
@@ -147,6 +152,7 @@
"mer": "Meru",
"mgo": "Meta’",
"mn": "Moğolca",
+ "mdf": "Mokşa dili",
"ro-MD": "Moldovaca",
"mfe": "Morisyen",
"mua": "Mundang",
@@ -161,6 +167,8 @@
"nn": "Norveççe Nynorsk",
"nus": "Nuer",
"nyn": "Nyankole",
+ "ann": "Obolo dili",
+ "oc": "Oksitan dili",
"or": "Oriya dili",
"om": "Oromo dili",
"tzm": "Orta Atlas Tamazigti",
@@ -169,7 +177,9 @@
"uz": "Özbekçe",
"pa": "Pencapça",
"ps": "Peştuca",
+ "pis": "Pijin dili",
"pt": "Portekizce",
+ "raj": "Rajasthani",
"rm": "Romanşça",
"rof": "Rombo",
"ro": "Rumence",
@@ -187,6 +197,7 @@
"ii": "Sichuan Yi",
"sd": "Sindhi dili",
"si": "Sinhali dili",
+ "sms": "Skolt Laponcası",
"sk": "Slovakça",
"sl": "Slovence",
"xog": "Soga",
@@ -207,6 +218,7 @@
"teo": "Teso",
"bo": "Tibetçe",
"ti": "Tigrinya dili",
+ "tok": "Toki Pona",
"to": "Tonga dili",
"tr": "Türkçe",
"tk": "Türkmence",
diff --git a/vendor/commerceguys/intl/resources/language/uk.json b/vendor/commerceguys/intl/resources/language/uk.json
index f8d3e4b5a..99d413af8 100644
--- a/vendor/commerceguys/intl/resources/language/uk.json
+++ b/vendor/commerceguys/intl/resources/language/uk.json
@@ -26,6 +26,7 @@
"bg": "болгарська",
"bs": "боснійська",
"br": "бретонська",
+ "bho": "бходжпурі",
"vai": "ваї",
"cy": "валлійська",
"wa": "валлонська",
@@ -39,6 +40,7 @@
"gl": "галісійська",
"lg": "ганда",
"hi": "гінді",
+ "hi-Latn": "гінді (латиниця)",
"el": "грецька",
"ka": "грузинська",
"gu": "гуджараті",
@@ -59,7 +61,7 @@
"he": "іврит",
"ig": "ігбо",
"id": "індонезійська",
- "iu": "інуктітут",
+ "iu": "інуктитут",
"ga": "ірландська",
"is": "ісландська",
"es": "іспанська",
@@ -69,11 +71,11 @@
"kab": "кабільська",
"kea": "кабувердіану",
"kk": "казахська",
+ "kgp": "кайнґанґ",
"kkj": "како",
"kl": "калааллісут",
"kln": "календжин",
"kam": "камба",
- "fr-CA": "канадська французька",
"kn": "каннада",
"yue": "кантонська",
"ca": "каталонська",
@@ -88,7 +90,7 @@
"cgg": "кіга",
"ki": "кікуйю",
"rw": "кіньяруанда",
- "khq": "койра чіїні",
+ "khq": "койра чиїні",
"ses": "койраборо сені",
"kok": "конкані",
"ko": "корейська",
@@ -125,6 +127,7 @@
"es-MX": "мексиканська іспанська",
"mer": "меру",
"mgo": "мета",
+ "mdf": "мокша",
"ro-MD": "молдавська",
"mn": "монгольська",
"mua": "мунданг",
@@ -139,12 +142,16 @@
"nl": "нідерландська",
"de": "німецька",
"de-AT": "німецька (Австрія)",
+ "de-CH": "німецька (Швейцарія)",
"no": "норвезька",
"nb": "норвезька (букмол)",
"nn": "норвезька (нюношк)",
"nus": "нуер",
+ "yrl": "ньєнґату",
"nyn": "ньянколе",
+ "ann": "оболо",
"or": "одія",
+ "oc": "окситанська",
"om": "оромо",
"os": "осетинська",
"pa": "панджабі",
@@ -152,9 +159,11 @@
"nd": "північна ндебеле",
"lrc": "північнолурська",
"se": "північносаамська",
+ "pis": "піджин",
"pl": "польська",
"pt": "португальська",
"ps": "пушту",
+ "raj": "раджастхані",
"rwk": "рва",
"rm": "ретороманська",
"rof": "ромбо",
@@ -175,6 +184,7 @@
"si": "сингальська",
"sd": "синдхі",
"ii": "сичуаньська ї",
+ "sms": "скольт-саамська",
"sk": "словацька",
"sl": "словенська",
"xog": "сога",
@@ -184,7 +194,7 @@
"sw-CD": "суахілі (Конго)",
"su": "сунданська",
"tg": "таджицька",
- "dav": "таіта",
+ "dav": "таїта",
"th": "тайська",
"ta": "тамільська",
"twq": "тасавак",
@@ -194,6 +204,7 @@
"teo": "тесо",
"bo": "тибетська",
"ti": "тигринья",
+ "tok": "токі-пона",
"to": "тонганська",
"tr": "турецька",
"tk": "туркменська",
@@ -207,6 +218,9 @@
"fi": "фінська",
"nl-BE": "фламандська",
"fr": "французька",
+ "fr-CA": "французька (Канада)",
+ "fr-CH": "французька (Швейцарія)",
+ "frr": "фризька північна",
"fur": "фріульська",
"ff": "фула",
"ha": "хауса",
@@ -216,16 +230,14 @@
"chr": "черокі",
"cs": "чеська",
"ce": "чеченська",
+ "cv": "чуваська",
"ksb": "шамбала",
"sv": "шведська",
- "de-CH": "швейцарська верхньонімецька",
"gsw": "швейцарська німецька",
- "fr-CH": "швейцарська французька",
"sn": "шона",
"gd": "шотландська гельська",
"jv": "яванська",
"yav": "янгбен",
"ja": "японська",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/ur-IN.json b/vendor/commerceguys/intl/resources/language/ur-IN.json
index 3b3e61525..439a05f5d 100644
--- a/vendor/commerceguys/intl/resources/language/ur-IN.json
+++ b/vendor/commerceguys/intl/resources/language/ur-IN.json
@@ -18,6 +18,7 @@
"smn": "اناری سامی",
"id": "انڈونیثیائی",
"en": "انگریزی",
+ "ann": "اوبولو",
"om": "اورومو",
"os": "اوسیٹک",
"iu": "اینُکٹیٹٹ",
@@ -30,6 +31,7 @@
"de-AT": "آسٹریائی جرمن",
"en-AU": "آسٹریلیائی انگریزی",
"asa": "آسو",
+ "oc": "آکسیٹان",
"ga": "آئرش",
"is": "آئس لینڈک",
"bas": "باسا",
@@ -46,6 +48,8 @@
"be": "بیلاروسی",
"bem": "بیمبا",
"bez": "بینا",
+ "bho": "بھوجپوری",
+ "pis": "پجن",
"pt": "پُرتگالی",
"ps": "پشتو",
"pa": "پنجابی",
@@ -63,12 +67,14 @@
"te": "تیلگو",
"th": "تھائی",
"ti": "ٹگرینیا",
+ "tok": "ٹوکی پونا",
"to": "ٹونگن",
"ja": "جاپانی",
"ka": "جارجيائى",
"jv": "جاوانیز",
"de": "جرمن",
"dyo": "جولا فونيا",
+ "cv": "چوواش",
"ce": "چیچن",
"chr": "چیروکی",
"cs": "چیک",
@@ -99,6 +105,7 @@
"sr": "سربین",
"sc": "سردینین",
"gd": "سکاٹش گیلک",
+ "sms": "سکولٹ سامی",
"sk": "سلوواک",
"sl": "سلووینیائی",
"sat": "سنتالی",
@@ -119,6 +126,7 @@
"ksb": "شامبالا",
"nd": "شمالی دبیل",
"se": "شمالی سامی",
+ "frr": "شمالی فریزئین",
"lrc": "شمالی لری",
"sn": "شونا",
"so": "صومالی",
@@ -156,6 +164,7 @@
"ca": "کیٹالان",
"ki": "کیکویو",
"yue": "کینٹونیز",
+ "kgp": "کینگینگ",
"rw": "کینیاروانڈا",
"en-CA": "کینیڈین انگریزی",
"fr-CA": "کینیڈین فرانسیسی",
@@ -193,6 +202,7 @@
"mn": "منگولین",
"mni": "منی پوری",
"mfe": "موریسیین",
+ "mdf": "موکشا",
"mai": "میتھیلی",
"mgo": "میٹا",
"mer": "میرو",
@@ -207,6 +217,7 @@
"nus": "نویر",
"ne": "نیپالی",
"nyn": "نینکول",
+ "yrl": "نینگاٹو",
"wae": "والسر",
"wa": "والون",
"vai": "وائی",
@@ -216,6 +227,7 @@
"cy": "ویلش",
"es": "ہسپانوی",
"hi": "ہندی",
+ "hi-Latn": "ہندی (لاطینی)",
"hu": "ہنگیرین",
"haw": "ہوائی",
"ha": "ہؤسا",
@@ -226,6 +238,6 @@
"uk": "یوکرینیائی",
"el": "یونانی",
"ug": "یوئگہر",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi",
+ "raj": "Rajasthani"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/ur.json b/vendor/commerceguys/intl/resources/language/ur.json
index accdbae79..a4c81a7ec 100644
--- a/vendor/commerceguys/intl/resources/language/ur.json
+++ b/vendor/commerceguys/intl/resources/language/ur.json
@@ -19,6 +19,7 @@
"smn": "اناری سامی",
"id": "انڈونیثیائی",
"en": "انگریزی",
+ "ann": "اوبولو",
"om": "اورومو",
"os": "اوسیٹک",
"iu": "اینُکٹیٹٹ",
@@ -30,6 +31,7 @@
"de-AT": "آسٹریائی جرمن",
"en-AU": "آسٹریلیائی انگریزی",
"asa": "آسو",
+ "oc": "آکسیٹان",
"ga": "آئرش",
"is": "آئس لینڈک",
"bas": "باسا",
@@ -46,6 +48,8 @@
"be": "بیلاروسی",
"bem": "بیمبا",
"bez": "بینا",
+ "bho": "بھوجپوری",
+ "pis": "پجن",
"pt": "پُرتگالی",
"ps": "پشتو",
"pa": "پنجابی",
@@ -63,12 +67,14 @@
"te": "تیلگو",
"th": "تھائی",
"ti": "ٹگرینیا",
+ "tok": "ٹوکی پونا",
"to": "ٹونگن",
"ja": "جاپانی",
"ka": "جارجیائی",
"jv": "جاوی",
"de": "جرمن",
"dyo": "جولا فونيا",
+ "cv": "چوواش",
"ce": "چیچن",
"chr": "چیروکی",
"cs": "چیک",
@@ -100,6 +106,7 @@
"sr": "سربین",
"sc": "سردینین",
"gd": "سکاٹش گیلک",
+ "sms": "سکولٹ سامی",
"sk": "سلوواک",
"sl": "سلووینیائی",
"sat": "سنتالی",
@@ -120,6 +127,7 @@
"ksb": "شامبالا",
"nd": "شمالی دبیل",
"se": "شمالی سامی",
+ "frr": "شمالی فریزئین",
"lrc": "شمالی لری",
"sn": "شونا",
"so": "صومالی",
@@ -157,6 +165,7 @@
"ca": "کیٹالان",
"ki": "کیکویو",
"yue": "کینٹونیز",
+ "kgp": "کینگینگ",
"rw": "کینیاروانڈا",
"en-CA": "کینیڈین انگریزی",
"fr-CA": "کینیڈین فرانسیسی",
@@ -193,6 +202,7 @@
"mn": "منگولین",
"mni": "منی پوری",
"mfe": "موریسیین",
+ "mdf": "موکشا",
"mai": "میتھیلی",
"mgo": "میٹا",
"mer": "میرو",
@@ -207,6 +217,7 @@
"nus": "نویر",
"ne": "نیپالی",
"nyn": "نینکول",
+ "yrl": "نینگاٹو",
"wae": "والسر",
"wa": "والون",
"vai": "وائی",
@@ -216,6 +227,7 @@
"cy": "ویلش",
"es": "ہسپانوی",
"hi": "ہندی",
+ "hi-Latn": "ہندی (لاطینی)",
"hu": "ہنگیرین",
"haw": "ہوائی",
"ha": "ہؤسا",
@@ -226,6 +238,6 @@
"uk": "یوکرینیائی",
"el": "یونانی",
"ug": "یوئگہر",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi",
+ "raj": "Rajasthani"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/uz-Cyrl.json b/vendor/commerceguys/intl/resources/language/uz-Cyrl.json
index 2d7442eb6..73c14ca32 100644
--- a/vendor/commerceguys/intl/resources/language/uz-Cyrl.json
+++ b/vendor/commerceguys/intl/resources/language/uz-Cyrl.json
@@ -1,5 +1,6 @@
{
"doi": "Dogri",
+ "bgc": "Haryanvi",
"kgp": "Kaingang",
"nds": "Low German",
"luo": "Luo",
@@ -7,10 +8,16 @@
"nds-NL": "nds (Нидерландия)",
"yrl": "Nheengatu",
"pcm": "Nigerian Pidgin",
+ "frr": "Northern Frisian",
"no": "Norwegian",
+ "ann": "Obolo",
"os": "Ossetic",
+ "pis": "Pijin",
+ "raj": "Rajasthani",
"sc": "Sardinian",
"ii": "Sichuan Yi",
+ "gsw": "Swiss German",
+ "tok": "Toki Pona",
"wa": "Walloon",
"agq": "агемча",
"ak": "аканча",
@@ -36,6 +43,7 @@
"bg": "болгарча",
"bs": "боснийча",
"br": "бретонча",
+ "bho": "бхожпури",
"vai": "ваи",
"wae": "валсерча",
"hu": "венгерча",
@@ -124,6 +132,7 @@
"jmc": "мачаме тили",
"mer": "меруча",
"mgo": "мета",
+ "mdf": "мокша тили",
"mfe": "морисьен",
"mn": "мўғулча",
"mua": "мунданг",
@@ -133,7 +142,6 @@
"de": "немисча",
"de-AT": "немисча (Австрия)",
"de-CH": "немисча (Швейцария)",
- "gsw": "немисча (Швейцария)",
"ne": "непалча",
"nb": "норвегча бокмал",
"nn": "норвегча нюнорск",
@@ -141,6 +149,7 @@
"nyn": "нянколе",
"or": "одия",
"az": "озарбайжонча",
+ "oc": "окситанча",
"om": "оромо",
"pa": "панжобча",
"pl": "полякча",
@@ -165,6 +174,7 @@
"sr": "сербча",
"si": "сингалча",
"sd": "синдҳи",
+ "sms": "сколт-саамча",
"sk": "словакча",
"sl": "словенча",
"xog": "сога",
@@ -209,10 +219,12 @@
"hr": "хорватча",
"xh": "хоса",
"hi": "ҳинди",
+ "hi-Latn": "ҳинди (Лотин)",
"chr": "чероки",
"cs": "чехча",
"ce": "чечен тили",
"cgg": "чигача",
+ "cv": "чуваш тили",
"ksb": "шамбала",
"sv": "шведча",
"lrc": "шимолий лури",
diff --git a/vendor/commerceguys/intl/resources/language/uz.json b/vendor/commerceguys/intl/resources/language/uz.json
index 22d601352..151da66d3 100644
--- a/vendor/commerceguys/intl/resources/language/uz.json
+++ b/vendor/commerceguys/intl/resources/language/uz.json
@@ -22,6 +22,7 @@
"bg": "bolgar",
"bs": "bosniy",
"br": "breton",
+ "bho": "bxojpuri",
"da": "dan",
"dyo": "diola-fogni",
"doi": "dogri",
@@ -49,7 +50,9 @@
"ka": "gruzincha",
"gu": "gujarot",
"guz": "gusii",
+ "bgc": "Haryanvi",
"hi": "hind",
+ "hi-Latn": "hind (lotin)",
"yi": "idish",
"ig": "igbo",
"smn": "inari-saam",
@@ -68,7 +71,7 @@
"he": "ivrit",
"kab": "kabil",
"kea": "kabuverdianu",
- "kgp": "Kaingang",
+ "kgp": "kaingang",
"kkj": "kako",
"kln": "kalenjin",
"kam": "kamba",
@@ -115,6 +118,7 @@
"jmc": "machame",
"mer": "meru",
"mgo": "meta",
+ "mdf": "moksha",
"ro-MD": "moldovan",
"mn": "mongol",
"mfe": "morisyen",
@@ -127,18 +131,21 @@
"ne": "nepal",
"nnh": "ngiyembun",
"jgo": "ngomba",
- "yrl": "Nheengatu",
"nl": "niderland",
"no": "norveg",
"nb": "norveg-bokmal",
"nn": "norveg-nyunorsk",
"nus": "nuer",
"nyn": "nyankole",
+ "yrl": "nyengatu",
+ "ann": "obolo",
+ "oc": "oksitan",
"or": "oriya",
"om": "oromo",
"os": "osetin",
"az": "ozarbayjon",
"pa": "panjobcha",
+ "pis": "pijin",
"pl": "polyakcha",
"pt-PT": "portugal (Yevropa)",
"pt": "portugalcha",
@@ -148,6 +155,7 @@
"nds": "quyi nemis",
"nds-NL": "quyi sakson",
"dsb": "quyi sorb",
+ "raj": "Rajasthani",
"rm": "romansh",
"rof": "rombo",
"rwk": "ruanda",
@@ -167,6 +175,7 @@
"sd": "sindhi",
"si": "singal",
"ii": "sichuan",
+ "sms": "skolt-saam",
"sk": "slovakcha",
"sl": "slovencha",
"xog": "soga",
@@ -187,6 +196,7 @@
"bo": "tibet",
"ti": "tigrinya",
"tg": "tojik",
+ "tok": "tokipona",
"to": "tongan",
"tr": "turk",
"tk": "turkman",
@@ -218,6 +228,7 @@
"uz": "o‘zbek",
"fy": "g‘arbiy friz",
"ksb": "shambala",
+ "frr": "shimoliy friz",
"lrc": "shimoliy luri",
"nd": "shimoliy ndebele",
"se": "shimoliy saam",
@@ -227,5 +238,6 @@
"chr": "cheroki",
"cs": "chex",
"ce": "chechen",
- "cgg": "chiga"
+ "cgg": "chiga",
+ "cv": "chuvash"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/vi.json b/vendor/commerceguys/intl/resources/language/vi.json
index bffa71df1..cf2526b0c 100644
--- a/vendor/commerceguys/intl/resources/language/vi.json
+++ b/vendor/commerceguys/intl/resources/language/vi.json
@@ -1,6 +1,5 @@
{
- "kgp": "Kaingang",
- "yrl": "Nheengatu",
+ "bgc": "Haryanvi",
"ar": "Tiếng Ả Rập",
"af": "Tiếng Afrikaans",
"agq": "Tiếng Aghem",
@@ -27,6 +26,7 @@
"be": "Tiếng Belarus",
"bem": "Tiếng Bemba",
"bez": "Tiếng Bena",
+ "bho": "Tiếng Bhojpuri",
"brx": "Tiếng Bodo",
"bs": "Tiếng Bosnia",
"pt": "Tiếng Bồ Đào Nha",
@@ -38,6 +38,7 @@
"ce": "Tiếng Chechen",
"chr": "Tiếng Cherokee",
"cgg": "Tiếng Chiga",
+ "cv": "Tiếng Chuvash",
"ksh": "Tiếng Cologne",
"kw": "Tiếng Cornwall",
"hr": "Tiếng Croatia",
@@ -57,6 +58,7 @@
"fo": "Tiếng Faroe",
"nl-BE": "Tiếng Flemish",
"fy": "Tiếng Frisia",
+ "frr": "Tiếng Frisia Miền Bắc",
"fur": "Tiếng Friulian",
"ff": "Tiếng Fulah",
"gd": "Tiếng Gael Scotland",
@@ -73,6 +75,7 @@
"ha": "Tiếng Hausa",
"haw": "Tiếng Hawaii",
"hi": "Tiếng Hindi",
+ "hi-Latn": "Tiếng Hindi (Chữ La tinh)",
"hu": "Tiếng Hungary",
"el": "Tiếng Hy Lạp",
"is": "Tiếng Iceland",
@@ -86,6 +89,7 @@
"dyo": "Tiếng Jola-Fonyi",
"kea": "Tiếng Kabuverdianu",
"kab": "Tiếng Kabyle",
+ "kgp": "Tiếng Kaingang",
"kkj": "Tiếng Kako",
"kl": "Tiếng Kalaallisut",
"kln": "Tiếng Kalenjin",
@@ -130,6 +134,7 @@
"mer": "Tiếng Meru",
"mgo": "Tiếng Meta’",
"my": "Tiếng Miến Điện",
+ "mdf": "Tiếng Moksha",
"ro-MD": "Tiếng Moldova",
"mfe": "Tiếng Morisyen",
"mn": "Tiếng Mông Cổ",
@@ -144,9 +149,12 @@
"nnh": "Tiếng Ngiemboon",
"jgo": "Tiếng Ngomba",
"ja": "Tiếng Nhật",
+ "yrl": "Tiếng Nheengatu",
"pcm": "Tiếng Nigeria Pidgin",
"nus": "Tiếng Nuer",
"nyn": "Tiếng Nyankole",
+ "ann": "Tiếng Obolo",
+ "oc": "Tiếng Occitan",
"or": "Tiếng Odia",
"om": "Tiếng Oromo",
"os": "Tiếng Ossetic",
@@ -157,9 +165,11 @@
"fr-CH": "Tiếng Pháp (Thụy Sĩ)",
"fi": "Tiếng Phần Lan",
"fil": "Tiếng Philippines",
+ "pis": "Tiếng Pijin",
"pa": "Tiếng Punjab",
"yue": "Tiếng Quảng Đông",
"qu": "Tiếng Quechua",
+ "raj": "Tiếng Rajasthani",
"ro": "Tiếng Romania",
"rm": "Tiếng Romansh",
"rof": "Tiếng Rombo",
@@ -179,6 +189,7 @@
"sn": "Tiếng Shona",
"sd": "Tiếng Sindhi",
"si": "Tiếng Sinhala",
+ "sms": "Tiếng Skolt Sami",
"sk": "Tiếng Slovak",
"sl": "Tiếng Slovenia",
"xog": "Tiếng Soga",
@@ -206,6 +217,7 @@
"de-CH": "Tiếng Thượng Giéc-man (Thụy Sĩ)",
"hsb": "Tiếng Thượng Sorbia",
"ti": "Tiếng Tigrinya",
+ "tok": "Tiếng Toki Pona",
"to": "Tiếng Tonga",
"zh": "Tiếng Trung",
"zh-Hans": "Tiếng Trung (Giản thể)",
diff --git a/vendor/commerceguys/intl/resources/language/yue-Hans.json b/vendor/commerceguys/intl/resources/language/yue-Hans.json
index 87f9cf345..b9957cd2c 100644
--- a/vendor/commerceguys/intl/resources/language/yue-Hans.json
+++ b/vendor/commerceguys/intl/resources/language/yue-Hans.json
@@ -9,6 +9,8 @@
"ee": "埃维文",
"ga": "爱尔兰文",
"et": "爱沙尼亚文",
+ "ann": "奥博洛文",
+ "oc": "奥克西坦文",
"om": "奥罗莫文",
"os": "奥塞提文",
"ksf": "巴菲亚文",
@@ -20,9 +22,11 @@
"bg": "保加利亚文",
"nd": "北地毕列文",
"se": "北方萨米文",
+ "frr": "北弗里西亚文",
"lrc": "北卢尔文",
"twq": "北桑海文",
"hi": "北印度文",
+ "hi-Latn": "北印度文 (拉丁文)",
"bez": "贝纳文",
"zgh": "标准摩洛哥塔马塞特文",
"bem": "别姆巴文",
@@ -31,9 +35,11 @@
"bs": "波士尼亚文",
"fa": "波斯文",
"brx": "博多文",
+ "bho": "博杰普尔文",
"br": "布列塔尼文",
"chr": "柴罗基文",
"ce": "车臣文",
+ "cv": "楚瓦什文",
"tt": "鞑靼文",
"da": "丹麦文",
"de": "德文",
@@ -93,6 +99,7 @@
"hr": "克罗埃西亚文",
"ku": "库尔德文",
"nmg": "夸西奥文",
+ "raj": "拉贾斯坦诸文",
"lkt": "拉科塔文",
"lv": "拉脱维亚文",
"rof": "兰博文",
@@ -130,6 +137,7 @@
"bn": "孟加拉文",
"my": "缅甸文",
"ro-MD": "摩尔多瓦文",
+ "mdf": "莫克沙文",
"naq": "纳马文",
"yrl": "奈恩加图文",
"nn": "耐诺斯克挪威文",
@@ -141,6 +149,7 @@
"no": "挪威文",
"or": "欧利亚文",
"pa": "旁遮普文",
+ "pis": "皮京文",
"pt": "葡萄牙文",
"pt-PT": "葡萄牙文 (葡萄牙)",
"ps": "普什图文",
@@ -161,6 +170,7 @@
"ksb": "尚巴拉文",
"sw": "史瓦希里文",
"sw-CD": "史瓦希里文(刚果)",
+ "sms": "斯科特萨米文",
"sk": "斯洛伐克文",
"sl": "斯洛维尼亚文",
"ii": "四川彝文",
@@ -179,6 +189,7 @@
"ti": "提格利尼亚文",
"tr": "土耳其文",
"tk": "土库曼文",
+ "tok": "托基波纳文",
"wa": "瓦隆文",
"wae": "瓦瑟文",
"vai": "瓦伊文",
@@ -227,5 +238,6 @@
"zh": "中文",
"dyo": "朱拉文",
"dz": "宗卡文",
- "zu": "祖鲁文"
+ "zu": "祖鲁文",
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/yue.json b/vendor/commerceguys/intl/resources/language/yue.json
index 5192cb480..65f117738 100644
--- a/vendor/commerceguys/intl/resources/language/yue.json
+++ b/vendor/commerceguys/intl/resources/language/yue.json
@@ -17,7 +17,9 @@
"gl": "加利西亞文",
"ca": "加泰羅尼亞文",
"se": "北方薩米文",
+ "frr": "北弗里西亞文",
"hi": "北印度文",
+ "hi-Latn": "北印度文 (拉丁文)",
"nd": "北地畢列文",
"twq": "北桑海文",
"lrc": "北盧爾文",
@@ -41,6 +43,7 @@
"wa": "瓦隆文",
"wae": "瓦瑟文",
"be": "白俄羅斯文",
+ "pis": "皮京文",
"lt": "立陶宛文",
"ig": "伊布文",
"smn": "伊納裡薩米文",
@@ -52,6 +55,7 @@
"iu": "因紐特文",
"doi": "多格來文",
"nmg": "夸西奧文",
+ "tok": "托基波納文",
"dyo": "朱拉文",
"fy": "西弗里西亞文",
"khq": "西桑海文",
@@ -86,6 +90,7 @@
"ksb": "尚巴拉文",
"lkt": "拉科塔文",
"lv": "拉脫維亞文",
+ "raj": "拉賈斯坦諸文",
"to": "東加文",
"ses": "東桑海文",
"ln": "林加拉文",
@@ -166,7 +171,9 @@
"mer": "梅魯文",
"sa": "梵文",
"nl": "荷蘭文",
+ "mdf": "莫克沙文",
"brx": "博多文",
+ "bho": "博傑普爾文",
"ks": "喀什米爾文",
"ka": "喬治亞文",
"ff": "富拉文",
@@ -175,6 +182,7 @@
"sat": "散塔利文",
"sk": "斯洛伐克文",
"sl": "斯洛維尼亞文",
+ "sms": "斯科特薩米文",
"ps": "普什圖文",
"fil": "菲律賓文",
"vi": "越南文",
@@ -184,11 +192,14 @@
"tzm": "塔馬齊格特文",
"sn": "塞內加爾文",
"sr": "塞爾維亞文",
+ "oc": "奧克西坦文",
+ "ann": "奧博洛文",
"os": "奧塞提文",
"om": "奧羅莫文",
"yi": "意第緒文",
"et": "愛沙尼亞文",
"ga": "愛爾蘭文",
+ "cv": "楚瓦什文",
"vun": "溫舊文",
"sv": "瑞典文",
"yue": "粵語",
@@ -227,5 +238,6 @@
"rm": "羅曼斯文",
"gd": "蘇格蘭蓋爾文",
"rof": "蘭博文",
- "tt": "韃靼文"
+ "tt": "韃靼文",
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/zh-Hant-HK.json b/vendor/commerceguys/intl/resources/language/zh-Hant-HK.json
index 96f2d10fc..2a9f0239c 100644
--- a/vendor/commerceguys/intl/resources/language/zh-Hant-HK.json
+++ b/vendor/commerceguys/intl/resources/language/zh-Hant-HK.json
@@ -22,6 +22,7 @@
"fr-CA": "加拿大法文",
"en-CA": "加拿大英文",
"ca": "加泰隆尼亞文",
+ "frr": "北弗里西亞文",
"nd": "北地畢列文",
"twq": "北桑海文",
"lrc": "北盧爾文",
@@ -45,13 +46,15 @@
"wa": "瓦隆文",
"wae": "瓦爾瑟文",
"be": "白俄羅斯文",
+ "pis": "皮金語",
"lt": "立陶宛文",
- "ig": "伊布文",
"smn": "伊納里薩米文",
+ "ig": "伊博文",
"is": "冰島文",
"hu": "匈牙利文",
"id": "印尼文",
"hi": "印地文",
+ "hi-Latn": "印地語(拉丁文)",
"ki": "吉庫尤文",
"ky": "吉爾吉斯文",
"iu": "因紐特文",
@@ -87,6 +90,7 @@
"es-419": "拉丁美洲西班牙文",
"lkt": "拉科塔文",
"lv": "拉脫維亞文",
+ "raj": "拉賈斯坦諸文",
"ses": "東桑海文",
"ln": "林加拉文",
"fr": "法文",
@@ -166,13 +170,16 @@
"mer": "梅魯文",
"sa": "梵文",
"nl": "荷蘭文",
+ "mdf": "莫克沙文",
"brx": "博多文",
+ "bho": "博傑普爾文",
"ks": "喀什米爾文",
"ff": "富拉文",
"su": "巽他文",
"ti": "提格利尼亞文",
"sl": "斯洛文尼亞文",
"sk": "斯洛伐克文",
+ "sms": "斯科特薩米文",
"ps": "普什圖文",
"to": "湯加文",
"fil": "菲律賓文",
@@ -182,19 +189,23 @@
"tg": "塔吉克文",
"sr": "塞爾維亞文",
"de-AT": "奧地利德文",
+ "oc": "奧克西坦文",
"or": "奧里雅文",
+ "ann": "奧博洛語",
"os": "奧塞提文",
"om": "奧羅莫文",
"it": "意大利文",
"yi": "意第緒文",
"et": "愛沙尼亞文",
"ga": "愛爾蘭文",
+ "cv": "楚瓦什文",
"vun": "溫舊文",
"fr-CH": "瑞士法文",
"gsw": "瑞士德文",
"de-CH": "瑞士德語",
"sv": "瑞典文",
"pt": "葡萄牙文",
+ "tok": "道本語",
"si": "僧伽羅文",
"ug": "維吾爾文",
"mn": "蒙古文",
@@ -227,5 +238,6 @@
"rm": "羅曼斯文",
"gd": "蘇格蘭蓋爾文",
"rof": "蘭博文",
- "tt": "韃靼文"
+ "tt": "韃靼文",
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/zh-Hant.json b/vendor/commerceguys/intl/resources/language/zh-Hant.json
index 87e755933..bd08dbfff 100644
--- a/vendor/commerceguys/intl/resources/language/zh-Hant.json
+++ b/vendor/commerceguys/intl/resources/language/zh-Hant.json
@@ -18,6 +18,7 @@
"jv": "爪哇文",
"gl": "加利西亞文",
"ca": "加泰蘭文",
+ "frr": "北弗里西亞文",
"nd": "北地畢列文",
"twq": "北桑海文",
"lrc": "北盧爾文",
@@ -41,6 +42,7 @@
"wa": "瓦隆文",
"wae": "瓦爾瑟文",
"be": "白俄羅斯文",
+ "pis": "皮金語",
"lt": "立陶宛文",
"ig": "伊布文",
"smn": "伊納里薩米文",
@@ -48,6 +50,7 @@
"hu": "匈牙利文",
"id": "印尼文",
"hi": "印地文",
+ "hi-Latn": "印地語(拉丁文)",
"ki": "吉庫尤文",
"ky": "吉爾吉斯文",
"iu": "因紐特文",
@@ -88,6 +91,7 @@
"ksb": "尚巴拉文",
"lkt": "拉科塔文",
"lv": "拉脫維亞文",
+ "raj": "拉賈斯坦諸文",
"to": "東加文",
"ses": "東桑海文",
"ln": "林加拉文",
@@ -169,7 +173,9 @@
"sa": "梵文",
"sn": "紹納文",
"nl": "荷蘭文",
+ "mdf": "莫克沙文",
"brx": "博多文",
+ "bho": "博傑普爾文",
"ks": "喀什米爾文",
"ka": "喬治亞文",
"ff": "富拉文",
@@ -177,6 +183,7 @@
"ti": "提格利尼亞文",
"sk": "斯洛伐克文",
"sl": "斯洛維尼亞文",
+ "sms": "斯科特薩米文",
"ps": "普什圖文",
"fil": "菲律賓文",
"vi": "越南文",
@@ -184,17 +191,21 @@
"sah": "雅庫特文",
"tg": "塔吉克文",
"sr": "塞爾維亞文",
+ "oc": "奧克西坦文",
+ "ann": "奧博洛語",
"os": "奧塞提文",
"om": "奧羅莫文",
"yi": "意第緒文",
"et": "愛沙尼亞文",
"ga": "愛爾蘭文",
+ "cv": "楚瓦什文",
"vun": "溫舊文",
"sv": "瑞典文",
"yue": "粵語",
"it": "義大利文",
"pt": "葡萄牙文",
"pt-PT": "葡萄牙文(葡萄牙)",
+ "tok": "道本語",
"si": "僧伽羅文",
"ug": "維吾爾文",
"mn": "蒙古文",
@@ -227,5 +238,6 @@
"rm": "羅曼斯文",
"gd": "蘇格蘭蓋爾文",
"rof": "蘭博文",
- "tt": "韃靼文"
+ "tt": "韃靼文",
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/zh.json b/vendor/commerceguys/intl/resources/language/zh.json
index 459a2d7ec..93ae577d0 100644
--- a/vendor/commerceguys/intl/resources/language/zh.json
+++ b/vendor/commerceguys/intl/resources/language/zh.json
@@ -10,7 +10,9 @@
"ewo": "埃翁多语",
"ga": "爱尔兰语",
"et": "爱沙尼亚语",
+ "ann": "奥博洛语",
"de-AT": "奥地利德语",
+ "oc": "奥克语",
"or": "奥里亚语",
"om": "奥罗莫语",
"os": "奥塞梯语",
@@ -23,6 +25,7 @@
"bg": "保加利亚语",
"nd": "北恩德贝勒语",
"se": "北方萨米语",
+ "frr": "北弗里西亚语",
"lrc": "北卢尔语",
"twq": "北桑海语",
"bez": "贝纳语",
@@ -33,11 +36,14 @@
"bs": "波斯尼亚语",
"fa": "波斯语",
"brx": "博多语",
+ "bho": "博杰普尔语",
"br": "布列塔尼语",
"bo": "藏语",
"ce": "车臣语",
+ "cv": "楚瓦什语",
"tt": "鞑靼语",
"da": "丹麦语",
+ "tok": "道本语",
"de": "德语",
"nds": "低地德语",
"nds-NL": "低萨克森语",
@@ -48,6 +54,7 @@
"ebu": "恩布语",
"nnh": "恩甘澎语",
"jgo": "恩艮巴语",
+ "yrl": "恩加图语",
"fo": "法罗语",
"fr": "法语",
"zh-Hant": "繁体中文",
@@ -80,6 +87,7 @@
"kln": "卡伦金语",
"kam": "卡姆巴语",
"kn": "卡纳达语",
+ "kgp": "坎刚语",
"kw": "康沃尔语",
"ky": "柯尔克孜语",
"ksh": "科隆语",
@@ -91,6 +99,7 @@
"ku": "库尔德语",
"nmg": "夸西奥语",
"es-419": "拉丁美洲西班牙语",
+ "raj": "拉贾斯坦语",
"lkt": "拉科塔语",
"lv": "拉脱维亚语",
"rof": "兰博语",
@@ -130,6 +139,7 @@
"bn": "孟加拉语",
"my": "缅甸语",
"ro-MD": "摩尔多瓦语",
+ "mdf": "莫克沙语",
"es-MX": "墨西哥西班牙语",
"naq": "纳马语",
"af": "南非荷兰语",
@@ -142,6 +152,7 @@
"pt-PT": "欧洲葡萄牙语",
"asa": "帕雷语",
"pa": "旁遮普语",
+ "pis": "皮京语",
"pt": "葡萄牙语",
"ps": "普什图语",
"cgg": "奇加语",
@@ -163,6 +174,7 @@
"hsb": "上索布语",
"sn": "绍纳语",
"nb": "书面挪威语",
+ "sms": "斯科特萨米语",
"sk": "斯洛伐克语",
"sl": "斯洛文尼亚语",
"sw": "斯瓦希里语",
@@ -213,6 +225,7 @@
"yi": "意第绪语",
"iu": "因纽特语",
"hi": "印地语",
+ "hi-Latn": "印地语(拉丁文)",
"id": "印度尼西亚语",
"en-GB": "英国英语",
"en": "英语",
@@ -226,6 +239,5 @@
"dyo": "朱拉语",
"dz": "宗卡语",
"zu": "祖鲁语",
- "kgp": "Kaingang",
- "yrl": "Nheengatu"
+ "bgc": "Haryanvi"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/scripts/fetch_data.sh b/vendor/commerceguys/intl/scripts/fetch_data.sh
index f5c3f2110..4f650d283 100755
--- a/vendor/commerceguys/intl/scripts/fetch_data.sh
+++ b/vendor/commerceguys/intl/scripts/fetch_data.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-URL="https://www.currency-iso.org/dam/downloads/lists/list_one.xml"
+URL="https://www.six-group.com/dam/download/financial-information/data-center/iso-currrency/lists/list-one.xml"
rm -fR assets
mkdir assets
diff --git a/vendor/commerceguys/intl/src/Currency/CurrencyRepository.php b/vendor/commerceguys/intl/src/Currency/CurrencyRepository.php
index e412587b8..7f660f381 100644
--- a/vendor/commerceguys/intl/src/Currency/CurrencyRepository.php
+++ b/vendor/commerceguys/intl/src/Currency/CurrencyRepository.php
@@ -44,18 +44,19 @@ class CurrencyRepository implements CurrencyRepositoryInterface
* @var array
*/
protected $availableLocales = [
- 'af', 'ar', 'as', 'ast', 'az', 'be', 'bg', 'bn', 'brx', 'bs', 'bs-Cyrl',
- 'ca', 'ce', 'cs', 'cy', 'da', 'de', 'de-CH', 'dz', 'el', 'en', 'en-001',
- 'en-AU', 'en-CA', 'en-GG', 'en-IM', 'en-JE', 'en-PH', 'es', 'es-419',
- 'es-CL', 'es-GT', 'es-MX', 'es-US', 'es-VE', 'et', 'eu', 'fa', 'fa-AF',
- 'fi', 'fil', 'fr', 'fr-CA', 'ga', 'gd', 'gl', 'gsw', 'gu', 'he', 'hi',
- 'hr', 'hu', 'hy', 'id', 'is', 'it', 'ja', 'ka', 'kk', 'km', 'ko', 'kok',
- 'ks', 'ky', 'lb', 'lo', 'lt', 'lv', 'mg', 'mk', 'ml', 'mn', 'mr', 'ms',
- 'my', 'ne', 'nl', 'nn', 'no', 'pa', 'pl', 'ps', 'pt', 'pt-PT', 'rn',
- 'ro', 'ru', 'sd', 'si', 'sk', 'sl', 'so', 'sq', 'sr', 'sr-Cyrl-BA',
- 'sr-Latn', 'sr-Latn-BA', 'sv', 'sw', 'sw-CD', 'sw-KE', 'ta', 'te', 'th',
- 'tk', 'tr', 'uk', 'ur', 'ur-IN', 'uz', 'uz-Cyrl', 'vi', 'yue',
- 'yue-Hans', 'zh', 'zh-Hans-HK', 'zh-Hant', 'zh-Hant-HK'
+ 'af', 'ar', 'as', 'ast', 'az', 'be', 'bg', 'bn', 'bn-IN', 'brx', 'bs',
+ 'bs-Cyrl', 'ca', 'ce', 'cs', 'cv', 'cy', 'da', 'de', 'de-CH', 'dz',
+ 'el', 'en', 'en-001', 'en-AU', 'en-CA', 'en-GG', 'en-IM', 'en-JE',
+ 'en-MV', 'es', 'es-419', 'es-CL', 'es-GT', 'es-MX', 'es-US', 'es-VE',
+ 'et', 'eu', 'fa', 'fa-AF', 'fi', 'fil', 'fr', 'fr-CA', 'ga', 'gd', 'gl',
+ 'gsw', 'gu', 'he', 'hi', 'hi-Latn', 'hr', 'hu', 'hy', 'id', 'is', 'it',
+ 'ja', 'ka', 'kk', 'km', 'ko', 'kok', 'ks', 'ky', 'lb', 'lo', 'lt', 'lv',
+ 'mg', 'mk', 'ml', 'mn', 'mr', 'ms', 'my', 'ne', 'nl', 'nn', 'no', 'pa',
+ 'pl', 'ps', 'pt', 'pt-PT', 'rn', 'ro', 'ru', 'sd', 'si', 'sk', 'sl',
+ 'so', 'sq', 'sr', 'sr-Cyrl-BA', 'sr-Latn', 'sr-Latn-BA', 'sv', 'sw',
+ 'sw-CD', 'sw-KE', 'ta', 'te', 'th', 'tk', 'tr', 'uk', 'ur', 'ur-IN',
+ 'uz', 'uz-Cyrl', 'vi', 'yue', 'yue-Hans', 'zh', 'zh-Hans-HK', 'zh-Hant',
+ 'zh-Hant-HK'
];
/**
@@ -221,7 +222,6 @@ class CurrencyRepository implements CurrencyRepositoryInterface
'GYD' => ['328', 2],
'HKD' => ['344', 2],
'HNL' => ['340', 2],
- 'HRK' => ['191', 2],
'HTG' => ['332', 2],
'HUF' => ['348', 2],
'IDR' => ['360', 2],
@@ -288,6 +288,7 @@ class CurrencyRepository implements CurrencyRepositoryInterface
'SEK' => ['752', 2],
'SGD' => ['702', 2],
'SHP' => ['654', 2],
+ 'SLE' => ['925', 2],
'SLL' => ['694', 0],
'SOS' => ['706', 0],
'SRD' => ['968', 2],
@@ -311,6 +312,7 @@ class CurrencyRepository implements CurrencyRepositoryInterface
'UYU' => ['858', 2],
'UYW' => ['927', 4],
'UZS' => ['860', 2],
+ 'VED' => ['926', 2],
'VES' => ['928', 2],
'VND' => ['704', 0],
'VUV' => ['548', 0],
diff --git a/vendor/commerceguys/intl/src/Language/LanguageRepository.php b/vendor/commerceguys/intl/src/Language/LanguageRepository.php
index f39f7454d..3a493da20 100644
--- a/vendor/commerceguys/intl/src/Language/LanguageRepository.php
+++ b/vendor/commerceguys/intl/src/Language/LanguageRepository.php
@@ -46,20 +46,20 @@ class LanguageRepository implements LanguageRepositoryInterface
protected $availableLocales = [
'af', 'ar', 'ar-EG', 'ar-LY', 'ar-SA', 'as', 'ast', 'az', 'az-Cyrl',
'be', 'bg', 'bn', 'bn-IN', 'brx', 'bs', 'bs-Cyrl', 'ca', 'ce', 'cs',
- 'cy', 'da', 'de', 'de-AT', 'de-CH', 'dz', 'el', 'en', 'en-001', 'en-AU',
- 'en-CA', 'en-IN', 'es', 'es-419', 'es-AR', 'es-BO', 'es-CL', 'es-CO',
- 'es-CR', 'es-DO', 'es-EC', 'es-GT', 'es-HN', 'es-MX', 'es-NI', 'es-PA',
- 'es-PE', 'es-PR', 'es-PY', 'es-SV', 'es-US', 'es-VE', 'et', 'eu', 'fa',
- 'fa-AF', 'fi', 'fil', 'fr', 'fr-BE', 'fr-CA', 'fr-CH', 'ga', 'gd', 'gl',
- 'gsw', 'gu', 'he', 'hi', 'hr', 'hu', 'hy', 'id', 'is', 'it', 'ja', 'ka',
- 'kk', 'km', 'ko', 'kok', 'ks', 'ku', 'ky', 'lb', 'lo', 'lt', 'lv', 'mg',
- 'mk', 'ml', 'mn', 'mr', 'ms', 'mt', 'my', 'ne', 'nl', 'nn', 'no', 'pa',
- 'pl', 'ps', 'ps-PK', 'pt', 'pt-PT', 'rn', 'ro', 'ro-MD', 'ru', 'rw',
- 'sd', 'si', 'sk', 'sl', 'so', 'sq', 'sr', 'sr-Cyrl-BA', 'sr-Cyrl-ME',
- 'sr-Cyrl-XK', 'sr-Latn', 'sr-Latn-BA', 'sr-Latn-ME', 'sr-Latn-XK', 'sv',
- 'sw', 'sw-CD', 'sw-KE', 'ta', 'te', 'tg', 'th', 'tk', 'to', 'tr', 'uk',
- 'ur', 'ur-IN', 'uz', 'uz-Cyrl', 'vi', 'yue', 'yue-Hans', 'zh',
- 'zh-Hant', 'zh-Hant-HK'
+ 'cy', 'da', 'de', 'de-AT', 'dz', 'el', 'en', 'en-001', 'en-AU', 'en-CA',
+ 'en-GB', 'en-IN', 'en-MV', 'es', 'es-419', 'es-AR', 'es-BO', 'es-CL',
+ 'es-CO', 'es-CR', 'es-DO', 'es-EC', 'es-GT', 'es-HN', 'es-MX', 'es-NI',
+ 'es-PA', 'es-PE', 'es-PR', 'es-PY', 'es-SV', 'es-US', 'es-VE', 'et',
+ 'eu', 'fa', 'fa-AF', 'fi', 'fil', 'fr', 'fr-BE', 'fr-CA', 'fr-CH',
+ 'ga', 'gd', 'gl', 'gsw', 'gu', 'he', 'hi', 'hi-Latn', 'hr', 'hu', 'hy',
+ 'id', 'is', 'it', 'ja', 'ka', 'kk', 'km', 'ko', 'kok', 'ks', 'ku', 'ky',
+ 'lb', 'lo', 'lt', 'lv', 'mai', 'mg', 'mk', 'ml', 'mn', 'mr', 'ms', 'mt',
+ 'my', 'ne', 'nl', 'nn', 'no', 'pa', 'pl', 'ps', 'ps-PK', 'pt', 'pt-PT',
+ 'rn', 'ro', 'ro-MD', 'ru', 'rw', 'sd', 'si', 'sk', 'sl', 'so', 'sq',
+ 'sr', 'sr-Cyrl-BA', 'sr-Cyrl-ME', 'sr-Cyrl-XK', 'sr-Latn', 'sr-Latn-BA',
+ 'sr-Latn-ME', 'sr-Latn-XK', 'sv', 'sw', 'sw-CD', 'sw-KE', 'ta', 'te',
+ 'tg', 'th', 'tk', 'to', 'tr', 'uk', 'ur', 'ur-IN', 'uz', 'uz-Cyrl',
+ 'vi', 'yue', 'yue-Hans', 'zh', 'zh-Hant', 'zh-Hant-HK'
];
/**
diff --git a/vendor/commerceguys/intl/src/Locale.php b/vendor/commerceguys/intl/src/Locale.php
index 509b28190..c5c3c5ef5 100644
--- a/vendor/commerceguys/intl/src/Locale.php
+++ b/vendor/commerceguys/intl/src/Locale.php
@@ -110,6 +110,7 @@ final class Locale
'en-MS' => 'en-001',
'en-MT' => 'en-001',
'en-MU' => 'en-001',
+ 'en-MV' => 'en-001',
'en-MW' => 'en-001',
'en-MY' => 'en-001',
'en-NA' => 'en-001',
@@ -155,6 +156,7 @@ final class Locale
'en-NL' => 'en-150',
'en-SE' => 'en-150',
'en-SI' => 'en-150',
+ 'hi-Latn' => 'en-IN',
'es-AR' => 'es-419',
'es-BO' => 'es-419',
'es-BR' => 'es-419',
@@ -177,6 +179,7 @@ final class Locale
'es-US' => 'es-419',
'es-UY' => 'es-419',
'es-VE' => 'es-419',
+ 'ht' => 'fr-HT',
'nb' => 'no',
'nn' => 'no',
'pt-AO' => 'pt-PT',
@@ -198,7 +201,6 @@ final class Locale
'byn-Latn' => 'und',
'en-Dsrt' => 'und',
'en-Shaw' => 'und',
- 'hi-Latn' => 'und',
'iu-Latn' => 'und',
'kk-Arab' => 'und',
'ks-Deva' => 'und',
diff --git a/vendor/commerceguys/intl/src/NumberFormat/NumberFormatRepository.php b/vendor/commerceguys/intl/src/NumberFormat/NumberFormatRepository.php
index 5258ba442..59647616f 100644
--- a/vendor/commerceguys/intl/src/NumberFormat/NumberFormatRepository.php
+++ b/vendor/commerceguys/intl/src/NumberFormat/NumberFormatRepository.php
@@ -73,10 +73,14 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
'decimal_separator' => ',',
'grouping_separator' => ' ',
],
+ 'ann' => [
+ 'currency_pattern' => '¤ #,##0.00',
+ 'accounting_currency_pattern' => '¤ #,##0.00',
+ ],
'ar' => [
'numbering_system' => 'arab',
- 'currency_pattern' => '#,##0.00 ¤',
- 'accounting_currency_pattern' => '#,##0.00 ¤',
+ 'currency_pattern' => '‏#,##0.00 ¤',
+ 'accounting_currency_pattern' => '‏#,##0.00 ¤',
'decimal_separator' => '٫',
'grouping_separator' => '٬',
'plus_sign' => '؜+',
@@ -84,13 +88,15 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
'percent_sign' => '٪؜',
],
'ar-AE' => [
- 'currency_pattern' => '¤ #,##0.00',
+ 'currency_pattern' => '‏#,##0.00 ¤;‏-#,##0.00 ¤',
+ 'accounting_currency_pattern' => '؜#,##0.00¤;(؜#,##0.00¤)',
'plus_sign' => '‎+',
'minus_sign' => '‎-',
'percent_sign' => '‎%‎',
],
'ar-DZ' => [
- 'currency_pattern' => '¤ #,##0.00',
+ 'currency_pattern' => '‏#,##0.00 ¤;‏-#,##0.00 ¤',
+ 'accounting_currency_pattern' => '؜#,##0.00¤;(؜#,##0.00¤)',
'decimal_separator' => ',',
'grouping_separator' => '.',
'plus_sign' => '‎+',
@@ -98,13 +104,15 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
'percent_sign' => '‎%‎',
],
'ar-EH' => [
- 'currency_pattern' => '¤ #,##0.00',
+ 'currency_pattern' => '‏#,##0.00 ¤;‏-#,##0.00 ¤',
+ 'accounting_currency_pattern' => '؜#,##0.00¤;(؜#,##0.00¤)',
'plus_sign' => '‎+',
'minus_sign' => '‎-',
'percent_sign' => '‎%‎',
],
'ar-LY' => [
- 'currency_pattern' => '¤ #,##0.00',
+ 'currency_pattern' => '‏#,##0.00 ¤;‏-#,##0.00 ¤',
+ 'accounting_currency_pattern' => '؜#,##0.00¤;(؜#,##0.00¤)',
'decimal_separator' => ',',
'grouping_separator' => '.',
'plus_sign' => '‎+',
@@ -112,7 +120,8 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
'percent_sign' => '‎%‎',
],
'ar-MA' => [
- 'currency_pattern' => '¤ #,##0.00',
+ 'currency_pattern' => '‏#,##0.00 ¤;‏-#,##0.00 ¤',
+ 'accounting_currency_pattern' => '؜#,##0.00¤;(؜#,##0.00¤)',
'decimal_separator' => ',',
'grouping_separator' => '.',
'plus_sign' => '‎+',
@@ -120,7 +129,8 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
'percent_sign' => '‎%‎',
],
'ar-TN' => [
- 'currency_pattern' => '¤ #,##0.00',
+ 'currency_pattern' => '‏#,##0.00 ¤;‏-#,##0.00 ¤',
+ 'accounting_currency_pattern' => '؜#,##0.00¤;(؜#,##0.00¤)',
'decimal_separator' => ',',
'grouping_separator' => '.',
'plus_sign' => '‎+',
@@ -132,7 +142,6 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
'decimal_pattern' => '#,##,##0.###',
'percent_pattern' => '#,##,##0%',
'currency_pattern' => '¤ #,##,##0.00',
- 'accounting_currency_pattern' => '¤ #,##,##0.00',
],
'ast' => [
'currency_pattern' => '#,##0.00 ¤',
@@ -160,17 +169,32 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
'grouping_separator' => ' ',
],
'bg' => [
- 'currency_pattern' => '#0.00 ¤',
- 'accounting_currency_pattern' => '#0.00 ¤;(#0.00 ¤)',
+ 'currency_pattern' => '#,##0.00 ¤',
+ 'accounting_currency_pattern' => '#,##0.00 ¤;(#,##0.00 ¤)',
'decimal_separator' => ',',
'grouping_separator' => ' ',
],
+ 'bgc' => [
+ 'numbering_system' => 'deva',
+ 'currency_pattern' => '¤ #,##0.00',
+ 'accounting_currency_pattern' => '¤ #,##0.00',
+ ],
+ 'bho' => [
+ 'numbering_system' => 'deva',
+ 'accounting_currency_pattern' => '¤#,##0.00',
+ ],
'bn' => [
'numbering_system' => 'beng',
'decimal_pattern' => '#,##,##0.###',
'currency_pattern' => '#,##,##0.00¤',
'accounting_currency_pattern' => '#,##,##0.00¤;(#,##,##0.00¤)',
],
+ 'bn-IN' => [
+ 'numbering_system' => 'beng',
+ 'decimal_pattern' => '#,##,##0.###',
+ 'currency_pattern' => '¤#,##,##0.00',
+ 'accounting_currency_pattern' => '¤#,##,##0.00;(¤#,##,##0.00)',
+ ],
'bo' => [
'currency_pattern' => '¤ #,##0.00',
'accounting_currency_pattern' => '¤ #,##0.00',
@@ -179,7 +203,6 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
'decimal_pattern' => '#,##,##0.###',
'percent_pattern' => '#,##,##0%',
'currency_pattern' => '¤ #,##,##0.00',
- 'accounting_currency_pattern' => '¤ #,##,##0.00',
],
'bs' => [
'percent_pattern' => '#,##0 %',
@@ -195,6 +218,7 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
'grouping_separator' => '.',
],
'ca' => [
+ 'percent_pattern' => '#,##0 %',
'currency_pattern' => '#,##0.00 ¤',
'accounting_currency_pattern' => '#,##0.00 ¤;(#,##0.00 ¤)',
'decimal_separator' => ',',
@@ -212,6 +236,13 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
'decimal_separator' => ',',
'grouping_separator' => ' ',
],
+ 'cv' => [
+ 'percent_pattern' => '#,##0 %',
+ 'currency_pattern' => '#,##0.00 ¤',
+ 'accounting_currency_pattern' => '#,##0.00 ¤',
+ 'decimal_separator' => ',',
+ 'grouping_separator' => ' ',
+ ],
'cy' => [],
'da' => [
'percent_pattern' => '#,##0 %',
@@ -315,6 +346,10 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
'percent_pattern' => '#,##,##0%',
'currency_pattern' => '¤#,##,##0.00',
],
+ 'en-MV' => [
+ 'currency_pattern' => '¤ #,##0.00',
+ 'accounting_currency_pattern' => '¤ #,##0.00',
+ ],
'en-NL' => [
'currency_pattern' => '¤ #,##0.00;¤ -#,##0.00',
'accounting_currency_pattern' => '¤ #,##0.00;(¤ #,##0.00)',
@@ -398,6 +433,9 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
'decimal_separator' => ',',
'grouping_separator' => '.',
],
+ 'es-MX' => [
+ 'accounting_currency_pattern' => '¤#,##0.00',
+ ],
'es-PE' => [
'percent_pattern' => '#,##0 %',
'currency_pattern' => '¤ #,##0.00',
@@ -503,6 +541,10 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
'decimal_separator' => ',',
'grouping_separator' => '.',
],
+ 'frr' => [
+ 'currency_pattern' => '¤ #,##0.00',
+ 'accounting_currency_pattern' => '¤ #,##0.00',
+ ],
'ga' => [],
'gd' => [],
'gl' => [
@@ -526,8 +568,8 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
'accounting_currency_pattern' => '¤#,##,##0.00;(¤#,##,##0.00)',
],
'he' => [
- 'currency_pattern' => '‏#,##0.00 ¤;‏-#,##0.00 ¤',
- 'accounting_currency_pattern' => '#,##0.00 ¤',
+ 'currency_pattern' => '‏#,##0.00 ‏¤;‏-#,##0.00 ‏¤',
+ 'accounting_currency_pattern' => '‏#,##0.00 ‏¤;‏-#,##0.00 ‏¤',
'plus_sign' => '‎+',
'minus_sign' => '‎-',
],
@@ -537,6 +579,12 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
'currency_pattern' => '¤#,##,##0.00',
'accounting_currency_pattern' => '¤#,##,##0.00',
],
+ 'hi-Latn' => [
+ 'decimal_pattern' => '#,##,##0.###',
+ 'percent_pattern' => '#,##,##0%',
+ 'currency_pattern' => '¤#,##,##0.00',
+ 'accounting_currency_pattern' => '¤#,##,##0.00',
+ ],
'hr' => [
'percent_pattern' => '#,##0 %',
'currency_pattern' => '#,##0.00 ¤',
@@ -604,16 +652,16 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
],
'ks' => [
'numbering_system' => 'arabext',
- 'decimal_pattern' => '#,##,##0.###',
- 'percent_pattern' => '#,##,##0%',
- 'currency_pattern' => '¤ #,##,##0.00',
- 'accounting_currency_pattern' => '¤ #,##,##0.00',
+ 'accounting_currency_pattern' => '¤#,##0.00',
'decimal_separator' => '٫',
'grouping_separator' => '٬',
'plus_sign' => '‎+‎',
'minus_sign' => '‎-‎',
'percent_sign' => '٪',
],
+ 'ks-Deva' => [
+ 'accounting_currency_pattern' => '¤#,##0.00',
+ ],
'ku' => [
'percent_pattern' => '%#,##0',
'currency_pattern' => '#,##0.00 ¤',
@@ -658,6 +706,10 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
'currency_pattern' => '¤ #,##0.00',
'accounting_currency_pattern' => '¤ #,##0.00',
],
+ 'mdf' => [
+ 'currency_pattern' => '¤ #,##0.00',
+ 'accounting_currency_pattern' => '¤ #,##0.00',
+ ],
'mg' => [
'currency_pattern' => '¤ #,##0.00',
'accounting_currency_pattern' => '¤#,##0.00',
@@ -732,10 +784,14 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
'grouping_separator' => ' ',
'minus_sign' => '−',
],
+ 'oc' => [
+ 'currency_pattern' => '¤ #,##0.00',
+ 'accounting_currency_pattern' => '¤ #,##0.00',
+ ],
'pa' => [
'decimal_pattern' => '#,##,##0.###',
'percent_pattern' => '#,##,##0%',
- 'currency_pattern' => '¤ #,##,##0.00',
+ 'currency_pattern' => '¤#,##,##0.00',
'accounting_currency_pattern' => '¤ #,##0.00',
],
'pa-Arab' => [
@@ -748,6 +804,10 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
'minus_sign' => '‎-‎',
'percent_sign' => '٪',
],
+ 'pis' => [
+ 'currency_pattern' => '¤ #,##0.00',
+ 'accounting_currency_pattern' => '¤ #,##0.00',
+ ],
'pl' => [
'currency_pattern' => '#,##0.00 ¤',
'accounting_currency_pattern' => '#,##0.00 ¤;(#,##0.00 ¤)',
@@ -756,7 +816,7 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
],
'ps' => [
'numbering_system' => 'arabext',
- 'currency_pattern' => '#,##0.00 ¤',
+ 'currency_pattern' => '¤ #,##0.00',
'decimal_separator' => '٫',
'grouping_separator' => '٬',
'plus_sign' => '‎+‎',
@@ -775,6 +835,11 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
'decimal_separator' => ',',
'grouping_separator' => ' ',
],
+ 'raj' => [
+ 'numbering_system' => 'deva',
+ 'currency_pattern' => '¤ #,##0.00',
+ 'accounting_currency_pattern' => '¤ #,##0.00',
+ ],
'rn' => [
'percent_pattern' => '#,##0 %',
'currency_pattern' => '#,##0.00¤',
@@ -836,6 +901,10 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
'grouping_separator' => '.',
'minus_sign' => '−',
],
+ 'sms' => [
+ 'currency_pattern' => '¤ #,##0.00',
+ 'accounting_currency_pattern' => '¤ #,##0.00',
+ ],
'so' => [],
'sq' => [
'currency_pattern' => '#,##0.00 ¤',
@@ -876,7 +945,7 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
'ta' => [
'decimal_pattern' => '#,##,##0.###',
'percent_pattern' => '#,##,##0%',
- 'currency_pattern' => '¤ #,##,##0.00',
+ 'currency_pattern' => '¤#,##,##0.00',
],
'ta-MY' => [
'currency_pattern' => '¤ #,##0.00',
@@ -906,6 +975,10 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
'currency_pattern' => '¤ #,##0.00',
'accounting_currency_pattern' => '¤ #,##0.00',
],
+ 'tok' => [
+ 'currency_pattern' => '¤ #,##0.00',
+ 'accounting_currency_pattern' => '¤ #,##0.00',
+ ],
'tr' => [
'percent_pattern' => '%#,##0',
'decimal_separator' => ',',
@@ -918,7 +991,6 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
'grouping_separator' => ' ',
],
'ur' => [
- 'currency_pattern' => '¤ #,##0.00',
'plus_sign' => '‎+',
'minus_sign' => '‎-',
],
@@ -932,7 +1004,6 @@ class NumberFormatRepository implements NumberFormatRepositoryInterface
],
'uz' => [
'currency_pattern' => '#,##0.00 ¤',
- 'accounting_currency_pattern' => '#,##0.00 ¤',
'decimal_separator' => ',',
'grouping_separator' => ' ',
],
diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php
index 052a364b1..b7fa80a14 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -533,6 +533,7 @@ return array(
'Ramsey\\Uuid\\Rfc4122\\UuidV5' => $vendorDir . '/ramsey/uuid/src/Rfc4122/UuidV5.php',
'Ramsey\\Uuid\\Rfc4122\\UuidV6' => $vendorDir . '/ramsey/uuid/src/Rfc4122/UuidV6.php',
'Ramsey\\Uuid\\Rfc4122\\UuidV7' => $vendorDir . '/ramsey/uuid/src/Rfc4122/UuidV7.php',
+ 'Ramsey\\Uuid\\Rfc4122\\UuidV8' => $vendorDir . '/ramsey/uuid/src/Rfc4122/UuidV8.php',
'Ramsey\\Uuid\\Rfc4122\\Validator' => $vendorDir . '/ramsey/uuid/src/Rfc4122/Validator.php',
'Ramsey\\Uuid\\Rfc4122\\VariantTrait' => $vendorDir . '/ramsey/uuid/src/Rfc4122/VariantTrait.php',
'Ramsey\\Uuid\\Rfc4122\\VersionTrait' => $vendorDir . '/ramsey/uuid/src/Rfc4122/VersionTrait.php',
@@ -1334,6 +1335,7 @@ return array(
'Zotlabs\\Module\\Layouts' => $baseDir . '/Zotlabs/Module/Layouts.php',
'Zotlabs\\Module\\Like' => $baseDir . '/Zotlabs/Module/Like.php',
'Zotlabs\\Module\\Linkinfo' => $baseDir . '/Zotlabs/Module/Linkinfo.php',
+ 'Zotlabs\\Module\\Lists' => $baseDir . '/Zotlabs/Module/Lists.php',
'Zotlabs\\Module\\Lockview' => $baseDir . '/Zotlabs/Module/Lockview.php',
'Zotlabs\\Module\\Locs' => $baseDir . '/Zotlabs/Module/Locs.php',
'Zotlabs\\Module\\Login' => $baseDir . '/Zotlabs/Module/Login.php',
diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php
index 5b8d7310a..a8f8229fe 100644
--- a/vendor/composer/autoload_static.php
+++ b/vendor/composer/autoload_static.php
@@ -770,6 +770,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Ramsey\\Uuid\\Rfc4122\\UuidV5' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/UuidV5.php',
'Ramsey\\Uuid\\Rfc4122\\UuidV6' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/UuidV6.php',
'Ramsey\\Uuid\\Rfc4122\\UuidV7' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/UuidV7.php',
+ 'Ramsey\\Uuid\\Rfc4122\\UuidV8' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/UuidV8.php',
'Ramsey\\Uuid\\Rfc4122\\Validator' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/Validator.php',
'Ramsey\\Uuid\\Rfc4122\\VariantTrait' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/VariantTrait.php',
'Ramsey\\Uuid\\Rfc4122\\VersionTrait' => __DIR__ . '/..' . '/ramsey/uuid/src/Rfc4122/VersionTrait.php',
@@ -1571,6 +1572,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Module\\Layouts' => __DIR__ . '/../..' . '/Zotlabs/Module/Layouts.php',
'Zotlabs\\Module\\Like' => __DIR__ . '/../..' . '/Zotlabs/Module/Like.php',
'Zotlabs\\Module\\Linkinfo' => __DIR__ . '/../..' . '/Zotlabs/Module/Linkinfo.php',
+ 'Zotlabs\\Module\\Lists' => __DIR__ . '/../..' . '/Zotlabs/Module/Lists.php',
'Zotlabs\\Module\\Lockview' => __DIR__ . '/../..' . '/Zotlabs/Module/Lockview.php',
'Zotlabs\\Module\\Locs' => __DIR__ . '/../..' . '/Zotlabs/Module/Locs.php',
'Zotlabs\\Module\\Login' => __DIR__ . '/../..' . '/Zotlabs/Module/Login.php',
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index 138fafb45..2753f300a 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -70,29 +70,28 @@
},
{
"name": "brick/math",
- "version": "0.9.3",
- "version_normalized": "0.9.3.0",
+ "version": "0.11.0",
+ "version_normalized": "0.11.0.0",
"source": {
"type": "git",
"url": "https://github.com/brick/math.git",
- "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae"
+ "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/brick/math/zipball/ca57d18f028f84f777b2168cd1911b0dee2343ae",
- "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae",
+ "url": "https://api.github.com/repos/brick/math/zipball/0ad82ce168c82ba30d1c01ec86116ab52f589478",
+ "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478",
"shasum": ""
},
"require": {
- "ext-json": "*",
- "php": "^7.1 || ^8.0"
+ "php": "^8.0"
},
"require-dev": {
"php-coveralls/php-coveralls": "^2.2",
- "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0",
- "vimeo/psalm": "4.9.2"
+ "phpunit/phpunit": "^9.0",
+ "vimeo/psalm": "5.0.0"
},
- "time": "2021-08-15T20:50:18+00:00",
+ "time": "2023-01-15T23:15:59+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -117,33 +116,29 @@
],
"support": {
"issues": "https://github.com/brick/math/issues",
- "source": "https://github.com/brick/math/tree/0.9.3"
+ "source": "https://github.com/brick/math/tree/0.11.0"
},
"funding": [
{
"url": "https://github.com/BenMorel",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/brick/math",
- "type": "tidelift"
}
],
"install-path": "../brick/math"
},
{
"name": "bshaffer/oauth2-server-php",
- "version": "v1.12.1",
- "version_normalized": "1.12.1.0",
+ "version": "v1.13.0",
+ "version_normalized": "1.13.0.0",
"source": {
"type": "git",
"url": "https://github.com/bshaffer/oauth2-server-php.git",
- "reference": "2bfaf9d7bbebe2ba1c1deb48e756ba0b3af4e985"
+ "reference": "cd11527b29ceb340f24015b6df868c22908bcf12"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/bshaffer/oauth2-server-php/zipball/2bfaf9d7bbebe2ba1c1deb48e756ba0b3af4e985",
- "reference": "2bfaf9d7bbebe2ba1c1deb48e756ba0b3af4e985",
+ "url": "https://api.github.com/repos/bshaffer/oauth2-server-php/zipball/cd11527b29ceb340f24015b6df868c22908bcf12",
+ "reference": "cd11527b29ceb340f24015b6df868c22908bcf12",
"shasum": ""
},
"require": {
@@ -165,7 +160,7 @@
"predis/predis": "Required to use Redis storage",
"thobbs/phpcassa": "Required to use Cassandra storage"
},
- "time": "2022-05-31T16:12:58+00:00",
+ "time": "2022-10-12T17:33:08+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -193,7 +188,7 @@
],
"support": {
"issues": "https://github.com/bshaffer/oauth2-server-php/issues",
- "source": "https://github.com/bshaffer/oauth2-server-php/tree/v1.12.1"
+ "source": "https://github.com/bshaffer/oauth2-server-php/tree/v1.13.0"
},
"install-path": "../bshaffer/oauth2-server-php"
},
@@ -347,27 +342,27 @@
},
{
"name": "commerceguys/intl",
- "version": "v1.1.1",
- "version_normalized": "1.1.1.0",
+ "version": "v1.1.2",
+ "version_normalized": "1.1.2.0",
"source": {
"type": "git",
"url": "https://github.com/commerceguys/intl.git",
- "reference": "cab3b55dbf8c1753fe54457404082c777a8c154f"
+ "reference": "f6200ca01f8c095f2a2602782b353770f738db87"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/commerceguys/intl/zipball/cab3b55dbf8c1753fe54457404082c777a8c154f",
- "reference": "cab3b55dbf8c1753fe54457404082c777a8c154f",
+ "url": "https://api.github.com/repos/commerceguys/intl/zipball/f6200ca01f8c095f2a2602782b353770f738db87",
+ "reference": "f6200ca01f8c095f2a2602782b353770f738db87",
"shasum": ""
},
"require": {
- "php": ">=7.1.3"
+ "php": ">=7.3"
},
"require-dev": {
"mikey179/vfsstream": "1.*",
- "phpunit/phpunit": "^7.5"
+ "phpunit/phpunit": "^9.5"
},
- "time": "2021-10-30T18:07:14+00:00",
+ "time": "2023-02-20T09:57:58+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -387,12 +382,15 @@
"authors": [
{
"name": "Bojan Zivanovic"
+ },
+ {
+ "name": "Jonathan Sacksick"
}
],
"description": "Internationalization library powered by CLDR data.",
"support": {
"issues": "https://github.com/commerceguys/intl/issues",
- "source": "https://github.com/commerceguys/intl/tree/v1.1.1"
+ "source": "https://github.com/commerceguys/intl/tree/v1.1.2"
},
"install-path": "../commerceguys/intl"
},
@@ -838,17 +836,17 @@
},
{
"name": "pear/text_languagedetect",
- "version": "v1.0.1",
- "version_normalized": "1.0.1.0",
+ "version": "v1.0.2",
+ "version_normalized": "1.0.2.0",
"source": {
"type": "git",
"url": "https://github.com/pear/Text_LanguageDetect.git",
- "reference": "9e253f26cef9a9066f53f200cc3e0684018cb5b5"
+ "reference": "655b269959782416426cf0aa7bd47e19fed63210"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/pear/Text_LanguageDetect/zipball/9e253f26cef9a9066f53f200cc3e0684018cb5b5",
- "reference": "9e253f26cef9a9066f53f200cc3e0684018cb5b5",
+ "url": "https://api.github.com/repos/pear/Text_LanguageDetect/zipball/655b269959782416426cf0aa7bd47e19fed63210",
+ "reference": "655b269959782416426cf0aa7bd47e19fed63210",
"shasum": ""
},
"require-dev": {
@@ -857,7 +855,7 @@
"suggest": {
"ext-mbstring": "May require the mbstring PHP extension"
},
- "time": "2020-05-17T12:19:40+00:00",
+ "time": "2023-02-27T20:54:21+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -1136,25 +1134,24 @@
},
{
"name": "ramsey/uuid",
- "version": "4.5.1",
- "version_normalized": "4.5.1.0",
+ "version": "4.7.4",
+ "version_normalized": "4.7.4.0",
"source": {
"type": "git",
"url": "https://github.com/ramsey/uuid.git",
- "reference": "a161a26d917604dc6d3aa25100fddf2556e9f35d"
+ "reference": "60a4c63ab724854332900504274f6150ff26d286"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/uuid/zipball/a161a26d917604dc6d3aa25100fddf2556e9f35d",
- "reference": "a161a26d917604dc6d3aa25100fddf2556e9f35d",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/60a4c63ab724854332900504274f6150ff26d286",
+ "reference": "60a4c63ab724854332900504274f6150ff26d286",
"shasum": ""
},
"require": {
- "brick/math": "^0.8.8 || ^0.9 || ^0.10",
- "ext-ctype": "*",
+ "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11",
"ext-json": "*",
"php": "^8.0",
- "ramsey/collection": "^1.0"
+ "ramsey/collection": "^1.2 || ^2.0"
},
"replace": {
"rhumsaa/uuid": "self.version"
@@ -1183,13 +1180,12 @@
},
"suggest": {
"ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
- "ext-ctype": "Enables faster processing of character classification using ctype functions.",
"ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.",
"ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.",
"paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
"ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
},
- "time": "2022-09-16T03:22:46+00:00",
+ "time": "2023-04-15T23:01:58+00:00",
"type": "library",
"extra": {
"captainhook": {
@@ -1217,7 +1213,7 @@
],
"support": {
"issues": "https://github.com/ramsey/uuid/issues",
- "source": "https://github.com/ramsey/uuid/tree/4.5.1"
+ "source": "https://github.com/ramsey/uuid/tree/4.7.4"
},
"funding": [
{
@@ -1517,23 +1513,23 @@
},
{
"name": "sabre/vobject",
- "version": "4.5.1",
- "version_normalized": "4.5.1.0",
+ "version": "4.5.3",
+ "version_normalized": "4.5.3.0",
"source": {
"type": "git",
"url": "https://github.com/sabre-io/vobject.git",
- "reference": "1f836740c88bac483f3b572a332eb8fd1cd04981"
+ "reference": "fe6d9183154ed6f2f913f2b568d3d51d8ae9b308"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sabre-io/vobject/zipball/1f836740c88bac483f3b572a332eb8fd1cd04981",
- "reference": "1f836740c88bac483f3b572a332eb8fd1cd04981",
+ "url": "https://api.github.com/repos/sabre-io/vobject/zipball/fe6d9183154ed6f2f913f2b568d3d51d8ae9b308",
+ "reference": "fe6d9183154ed6f2f913f2b568d3d51d8ae9b308",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
"php": "^7.1 || ^8.0",
- "sabre/xml": "^2.1"
+ "sabre/xml": "^2.1 || ^3.0 || ^4.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "~2.17.1",
@@ -1544,7 +1540,7 @@
"suggest": {
"hoa/bench": "If you would like to run the benchmark scripts"
},
- "time": "2022-10-09T10:06:31+00:00",
+ "time": "2023-01-22T12:21:50+00:00",
"bin": [
"bin/vobject",
"bin/generate_vcards"
@@ -1785,17 +1781,17 @@
},
{
"name": "smarty/smarty",
- "version": "v4.3.0",
- "version_normalized": "4.3.0.0",
+ "version": "v4.3.1",
+ "version_normalized": "4.3.1.0",
"source": {
"type": "git",
"url": "https://github.com/smarty-php/smarty.git",
- "reference": "c02e9e135ea719b91f457a0072748ded0e852e7d"
+ "reference": "e28cb0915b4e3749bf57d4ebae2984e25395cfe5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/smarty-php/smarty/zipball/c02e9e135ea719b91f457a0072748ded0e852e7d",
- "reference": "c02e9e135ea719b91f457a0072748ded0e852e7d",
+ "url": "https://api.github.com/repos/smarty-php/smarty/zipball/e28cb0915b4e3749bf57d4ebae2984e25395cfe5",
+ "reference": "e28cb0915b4e3749bf57d4ebae2984e25395cfe5",
"shasum": ""
},
"require": {
@@ -1805,7 +1801,7 @@
"phpunit/phpunit": "^8.5 || ^7.5",
"smarty/smarty-lexer": "^3.1"
},
- "time": "2022-11-22T21:47:32+00:00",
+ "time": "2023-03-28T19:47:03+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -1848,23 +1844,23 @@
"support": {
"forum": "https://github.com/smarty-php/smarty/discussions",
"issues": "https://github.com/smarty-php/smarty/issues",
- "source": "https://github.com/smarty-php/smarty/tree/v4.3.0"
+ "source": "https://github.com/smarty-php/smarty/tree/v4.3.1"
},
"install-path": "../smarty/smarty"
},
{
"name": "spomky-labs/otphp",
- "version": "11.1.0",
- "version_normalized": "11.1.0.0",
+ "version": "11.2.0",
+ "version_normalized": "11.2.0.0",
"source": {
"type": "git",
"url": "https://github.com/Spomky-Labs/otphp.git",
- "reference": "4849ac1aa560bfc56c0d1534b0d72532da4665ab"
+ "reference": "9a1569038bb1c8e98040b14b8bcbba54f25e7795"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Spomky-Labs/otphp/zipball/4849ac1aa560bfc56c0d1534b0d72532da4665ab",
- "reference": "4849ac1aa560bfc56c0d1534b0d72532da4665ab",
+ "url": "https://api.github.com/repos/Spomky-Labs/otphp/zipball/9a1569038bb1c8e98040b14b8bcbba54f25e7795",
+ "reference": "9a1569038bb1c8e98040b14b8bcbba54f25e7795",
"shasum": ""
},
"require": {
@@ -1882,11 +1878,11 @@
"phpstan/phpstan-strict-rules": "^1.0",
"phpunit/phpunit": "^9.5.26",
"qossmic/deptrac-shim": "^1.0",
- "rector/rector": "^0.14",
+ "rector/rector": "^0.15",
"symfony/phpunit-bridge": "^6.1",
"symplify/easy-coding-standard": "^11.0"
},
- "time": "2022-11-11T12:57:17+00:00",
+ "time": "2023-03-16T19:16:25+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -1921,7 +1917,7 @@
],
"support": {
"issues": "https://github.com/Spomky-Labs/otphp/issues",
- "source": "https://github.com/Spomky-Labs/otphp/tree/11.1.0"
+ "source": "https://github.com/Spomky-Labs/otphp/tree/11.2.0"
},
"funding": [
{
@@ -1937,27 +1933,27 @@
},
{
"name": "symfony/polyfill-php81",
- "version": "v1.26.0",
- "version_normalized": "1.26.0.0",
+ "version": "v1.27.0",
+ "version_normalized": "1.27.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php81.git",
- "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1"
+ "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/13f6d1271c663dc5ae9fb843a8f16521db7687a1",
- "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1",
+ "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a",
+ "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
- "time": "2022-05-24T11:49:31+00:00",
+ "time": "2022-11-03T14:55:06+00:00",
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -1999,7 +1995,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php81/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0"
},
"funding": [
{
diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php
index b947de36e..88bd23d0d 100644
--- a/vendor/composer/installed.php
+++ b/vendor/composer/installed.php
@@ -3,7 +3,7 @@
'name' => 'zotlabs/hubzilla',
'pretty_version' => 'dev-master',
'version' => 'dev-master',
- 'reference' => '1ed8b9dd149b9d2cb2fe30dc56ddc24cc523255c',
+ 'reference' => '87689df062f09adf104ff996b7bc942ba508a2b4',
'type' => 'application',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
@@ -20,18 +20,18 @@
'dev_requirement' => false,
),
'brick/math' => array(
- 'pretty_version' => '0.9.3',
- 'version' => '0.9.3.0',
- 'reference' => 'ca57d18f028f84f777b2168cd1911b0dee2343ae',
+ 'pretty_version' => '0.11.0',
+ 'version' => '0.11.0.0',
+ 'reference' => '0ad82ce168c82ba30d1c01ec86116ab52f589478',
'type' => 'library',
'install_path' => __DIR__ . '/../brick/math',
'aliases' => array(),
'dev_requirement' => false,
),
'bshaffer/oauth2-server-php' => array(
- 'pretty_version' => 'v1.12.1',
- 'version' => '1.12.1.0',
- 'reference' => '2bfaf9d7bbebe2ba1c1deb48e756ba0b3af4e985',
+ 'pretty_version' => 'v1.13.0',
+ 'version' => '1.13.0.0',
+ 'reference' => 'cd11527b29ceb340f24015b6df868c22908bcf12',
'type' => 'library',
'install_path' => __DIR__ . '/../bshaffer/oauth2-server-php',
'aliases' => array(),
@@ -56,9 +56,9 @@
'dev_requirement' => false,
),
'commerceguys/intl' => array(
- 'pretty_version' => 'v1.1.1',
- 'version' => '1.1.1.0',
- 'reference' => 'cab3b55dbf8c1753fe54457404082c777a8c154f',
+ 'pretty_version' => 'v1.1.2',
+ 'version' => '1.1.2.0',
+ 'reference' => 'f6200ca01f8c095f2a2602782b353770f738db87',
'type' => 'library',
'install_path' => __DIR__ . '/../commerceguys/intl',
'aliases' => array(),
@@ -128,9 +128,9 @@
'dev_requirement' => false,
),
'pear/text_languagedetect' => array(
- 'pretty_version' => 'v1.0.1',
- 'version' => '1.0.1.0',
- 'reference' => '9e253f26cef9a9066f53f200cc3e0684018cb5b5',
+ 'pretty_version' => 'v1.0.2',
+ 'version' => '1.0.2.0',
+ 'reference' => '655b269959782416426cf0aa7bd47e19fed63210',
'type' => 'library',
'install_path' => __DIR__ . '/../pear/text_languagedetect',
'aliases' => array(),
@@ -164,9 +164,9 @@
'dev_requirement' => false,
),
'ramsey/uuid' => array(
- 'pretty_version' => '4.5.1',
- 'version' => '4.5.1.0',
- 'reference' => 'a161a26d917604dc6d3aa25100fddf2556e9f35d',
+ 'pretty_version' => '4.7.4',
+ 'version' => '4.7.4.0',
+ 'reference' => '60a4c63ab724854332900504274f6150ff26d286',
'type' => 'library',
'install_path' => __DIR__ . '/../ramsey/uuid',
'aliases' => array(),
@@ -175,7 +175,7 @@
'rhumsaa/uuid' => array(
'dev_requirement' => false,
'replaced' => array(
- 0 => '4.5.1',
+ 0 => '4.7.4',
),
),
'sabre/dav' => array(
@@ -215,9 +215,9 @@
'dev_requirement' => false,
),
'sabre/vobject' => array(
- 'pretty_version' => '4.5.1',
- 'version' => '4.5.1.0',
- 'reference' => '1f836740c88bac483f3b572a332eb8fd1cd04981',
+ 'pretty_version' => '4.5.3',
+ 'version' => '4.5.3.0',
+ 'reference' => 'fe6d9183154ed6f2f913f2b568d3d51d8ae9b308',
'type' => 'library',
'install_path' => __DIR__ . '/../sabre/vobject',
'aliases' => array(),
@@ -242,27 +242,27 @@
'dev_requirement' => false,
),
'smarty/smarty' => array(
- 'pretty_version' => 'v4.3.0',
- 'version' => '4.3.0.0',
- 'reference' => 'c02e9e135ea719b91f457a0072748ded0e852e7d',
+ 'pretty_version' => 'v4.3.1',
+ 'version' => '4.3.1.0',
+ 'reference' => 'e28cb0915b4e3749bf57d4ebae2984e25395cfe5',
'type' => 'library',
'install_path' => __DIR__ . '/../smarty/smarty',
'aliases' => array(),
'dev_requirement' => false,
),
'spomky-labs/otphp' => array(
- 'pretty_version' => '11.1.0',
- 'version' => '11.1.0.0',
- 'reference' => '4849ac1aa560bfc56c0d1534b0d72532da4665ab',
+ 'pretty_version' => '11.2.0',
+ 'version' => '11.2.0.0',
+ 'reference' => '9a1569038bb1c8e98040b14b8bcbba54f25e7795',
'type' => 'library',
'install_path' => __DIR__ . '/../spomky-labs/otphp',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/polyfill-php81' => array(
- 'pretty_version' => 'v1.26.0',
- 'version' => '1.26.0.0',
- 'reference' => '13f6d1271c663dc5ae9fb843a8f16521db7687a1',
+ 'pretty_version' => 'v1.27.0',
+ 'version' => '1.27.0.0',
+ 'reference' => '707403074c8ea6e2edaf8794b0157a0bfa52157a',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-php81',
'aliases' => array(),
@@ -304,7 +304,7 @@
'zotlabs/hubzilla' => array(
'pretty_version' => 'dev-master',
'version' => 'dev-master',
- 'reference' => '1ed8b9dd149b9d2cb2fe30dc56ddc24cc523255c',
+ 'reference' => '87689df062f09adf104ff996b7bc942ba508a2b4',
'type' => 'application',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
diff --git a/vendor/pear/text_languagedetect/Text/LanguageDetect.php b/vendor/pear/text_languagedetect/Text/LanguageDetect.php
index c4e0216be..d5e321d1e 100644
--- a/vendor/pear/text_languagedetect/Text/LanguageDetect.php
+++ b/vendor/pear/text_languagedetect/Text/LanguageDetect.php
@@ -12,9 +12,9 @@
* @link http://pear.php.net/package/Text_LanguageDetect/
*/
-//require_once 'Text/LanguageDetect/Exception.php';
-//require_once 'Text/LanguageDetect/Parser.php';
-//require_once 'Text/LanguageDetect/ISO639.php';
+require_once 'LanguageDetect/Exception.php';
+require_once 'LanguageDetect/Parser.php';
+require_once 'LanguageDetect/ISO639.php';
/**
* Detects the language of a given piece of text.
diff --git a/vendor/pear/text_languagedetect/Text/LanguageDetect/Parser.php b/vendor/pear/text_languagedetect/Text/LanguageDetect/Parser.php
index 3ec177640..50674e22f 100644
--- a/vendor/pear/text_languagedetect/Text/LanguageDetect/Parser.php
+++ b/vendor/pear/text_languagedetect/Text/LanguageDetect/Parser.php
@@ -44,7 +44,7 @@ class Text_LanguageDetect_Parser extends Text_LanguageDetect
*
* @var string
*/
- protected $_trigrams = array();
+ protected $_trigram = array();
/**
* Stores the trigram ranks of the sample
diff --git a/vendor/pear/text_languagedetect/package.xml b/vendor/pear/text_languagedetect/package.xml
deleted file mode 100644
index 4fac0051d..000000000
--- a/vendor/pear/text_languagedetect/package.xml
+++ /dev/null
@@ -1,246 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package packagerversion="1.7.1" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
-http://pear.php.net/dtd/tasks-1.0.xsd
-http://pear.php.net/dtd/package-2.0
-http://pear.php.net/dtd/package-2.0.xsd">
- <name>Text_LanguageDetect</name>
- <channel>pear.php.net</channel>
- <summary>Language detection class</summary>
- <description>Text_LanguageDetect can identify 52 human languages from text samples and return confidence scores for each.
- </description>
-
- <lead>
- <name>Nicholas Pisarro</name>
- <user>taak</user>
- <email>taak@php.net</email>
- <active>no</active>
- </lead>
-
- <date>2017-03-02</date>
- <time>18:00:42</time>
- <version>
- <release>1.0.0</release>
- <api>1.0.0</api>
- </version>
-
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
-
- <license uri="http://www.opensource.org/licenses/bsd-license.php">BSD</license>
-
- <notes>
- - Add PHP5 constructors
- - Fix bug #21189: Language detection on PHP7 broken
- - Fix coding style problems
- - BC break: Add real visibility to properties and methods
- </notes>
-
- <contents>
- <dir name="/">
- <file name="README.rst" role="doc" />
- <dir name="data">
- <file name="lang.dat" role="data" />
- <file name="unicode_blocks.dat" role="data" />
- </dir> <!-- /data -->
- <dir name="docs">
- <file name="confidence.php" role="doc" />
- <file name="example_clui.php" role="doc" />
- <file name="example_web.php" role="doc" />
- <file name="iso.php" role="doc" />
- <file name="languages.php" role="doc" />
- <file name="simple.php" role="doc" />
- </dir> <!-- /docs -->
- <dir name="tests">
- <file name="PrivProxy.php" role="test" />
- <file name="Text_LanguageDetectTest.php" role="test" />
- <file name="Text_LanguageDetect_ISO639Test.php" role="test" />
- </dir> <!-- /tests -->
- <dir name="Text">
- <dir name="LanguageDetect">
- <file name="Exception.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="ISO639.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- <file name="Parser.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- </file>
- </dir> <!-- /Text/LanguageDetect -->
- <file name="LanguageDetect.php" role="php">
- <tasks:replace from="@package_version@" to="version" type="package-info" />
- <tasks:replace from="@data_dir@" to="data_dir" type="pear-config" />
- </file>
- </dir> <!-- /Text -->
- </dir> <!-- / -->
- </contents>
-
- <dependencies>
- <required>
- <php>
- <min>5.4</min>
- </php>
- <pearinstaller>
- <min>1.9.0</min>
- </pearinstaller>
- <extension>
- <name>pcre</name>
- </extension>
- </required>
- <optional>
- <extension>
- <name>mbstring</name>
- </extension>
- </optional>
- </dependencies>
-
- <phprelease>
- <filelist>
- <install as="lang.dat" name="data/lang.dat" />
- <install as="unicode_blocks.dat" name="data/unicode_blocks.dat" />
- </filelist>
- </phprelease>
-
- <changelog>
-
- <release>
- <version>
- <release>1.0.0</release>
- <api>1.0.0</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <date>2017-03-02</date>
- <license uri="http://www.opensource.org/licenses/bsd-license.php">BSD</license>
- <notes>
- - Add PHP5 constructors
- - Fix bug #21189: Language detection on PHP7 broken
- - Fix coding style problems
- - BC break: Add real visibility to properties and methods
- </notes>
- </release>
-
- <release>
- <version>
- <release>0.3.0</release>
- <api>0.3.0</api>
- </version>
- <stability>
- <release>alpha</release>
- <api>alpha</api>
- </stability>
- <date>2012-01-16</date>
- <license uri="http://www.opensource.org/licenses/bsd-license.php">BSD</license>
- <notes>
-- BC break: Return lowercase language names
-- BC break: Use exceptions instead of PEAR_Error
-- Implement request #19221: Return ISO 639-1 or ISO 639-2 language codes
- </notes>
- </release>
-
- <release>
- <version>
- <release>0.2.3</release>
- <api>0.2.3</api>
- </version>
- <stability>
- <release>alpha</release>
- <api>alpha</api>
- </stability>
- <date>2008-07-30</date>
- <license uri="http://www.opensource.org/licenses/bsd-license.php">BSD</license>
- <notes>updated package requirements
- </notes>
- </release>
-
- <release>
- <version>
- <release>0.2.2</release>
- <api>0.2.2</api>
- </version>
- <stability>
- <release>alpha</release>
- <api>alpha</api>
- </stability>
- <date>2008-07-30</date>
- <license uri="http://www.opensource.org/licenses/bsd-license.php">BSD</license>
- <notes>* Fixed Bug #13385
- </notes>
- </release>
-
- <release>
- <version>
- <release>0.2.1</release>
- <api>0.2.1</api>
- </version>
- <stability>
- <release>alpha</release>
- <api>alpha</api>
- </stability>
- <date>2006-12-03</date>
- <license uri="http://www.opensource.org/licenses/bsd-license.php">BSD</license>
- <notes>* Fix: Now uses conventionalized include path
-* Fix: Won&apos;t cause error if input is purely symbol-range characters
-* Better error reporting if error in unicode db loading
- </notes>
- </release>
-
- <release>
- <version>
- <release>0.2.0</release>
- <api>0.2.0</api>
- </version>
- <stability>
- <release>alpha</release>
- <api>alpha</api>
- </stability>
- <date>2006-01-18</date>
- <license uri="http://www.opensource.org/licenses/bsd-license.php">BSD</license>
- <notes>* Added unicode block range identification
-* unicode block ranges used to optimize language detection by pre-selecting which known language trigram profiles in the database to attempt comparison with
-* Added several utf8/unicode utility functions
-* new Parser class for building data profiles from text samples
-* Fix: mb_convert_encoding() now used correctly
-* Fix: basic case-folding for Cyrillic alphabet implemented
- </notes>
- </release>
-
- <release>
- <version>
- <release>0.1.1</release>
- <api>0.1.1</api>
- </version>
- <stability>
- <release>alpha</release>
- <api>alpha</api>
- </stability>
- <date>2006-01-06</date>
- <license uri="http://www.opensource.org/licenses/bsd-license.php">BSD</license>
- <notes>* Output of clustering now cached
-* Fix: better error checking in clustering functions
-* Fix: clusteredSearch() now handles null strings gracefully
-* Compare order is preserved in clusteredSearch() results
-* Slight speed improvement to utf8 iterator
- </notes>
- </release>
-
- <release>
- <version>
- <release>0.1.0</release>
- <api>0.1.0</api>
- </version>
- <stability>
- <release>alpha</release>
- <api>alpha</api>
- </stability>
- <date>2006-01-04</date>
- <license uri="http://www.opensource.org/licenses/bsd-license.php">BSD</license>
- <notes>Initial PEAR release
- </notes>
- </release>
- </changelog>
-</package>
diff --git a/vendor/ramsey/uuid/LICENSE b/vendor/ramsey/uuid/LICENSE
index 2e8ef166d..5b2acc5b7 100644
--- a/vendor/ramsey/uuid/LICENSE
+++ b/vendor/ramsey/uuid/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2012-2022 Ben Ramsey <ben@benramsey.com>
+Copyright (c) 2012-2023 Ben Ramsey <ben@benramsey.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/vendor/ramsey/uuid/README.md b/vendor/ramsey/uuid/README.md
index 1862569fd..0db814959 100644
--- a/vendor/ramsey/uuid/README.md
+++ b/vendor/ramsey/uuid/README.md
@@ -9,7 +9,7 @@
<a href="https://packagist.org/packages/ramsey/uuid"><img src="https://img.shields.io/packagist/v/ramsey/uuid.svg?style=flat-square&label=release" alt="Download Package"></a>
<a href="https://php.net"><img src="https://img.shields.io/packagist/php-v/ramsey/uuid.svg?style=flat-square&colorB=%238892BF" alt="PHP Programming Language"></a>
<a href="https://github.com/ramsey/uuid/blob/4.x/LICENSE"><img src="https://img.shields.io/packagist/l/ramsey/uuid.svg?style=flat-square&colorB=darkcyan" alt="Read License"></a>
- <a href="https://github.com/ramsey/uuid/actions/workflows/continuous-integration.yml"><img src="https://img.shields.io/github/workflow/status/ramsey/uuid/build/4.x?logo=github&style=flat-square" alt="Build Status"></a>
+ <a href="https://github.com/ramsey/uuid/actions/workflows/continuous-integration.yml"><img src="https://img.shields.io/github/actions/workflow/status/ramsey/uuid/continuous-integration.yml?branch=4.x&logo=github&style=flat-square" alt="Build Status"></a>
<a href="https://app.codecov.io/gh/ramsey/uuid/branch/4.x"><img src="https://img.shields.io/codecov/c/github/ramsey/uuid/4.x?label=codecov&logo=codecov&style=flat-square" alt="Codecov Code Coverage"></a>
<a href="https://shepherd.dev/github/ramsey/uuid"><img src="https://img.shields.io/endpoint?style=flat-square&url=https%3A%2F%2Fshepherd.dev%2Fgithub%2Framsey%2Fuuid%2Fcoverage" alt="Psalm Type Coverage"></a>
</p>
diff --git a/vendor/ramsey/uuid/composer.json b/vendor/ramsey/uuid/composer.json
index 9653cad25..9ea4e06b3 100644
--- a/vendor/ramsey/uuid/composer.json
+++ b/vendor/ramsey/uuid/composer.json
@@ -10,10 +10,9 @@
],
"require": {
"php": "^8.0",
- "ext-ctype": "*",
"ext-json": "*",
- "brick/math": "^0.8.8 || ^0.9 || ^0.10",
- "ramsey/collection": "^1.0"
+ "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11",
+ "ramsey/collection": "^1.2 || ^2.0"
},
"require-dev": {
"captainhook/captainhook": "^5.10",
@@ -42,7 +41,6 @@
},
"suggest": {
"ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
- "ext-ctype": "Enables faster processing of character classification using ctype functions.",
"ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.",
"ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.",
"paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
@@ -92,8 +90,8 @@
"phpcbf": "phpcbf -vpw --cache=build/cache/phpcs.cache",
"phpcs": "phpcs --cache=build/cache/phpcs.cache",
"phpstan": [
- "phpstan analyse --no-progress",
- "phpstan analyse -c phpstan-tests.neon --no-progress"
+ "phpstan analyse --no-progress --memory-limit=1G",
+ "phpstan analyse -c phpstan-tests.neon --no-progress --memory-limit=1G"
],
"phpunit": "phpunit --verbose --colors=always",
"phpunit-coverage": "phpunit --verbose --colors=always --coverage-html build/coverage",
diff --git a/vendor/ramsey/uuid/src/Codec/GuidStringCodec.php b/vendor/ramsey/uuid/src/Codec/GuidStringCodec.php
index f11e9d50a..04872e0bc 100644
--- a/vendor/ramsey/uuid/src/Codec/GuidStringCodec.php
+++ b/vendor/ramsey/uuid/src/Codec/GuidStringCodec.php
@@ -18,6 +18,7 @@ use Ramsey\Uuid\Guid\Guid;
use Ramsey\Uuid\UuidInterface;
use function bin2hex;
+use function sprintf;
use function substr;
/**
@@ -29,6 +30,26 @@ use function substr;
*/
class GuidStringCodec extends StringCodec
{
+ public function encode(UuidInterface $uuid): string
+ {
+ $hex = bin2hex($uuid->getFields()->getBytes());
+
+ /** @var non-empty-string */
+ return sprintf(
+ '%02s%02s%02s%02s-%02s%02s-%02s%02s-%04s-%012s',
+ substr($hex, 6, 2),
+ substr($hex, 4, 2),
+ substr($hex, 2, 2),
+ substr($hex, 0, 2),
+ substr($hex, 10, 2),
+ substr($hex, 8, 2),
+ substr($hex, 14, 2),
+ substr($hex, 12, 2),
+ substr($hex, 16, 4),
+ substr($hex, 20),
+ );
+ }
+
public function decode(string $encodedUuid): UuidInterface
{
$bytes = $this->getBytes($encodedUuid);
diff --git a/vendor/ramsey/uuid/src/Codec/StringCodec.php b/vendor/ramsey/uuid/src/Codec/StringCodec.php
index 4b6e4e5b9..95f38d2e8 100644
--- a/vendor/ramsey/uuid/src/Codec/StringCodec.php
+++ b/vendor/ramsey/uuid/src/Codec/StringCodec.php
@@ -17,12 +17,13 @@ namespace Ramsey\Uuid\Codec;
use Ramsey\Uuid\Builder\UuidBuilderInterface;
use Ramsey\Uuid\Exception\InvalidArgumentException;
use Ramsey\Uuid\Exception\InvalidUuidStringException;
-use Ramsey\Uuid\Rfc4122\FieldsInterface;
use Ramsey\Uuid\Uuid;
use Ramsey\Uuid\UuidInterface;
+use function bin2hex;
use function hex2bin;
use function implode;
+use function sprintf;
use function str_replace;
use function strlen;
use function substr;
@@ -47,19 +48,17 @@ class StringCodec implements CodecInterface
public function encode(UuidInterface $uuid): string
{
- /** @var FieldsInterface $fields */
- $fields = $uuid->getFields();
-
- return $fields->getTimeLow()->toString()
- . '-'
- . $fields->getTimeMid()->toString()
- . '-'
- . $fields->getTimeHiAndVersion()->toString()
- . '-'
- . $fields->getClockSeqHiAndReserved()->toString()
- . $fields->getClockSeqLow()->toString()
- . '-'
- . $fields->getNode()->toString();
+ $hex = bin2hex($uuid->getFields()->getBytes());
+
+ /** @var non-empty-string */
+ return sprintf(
+ '%08s-%04s-%04s-%04s-%012s',
+ substr($hex, 0, 8),
+ substr($hex, 8, 4),
+ substr($hex, 12, 4),
+ substr($hex, 16, 4),
+ substr($hex, 20),
+ );
}
/**
diff --git a/vendor/ramsey/uuid/src/FeatureSet.php b/vendor/ramsey/uuid/src/FeatureSet.php
index 6c8ccb0de..b9af869f9 100644
--- a/vendor/ramsey/uuid/src/FeatureSet.php
+++ b/vendor/ramsey/uuid/src/FeatureSet.php
@@ -23,7 +23,6 @@ use Ramsey\Uuid\Converter\Number\GenericNumberConverter;
use Ramsey\Uuid\Converter\NumberConverterInterface;
use Ramsey\Uuid\Converter\Time\GenericTimeConverter;
use Ramsey\Uuid\Converter\Time\PhpTimeConverter;
-use Ramsey\Uuid\Converter\Time\UnixTimeConverter;
use Ramsey\Uuid\Converter\TimeConverterInterface;
use Ramsey\Uuid\Generator\DceSecurityGenerator;
use Ramsey\Uuid\Generator\DceSecurityGeneratorInterface;
@@ -105,7 +104,7 @@ class FeatureSet
$this->validator = new GenericValidator();
assert($this->timeProvider !== null);
- $this->unixTimeGenerator = $this->buildUnixTimeGenerator($this->timeProvider);
+ $this->unixTimeGenerator = $this->buildUnixTimeGenerator();
}
/**
@@ -339,17 +338,10 @@ class FeatureSet
/**
* Returns a Unix Epoch time generator configured for this environment
- *
- * @param TimeProviderInterface $timeProvider The time provider to use with
- * the time generator
*/
- private function buildUnixTimeGenerator(TimeProviderInterface $timeProvider): TimeGeneratorInterface
+ private function buildUnixTimeGenerator(): TimeGeneratorInterface
{
- return new UnixTimeGenerator(
- new UnixTimeConverter(new BrickMathCalculator()),
- $timeProvider,
- $this->randomGenerator,
- );
+ return new UnixTimeGenerator($this->randomGenerator);
}
/**
diff --git a/vendor/ramsey/uuid/src/Generator/DefaultTimeGenerator.php b/vendor/ramsey/uuid/src/Generator/DefaultTimeGenerator.php
index a1b39b04a..ea1e2a6ff 100644
--- a/vendor/ramsey/uuid/src/Generator/DefaultTimeGenerator.php
+++ b/vendor/ramsey/uuid/src/Generator/DefaultTimeGenerator.php
@@ -23,11 +23,11 @@ use Ramsey\Uuid\Provider\TimeProviderInterface;
use Ramsey\Uuid\Type\Hexadecimal;
use Throwable;
-use function ctype_xdigit;
use function dechex;
use function hex2bin;
use function is_int;
use function pack;
+use function preg_match;
use function sprintf;
use function str_pad;
use function strlen;
@@ -120,7 +120,7 @@ class DefaultTimeGenerator implements TimeGeneratorInterface
$node = dechex($node);
}
- if (!ctype_xdigit((string) $node) || strlen((string) $node) > 12) {
+ if (!preg_match('/^[A-Fa-f0-9]+$/', (string) $node) || strlen((string) $node) > 12) {
throw new InvalidArgumentException('Invalid node value');
}
diff --git a/vendor/ramsey/uuid/src/Generator/UnixTimeGenerator.php b/vendor/ramsey/uuid/src/Generator/UnixTimeGenerator.php
index 1aef8699a..af94decf2 100644
--- a/vendor/ramsey/uuid/src/Generator/UnixTimeGenerator.php
+++ b/vendor/ramsey/uuid/src/Generator/UnixTimeGenerator.php
@@ -14,39 +14,156 @@ declare(strict_types=1);
namespace Ramsey\Uuid\Generator;
-use Ramsey\Uuid\Converter\TimeConverterInterface;
-use Ramsey\Uuid\Provider\TimeProviderInterface;
+use Brick\Math\BigInteger;
+use DateTimeImmutable;
+use DateTimeInterface;
+use Ramsey\Uuid\Type\Hexadecimal;
-use function hex2bin;
+use function hash;
+use function pack;
+use function str_pad;
+use function strlen;
+use function substr;
+use function substr_replace;
+use function unpack;
+
+use const PHP_INT_SIZE;
+use const STR_PAD_LEFT;
/**
* UnixTimeGenerator generates bytes that combine a 48-bit timestamp in
* milliseconds since the Unix Epoch with 80 random bits
+ *
+ * Code and concepts within this class are borrowed from the symfony/uid package
+ * and are used under the terms of the MIT license distributed with symfony/uid.
+ *
+ * symfony/uid is copyright (c) Fabien Potencier.
+ *
+ * @link https://symfony.com/components/Uid Symfony Uid component
+ * @link https://github.com/symfony/uid/blob/4f9f537e57261519808a7ce1d941490736522bbc/UuidV7.php Symfony UuidV7 class
+ * @link https://github.com/symfony/uid/blob/6.2/LICENSE MIT License
*/
class UnixTimeGenerator implements TimeGeneratorInterface
{
+ private static string $time = '';
+ private static ?string $seed = null;
+ private static int $seedIndex = 0;
+
+ /** @var int[] */
+ private static array $rand = [];
+
+ /** @var int[] */
+ private static array $seedParts;
+
public function __construct(
- private TimeConverterInterface $timeConverter,
- private TimeProviderInterface $timeProvider,
- private RandomGeneratorInterface $randomGenerator
+ private RandomGeneratorInterface $randomGenerator,
+ private int $intSize = PHP_INT_SIZE
) {
}
/**
+ * @param Hexadecimal|int|string|null $node Unused in this generator
+ * @param int|null $clockSeq Unused in this generator
+ * @param DateTimeInterface $dateTime A date-time instance to use when
+ * generating bytes
+ *
* @inheritDoc
*/
- public function generate($node = null, ?int $clockSeq = null): string
+ public function generate($node = null, ?int $clockSeq = null, ?DateTimeInterface $dateTime = null): string
+ {
+ $time = ($dateTime ?? new DateTimeImmutable('now'))->format('Uv');
+
+ if ($time > self::$time || ($dateTime !== null && $time !== self::$time)) {
+ $this->randomize($time);
+ } else {
+ $time = $this->increment();
+ }
+
+ if ($this->intSize >= 8) {
+ $time = substr(pack('J', (int) $time), -6);
+ } else {
+ $time = str_pad(BigInteger::of($time)->toBytes(false), 6, "\x00", STR_PAD_LEFT);
+ }
+
+ /** @var non-empty-string */
+ return $time . pack('n*', self::$rand[1], self::$rand[2], self::$rand[3], self::$rand[4], self::$rand[5]);
+ }
+
+ private function randomize(string $time): void
{
- // Generate 10 random bytes to append to the string returned, since our
- // time bytes will consist of 6 bytes.
- $random = $this->randomGenerator->generate(10);
+ if (self::$seed === null) {
+ $seed = $this->randomGenerator->generate(16);
+ self::$seed = $seed;
+ } else {
+ $seed = $this->randomGenerator->generate(10);
+ }
+
+ /** @var int[] $rand */
+ $rand = unpack('n*', $seed);
+ $rand[1] &= 0x03ff;
+
+ self::$rand = $rand;
+ self::$time = $time;
+ }
+
+ /**
+ * Special thanks to Nicolas Grekas for sharing the following information:
+ *
+ * Within the same ms, we increment the rand part by a random 24-bit number.
+ *
+ * Instead of getting this number from random_bytes(), which is slow, we get
+ * it by sha512-hashing self::$seed. This produces 64 bytes of entropy,
+ * which we need to split in a list of 24-bit numbers. unpack() first splits
+ * them into 16 x 32-bit numbers; we take the first byte of each of these
+ * numbers to get 5 extra 24-bit numbers. Then, we consume those numbers
+ * one-by-one and run this logic every 21 iterations.
+ *
+ * self::$rand holds the random part of the UUID, split into 5 x 16-bit
+ * numbers for x86 portability. We increment this random part by the next
+ * 24-bit number in the self::$seedParts list and decrement
+ * self::$seedIndex.
+ *
+ * @link https://twitter.com/nicolasgrekas/status/1583356938825261061 Tweet from Nicolas Grekas
+ */
+ private function increment(): string
+ {
+ if (self::$seedIndex === 0 && self::$seed !== null) {
+ self::$seed = hash('sha512', self::$seed, true);
+
+ /** @var int[] $s */
+ $s = unpack('l*', self::$seed);
+ $s[] = ($s[1] >> 8 & 0xff0000) | ($s[2] >> 16 & 0xff00) | ($s[3] >> 24 & 0xff);
+ $s[] = ($s[4] >> 8 & 0xff0000) | ($s[5] >> 16 & 0xff00) | ($s[6] >> 24 & 0xff);
+ $s[] = ($s[7] >> 8 & 0xff0000) | ($s[8] >> 16 & 0xff00) | ($s[9] >> 24 & 0xff);
+ $s[] = ($s[10] >> 8 & 0xff0000) | ($s[11] >> 16 & 0xff00) | ($s[12] >> 24 & 0xff);
+ $s[] = ($s[13] >> 8 & 0xff0000) | ($s[14] >> 16 & 0xff00) | ($s[15] >> 24 & 0xff);
+
+ self::$seedParts = $s;
+ self::$seedIndex = 21;
+ }
+
+ self::$rand[5] = 0xffff & $carry = self::$rand[5] + (self::$seedParts[self::$seedIndex--] & 0xffffff);
+ self::$rand[4] = 0xffff & $carry = self::$rand[4] + ($carry >> 16);
+ self::$rand[3] = 0xffff & $carry = self::$rand[3] + ($carry >> 16);
+ self::$rand[2] = 0xffff & $carry = self::$rand[2] + ($carry >> 16);
+ self::$rand[1] += $carry >> 16;
+
+ if (0xfc00 & self::$rand[1]) {
+ $time = self::$time;
+ $mtime = (int) substr($time, -9);
+
+ if ($this->intSize >= 8 || strlen($time) < 10) {
+ $time = (string) ((int) $time + 1);
+ } elseif ($mtime === 999999999) {
+ $time = (1 + (int) substr($time, 0, -9)) . '000000000';
+ } else {
+ $mtime++;
+ $time = substr_replace($time, str_pad((string) $mtime, 9, '0', STR_PAD_LEFT), -9);
+ }
- $time = $this->timeProvider->getTime();
- $unixTimeHex = $this->timeConverter->calculateTime(
- $time->getSeconds()->toString(),
- $time->getMicroseconds()->toString(),
- );
+ $this->randomize($time);
+ }
- return hex2bin($unixTimeHex->toString()) . $random;
+ return self::$time;
}
}
diff --git a/vendor/ramsey/uuid/src/Nonstandard/UuidV6.php b/vendor/ramsey/uuid/src/Nonstandard/UuidV6.php
index 1a7bbaf75..7497dd101 100644
--- a/vendor/ramsey/uuid/src/Nonstandard/UuidV6.php
+++ b/vendor/ramsey/uuid/src/Nonstandard/UuidV6.php
@@ -23,7 +23,7 @@ use Ramsey\Uuid\Rfc4122\FieldsInterface as Rfc4122FieldsInterface;
use Ramsey\Uuid\Rfc4122\TimeTrait;
use Ramsey\Uuid\Rfc4122\UuidInterface;
use Ramsey\Uuid\Rfc4122\UuidV1;
-use Ramsey\Uuid\Uuid;
+use Ramsey\Uuid\Uuid as BaseUuid;
/**
* Reordered time, or version 6, UUIDs include timestamp, clock sequence, and
@@ -36,7 +36,7 @@ use Ramsey\Uuid\Uuid;
*
* @psalm-immutable
*/
-class UuidV6 extends Uuid implements UuidInterface
+class UuidV6 extends BaseUuid implements UuidInterface
{
use TimeTrait;
diff --git a/vendor/ramsey/uuid/src/Provider/Node/SystemNodeProvider.php b/vendor/ramsey/uuid/src/Provider/Node/SystemNodeProvider.php
index d0a1e697f..a03c93b4d 100644
--- a/vendor/ramsey/uuid/src/Provider/Node/SystemNodeProvider.php
+++ b/vendor/ramsey/uuid/src/Provider/Node/SystemNodeProvider.php
@@ -133,12 +133,15 @@ class SystemNodeProvider implements NodeProviderInterface
$ifconfig = (string) ob_get_clean();
- $node = '';
if (preg_match_all(self::IFCONFIG_PATTERN, $ifconfig, $matches, PREG_PATTERN_ORDER)) {
- $node = $matches[1][0] ?? '';
+ foreach ($matches[1] as $iface) {
+ if ($iface !== '00:00:00:00:00:00' && $iface !== '00-00-00-00-00-00') {
+ return $iface;
+ }
+ }
}
- return $node;
+ return '';
}
/**
diff --git a/vendor/ramsey/uuid/src/Rfc4122/MaxTrait.php b/vendor/ramsey/uuid/src/Rfc4122/MaxTrait.php
index 2ec304723..dedb72798 100644
--- a/vendor/ramsey/uuid/src/Rfc4122/MaxTrait.php
+++ b/vendor/ramsey/uuid/src/Rfc4122/MaxTrait.php
@@ -20,7 +20,7 @@ namespace Ramsey\Uuid\Rfc4122;
* The max UUID is special form of UUID that is specified to have all 128 bits
* set to one. It is the inverse of the nil UUID.
*
- * @link https://datatracker.ietf.org/doc/html/draft-peabody-dispatch-new-uuid-format-04#section-5.4 Max UUID
+ * @link https://datatracker.ietf.org/doc/html/draft-ietf-uuidrev-rfc4122bis-00#section-5.10 Max UUID
*
* @psalm-immutable
*/
diff --git a/vendor/ramsey/uuid/src/Rfc4122/UuidBuilder.php b/vendor/ramsey/uuid/src/Rfc4122/UuidBuilder.php
index 859649fd9..2c2677db7 100644
--- a/vendor/ramsey/uuid/src/Rfc4122/UuidBuilder.php
+++ b/vendor/ramsey/uuid/src/Rfc4122/UuidBuilder.php
@@ -95,6 +95,8 @@ class UuidBuilder implements UuidBuilderInterface
return new UuidV6($fields, $this->numberConverter, $codec, $this->timeConverter);
case Uuid::UUID_TYPE_UNIX_TIME:
return new UuidV7($fields, $this->numberConverter, $codec, $this->unixTimeConverter);
+ case Uuid::UUID_TYPE_CUSTOM:
+ return new UuidV8($fields, $this->numberConverter, $codec, $this->timeConverter);
}
throw new UnsupportedOperationException(
diff --git a/vendor/ramsey/uuid/src/Rfc4122/UuidV6.php b/vendor/ramsey/uuid/src/Rfc4122/UuidV6.php
index 9b2ddee00..7e3743391 100644
--- a/vendor/ramsey/uuid/src/Rfc4122/UuidV6.php
+++ b/vendor/ramsey/uuid/src/Rfc4122/UuidV6.php
@@ -20,7 +20,7 @@ use Ramsey\Uuid\Nonstandard\UuidV6 as NonstandardUuidV6;
* Reordered time, or version 6, UUIDs include timestamp, clock sequence, and
* node values that are combined into a 128-bit unsigned integer
*
- * @link https://datatracker.ietf.org/doc/html/draft-peabody-dispatch-new-uuid-format-04#section-5.1 UUID Version 6
+ * @link https://datatracker.ietf.org/doc/html/draft-ietf-uuidrev-rfc4122bis-00#section-5.6 UUID Version 6
*
* @psalm-immutable
*/
diff --git a/vendor/ramsey/uuid/src/Rfc4122/UuidV7.php b/vendor/ramsey/uuid/src/Rfc4122/UuidV7.php
index 90c2471ac..5b524c486 100644
--- a/vendor/ramsey/uuid/src/Rfc4122/UuidV7.php
+++ b/vendor/ramsey/uuid/src/Rfc4122/UuidV7.php
@@ -22,8 +22,10 @@ use Ramsey\Uuid\Rfc4122\FieldsInterface as Rfc4122FieldsInterface;
use Ramsey\Uuid\Uuid;
/**
- * Gregorian time, or version 1, UUIDs include timestamp, clock sequence, and node
- * values that are combined into a 128-bit unsigned integer
+ * Unix Epoch time, or version 7, UUIDs include a timestamp in milliseconds
+ * since the Unix Epoch, along with random bytes
+ *
+ * @link https://datatracker.ietf.org/doc/html/draft-ietf-uuidrev-rfc4122bis-00#section-5.7 UUID Version 7
*
* @psalm-immutable
*/
diff --git a/vendor/ramsey/uuid/src/Rfc4122/UuidV8.php b/vendor/ramsey/uuid/src/Rfc4122/UuidV8.php
new file mode 100644
index 000000000..78b0290c7
--- /dev/null
+++ b/vendor/ramsey/uuid/src/Rfc4122/UuidV8.php
@@ -0,0 +1,65 @@
+<?php
+
+/**
+ * This file is part of the ramsey/uuid library
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ *
+ * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>
+ * @license http://opensource.org/licenses/MIT MIT
+ */
+
+declare(strict_types=1);
+
+namespace Ramsey\Uuid\Rfc4122;
+
+use Ramsey\Uuid\Codec\CodecInterface;
+use Ramsey\Uuid\Converter\NumberConverterInterface;
+use Ramsey\Uuid\Converter\TimeConverterInterface;
+use Ramsey\Uuid\Exception\InvalidArgumentException;
+use Ramsey\Uuid\Rfc4122\FieldsInterface as Rfc4122FieldsInterface;
+use Ramsey\Uuid\Uuid;
+
+/**
+ * Version 8, Custom UUIDs provide an RFC 4122 compatible format for
+ * experimental or vendor-specific uses
+ *
+ * The only requirement for version 8 UUIDs is that the version and variant bits
+ * must be set. Otherwise, implementations are free to set the other bits
+ * according to their needs. As a result, the uniqueness of version 8 UUIDs is
+ * implementation-specific and should not be assumed.
+ *
+ * @link https://datatracker.ietf.org/doc/html/draft-ietf-uuidrev-rfc4122bis-00#section-5.8 UUID Version 8
+ *
+ * @psalm-immutable
+ */
+final class UuidV8 extends Uuid implements UuidInterface
+{
+ /**
+ * Creates a version 8 (custom) UUID
+ *
+ * @param Rfc4122FieldsInterface $fields The fields from which to construct a UUID
+ * @param NumberConverterInterface $numberConverter The number converter to use
+ * for converting hex values to/from integers
+ * @param CodecInterface $codec The codec to use when encoding or decoding
+ * UUID strings
+ * @param TimeConverterInterface $timeConverter The time converter to use
+ * for converting timestamps extracted from a UUID to unix timestamps
+ */
+ public function __construct(
+ Rfc4122FieldsInterface $fields,
+ NumberConverterInterface $numberConverter,
+ CodecInterface $codec,
+ TimeConverterInterface $timeConverter
+ ) {
+ if ($fields->getVersion() !== Uuid::UUID_TYPE_CUSTOM) {
+ throw new InvalidArgumentException(
+ 'Fields used to create a UuidV8 must represent a '
+ . 'version 8 (custom) UUID'
+ );
+ }
+
+ parent::__construct($fields, $numberConverter, $codec, $timeConverter);
+ }
+}
diff --git a/vendor/ramsey/uuid/src/Rfc4122/Validator.php b/vendor/ramsey/uuid/src/Rfc4122/Validator.php
index 6b1f0de06..e82a11e6e 100644
--- a/vendor/ramsey/uuid/src/Rfc4122/Validator.php
+++ b/vendor/ramsey/uuid/src/Rfc4122/Validator.php
@@ -28,7 +28,7 @@ use function str_replace;
final class Validator implements ValidatorInterface
{
private const VALID_PATTERN = '\A[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-'
- . '[1-7][0-9A-Fa-f]{3}-[ABab89][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}\z';
+ . '[1-8][0-9A-Fa-f]{3}-[ABab89][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}\z';
/**
* @psalm-return non-empty-string
diff --git a/vendor/ramsey/uuid/src/Rfc4122/VersionTrait.php b/vendor/ramsey/uuid/src/Rfc4122/VersionTrait.php
index 316f780c4..0195e46c7 100644
--- a/vendor/ramsey/uuid/src/Rfc4122/VersionTrait.php
+++ b/vendor/ramsey/uuid/src/Rfc4122/VersionTrait.php
@@ -53,7 +53,7 @@ trait VersionTrait
Uuid::UUID_TYPE_TIME, Uuid::UUID_TYPE_DCE_SECURITY,
Uuid::UUID_TYPE_HASH_MD5, Uuid::UUID_TYPE_RANDOM,
Uuid::UUID_TYPE_HASH_SHA1, Uuid::UUID_TYPE_REORDERED_TIME,
- Uuid::UUID_TYPE_UNIX_TIME => true,
+ Uuid::UUID_TYPE_UNIX_TIME, Uuid::UUID_TYPE_CUSTOM => true,
default => false,
};
}
diff --git a/vendor/ramsey/uuid/src/Type/Hexadecimal.php b/vendor/ramsey/uuid/src/Type/Hexadecimal.php
index 3c8f30adf..bf71ec4b1 100644
--- a/vendor/ramsey/uuid/src/Type/Hexadecimal.php
+++ b/vendor/ramsey/uuid/src/Type/Hexadecimal.php
@@ -17,10 +17,8 @@ namespace Ramsey\Uuid\Type;
use Ramsey\Uuid\Exception\InvalidArgumentException;
use ValueError;
-use function ctype_xdigit;
+use function preg_match;
use function sprintf;
-use function str_starts_with;
-use function strtolower;
use function substr;
/**
@@ -37,23 +35,11 @@ final class Hexadecimal implements TypeInterface
private string $value;
/**
- * @param string $value The hexadecimal value to store
+ * @param self|string $value The hexadecimal value to store
*/
- public function __construct(string $value)
+ public function __construct(self | string $value)
{
- $value = strtolower($value);
-
- if (str_starts_with($value, '0x')) {
- $value = substr($value, 2);
- }
-
- if (!ctype_xdigit($value)) {
- throw new InvalidArgumentException(
- 'Value must be a hexadecimal number'
- );
- }
-
- $this->value = $value;
+ $this->value = $value instanceof self ? (string) $value : $this->prepareValue($value);
}
public function toString(): string
@@ -109,4 +95,21 @@ final class Hexadecimal implements TypeInterface
$this->unserialize($data['string']);
}
+
+ private function prepareValue(string $value): string
+ {
+ $value = strtolower($value);
+
+ if (str_starts_with($value, '0x')) {
+ $value = substr($value, 2);
+ }
+
+ if (!preg_match('/^[A-Fa-f0-9]+$/', $value)) {
+ throw new InvalidArgumentException(
+ 'Value must be a hexadecimal number'
+ );
+ }
+
+ return $value;
+ }
}
diff --git a/vendor/ramsey/uuid/src/Type/Integer.php b/vendor/ramsey/uuid/src/Type/Integer.php
index e41b3cad5..50dac9934 100644
--- a/vendor/ramsey/uuid/src/Type/Integer.php
+++ b/vendor/ramsey/uuid/src/Type/Integer.php
@@ -17,10 +17,10 @@ namespace Ramsey\Uuid\Type;
use Ramsey\Uuid\Exception\InvalidArgumentException;
use ValueError;
-use function ctype_digit;
-use function ltrim;
+use function assert;
+use function is_numeric;
+use function preg_match;
use function sprintf;
-use function str_starts_with;
use function substr;
/**
@@ -46,40 +46,7 @@ final class Integer implements NumberInterface
public function __construct(float | int | string | self $value)
{
- $value = (string) $value;
- $sign = '+';
-
- // If the value contains a sign, remove it for ctype_digit() check.
- if (str_starts_with($value, '-') || str_starts_with($value, '+')) {
- $sign = substr($value, 0, 1);
- $value = substr($value, 1);
- }
-
- if (!ctype_digit($value)) {
- throw new InvalidArgumentException(
- 'Value must be a signed integer or a string containing only '
- . 'digits 0-9 and, optionally, a sign (+ or -)'
- );
- }
-
- // Trim any leading zeros.
- $value = ltrim($value, '0');
-
- // Set to zero if the string is empty after trimming zeros.
- if ($value === '') {
- $value = '0';
- }
-
- // Add the negative sign back to the value.
- if ($sign === '-' && $value !== '0') {
- $value = $sign . $value;
- $this->isNegative = true;
- }
-
- /** @psalm-var numeric-string $numericValue */
- $numericValue = $value;
-
- $this->value = $numericValue;
+ $this->value = $value instanceof self ? (string) $value : $this->prepareValue($value);
}
public function isNegative(): bool
@@ -95,6 +62,9 @@ final class Integer implements NumberInterface
return $this->value;
}
+ /**
+ * @psalm-return numeric-string
+ */
public function __toString(): string
{
return $this->toString();
@@ -143,4 +113,46 @@ final class Integer implements NumberInterface
$this->unserialize($data['string']);
}
+
+ /**
+ * @return numeric-string
+ */
+ private function prepareValue(float | int | string $value): string
+ {
+ $value = (string) $value;
+ $sign = '+';
+
+ // If the value contains a sign, remove it for digit pattern check.
+ if (str_starts_with($value, '-') || str_starts_with($value, '+')) {
+ $sign = substr($value, 0, 1);
+ $value = substr($value, 1);
+ }
+
+ if (!preg_match('/^\d+$/', $value)) {
+ throw new InvalidArgumentException(
+ 'Value must be a signed integer or a string containing only '
+ . 'digits 0-9 and, optionally, a sign (+ or -)'
+ );
+ }
+
+ // Trim any leading zeros.
+ $value = ltrim($value, '0');
+
+ // Set to zero if the string is empty after trimming zeros.
+ if ($value === '') {
+ $value = '0';
+ }
+
+ // Add the negative sign back to the value.
+ if ($sign === '-' && $value !== '0') {
+ $value = $sign . $value;
+
+ /** @psalm-suppress InaccessibleProperty */
+ $this->isNegative = true;
+ }
+
+ assert(is_numeric($value));
+
+ return $value;
+ }
}
diff --git a/vendor/ramsey/uuid/src/Type/Time.php b/vendor/ramsey/uuid/src/Type/Time.php
index 745b5ccab..0cedb4476 100644
--- a/vendor/ramsey/uuid/src/Type/Time.php
+++ b/vendor/ramsey/uuid/src/Type/Time.php
@@ -56,7 +56,7 @@ final class Time implements TypeInterface
public function toString(): string
{
- return $this->seconds->toString() . '.' . $this->microseconds->toString();
+ return $this->seconds->toString() . '.' . sprintf('%06s', $this->microseconds->toString());
}
public function __toString(): string
diff --git a/vendor/ramsey/uuid/src/Uuid.php b/vendor/ramsey/uuid/src/Uuid.php
index 6656aba02..e0384a50c 100644
--- a/vendor/ramsey/uuid/src/Uuid.php
+++ b/vendor/ramsey/uuid/src/Uuid.php
@@ -14,6 +14,7 @@ declare(strict_types=1);
namespace Ramsey\Uuid;
+use BadMethodCallException;
use DateTimeInterface;
use Ramsey\Uuid\Codec\CodecInterface;
use Ramsey\Uuid\Converter\NumberConverterInterface;
@@ -88,7 +89,7 @@ class Uuid implements UuidInterface
* The max UUID is a special form of UUID that is specified to have all 128
* bits set to one
*
- * @link https://datatracker.ietf.org/doc/html/draft-peabody-dispatch-new-uuid-format-04#section-5.4 Max UUID
+ * @link https://datatracker.ietf.org/doc/html/draft-ietf-uuidrev-rfc4122bis-00#section-5.10 Max UUID
*/
public const MAX = 'ffffffff-ffff-ffff-ffff-ffffffffffff';
@@ -173,18 +174,23 @@ class Uuid implements UuidInterface
/**
* Version 6 (reordered time) UUID
*
- * @link https://datatracker.ietf.org/doc/html/draft-peabody-dispatch-new-uuid-format-04#section-5.1 UUID Version 6
+ * @link https://datatracker.ietf.org/doc/html/draft-ietf-uuidrev-rfc4122bis-00#section-5.6 UUID Version 6
*/
public const UUID_TYPE_REORDERED_TIME = 6;
/**
* Version 7 (Unix Epoch time) UUID
*
- * @link https://datatracker.ietf.org/doc/html/draft-peabody-dispatch-new-uuid-format-04#section-5.2 UUID Version 7
+ * @link https://datatracker.ietf.org/doc/html/draft-ietf-uuidrev-rfc4122bis-00#section-5.7 UUID Version 7
*/
public const UUID_TYPE_UNIX_TIME = 7;
/**
+ * @link https://datatracker.ietf.org/doc/html/draft-ietf-uuidrev-rfc4122bis-00#section-5.8 UUID Version 8
+ */
+ public const UUID_TYPE_CUSTOM = 8;
+
+ /**
* DCE Security principal domain
*
* @link https://pubs.opengroup.org/onlinepubs/9696989899/chap11.htm#tagcjh_14_05_01_01 DCE 1.1, §11.5.1.1
@@ -287,7 +293,7 @@ class Uuid implements UuidInterface
*/
public function serialize(): string
{
- return $this->getFields()->getBytes();
+ return $this->codec->encode($this);
}
/**
@@ -440,20 +446,20 @@ class Uuid implements UuidInterface
*/
public static function fromBytes(string $bytes): UuidInterface
{
- if (! self::$factoryReplaced && strlen($bytes) === 16) {
+ if (!self::$factoryReplaced && strlen($bytes) === 16) {
$base16Uuid = bin2hex($bytes);
// Note: we are calling `fromString` internally because we don't know if the given `$bytes` is a valid UUID
return self::fromString(
substr($base16Uuid, 0, 8)
- . '-'
- . substr($base16Uuid, 8, 4)
- . '-'
- . substr($base16Uuid, 12, 4)
- . '-'
- . substr($base16Uuid, 16, 4)
- . '-'
- . substr($base16Uuid, 20, 12)
+ . '-'
+ . substr($base16Uuid, 8, 4)
+ . '-'
+ . substr($base16Uuid, 12, 4)
+ . '-'
+ . substr($base16Uuid, 16, 4)
+ . '-'
+ . substr($base16Uuid, 20, 12)
);
}
@@ -479,7 +485,7 @@ class Uuid implements UuidInterface
public static function fromString(string $uuid): UuidInterface
{
$uuid = strtolower($uuid);
- if (! self::$factoryReplaced && preg_match(LazyUuidFromString::VALID_REGEX, $uuid) === 1) {
+ if (!self::$factoryReplaced && preg_match(LazyUuidFromString::VALID_REGEX, $uuid) === 1) {
assert($uuid !== '');
return new LazyUuidFromString($uuid);
@@ -510,6 +516,33 @@ class Uuid implements UuidInterface
}
/**
+ * Creates a UUID from the Hexadecimal object
+ *
+ * @param Hexadecimal $hex Hexadecimal object representing a hexadecimal number
+ *
+ * @return UuidInterface A UuidInterface instance created from the Hexadecimal
+ * object representing a hexadecimal number
+ *
+ * @psalm-pure note: changing the internal factory is an edge case not covered by purity invariants,
+ * but under constant factory setups, this method operates in functionally pure manners
+ * @psalm-suppress MixedInferredReturnType,MixedReturnStatement
+ */
+ public static function fromHexadecimal(Hexadecimal $hex): UuidInterface
+ {
+ $factory = self::getFactory();
+
+ if (method_exists($factory, 'fromHexadecimal')) {
+ /**
+ * @phpstan-ignore-next-line
+ * @psalm-suppress UndefinedInterfaceMethod
+ */
+ return self::getFactory()->fromHexadecimal($hex);
+ }
+
+ throw new BadMethodCallException('The method fromHexadecimal() does not exist on the provided factory');
+ }
+
+ /**
* Creates a UUID from a 128-bit integer string
*
* @param string $integer String representation of 128-bit integer
@@ -522,6 +555,7 @@ class Uuid implements UuidInterface
*/
public static function fromInteger(string $integer): UuidInterface
{
+ /** @psalm-suppress ImpureMethodCall */
return self::getFactory()->fromInteger($integer);
}
@@ -535,10 +569,11 @@ class Uuid implements UuidInterface
* @psalm-pure note: changing the internal factory is an edge case not covered by purity invariants,
* but under constant factory setups, this method operates in functionally pure manners
*
- * @psalm-assert-if-true non-empty-string $uuid
+ * @psalm-assert-if-true =non-empty-string $uuid
*/
public static function isValid(string $uuid): bool
{
+ /** @psalm-suppress ImpureMethodCall */
return self::getFactory()->getValidator()->validate($uuid);
}
@@ -549,7 +584,7 @@ class Uuid implements UuidInterface
* @param Hexadecimal|int|string|null $node A 48-bit number representing the
* hardware address; this number may be represented as an integer or a
* hexadecimal string
- * @param int $clockSeq A 14-bit number used to help avoid duplicates that
+ * @param int|null $clockSeq A 14-bit number used to help avoid duplicates that
* could arise when the clock is set backwards in time or if the node ID
* changes
*
@@ -653,7 +688,7 @@ class Uuid implements UuidInterface
*
* @param Hexadecimal|null $node A 48-bit number representing the hardware
* address
- * @param int $clockSeq A 14-bit number used to help avoid duplicates that
+ * @param int|null $clockSeq A 14-bit number used to help avoid duplicates that
* could arise when the clock is set backwards in time or if the node ID
* changes
*
@@ -690,4 +725,34 @@ class Uuid implements UuidInterface
'The provided factory does not support the uuid7() method',
);
}
+
+ /**
+ * Returns a version 8 (custom) UUID
+ *
+ * The bytes provided may contain any value according to your application's
+ * needs. Be aware, however, that other applications may not understand the
+ * semantics of the value.
+ *
+ * @param string $bytes A 16-byte octet string. This is an open blob
+ * of data that you may fill with 128 bits of information. Be aware,
+ * however, bits 48 through 51 will be replaced with the UUID version
+ * field, and bits 64 and 65 will be replaced with the UUID variant. You
+ * MUST NOT rely on these bits for your application needs.
+ *
+ * @return UuidInterface A UuidInterface instance that represents a
+ * version 8 UUID
+ */
+ public static function uuid8(string $bytes): UuidInterface
+ {
+ $factory = self::getFactory();
+
+ if (method_exists($factory, 'uuid8')) {
+ /** @var UuidInterface */
+ return $factory->uuid8($bytes);
+ }
+
+ throw new UnsupportedOperationException(
+ 'The provided factory does not support the uuid8() method',
+ );
+ }
}
diff --git a/vendor/ramsey/uuid/src/UuidFactory.php b/vendor/ramsey/uuid/src/UuidFactory.php
index ab730f741..1b06ea6ed 100644
--- a/vendor/ramsey/uuid/src/UuidFactory.php
+++ b/vendor/ramsey/uuid/src/UuidFactory.php
@@ -18,7 +18,6 @@ use DateTimeInterface;
use Ramsey\Uuid\Builder\UuidBuilderInterface;
use Ramsey\Uuid\Codec\CodecInterface;
use Ramsey\Uuid\Converter\NumberConverterInterface;
-use Ramsey\Uuid\Converter\Time\UnixTimeConverter;
use Ramsey\Uuid\Converter\TimeConverterInterface;
use Ramsey\Uuid\Generator\DceSecurityGeneratorInterface;
use Ramsey\Uuid\Generator\DefaultTimeGenerator;
@@ -27,7 +26,6 @@ use Ramsey\Uuid\Generator\RandomGeneratorInterface;
use Ramsey\Uuid\Generator\TimeGeneratorInterface;
use Ramsey\Uuid\Generator\UnixTimeGenerator;
use Ramsey\Uuid\Lazy\LazyUuidFromString;
-use Ramsey\Uuid\Math\BrickMathCalculator;
use Ramsey\Uuid\Provider\NodeProviderInterface;
use Ramsey\Uuid\Provider\Time\FixedTimeProvider;
use Ramsey\Uuid\Type\Hexadecimal;
@@ -315,6 +313,14 @@ class UuidFactory implements UuidFactoryInterface
}
/**
+ * @psalm-pure
+ */
+ public function fromHexadecimal(Hexadecimal $hex): UuidInterface
+ {
+ return $this->codec->decode($hex->__toString());
+ }
+
+ /**
* @inheritDoc
*/
public function uuid1($node = null, ?int $clockSeq = null): UuidInterface
@@ -396,26 +402,34 @@ class UuidFactory implements UuidFactoryInterface
*/
public function uuid7(?DateTimeInterface $dateTime = null): UuidInterface
{
- if ($dateTime !== null) {
- $timeProvider = new FixedTimeProvider(
- new Time($dateTime->format('U'), $dateTime->format('u'))
- );
-
- $timeGenerator = new UnixTimeGenerator(
- new UnixTimeConverter(new BrickMathCalculator()),
- $timeProvider,
- $this->randomGenerator,
- );
-
- $bytes = $timeGenerator->generate();
- } else {
- $bytes = $this->unixTimeGenerator->generate();
- }
+ assert($this->unixTimeGenerator instanceof UnixTimeGenerator);
+ $bytes = $this->unixTimeGenerator->generate(null, null, $dateTime);
return $this->uuidFromBytesAndVersion($bytes, Uuid::UUID_TYPE_UNIX_TIME);
}
/**
+ * Returns a version 8 (Custom) UUID
+ *
+ * The bytes provided may contain any value according to your application's
+ * needs. Be aware, however, that other applications may not understand the
+ * semantics of the value.
+ *
+ * @param string $bytes A 16-byte octet string. This is an open blob
+ * of data that you may fill with 128 bits of information. Be aware,
+ * however, bits 48 through 51 will be replaced with the UUID version
+ * field, and bits 64 and 65 will be replaced with the UUID variant. You
+ * MUST NOT rely on these bits for your application needs.
+ *
+ * @return UuidInterface A UuidInterface instance that represents a
+ * version 8 UUID
+ */
+ public function uuid8(string $bytes): UuidInterface
+ {
+ return $this->uuidFromBytesAndVersion($bytes, Uuid::UUID_TYPE_CUSTOM);
+ }
+
+ /**
* Returns a Uuid created from the provided byte string
*
* Uses the configured builder and codec and the provided byte string to
@@ -430,6 +444,7 @@ class UuidFactory implements UuidFactoryInterface
*/
public function uuid(string $bytes): UuidInterface
{
+ /** @psalm-suppress ImpurePropertyFetch */
return $this->uuidBuilder->build($this->codec, $bytes);
}
@@ -492,6 +507,7 @@ class UuidFactory implements UuidFactoryInterface
return LazyUuidFromString::fromBytes($bytes);
}
+ /** @psalm-suppress ImpureVariable */
return $this->uuid($bytes);
}
}
diff --git a/vendor/ramsey/uuid/src/UuidInterface.php b/vendor/ramsey/uuid/src/UuidInterface.php
index 5f41675bf..0a9780805 100644
--- a/vendor/ramsey/uuid/src/UuidInterface.php
+++ b/vendor/ramsey/uuid/src/UuidInterface.php
@@ -19,6 +19,7 @@ use Ramsey\Uuid\Fields\FieldsInterface;
use Ramsey\Uuid\Type\Hexadecimal;
use Ramsey\Uuid\Type\Integer as IntegerObject;
use Serializable;
+use Stringable;
/**
* A UUID is a universally unique identifier adhering to an agreed-upon
@@ -29,7 +30,8 @@ use Serializable;
interface UuidInterface extends
DeprecatedUuidInterface,
JsonSerializable,
- Serializable
+ Serializable,
+ Stringable
{
/**
* Returns -1, 0, or 1 if the UUID is less than, equal to, or greater than
diff --git a/vendor/ramsey/uuid/src/functions.php b/vendor/ramsey/uuid/src/functions.php
index fa80f4e85..1b3ce00f7 100644
--- a/vendor/ramsey/uuid/src/functions.php
+++ b/vendor/ramsey/uuid/src/functions.php
@@ -136,3 +136,23 @@ function v7(?DateTimeInterface $dateTime = null): string
{
return Uuid::uuid7($dateTime)->toString();
}
+
+/**
+ * Returns a version 8 (custom) UUID
+ *
+ * The bytes provided may contain any value according to your application's
+ * needs. Be aware, however, that other applications may not understand the
+ * semantics of the value.
+ *
+ * @param string $bytes A 16-byte octet string. This is an open blob
+ * of data that you may fill with 128 bits of information. Be aware,
+ * however, bits 48 through 51 will be replaced with the UUID version
+ * field, and bits 64 and 65 will be replaced with the UUID variant. You
+ * MUST NOT rely on these bits for your application needs.
+ *
+ * @return non-empty-string Version 8 UUID as a string
+ */
+function v8(string $bytes): string
+{
+ return Uuid::uuid8($bytes)->toString();
+}
diff --git a/vendor/sabre/vobject/composer.json b/vendor/sabre/vobject/composer.json
index b745b1fa6..b08684bce 100644
--- a/vendor/sabre/vobject/composer.json
+++ b/vendor/sabre/vobject/composer.json
@@ -34,7 +34,7 @@
"require" : {
"php" : "^7.1 || ^8.0",
"ext-mbstring" : "*",
- "sabre/xml" : "^2.1"
+ "sabre/xml" : "^2.1 || ^3.0 || ^4.0"
},
"require-dev" : {
"friendsofphp/php-cs-fixer": "~2.17.1",
diff --git a/vendor/sabre/vobject/lib/Component.php b/vendor/sabre/vobject/lib/Component.php
index a929387a3..ca82ad49b 100644
--- a/vendor/sabre/vobject/lib/Component.php
+++ b/vendor/sabre/vobject/lib/Component.php
@@ -368,7 +368,7 @@ class Component extends Node
*
* @param Xml\Writer $writer XML writer
*/
- public function xmlSerialize(Xml\Writer $writer)
+ public function xmlSerialize(Xml\Writer $writer): void
{
$components = [];
$properties = [];
diff --git a/vendor/sabre/vobject/lib/Component/VCard.php b/vendor/sabre/vobject/lib/Component/VCard.php
index 90a6df72f..82fab82bb 100644
--- a/vendor/sabre/vobject/lib/Component/VCard.php
+++ b/vendor/sabre/vobject/lib/Component/VCard.php
@@ -473,7 +473,7 @@ class VCard extends VObject\Document
*
* @param Xml\Writer $writer XML writer
*/
- public function xmlSerialize(Xml\Writer $writer)
+ public function xmlSerialize(Xml\Writer $writer): void
{
$propertiesByGroup = [];
diff --git a/vendor/sabre/vobject/lib/Node.php b/vendor/sabre/vobject/lib/Node.php
index 2041b2ac7..852ffced0 100644
--- a/vendor/sabre/vobject/lib/Node.php
+++ b/vendor/sabre/vobject/lib/Node.php
@@ -82,7 +82,7 @@ abstract class Node implements \IteratorAggregate, \ArrayAccess, \Countable, \Js
*
* @param Xml\Writer $writer XML writer
*/
- abstract public function xmlSerialize(Xml\Writer $writer);
+ abstract public function xmlSerialize(Xml\Writer $writer): void;
/**
* Call this method on a document if you're done using it.
diff --git a/vendor/sabre/vobject/lib/Parameter.php b/vendor/sabre/vobject/lib/Parameter.php
index c27b2aa47..0f0b5860c 100644
--- a/vendor/sabre/vobject/lib/Parameter.php
+++ b/vendor/sabre/vobject/lib/Parameter.php
@@ -334,7 +334,7 @@ class Parameter extends Node
*
* @param Xml\Writer $writer XML writer
*/
- public function xmlSerialize(Xml\Writer $writer)
+ public function xmlSerialize(Xml\Writer $writer): void
{
foreach (explode(',', $this->value) as $value) {
$writer->writeElement('text', $value);
diff --git a/vendor/sabre/vobject/lib/Parser/XML/Element/KeyValue.php b/vendor/sabre/vobject/lib/Parser/XML/Element/KeyValue.php
index c0bbf0d9b..e01772510 100644
--- a/vendor/sabre/vobject/lib/Parser/XML/Element/KeyValue.php
+++ b/vendor/sabre/vobject/lib/Parser/XML/Element/KeyValue.php
@@ -34,10 +34,8 @@ class KeyValue extends SabreXml\Element\KeyValue
* the next element.
*
* @param XML\Reader $reader
- *
- * @return mixed
*/
- public static function xmlDeserialize(SabreXml\Reader $reader)
+ public static function xmlDeserialize(SabreXml\Reader $reader): array
{
// If there's no children, we don't do anything.
if ($reader->isEmptyElement) {
diff --git a/vendor/sabre/vobject/lib/Property.php b/vendor/sabre/vobject/lib/Property.php
index 56096dafe..f6550246a 100644
--- a/vendor/sabre/vobject/lib/Property.php
+++ b/vendor/sabre/vobject/lib/Property.php
@@ -318,7 +318,7 @@ abstract class Property extends Node
*
* @param Xml\Writer $writer XML writer
*/
- public function xmlSerialize(Xml\Writer $writer)
+ public function xmlSerialize(Xml\Writer $writer): void
{
$parameters = [];
diff --git a/vendor/sabre/vobject/lib/Version.php b/vendor/sabre/vobject/lib/Version.php
index 92882f2f1..63349e47e 100644
--- a/vendor/sabre/vobject/lib/Version.php
+++ b/vendor/sabre/vobject/lib/Version.php
@@ -14,5 +14,5 @@ class Version
/**
* Full version number.
*/
- const VERSION = '4.5.1';
+ public const VERSION = '4.5.3';
}
diff --git a/vendor/smarty/smarty/CHANGELOG.md b/vendor/smarty/smarty/CHANGELOG.md
index e036ce694..899cfd7e7 100644
--- a/vendor/smarty/smarty/CHANGELOG.md
+++ b/vendor/smarty/smarty/CHANGELOG.md
@@ -6,6 +6,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+## [4.3.1] - 2023-03-28
+
+### Security
+- Fixed Cross site scripting vulnerability in Javascript escaping. This addresses CVE-2023-28447.
+
+### Fixed
+- `$smarty->muteUndefinedOrNullWarnings()` now also mutes PHP7 notices for undefined array indexes [#736](https://github.com/smarty-php/smarty/issues/736)
+- `$smarty->muteUndefinedOrNullWarnings()` now treats undefined vars and array access of a null or false variables
+ equivalent across all supported PHP versions
+- `$smarty->muteUndefinedOrNullWarnings()` now allows dereferencing of non-objects across all supported PHP versions [#831](https://github.com/smarty-php/smarty/issues/831)
+- PHP 8.1 deprecation warnings on null strings in modifiers [#834](https://github.com/smarty-php/smarty/pull/834)
+
## [4.3.0] - 2022-11-22
### Added
@@ -14,7 +26,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- Include docs and demo in the releases [#799](https://github.com/smarty-php/smarty/issues/799)
- Using PHP functions as modifiers now triggers a deprecation notice because we will drop support for this in the next major release [#813](https://github.com/smarty-php/smarty/issues/813)
-- Dropped remaining references to removed PHP-support in Smarty 4 from docs, lexer and security class. [#816](https://github.com/smarty-php/smarty/issues/816)
+- Dropped remaining references to removed PHP-support in Smarty 4 from docs, lexer and security class. [#816](https://github.com/smarty-php/smarty/issues/816)
- Support umask when writing (template) files and set dir permissions to 777 [#548](https://github.com/smarty-php/smarty/issues/548) [#819](https://github.com/smarty-php/smarty/issues/819)
### Fixed
@@ -27,7 +39,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Adapt Smarty upper/lower functions to be codesafe (e.g. for Turkish locale) [#586](https://github.com/smarty-php/smarty/pull/586)
- Bug fix for underscore and limited length in template name in custom resources [#581](https://github.com/smarty-php/smarty/pull/581)
-
## [4.2.1] - 2022-09-14
### Security
diff --git a/vendor/smarty/smarty/SECURITY.md b/vendor/smarty/smarty/SECURITY.md
index ae9d5dc8a..80b5ef5c8 100644
--- a/vendor/smarty/smarty/SECURITY.md
+++ b/vendor/smarty/smarty/SECURITY.md
@@ -5,15 +5,16 @@
Smarty currently supports the latest minor version of Smarty 3 and Smarty 4.
| Version | Supported |
-| ------- | ------------------ |
-| 4.0.x | :white_check_mark: |
+|---------|--------------------|
+| 4.3.x | :white_check_mark: |
| 3.1.x | :white_check_mark: |
| < 3.1 | :x: |
## Reporting a Vulnerability
- If you have discovered a security issue with Smarty, please contact us at mail [at] simonwisselink.nl. Do not
- disclose your findings publicly and PLEASE PLEASE do not file an Issue.
+If you have discovered a security issue with Smarty, please contact us at mail [at] simonwisselink.nl. Do not
+disclose your findings publicly and **PLEASE** do not file an Issue (because that would disclose your findings
+publicly.)
We will try to confirm the vulnerability and develop a fix if appropriate. When we release the fix, we will publish
a security release. Please let us know if you want to be credited.
diff --git a/vendor/smarty/smarty/docs/appendixes/tips.md b/vendor/smarty/smarty/docs/appendixes/tips.md
index cdcc56b19..3c6e6b96f 100644
--- a/vendor/smarty/smarty/docs/appendixes/tips.md
+++ b/vendor/smarty/smarty/docs/appendixes/tips.md
@@ -1,23 +1,22 @@
-Tips & Tricks {#tips}
-=============
+# Tips & Tricks
-Blank Variable Handling {#tips.blank.var.handling}
-=======================
+## Blank Variable Handling
There may be times when you want to print a default value for an empty
variable instead of printing nothing, such as printing `&nbsp;` so that
html table backgrounds work properly. Many would use an
-[`{if}`](#language.function.if) statement to handle this, but there is a
+[`{if}`](../designers/language-builtin-functions/language-function-if.md) statement to handle this, but there is a
shorthand way with Smarty, using the
-[`default`](#language.modifier.default) variable modifier.
+[`default`](../designers/language-modifiers/language-modifier-default.md) variable modifier.
> **Note**
>
> "Undefined variable" errors will show an E\_NOTICE if not disabled in
-> PHP\'s [`error_reporting()`](&url.php-manual;error_reporting) level or
-> Smarty\'s [`$error_reporting`](#variable.error.reporting) property and
+> PHP's [`error_reporting()`](https://www.php.net/error_reporting) level or
+> Smarty's [`$error_reporting`](../programmers/api-variables/variable-error-reporting.md) property and
> a variable had not been assigned to Smarty.
+```smarty
{* the long way *}
{if $title eq ''}
@@ -29,19 +28,18 @@ shorthand way with Smarty, using the
{* the short way *}
{$title|default:'&nbsp;'}
-
+```
-See also [`default`](#language.modifier.default) modifier and [default
-variable handling](#tips.default.var.handling).
+See also [`default`](../designers/language-modifiers/language-modifier-default.md) modifier and [default
+variable handling](#default-variable-handling).
-Default Variable Handling {#tips.default.var.handling}
-=========================
+## Default Variable Handling
If a variable is used frequently throughout your templates, applying the
-[`default`](#language.modifier.default) modifier every time it is
+[`default`](../designers/language-modifiers/language-modifier-default.md) modifier every time it is
mentioned can get a bit ugly. You can remedy this by assigning the
variable its default value with the
-[`{assign}`](#language.function.assign) function.
+[`{assign}`](../designers/language-builtin-functions/language-function-assign.md) function.
{* do this somewhere at the top of your template *}
@@ -52,150 +50,156 @@ variable its default value with the
-See also [`default`](#language.modifier.default) modifier and [blank
-variable handling](#tips.blank.var.handling).
+See also [`default`](../designers/language-modifiers/language-modifier-default.md) modifier and [blank
+variable handling](#blank-variable-handling).
-Passing variable title to header template {#tips.passing.vars}
-=========================================
+## Passing variable title to header template
When the majority of your templates use the same headers and footers, it
is common to split those out into their own templates and
-[`{include}`](#language.function.include) them. But what if the header
+[`{include}`](../designers/language-builtin-functions/language-function-include.md) them. But what if the header
needs to have a different title, depending on what page you are coming
from? You can pass the title to the header as an
-[attribute](#language.syntax.attributes) when it is included.
+[attribute](../designers/language-basic-syntax/language-syntax-attributes.md) when it is included.
`mainpage.tpl` - When the main page is drawn, the title of "Main Page"
is passed to the `header.tpl`, and will subsequently be used as the
title.
+```smarty
- {include file='header.tpl' title='Main Page'}
- {* template body goes here *}
- {include file='footer.tpl'}
+{include file='header.tpl' title='Main Page'}
+{* template body goes here *}
+{include file='footer.tpl'}
-
+```
`archives.tpl` - When the archives page is drawn, the title will be
"Archives". Notice in the archive example, we are using a variable from
the `archives_page.conf` file instead of a hard coded variable.
+```smarty
- {config_load file='archive_page.conf'}
+{config_load file='archive_page.conf'}
- {include file='header.tpl' title=#archivePageTitle#}
- {* template body goes here *}
- {include file='footer.tpl'}
+{include file='header.tpl' title=#archivePageTitle#}
+{* template body goes here *}
+{include file='footer.tpl'}
+```
`header.tpl` - Notice that "Smarty News" is printed if the `$title`
-variable is not set, using the [`default`](#language.modifier.default)
+variable is not set, using the [`default`](../designers/language-modifiers/language-modifier-default.md)
variable modifier.
+```smarty
- <html>
+<html>
<head>
- <title>{$title|default:'Smarty News'}</title>
+ <title>{$title|default:'Smarty News'}</title>
</head>
- <body>
-
+<body>
+
+```
`footer.tpl`
+```smarty
</body>
- </html>
+</html>
+```
-Dates {#tips.dates}
-=====
+## Dates
As a rule of thumb, always pass dates to Smarty as
-[timestamps](&url.php-manual;time). This allows template designers to
-use the [`date_format`](#language.modifier.date.format) modifier for
+[timestamps](https://www.php.net/time). This allows template designers to
+use the [`date_format`](../designers/language-modifiers/language-modifier-date-format.md) modifier for
full control over date formatting, and also makes it easy to compare
dates if necessary.
-
- {$startDate|date_format}
-
+```smarty
+{$startDate|date_format}
+```
This will output:
+```
+Jan 4, 2009
+```
- Jan 4, 2009
-
-
+```smarty
+{$startDate|date_format:"%Y/%m/%d"}
- {$startDate|date_format:"%Y/%m/%d"}
-
+```
This will output:
-
- 2009/01/04
-
-
+```
+2009/01/04
+```
Dates can be compared in the template by timestamps with:
+```smarty
- {if $order_date < $invoice_date}
- ...do something..
- {/if}
+{if $order_date < $invoice_date}
+ ...do something..
+{/if}
-
+```
-When using [`{html_select_date}`](#language.function.html.select.date)
+When using [`{html_select_date}`](../designers/language-custom-functions/language-function-html-select-date.md)
in a template, the programmer will most likely want to convert the
output from the form back into timestamp format. Here is a function to
help you with that.
+```php
- <?php
+<?php
- // this assumes your form elements are named
- // startDate_Day, startDate_Month, startDate_Year
+// this assumes your form elements are named
+// startDate_Day, startDate_Month, startDate_Year
- $startDate = makeTimeStamp($startDate_Year, $startDate_Month, $startDate_Day);
+$startDate = makeTimeStamp($startDate_Year, $startDate_Month, $startDate_Day);
- function makeTimeStamp($year='', $month='', $day='')
- {
- if(empty($year)) {
- $year = strftime('%Y');
- }
- if(empty($month)) {
- $month = strftime('%m');
- }
- if(empty($day)) {
- $day = strftime('%d');
- }
+function makeTimeStamp($year='', $month='', $day='')
+{
+ if(empty($year)) {
+ $year = strftime('%Y');
+ }
+ if(empty($month)) {
+ $month = strftime('%m');
+ }
+ if(empty($day)) {
+ $day = strftime('%d');
+ }
- return mktime(0, 0, 0, $month, $day, $year);
- }
- ?>
+ return mktime(0, 0, 0, $month, $day, $year);
+}
-
+```
+
-See also [`{html_select_date}`](#language.function.html.select.date),
-[`{html_select_time}`](#language.function.html.select.time),
-[`date_format`](#language.modifier.date.format) and
-[`$smarty.now`](#language.variables.smarty.now),
+See also [`{html_select_date}`](../designers/language-custom-functions/language-function-html-select-date.md),
+[`{html_select_time}`](../designers/language-custom-functions/language-function-html-select-time.md),
+[`date_format`](../designers/language-modifiers/language-modifier-date-format.md) and
+[`$smarty.now`](../designers/language-variables/language-variables-smarty.md#smarty-now),
-Componentized Templates {#tips.componentized.templates}
-=======================
+## Componentized Templates
Traditionally, programming templates into your applications goes as
follows: First, you accumulate your variables within your PHP
application, (maybe with database queries.) Then, you instantiate your
-Smarty object, [`assign()`](#api.assign) the variables and
-[`display()`](#api.display) the template. So lets say for example we
+Smarty object, [`assign()`](../programmers/api-functions/api-assign.md) the variables and
+[`display()`](../programmers/api-functions/api-display.md) the template. So lets say for example we
have a stock ticker on our template. We would collect the stock data in
our application, then assign these variables in the template and display
it. Now wouldn't it be nice if you could add this stock ticker to any
@@ -206,58 +210,59 @@ You can do this by writing a custom plugin for fetching the content and
assigning it to a template variable.
`function.load_ticker.php` - drop file in
-[`$plugins directory`](#variable.plugins.dir)
+[`$plugins directory`](../programmers/api-variables/variable-plugins-dir.md)
+```php
- <?php
+<?php
- // setup our function for fetching stock data
- function fetch_ticker($symbol)
- {
- // put logic here that fetches $ticker_info
- // from some ticker resource
- return $ticker_info;
- }
+// setup our function for fetching stock data
+function fetch_ticker($symbol)
+{
+ // put logic here that fetches $ticker_info
+ // from some ticker resource
+ return $ticker_info;
+}
- function smarty_function_load_ticker($params, $smarty)
- {
- // call the function
- $ticker_info = fetch_ticker($params['symbol']);
+function smarty_function_load_ticker($params, $smarty)
+{
+ // call the function
+ $ticker_info = fetch_ticker($params['symbol']);
- // assign template variable
- $smarty->assign($params['assign'], $ticker_info);
- }
- ?>
+ // assign template variable
+ $smarty->assign($params['assign'], $ticker_info);
+}
-
+```
`index.tpl`
+```smarty
- {load_ticker symbol='SMARTY' assign='ticker'}
+{load_ticker symbol='SMARTY' assign='ticker'}
- Stock Name: {$ticker.name} Stock Price: {$ticker.price}
+Stock Name: {$ticker.name} Stock Price: {$ticker.price}
-
+```
-See also: [`{include}`](#language.function.include).
+See also: [`{include}`](../designers/language-builtin-functions/language-function-include.md).
-Obfuscating E-mail Addresses {#tips.obfuscating.email}
-============================
+## Obfuscating E-mail Addresses
Do you ever wonder how your email address gets on so many spam mailing
lists? One way spammers collect email addresses is from web pages. To
help combat this problem, you can make your email address show up in
scrambled javascript in the HTML source, yet it it will look and work
correctly in the browser. This is done with the
-[`{mailto}`](#language.function.mailto) plugin.
+[`{mailto}`](../designers/language-custom-functions/language-function-mailto.md) plugin.
+```smarty
- <div id="contact">Send inquiries to
- {mailto address=$EmailAddress encode='javascript' subject='Hello'}
- </div>
+<div id="contact">Send inquiries to
+{mailto address=$EmailAddress encode='javascript' subject='Hello'}
+</div>
-
+```
> **Note**
>
@@ -265,5 +270,5 @@ correctly in the browser. This is done with the
> his e-mail collector to decode these values, but not likely\....
> hopefully..yet \... wheres that quantum computer :-?.
-See also [`escape`](#language.modifier.escape) modifier and
-[`{mailto}`](#language.function.mailto).
+See also [`escape`](../designers/language-modifiers/language-modifier-escape.md) modifier and
+[`{mailto}`](../designers/language-custom-functions/language-function-mailto.md).
diff --git a/vendor/smarty/smarty/docs/appendixes/troubleshooting.md b/vendor/smarty/smarty/docs/appendixes/troubleshooting.md
index d605dd2bd..8364534af 100644
--- a/vendor/smarty/smarty/docs/appendixes/troubleshooting.md
+++ b/vendor/smarty/smarty/docs/appendixes/troubleshooting.md
@@ -1,20 +1,18 @@
-Troubleshooting
-===============
+# Troubleshooting
-Smarty/PHP errors {#smarty.php.errors}
-=================
+## Smarty/PHP errors
Smarty can catch many errors such as missing tag attributes or malformed
variable names. If this happens, you will see an error similar to the
following:
+```
+Warning: Smarty: [in index.tpl line 4]: syntax error: unknown tag - '%blah'
+ in /path/to/smarty/Smarty.class.php on line 1041
- Warning: Smarty: [in index.tpl line 4]: syntax error: unknown tag - '%blah'
- in /path/to/smarty/Smarty.class.php on line 1041
-
- Fatal error: Smarty: [in index.tpl line 28]: syntax error: missing section name
- in /path/to/smarty/Smarty.class.php on line 1041
-
+Fatal error: Smarty: [in index.tpl line 28]: syntax error: missing section name
+ in /path/to/smarty/Smarty.class.php on line 1041
+```
Smarty shows you the template name, the line number and the error. After
@@ -25,96 +23,82 @@ There are certain errors that Smarty cannot catch, such as missing close
tags. These types of errors usually end up in PHP compile-time parsing
errors.
-
- Parse error: parse error in /path/to/smarty/templates_c/index.tpl.php on line 75
-
-
-
+`Parse error: parse error in /path/to/smarty/templates_c/index.tpl.php on line 75`
+
When you encounter a PHP parsing error, the error line number will
correspond to the compiled PHP script, NOT the template itself. Usually
you can look at the template and spot the syntax error. Here are some
common things to look for: missing close tags for
-[`{if}{/if}`](#language.function.if) or
-[`{section}{/section}`](#language.function.if), or syntax of logic
-within an `{if}` tag. If you can\'t find the error, you might have to
+[`{if}{/if}`](../designers/language-builtin-functions/language-function-if.md) or
+[`{section}{/section}`](../designers/language-builtin-functions/language-function-section.md),
+or syntax of logic within an `{if}` tag. If you can\'t find the error, you might have to
open the compiled PHP file and go to the line number to figure out where
the corresponding error is in the template.
+```
+Warning: Smarty error: unable to read resource: "index.tpl" in...
+```
+or
+```
+Warning: Smarty error: unable to read resource: "site.conf" in...
+```
- Warning: Smarty error: unable to read resource: "index.tpl" in...
- or
- Warning: Smarty error: unable to read resource: "site.conf" in...
-
-- The [`$template_dir`](#variable.template.dir) is incorrect, doesn\'t
+- The [`$template_dir`](../programmers/api-variables/variable-template-dir.md) is incorrect, doesn't
exist or the file `index.tpl` is not in the `templates/` directory
-- A [`{config_load}`](#language.function.config.load) function is
- within a template (or [`configLoad()`](#api.config.load) has been
- called) and either [`$config_dir`](#variable.config.dir) is
+- A [`{config_load}`](../designers/language-builtin-functions/language-function-config-load.md) function is
+ within a template (or [`configLoad()`](../programmers/api-functions/api-config-load.md) has been
+ called) and either [`$config_dir`](../programmers/api-variables/variable-config-dir.md) is
incorrect, does not exist or `site.conf` is not in the directory.
-<!-- -->
+```
+Fatal error: Smarty error: the $compile_dir 'templates_c' does not exist,
+or is not a directory...
+```
-
- Fatal error: Smarty error: the $compile_dir 'templates_c' does not exist,
- or is not a directory...
-
-
-
-- Either the [`$compile_dir`](#variable.compile.dir)is incorrectly
+- Either the [`$compile_dir`](../programmers/api-variables/variable-compile-dir.md)is incorrectly
set, the directory does not exist, or `templates_c` is a file and
not a directory.
-<!-- -->
-
-
- Fatal error: Smarty error: unable to write to $compile_dir '....
-
+```
+Fatal error: Smarty error: unable to write to $compile_dir '....
+```
-- The [`$compile_dir`](#variable.compile.dir) is not writable by the
+- The [`$compile_dir`](../programmers/api-variables/variable-compile-dir.md) is not writable by the
web server. See the bottom of the [installing
- smarty](#installing.smarty.basic) page for more about permissions.
-
-<!-- -->
-
-
- Fatal error: Smarty error: the $cache_dir 'cache' does not exist,
- or is not a directory. in /..
+ smarty](../getting-started.md#installation) page for more about permissions.
+```
+Fatal error: Smarty error: the $cache_dir 'cache' does not exist,
+or is not a directory. in /..
+```
-
-- This means that [`$caching`](#variable.caching) is enabled and
- either; the [`$cache_dir`](#variable.cache.dir) is incorrectly set,
+- This means that [`$caching`](../programmers/api-variables/variable-caching.md) is enabled and
+ either; the [`$cache_dir`](../programmers/api-variables/variable-cache-dir.md) is incorrectly set,
the directory does not exist, or `cache/` is a file and not a
directory.
-<!-- -->
-
+```
+Fatal error: Smarty error: unable to write to $cache_dir '/...
+```
- Fatal error: Smarty error: unable to write to $cache_dir '/...
-
-
-
-- This means that [`$caching`](#variable.caching) is enabled and the
- [`$cache_dir`](#variable.cache.dir) is not writable by the web
+- This means that [`$caching`](../programmers/api-variables/variable-caching.md) is enabled and the
+ [`$cache_dir`](../programmers/api-variables/variable-cache-dir.md) is not writable by the web
server. See the bottom of the [installing
- smarty](#installing.smarty.basic) page for permissions.
-
-<!-- -->
-
-
- Warning: filemtime(): stat failed for /path/to/smarty/cache/3ab50a623e65185c49bf17c63c90cc56070ea85c.one.tpl.php
- in /path/to/smarty/libs/sysplugins/smarty_resource.php
+ smarty](../getting-started.md#installation) page for permissions.
-
+```
+Warning: filemtime(): stat failed for /path/to/smarty/cache/3ab50a623e65185c49bf17c63c90cc56070ea85c.one.tpl.php
+in /path/to/smarty/libs/sysplugins/smarty_resource.php
+```
- This means that your application registered a custom error handler
- (using [set\_error\_handler()](&url.php-manual;set_error_handler))
+ (using [set_error_handler()](https://www.php.net/set_error_handler))
which is not respecting the given `$errno` as it should. If, for
whatever reason, this is the desired behaviour of your custom error
handler, please call
- [`muteExpectedErrors()`](#api.mute.expected.errors) after you\'ve
+ [`muteExpectedErrors()`](../programmers/api-functions/api-mute-expected-errors.md) after you've
registered your custom error handler.
-See also [debugging](#chapter.debugging.console).
+See also [debugging](../designers/chapter-debugging-console.md).
diff --git a/vendor/smarty/smarty/docs/designers/chapter-debugging-console.md b/vendor/smarty/smarty/docs/designers/chapter-debugging-console.md
index 6429b4876..6704fce2f 100644
--- a/vendor/smarty/smarty/docs/designers/chapter-debugging-console.md
+++ b/vendor/smarty/smarty/docs/designers/chapter-debugging-console.md
@@ -1,5 +1,4 @@
-Debugging Console {#chapter.debugging.console}
-=================
+# Debugging Console
There is a debugging console included with Smarty. The console informs
you of all the [included](./language-builtin-functions/language-function-include.md) templates,
diff --git a/vendor/smarty/smarty/docs/designers/config-files.md b/vendor/smarty/smarty/docs/designers/config-files.md
index c840e3a67..1e1db2d5a 100644
--- a/vendor/smarty/smarty/docs/designers/config-files.md
+++ b/vendor/smarty/smarty/docs/designers/config-files.md
@@ -1,5 +1,4 @@
-Config Files {#config.files}
-============
+# Config Files
Config files are handy for designers to manage global template variables
from one file. One example is template colors. Normally if you wanted to
@@ -8,39 +7,38 @@ each and every template file and change the colors. With a config file,
the colors can be kept in one place, and only one file needs to be
updated.
+```ini
+# global variables
+pageTitle = "Main Menu"
+bodyBgColor = #000000
+tableBgColor = #000000
+rowBgColor = #00ff00
- # global variables
- pageTitle = "Main Menu"
- bodyBgColor = #000000
- tableBgColor = #000000
- rowBgColor = #00ff00
+[Customer]
+pageTitle = "Customer Info"
- [Customer]
- pageTitle = "Customer Info"
-
- [Login]
- pageTitle = "Login"
- focus = "username"
- Intro = """This is a value that spans more
- than one line. you must enclose
- it in triple quotes."""
-
- # hidden section
- [.Database]
- host=my.example.com
- db=ADDRESSBOOK
- user=php-user
- pass=foobar
+[Login]
+pageTitle = "Login"
+focus = "username"
+Intro = """This is a value that spans more
+ than one line. you must enclose
+ it in triple quotes."""
+# hidden section
+[.Database]
+host=my.example.com
+db=ADDRESSBOOK
+user=php-user
+pass=foobar
+```
Values of [config file variables](./language-variables/language-config-variables.md) can be in
quotes, but not necessary. You can use either single or double quotes.
If you have a value that spans more than one line, enclose the entire
-value with triple quotes (\"\"\"). You can put comments into config
+value with triple quotes \("""\). You can put comments into config
files by any syntax that is not a valid config file syntax. We recommend
-using a `
- #` (hash) at the beginning of the line.
+using a `#` (hash) at the beginning of the line.
The example config file above has two sections. Section names are
enclosed in \[brackets\]. Section names can be arbitrary strings not
@@ -54,8 +52,7 @@ the last one will be used unless
[`$config_overwrite`](../programmers/api-variables/variable-config-overwrite.md) is disabled.
Config files are loaded into templates with the built-in template
-function [`
- {config_load}`](./language-builtin-functions/language-function-config-load.md) or the API
+function [`{config_load}`](./language-builtin-functions/language-function-config-load.md) or the API
[`configLoad()`](../programmers/api-functions/api-config-load.md) function.
You can hide variables or entire sections by prepending the variable
diff --git a/vendor/smarty/smarty/docs/designers/language-basic-syntax.md b/vendor/smarty/smarty/docs/designers/language-basic-syntax/index.md
index 2509857c3..c0a12a9be 100644
--- a/vendor/smarty/smarty/docs/designers/language-basic-syntax.md
+++ b/vendor/smarty/smarty/docs/designers/language-basic-syntax/index.md
@@ -1,8 +1,7 @@
-Basic Syntax
-============
+# Basic Syntax
A simple Smarty template could look like this:
-```html
+```smarty
<h1>{$title|escape}</h1>
<ul>
{foreach $cities as $city}
@@ -15,7 +14,7 @@ A simple Smarty template could look like this:
All Smarty template tags are enclosed within delimiters. By default
these are `{` and `}`, but they can be
-[changed](../programmers/api-variables/variable-left-delimiter.md).
+[changed](../../programmers/api-variables/variable-left-delimiter.md).
For the examples in this manual, we will assume that you are using the
default delimiters. In Smarty, all content outside of delimiters is
@@ -24,10 +23,11 @@ template tags, it attempts to interpret them, and displays the
appropriate output in their place.
The basis components of the Smarty syntax are:
-- [Comments](./language-basic-syntax/language-syntax-comments.md)
-- [Variables](./language-basic-syntax/language-syntax-variables.md)
-- [Functions](./language-basic-syntax/language-syntax-functions.md)
-- [Attributes](./language-basic-syntax/language-syntax-attributes.md)
-- [Quotes](./language-basic-syntax/language-syntax-quotes.md)
-- [Math](./language-basic-syntax/language-math.md)
-- [Escaping](./language-basic-syntax/language-escaping.md)
+
+- [Comments](language-syntax-comments.md)
+- [Variables](language-syntax-variables.md)
+- [Functions](language-syntax-functions.md)
+- [Attributes](language-syntax-attributes.md)
+- [Quotes](language-syntax-quotes.md)
+- [Math](language-math.md)
+- [Escaping](language-escaping.md)
diff --git a/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-escaping.md b/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-escaping.md
index a62e7de89..4c75e09e6 100644
--- a/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-escaping.md
+++ b/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-escaping.md
@@ -1,11 +1,10 @@
-Escaping Smarty Parsing {#language.escaping}
-=======================
+# Escaping Smarty parsing
It is sometimes desirable or even necessary to have Smarty ignore
sections it would otherwise parse. A classic example is embedding
Javascript or CSS code in a template. The problem arises as those
languages use the { and } characters which are also the default
-[delimiters](#language.function.ldelim) for Smarty.
+[delimiters](../language-builtin-functions/language-function-ldelim.md) for Smarty.
> **Note**
>
@@ -17,37 +16,37 @@ languages use the { and } characters which are also the default
In Smarty templates, the { and } braces will be ignored so long as they
are surrounded by white space. This behavior can be disabled by setting
-the Smarty class variable [`$auto_literal`](#variable.auto.literal) to
+the Smarty class variable [`$auto_literal`](../../programmers/api-variables/variable-auto-literal.md) to
false.
-
- <script>
- // the following braces are ignored by Smarty
- // since they are surrounded by whitespace
- function foobar {
- alert('foobar!');
- }
- // this one will need literal escapement
- {literal}
- function bazzy {alert('foobar!');}
- {/literal}
- </script>
-
+## Examples
+
+```smarty
+<script>
+ // the following braces are ignored by Smarty
+ // since they are surrounded by whitespace
+ function foobar {
+ alert('foobar!');
+ }
+ // this one will need literal escapement
+ {literal}
+ function bazzy {alert('foobar!');}
+ {/literal}
+</script>
+```
-
-[`{literal}..{/literal}`](#language.function.literal) blocks are used
+[`{literal}..{/literal}`](../language-builtin-functions/language-function-literal.md) blocks are used
for escaping blocks of template logic. You can also escape the braces
individually with
-[`{ldelim}`](#language.function.ldelim),[`{rdelim}`](#language.function.ldelim)
-tags or
-[`{$smarty.ldelim}`,`{$smarty.rdelim}`](#language.variables.smarty.ldelim)
+[`{ldelim}`, `{rdelim}`](../language-builtin-functions/language-function-ldelim.md) tags or
+[`{$smarty.ldelim}`,`{$smarty.rdelim}`](../language-variables/language-variables-smarty.md#smartyldelim-smartyrdelim-languagevariablessmartyldelim)
variables.
-Smarty\'s default delimiters { and } cleanly represent presentational
-content. However if another set of delimiters suit your needs better,
-you can change them with Smarty\'s
-[`$left_delimiter`](#variable.left.delimiter) and
-[`$right_delimiter`](#variable.right.delimiter) values.
+Smarty's default delimiters { and } cleanly represent presentational
+content. However, if another set of delimiters suit your needs better,
+you can change them with Smarty's
+[`$left_delimiter`](../../programmers/api-variables/variable-left-delimiter.md) and
+[`$right_delimiter`](../../programmers/api-variables/variable-right-delimiter.md) values.
> **Note**
>
@@ -55,30 +54,26 @@ you can change them with Smarty\'s
> sure to clear out cache and compiled files if you decide to change
> them.
+```php
+<?php
- <?php
-
- $smarty->left_delimiter = '<!--{';
- $smarty->right_delimiter = '}-->';
-
- $smarty->assign('foo', 'bar');
- $smarty->assign('name', 'Albert');
- $smarty->display('example.tpl');
+$smarty->left_delimiter = '<!--{';
+$smarty->right_delimiter = '}-->';
- ?>
-
-
+$smarty->assign('foo', 'bar');
+$smarty->assign('name', 'Albert');
+$smarty->display('example.tpl');
+```
Where the template is:
-
- Welcome <!--{$name}--> to Smarty
- <script language="javascript">
- var foo = <!--{$foo}-->;
- function dosomething() {
- alert("foo is " + foo);
- }
- dosomething();
- </script>
-
-
+```smarty
+Welcome <!--{$name}--> to Smarty
+<script language="javascript">
+ var foo = <!--{$foo}-->;
+ function dosomething() {
+ alert("foo is " + foo);
+ }
+ dosomething();
+</script>
+```
diff --git a/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-math.md b/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-math.md
index dc78a3512..a9a43efd9 100644
--- a/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-math.md
+++ b/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-math.md
@@ -1,25 +1,24 @@
-Math {#language.math}
-====
+# Math
Math can be applied directly to variable values.
+## Examples
+```smarty
+{$foo+1}
- {$foo+1}
+{$foo*$bar}
- {$foo*$bar}
+{* some more complicated examples *}
- {* some more complicated examples *}
+{$foo->bar-$bar[1]*$baz->foo->bar()-3*7}
- {$foo->bar-$bar[1]*$baz->foo->bar()-3*7}
+{if ($foo+$bar.test%$baz*134232+10+$b+10)}
- {if ($foo+$bar.test%$baz*134232+10+$b+10)}
-
- {$foo|truncate:"`$fooTruncCount/$barTruncFactor-1`"}
-
- {assign var="foo" value="`$foo+$bar`"}
+{$foo|truncate:"`$fooTruncCount/$barTruncFactor-1`"}
+{assign var="foo" value="`$foo+$bar`"}
+```
-
> **Note**
>
> Although Smarty can handle some very complex expressions and syntax,
diff --git a/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-attributes.md b/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-attributes.md
index 417ac9727..41f6c458d 100644
--- a/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-attributes.md
+++ b/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-attributes.md
@@ -1,7 +1,6 @@
-Attributes {#language.syntax.attributes}
-==========
+# Attributes
-Most of the [functions](#language.syntax.functions) take attributes that
+Most of the [functions](./language-syntax-functions.md) take attributes that
specify or modify their behavior. Attributes to Smarty functions are
much like HTML attributes. Static values don't have to be enclosed in
quotes, but it is required for literal strings. Variables with or
@@ -12,35 +11,35 @@ Some attributes require boolean values (TRUE or FALSE). These can be
specified as `true` and `false`. If an attribute has no value assigned
it gets the default boolean value of true.
+## Examples
+```smarty
+{include file="header.tpl"}
- {include file="header.tpl"}
+{include file="header.tpl" nocache} // is equivalent to nocache=true
- {include file="header.tpl" nocache} // is equivalent to nocache=true
+{include file="header.tpl" attrib_name="attrib value"}
- {include file="header.tpl" attrib_name="attrib value"}
+{include file=$includeFile}
- {include file=$includeFile}
+{include file=#includeFile# title="My Title"}
- {include file=#includeFile# title="My Title"}
+{assign var=foo value={counter}} // plugin result
- {assign var=foo value={counter}} // plugin result
+{assign var=foo value=substr($bar,2,5)} // PHP function result
- {assign var=foo value=substr($bar,2,5)} // PHP function result
+{assign var=foo value=$bar|strlen} // using modifier
- {assign var=foo value=$bar|strlen} // using modifier
+{assign var=foo value=$buh+$bar|strlen} // more complex expression
- {assign var=foo value=$buh+$bar|strlen} // more complex expression
+{html_select_date display_days=true}
- {html_select_date display_days=true}
-
- {mailto address="smarty@example.com"}
-
- <select name="company_id">
- {html_options options=$companies selected=$company_id}
- </select>
+{mailto address="smarty@example.com"}
+<select name="company_id">
+ {html_options options=$companies selected=$company_id}
+</select>
+```
-
> **Note**
>
> Although Smarty can handle some very complex expressions and syntax,
diff --git a/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-comments.md b/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-comments.md
index 43104dbb6..7052c20ef 100644
--- a/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-comments.md
+++ b/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-comments.md
@@ -1,27 +1,25 @@
-Comments {#language.syntax.comments}
-========
+# Comments
Template comments are surrounded by asterisks, and that is surrounded by
-the [delimiter](#variable.left.delimiter) tags like so:
+the [delimiter](../../programmers/api-variables/variable-left-delimiter.md) tags like so:
-::: {.informalexample}
+## Examples
- {* this is a comment *}
-
-
-:::
+```smarty
+{* this is a comment *}
+```
Smarty comments are NOT displayed in the final output of the template,
unlike `<!-- HTML comments -->`. These are useful for making internal
notes in the templates which no one will see ;-)
-
- {* I am a Smarty comment, I don't exist in the compiled output *}
- <html>
+```smarty
+{* I am a Smarty comment, I don't exist in the compiled output *}
+<html>
<head>
- <title>{$title}</title>
+ <title>{$title}</title>
</head>
- <body>
+<body>
{* another single line smarty comment *}
<!-- HTML comment that is sent to the browser -->
@@ -66,6 +64,6 @@ notes in the templates which no one will see ;-)
*}
</body>
- </html>
-
+</html>
+```
diff --git a/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-functions.md b/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-functions.md
index 9c8c94049..c3c8c21ce 100644
--- a/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-functions.md
+++ b/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-functions.md
@@ -1,40 +1,40 @@
-Functions {#language.syntax.functions}
-=========
+# Functions
-Every Smarty tag either prints a [variable](#language.variables) or
+Every Smarty tag either prints a [variable](./language-syntax-variables.md) or
invokes some sort of function. These are processed and displayed by
-enclosing the function and its [attributes](#language.syntax.attributes)
+enclosing the function and its [attributes](./language-syntax-attributes.md)
within delimiters like so: `{funcname attr1="val1" attr2="val2"}`.
+## Examples
- {config_load file="colors.conf"}
+```smarty
+{config_load file="colors.conf"}
- {include file="header.tpl"}
- {insert file="banner_ads.tpl" title="My Site"}
+{include file="header.tpl"}
+{insert file="banner_ads.tpl" title="My Site"}
- {if $logged_in}
- Welcome, <span style="color:{#fontColor#}">{$name}!</span>
- {else}
- hi, {$name}
- {/if}
-
- {include file="footer.tpl"}
+{if $logged_in}
+ Welcome, <span style="color:{#fontColor#}">{$name}!</span>
+{else}
+ hi, {$name}
+{/if}
+{include file="footer.tpl"}
+```
-
-- Both [built-in functions](#language.builtin.functions) and [custom
- functions](#language.custom.functions) have the same syntax within
+- Both [built-in functions](../language-builtin-functions/index.md) and [custom
+ functions](../language-custom-functions/index.md) have the same syntax within
templates.
- Built-in functions are the **inner** workings of Smarty, such as
- [`{if}`](#language.function.if),
- [`{section}`](#language.function.section) and
- [`{strip}`](#language.function.strip). There should be no need to
+ [`{if}`](../language-builtin-functions/language-function-if.md),
+ [`{section}`](../language-builtin-functions/language-function-section.md) and
+ [`{strip}`](../language-builtin-functions/language-function-strip.md). There should be no need to
change or modify them.
- Custom functions are **additional** functions implemented via
- [plugins](#plugins). They can be modified to your liking, or you can
- create new ones. [`{html_options}`](#language.function.html.options)
+ [plugins](../../programmers/plugins.md). They can be modified to your liking, or you can
+ create new ones. [`{html_options}`](../language-custom-functions/language-function-html-options.md)
is an example of a custom function.
-See also [`registerPlugin()`](#api.register.plugin)
+See also [`registerPlugin()`](../../programmers/api-functions/api-register-plugin.md)
diff --git a/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-quotes.md b/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-quotes.md
index 6fe185c97..e04e6da76 100644
--- a/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-quotes.md
+++ b/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-quotes.md
@@ -1,55 +1,48 @@
-Embedding Vars in Double Quotes {#language.syntax.quotes}
-===============================
+# Embedding Vars in Double Quotes
-- Smarty will recognize [assigned](#api.assign)
- [variables](#language.syntax.variables) embedded in \"double
- quotes\" so long as the variable name contains only numbers, letters
- and under\_scores. See [naming](&url.php-manual;language.variables)
+- Smarty will recognize [assigned](../../programmers/api-functions/api-assign.md)
+ [variables](./language-syntax-variables.md) embedded in "double
+ quotes" so long as the variable name contains only numbers, letters
+ and under_scores. See [naming](https://www.php.net/language.variables)
for more detail.
- With any other characters, for example a period(.) or
- `$object->reference`, then the variable must be surrounded by
- `` `backticks` ``.
+ `$object->reference`, then the variable must be surrounded by `` `backticks` ``.
-- In addition Smarty3 does allow embedded Smarty tags in double quoted
+- In addition, Smarty does allow embedded Smarty tags in double-quoted
strings. This is useful if you want to include variables with
modifiers, plugin or PHP function results.
-<!-- -->
-
-
- {func var="test $foo test"} // sees $foo
- {func var="test $foo_bar test"} // sees $foo_bar
- {func var="test `$foo[0]` test"} // sees $foo[0]
- {func var="test `$foo[bar]` test"} // sees $foo[bar]
- {func var="test $foo.bar test"} // sees $foo (not $foo.bar)
- {func var="test `$foo.bar` test"} // sees $foo.bar
- {func var="test `$foo.bar` test"|escape} // modifiers outside quotes!
- {func var="test {$foo|escape} test"} // modifiers inside quotes!
- {func var="test {time()} test"} // PHP function result
- {func var="test {counter} test"} // plugin result
- {func var="variable foo is {if !$foo}not {/if} defined"} // Smarty block function
-
-
-
-
- {* will replace $tpl_name with value *}
- {include file="subdir/$tpl_name.tpl"}
-
- {* does NOT replace $tpl_name *}
- {include file='subdir/$tpl_name.tpl'} // vars require double quotes!
-
- {* must have backticks as it contains a dot "." *}
- {cycle values="one,two,`$smarty.config.myval`"}
-
- {* must have backticks as it contains a dot "." *}
- {include file="`$module.contact`.tpl"}
-
- {* can use variable with dot syntax *}
- {include file="`$module.$view`.tpl"}
-
+## Examples
+```smarty
+{func var="test $foo test"} // sees $foo
+{func var="test $foo_bar test"} // sees $foo_bar
+{func var="test `$foo[0]` test"} // sees $foo[0]
+{func var="test `$foo[bar]` test"} // sees $foo[bar]
+{func var="test $foo.bar test"} // sees $foo (not $foo.bar)
+{func var="test `$foo.bar` test"} // sees $foo.bar
+{func var="test `$foo.bar` test"|escape} // modifiers outside quotes!
+{func var="test {$foo|escape} test"} // modifiers inside quotes!
+{func var="test {time()} test"} // PHP function result
+{func var="test {counter} test"} // plugin result
+{func var="variable foo is {if !$foo}not {/if} defined"} // Smarty block function
+
+{* will replace $tpl_name with value *}
+{include file="subdir/$tpl_name.tpl"}
+
+{* does NOT replace $tpl_name *}
+{include file='subdir/$tpl_name.tpl'} // vars require double quotes!
+
+{* must have backticks as it contains a dot "." *}
+{cycle values="one,two,`$smarty.config.myval`"}
+
+{* must have backticks as it contains a dot "." *}
+{include file="`$module.contact`.tpl"}
+
+{* can use variable with dot syntax *}
+{include file="`$module.$view`.tpl"}
+```
-
> **Note**
>
> Although Smarty can handle some very complex expressions and syntax,
@@ -58,4 +51,4 @@ Embedding Vars in Double Quotes {#language.syntax.quotes}
> complex, it may be a good idea to move the bits that do not deal
> explicitly with presentation to PHP by way of plugins or modifiers.
-See also [`escape`](#language.modifier.escape).
+See also [`escape`](../language-modifiers/language-modifier-escape.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-variables.md b/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-variables.md
index 671ad8bb8..c0285d078 100644
--- a/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-variables.md
+++ b/vendor/smarty/smarty/docs/designers/language-basic-syntax/language-syntax-variables.md
@@ -1,99 +1,97 @@
-Variables {#language.syntax.variables}
-=========
+# Variables
-Template variables start with the \$dollar sign. They can contain
+Template variables start with the $dollar sign. They can contain
numbers, letters and underscores, much like a [PHP
-variable](&url.php-manual;language.variables). You can reference arrays
+variable](https://www.php.net/language.variables). You can reference arrays
by index numerically or non-numerically. Also reference object
properties and methods.
-[Config file variables](#language.config.variables) are an exception to
+[Config file variables](../language-variables/language-config-variables.md) are an exception to
the \$dollar syntax and are instead referenced with surrounding
-\#hashmarks\#, or via the
-[`$smarty.config`](#language.variables.smarty.config) variable.
+\#hashmarks\#, or via the [`$smarty.config`](../language-variables/language-variables-smarty.md#smartyconfig-languagevariablessmartyconfig) variable.
+## Examples
- {$foo} <-- displaying a simple variable (non array/object)
- {$foo[4]} <-- display the 5th element of a zero-indexed array
- {$foo.bar} <-- display the "bar" key value of an array, similar to PHP $foo['bar']
- {$foo.$bar} <-- display variable key value of an array, similar to PHP $foo[$bar]
- {$foo->bar} <-- display the object property "bar"
- {$foo->bar()} <-- display the return value of object method "bar"
- {#foo#} <-- display the config file variable "foo"
- {$smarty.config.foo} <-- synonym for {#foo#}
- {$foo[bar]} <-- syntax only valid in a section loop, see {section}
- {assign var=foo value='baa'}{$foo} <-- displays "baa", see {assign}
+```smarty
+{$foo} <-- displaying a simple variable (non array/object)
+{$foo[4]} <-- display the 5th element of a zero-indexed array
+{$foo.bar} <-- display the "bar" key value of an array, similar to PHP $foo['bar']
+{$foo.$bar} <-- display variable key value of an array, similar to PHP $foo[$bar]
+{$foo->bar} <-- display the object property "bar"
+{$foo->bar()} <-- display the return value of object method "bar"
+{#foo#} <-- display the config file variable "foo"
+{$smarty.config.foo} <-- synonym for {#foo#}
+{$foo[bar]} <-- syntax only valid in a section loop, see {section}
+{assign var=foo value='baa'}{$foo} <-- displays "baa", see {assign}
- Many other combinations are allowed
+Many other combinations are allowed
- {$foo.bar.baz}
- {$foo.$bar.$baz}
- {$foo[4].baz}
- {$foo[4].$baz}
- {$foo.bar.baz[4]}
- {$foo->bar($baz,2,$bar)} <-- passing parameters
- {"foo"} <-- static values are allowed
+{$foo.bar.baz}
+{$foo.$bar.$baz}
+{$foo[4].baz}
+{$foo[4].$baz}
+{$foo.bar.baz[4]}
+{$foo->bar($baz,2,$bar)} <-- passing parameters
+{"foo"} <-- static values are allowed
- {* display the server variable "SERVER_NAME" ($_SERVER['SERVER_NAME'])*}
- {$smarty.server.SERVER_NAME}
+{* display the server variable "SERVER_NAME" ($_SERVER['SERVER_NAME'])*}
+{$smarty.server.SERVER_NAME}
- Math and embedding tags:
+Math and embedding tags:
- {$x+$y} // will output the sum of x and y.
- {assign var=foo value=$x+$y} // in attributes
- {$foo[$x+3]} // as array index
- {$foo={counter}+3} // tags within tags
- {$foo="this is message {counter}"} // tags within double quoted strings
+{$x+$y} // will output the sum of x and y.
+{assign var=foo value=$x+$y} // in attributes
+{$foo[$x+3]} // as array index
+{$foo={counter}+3} // tags within tags
+{$foo="this is message {counter}"} // tags within double quoted strings
- Defining Arrays:
+Defining Arrays:
- {assign var=foo value=[1,2,3]}
- {assign var=foo value=['y'=>'yellow','b'=>'blue']}
- {assign var=foo value=[1,[9,8],3]} // can be nested
+{assign var=foo value=[1,2,3]}
+{assign var=foo value=['y'=>'yellow','b'=>'blue']}
+{assign var=foo value=[1,[9,8],3]} // can be nested
- Short variable assignment:
+Short variable assignment:
- {$foo=$bar+2}
- {$foo = strlen($bar)} // function in assignment
- {$foo = myfunct( ($x+$y)*3 )} // as function parameter
- {$foo.bar=1} // assign to specific array element
- {$foo.bar.baz=1}
- {$foo[]=1} // appending to an array
+{$foo=$bar+2}
+{$foo = strlen($bar)} // function in assignment
+{$foo = myfunct( ($x+$y)*3 )} // as function parameter
+{$foo.bar=1} // assign to specific array element
+{$foo.bar.baz=1}
+{$foo[]=1} // appending to an array
- Smarty "dot" syntax (note: embedded {} are used to address ambiguities):
+Smarty "dot" syntax (note: embedded {} are used to address ambiguities):
- {$foo.a.b.c} => $foo['a']['b']['c']
- {$foo.a.$b.c} => $foo['a'][$b]['c'] // with variable index
- {$foo.a.{$b+4}.c} => $foo['a'][$b+4]['c'] // with expression as index
- {$foo.a.{$b.c}} => $foo['a'][$b['c']] // with nested index
+{$foo.a.b.c} => $foo['a']['b']['c']
+{$foo.a.$b.c} => $foo['a'][$b]['c'] // with variable index
+{$foo.a.{$b+4}.c} => $foo['a'][$b+4]['c'] // with expression as index
+{$foo.a.{$b.c}} => $foo['a'][$b['c']] // with nested index
- PHP-like syntax, alternative to "dot" syntax:
+PHP-like syntax, alternative to "dot" syntax:
- {$foo[1]} // normal access
- {$foo['bar']}
- {$foo['bar'][1]}
- {$foo[$x+$x]} // index may contain any expression
- {$foo[$bar[1]]} // nested index
- {$foo[section_name]} // smarty {section} access, not array access!
+{$foo[1]} // normal access
+{$foo['bar']}
+{$foo['bar'][1]}
+{$foo[$x+$x]} // index may contain any expression
+{$foo[$bar[1]]} // nested index
+{$foo[section_name]} // smarty {section} access, not array access!
- Variable variables:
+Variable variables:
- $foo // normal variable
- $foo_{$bar} // variable name containing other variable
- $foo_{$x+$y} // variable name containing expressions
- $foo_{$bar}_buh_{$blar} // variable name with multiple segments
- {$foo_{$x}} // will output the variable $foo_1 if $x has a value of 1.
+$foo // normal variable
+$foo_{$bar} // variable name containing other variable
+$foo_{$x+$y} // variable name containing expressions
+$foo_{$bar}_buh_{$blar} // variable name with multiple segments
+{$foo_{$x}} // will output the variable $foo_1 if $x has a value of 1.
- Object chaining:
+Object chaining:
- {$object->method1($x)->method2($y)}
+{$object->method1($x)->method2($y)}
- Direct PHP function access:
+Direct PHP function access:
- {time()}
-
-
-
+{time()}
+```
> **Note**
>
@@ -104,8 +102,8 @@ the \$dollar syntax and are instead referenced with surrounding
> explicitly with presentation to PHP by way of plugins or modifiers.
Request variables such as `$_GET`, `$_SESSION`, etc are available via
-the reserved [`$smarty`](#language.variables.smarty) variable.
+the reserved [`$smarty`](../language-variables/language-variables-smarty.md) variable.
-See also [`$smarty`](#language.variables.smarty), [config
-variables](#language.config.variables)
-[`{assign}`](#language.function.assign) and [`assign()`](#api.assign).
+See also [`$smarty`](../language-variables/language-variables-smarty.md), [config
+variables](../language-variables/language-config-variables.md)
+[`{assign}`](../language-builtin-functions/language-function-assign.md) and [`assign()`](../../programmers/api-functions/api-assign.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions.md
deleted file mode 100644
index fa6155550..000000000
--- a/vendor/smarty/smarty/docs/designers/language-builtin-functions.md
+++ /dev/null
@@ -1,38 +0,0 @@
-Built-in Functions {#language.builtin.functions}
-==================
-
-## Table of contents
-- [{$var=...}](./language-builtin-functions/language-function-shortform-assign.md)
-- [{append}](./language-builtin-functions/language-function-append.md)
-- [{assign}](./language-builtin-functions/language-function-assign.md)
-- [{block}](./language-builtin-functions/language-function-block.md)
-- [{call}](./language-builtin-functions/language-function-call.md)
-- [{capture}](./language-builtin-functions/language-function-capture.md)
-- [{config_load}](./language-builtin-functions/language-function-config.load)
-- [{debug}](./language-builtin-functions/language-function-debug.md)
-- [{extends}](./language-builtin-functions/language-function-extends.md)
-- [{for}](./language-builtin-functions/language-function-for.md)
-- [{foreach},{foreachelse}](./language-builtin-functions/language-function-foreach.md)
-- [{function}](./language-builtin-functions/language-function-function.md)
-- [{if},{elseif},{else}](./language-builtin-functions/language-function-if.md)
-- [{include}](./language-builtin-functions/language-function-include.md)
-- [{insert}](./language-builtin-functions/language-function-insert.md)
-- [{ldelim},{rdelim}](./language-builtin-functions/language-function-ldelim.md)
-- [{literal}](./language-builtin-functions/language-function-literal.md)
-- [{nocache}](./language-builtin-functions/language-function-nocache.md)
-- [{section},{sectionelse}](./language-builtin-functions/language-function-section.md)
-- [{setfilter}](./language-builtin-functions/language-function-setfilter.md)
-- [{strip}](./language-builtin-functions/language-function-strip.md)
-- [{while}](./language-builtin-functions/language-function-while.md)
-
-Smarty comes with several built-in functions. These built-in functions
-are the integral part of the smarty template engine. They are compiled
-into corresponding inline PHP code for maximum performance.
-
-You cannot create your own [custom
-functions](./language-custom-functions.md) with the same name; and you
-should not need to modify the built-in functions.
-
-A few of these functions have an `assign` attribute which collects the
-result the function to a named template variable instead of being
-output; much like the [`{assign}`](./language-builtin-functions/language-function-assign.md) function.
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/index.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/index.md
new file mode 100644
index 000000000..10dc3a6f0
--- /dev/null
+++ b/vendor/smarty/smarty/docs/designers/language-builtin-functions/index.md
@@ -0,0 +1,35 @@
+# Built-in Functions
+
+Smarty comes with several built-in functions. These built-in functions
+are the integral part of the smarty template engine. They are compiled
+into corresponding inline PHP code for maximum performance.
+
+You cannot create your own [custom functions](../language-custom-functions/index.md) with the same name; and you
+should not need to modify the built-in functions.
+
+A few of these functions have an `assign` attribute which collects the
+result the function to a named template variable instead of being
+output; much like the [`{assign}`](language-function-assign.md) function.
+
+- [{append}](language-function-append.md)
+- [{assign} or {$var=...}](language-function-assign.md)
+- [{block}](language-function-block.md)
+- [{call}](language-function-call.md)
+- [{capture}](language-function-capture.md)
+- [{config_load}](language-function-config-load.md)
+- [{debug}](language-function-debug.md)
+- [{extends}](language-function-extends.md)
+- [{for}](language-function-for.md)
+- [{foreach}, {foreachelse}](language-function-foreach.md)
+- [{function}](language-function-function.md)
+- [{if}, {elseif}, {else}](language-function-if.md)
+- [{include}](language-function-include.md)
+- [{insert}](language-function-insert.md)
+- [{ldelim}, {rdelim}](language-function-ldelim.md)
+- [{literal}](language-function-literal.md)
+- [{nocache}](language-function-nocache.md)
+- [{section}, {sectionelse}](language-function-section.md)
+- [{setfilter}](language-function-setfilter.md)
+- [{strip}](language-function-strip.md)
+- [{while}](language-function-while.md)
+
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-append.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-append.md
index 62f2c7e19..37e1b81e9 100644
--- a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-append.md
+++ b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-append.md
@@ -1,42 +1,42 @@
-{append} {#language.function.append}
-========
+# {append}
`{append}` is used for creating or appending template variable arrays
**during the execution of a template**.
+## Attributes
+
+| Attribute | Required | Description |
+|-----------|------------|----------------------------------------------------------------------------------------------------|
+| var | | The name of the variable being assigned |
+| value | | The value being assigned |
+| index | (optional) | The index for the new array element. If not specified the value is append to the end of the array. |
+| scope | (optional) | The scope of the assigned variable: parent, root or global. Defaults to local if omitted. |
+
+## Option Flags
+
+| Name | Description |
+|---------|-----------------------------------------------------|
+| nocache | Assigns the variable with the 'nocache' attribute |
+
> **Note**
>
> Assignment of variables in-template is essentially placing application
> logic into the presentation that may be better handled in PHP. Use at
> your own discretion.
-**Attributes:**
-
- Attribute Name Type Required Default Description
- ---------------- -------- ---------- --------- ----------------------------------------------------------------------------------------------------
- var string Yes *n/a* The name of the variable being assigned
- value string Yes *n/a* The value being assigned
- index string No *n/a* The index for the new array element. If not specified the value is append to the end of the array.
- scope string No *n/a* The scope of the assigned variable: \'parent\',\'root\' or \'global\'
+## Examples
-**Option Flags:**
-
- Name Description
- --------- -----------------------------------------------------
- nocache Assigns the variable with the \'nocache\' attribute
-
-
- {append var='name' value='Bob' index='first'}
- {append var='name' value='Meyer' index='last'}
- // or
- {append 'name' 'Bob' index='first'} {* short-hand *}
- {append 'name' 'Meyer' index='last'} {* short-hand *}
-
- The first name is {$name.first}.<br>
- The last name is {$name.last}.
+```smarty
+{append var='name' value='Bob' index='first'}
+{append var='name' value='Meyer' index='last'}
+// or
+{append 'name' 'Bob' index='first'} {* short-hand *}
+{append 'name' 'Meyer' index='last'} {* short-hand *}
+The first name is {$name.first}.<br>
+The last name is {$name.last}.
+```
-
The above example will output:
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-assign.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-assign.md
index e4d50d300..f5faa46d5 100644
--- a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-assign.md
+++ b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-assign.md
@@ -1,148 +1,147 @@
-{assign} {#language.function.assign}
-========
+# {assign}, {$var=...}
-`{assign}` is used for assigning template variables **during the
+`{assign}` or `{$var=...}` is used for assigning template variables **during the
execution of a template**.
+## Attributes of the {assign} syntax
+| Attribute Name | Required | Description |
+|----------------|------------|-----------------------------------------------------------------------|
+| var | | The name of the variable being assigned |
+| value | | The value being assigned |
+| scope | (optional) | The scope of the assigned variable: \'parent\',\'root\' or \'global\' |
+
+## Attributes of the {$var=...} syntax
+| Attribute Name | Required | Description |
+|----------------|------------|-----------------------------------------------------------------------|
+| scope | (optional) | The scope of the assigned variable: \'parent\',\'root\' or \'global\' |
+
+## Option Flags
+| Name | Description |
+|---------|---------------------------------------------------|
+| nocache | Assigns the variable with the 'nocache' attribute |
+
+
> **Note**
>
> Assignment of variables in-template is essentially placing application
> logic into the presentation that may be better handled in PHP. Use at
> your own discretion.
-> **Note**
->
-> See also the [`short-form`](#language.function.shortform.assign)
-> method of assigning template vars.
-
-**Attributes:**
-
- Attribute Name Type Required Default Description
- ---------------- -------- ---------- --------- -----------------------------------------------------------------------
- var string Yes *n/a* The name of the variable being assigned
- value string Yes *n/a* The value being assigned
- scope string No *n/a* The scope of the assigned variable: \'parent\',\'root\' or \'global\'
-
-**Option Flags:**
-
- Name Description
- --------- -----------------------------------------------------
- nocache Assigns the variable with the \'nocache\' attribute
+## Examples
+```smarty
+{assign var="name" value="Bob"} {* or *}
+{assign "name" "Bob"} {* short-hand, or *}
+{$name='Bob'}
- {assign var="name" value="Bob"}
- {assign "name" "Bob"} {* short-hand *}
-
- The value of $name is {$name}.
-
+The value of $name is {$name}.
+```
The above example will output:
-
- The value of $name is Bob.
-
-
+```
+The value of $name is Bob.
+```
- {assign var="name" value="Bob" nocache}
- {assign "name" "Bob" nocache} {* short-hand *}
-
- The value of $name is {$name}.
-
-
+```smarty
+{assign var="name" value="Bob" nocache} {* or *}
+{assign "name" "Bob" nocache} {* short-hand, or *}
+{$name='Bob' nocache}
+The value of $name is {$name}.
+```
The above example will output:
-
-
- The value of $name is Bob.
-
+```
+The value of $name is Bob.
+```
-
- {assign var=running_total value=$running_total+$some_array[$row].some_value}
-
-
+```smarty
+{assign var=running_total value=$running_total+$some_array[$row].some_value} {* or *}
+{$running_total=$running_total+$some_array[row].some_value}
+```
Variables assigned in the included template will be seen in the
including template.
+```smarty
+{include file="sub_template.tpl"}
- {include file="sub_template.tpl"}
- ...
- {* display variable assigned in sub_template *}
- {$foo}<br>
- ...
+{* display variable assigned in sub_template *}
+{$foo}<br>
+```
-
+The template above includes the example `sub_template.tpl` below:
+
+```smarty
-The template above includes the example `sub_template.tpl` below
+{* foo will be known also in the including template *}
+{assign var="foo" value="something" scope=parent}
+{$foo="something" scope=parent}
+{* bar is assigned only local in the including template *}
+{assign var="bar" value="value"} {* or *}
+{$var="value"}
- ...
- {* foo will be known also in the including template *}
- {assign var="foo" value="something" scope=parent}
- {* bar is assigned only local in the including template *}
- {assign var="bar" value="value"}
- ...
+```
You can assign a variable to root of the current root tree. The variable
is seen by all templates using the same root tree.
-
- {assign var=foo value="bar" scope="root"}
-
+```smarty
+{assign var=foo value="bar" scope="root"}
+```
-
A global variable is seen by all templates.
-
- {assign var=foo value="bar" scope="global"}
- {assign "foo" "bar" scope="global"} {* short-hand *}
-
-
-
+```smarty
+{assign var=foo value="bar" scope="global"} {* or *}
+{assign "foo" "bar" scope="global"} {* short-hand, or *}
+{$foo="bar" scope="global"}
+```
+
To access `{assign}` variables from a php script use
-[`getTemplateVars()`](#api.get.template.vars). Here\'s the template that
-creates the variable `$foo`.
+[`getTemplateVars()`](../../programmers/api-functions/api-get-template-vars.md).
+Here's the template that creates the variable `$foo`.
-
- {assign var="foo" value="Smarty"}
+```smarty
+{assign var="foo" value="Smarty"} {* or *}
+{$foo="Smarty"}
+```
The template variables are only available after/during template
execution as in the following script.
+```php
+<?php
- <?php
-
- // this will output nothing as the template has not been executed
- echo $smarty->getTemplateVars('foo');
-
- // fetch the template to a variable
- $whole_page = $smarty->fetch('index.tpl');
-
- // this will output 'smarty' as the template has been executed
- echo $smarty->getTemplateVars('foo');
+// this will output nothing as the template has not been executed
+echo $smarty->getTemplateVars('foo');
- $smarty->assign('foo','Even smarter');
+// fetch the template to a variable
+$whole_page = $smarty->fetch('index.tpl');
- // this will output 'Even smarter'
- echo $smarty->getTemplateVars('foo');
+// this will output 'smarty' as the template has been executed
+echo $smarty->getTemplateVars('foo');
- ?>
+$smarty->assign('foo','Even smarter');
-The following functions can also *optionally* assign template variables.
+// this will output 'Even smarter'
+echo $smarty->getTemplateVars('foo');
+```
-[`{capture}`](#language.function.capture),
+The following functions can also *optionally* assign template variables: [`{capture}`](#language.function.capture),
[`{include}`](#language.function.include),
[`{insert}`](#language.function.insert),
[`{counter}`](#language.function.counter),
[`{cycle}`](#language.function.cycle),
[`{eval}`](#language.function.eval),
[`{fetch}`](#language.function.fetch),
-[`{math}`](#language.function.math),
-[`{textformat}`](#language.function.textformat)
+[`{math}`](#language.function.math) and
+[`{textformat}`](#language.function.textformat).
-See also [`{$var=...}`](#language.function.shortform.assign),
+See also [`{append}`](./language-function-append.md),
[`assign()`](#api.assign) and
[`getTemplateVars()`](#api.get.template.vars).
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-block.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-block.md
index 82659852c..c2acd1972 100644
--- a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-block.md
+++ b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-block.md
@@ -1,9 +1,8 @@
-{block} {#language.function.block}
-=======
+# {block}
`{block}` is used to define a named area of template source for template
inheritance. For details see section of [Template
-Inheritance](#advanced.features.template.inheritance).
+Inheritance](../../programmers/advanced-features/advanced-features-template-inheritance.md).
The `{block}` template source area of a child template will replace the
corresponding areas in the parent template(s).
@@ -11,181 +10,192 @@ corresponding areas in the parent template(s).
Optionally `{block}` areas of child and parent templates can be merged
into each other. You can append or prepend the parent `{block}` content
by using the `append` or `prepend` option flag with the child's `{block}`
-definition. With the {\$smarty.block.parent} the `{block}` content of
+definition. With `{$smarty.block.parent}` the `{block}` content of
the parent template can be inserted at any location of the child
-`{block}` content. {\$smarty.block.child} inserts the `{block}` content
+`{block}` content. `{$smarty.block.child}` inserts the `{block}` content
of the child template at any location of the parent `{block}`.
`{blocks}'s` can be nested.
-**Attributes:**
+## Attributes
- Attribute Name Type Required Default Description
- ---------------- -------- ---------- --------- ---------------------------------------
- name string Yes *n/a* The name of the template source block
+| Attribute Name | Required | Description |
+|----------------|----------|----------------------------------------------------------------------------------------------------------------------|
+| name | yes | The name of the template source block |
+| assign | no | The name of variable to assign the output of the block to. |
-**Option Flags (in child templates only):**
+> **Note**
+>
+> The assign attribute only works on the block that actually gets executed, so you may need
+> to add it to each child block as well.
- Name Description
- --------- -------------------------------------------------------------------------------------------
- append The `{block}` content will be be appended to the content of the parent template `{block}`
- prepend The `{block}` content will be prepended to the content of the parent template `{block}`
- hide Ignore the block content if no child block of same name is existing.
- nocache Disables caching of the `{block}` content
-parent.tpl
+## Option Flags (in child templates only):
+
+| Name | Description |
+|---------|-----------------------------------------------------------------------------------------|
+| append | The `{block}` content will be appended to the content of the parent template `{block}` |
+| prepend | The `{block}` content will be prepended to the content of the parent template `{block}` |
+| hide | Ignore the block content if no child block of same name is existing. |
+| nocache | Disables caching of the `{block}` content |
+
+## Examples
+
+parent.tpl
+```smarty
<html>
<head>
<title>{block name="title"}Default Title{/block}</title>
<title>{block "title"}Default Title{/block}</title> {* short-hand *}
</head>
</html>
-
+```
child.tpl
-
+```smarty
{extends file="parent.tpl"}
{block name="title"}
Page Title
{/block}
-
+```
The result would look like
-
+```html
<html>
<head>
<title>Page Title</title>
</head>
</html>
+```
parent.tpl
-
+```smarty
<html>
<head>
<title>{block name="title"}Title - {/block}</title>
</head>
</html>
-
+```
child.tpl
-
+```smarty
{extends file="parent.tpl"}
- {block name="title" prepend}
- Page Title
+ {block name="title" append}
+ Page Title
{/block}
-
+```
The result would look like
-
+```html
<html>
<head>
<title>Title - Page Title</title>
</head>
</html>
+```
parent.tpl
-
+```smarty
<html>
<head>
<title>{block name="title"} is my title{/block}</title>
</head>
</html>
-
+```
-
child.tpl
-
+```smarty
{extends file="parent.tpl"}
- {block name="title" append}
+ {block name="title" prepend}
Page Title
{/block}
-
+```
The result would look like
-
+```html
<html>
<head>
<title>Page title is my titel</title>
</head>
</html>
+```
parent.tpl
-
+```smarty
<html>
<head>
<title>{block name="title"}The {$smarty.block.child} was inserted here{/block}</title>
</head>
</html>
-
+```
-
child.tpl
-
+```smarty
{extends file="parent.tpl"}
{block name="title"}
- Child Title
+ Child Title
{/block}
-
-
-
+```
+
The result would look like
-
+```html
<html>
<head>
<title>The Child Title was inserted here</title>
</head>
</html>
+```
parent.tpl
-
+```smarty
<html>
<head>
<title>{block name="title"}Parent Title{/block}</title>
</head>
</html>
-
+```
child.tpl
-
+```smarty
{extends file="parent.tpl"}
{block name="title"}
- You will see now - {$smarty.block.parent} - here
+ You will see now - {$smarty.block.parent} - here
{/block}
-
-
-
+```
+
The result would look like
-
+```html
<html>
<head>
<title>You will see now - Parent Title - here</title>
</head>
</html>
+```
See also [Template
-Inheritance](#advanced.features.template.inheritance),
-[`$smarty.block.parent`](#language.variables.smarty.block.parent),
-[`$smarty.block.child`](#language.variables.smarty.block.child), and
-[`{extends}`](#language.function.extends)
+Inheritance](../../programmers/advanced-features/advanced-features-template-inheritance.md),
+[`$smarty.block.parent`](../language-variables/language-variables-smarty.md#smartyblockparent-languagevariablessmartyblockparent),
+[`$smarty.block.child`](../language-variables/language-variables-smarty.md#smartyblockchild-languagevariablessmartyblockchild), and
+[`{extends}`](./language-function-extends.md)
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-call.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-call.md
index 786f0c10c..c07fb49b9 100644
--- a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-call.md
+++ b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-call.md
@@ -1,39 +1,41 @@
-{call} {#language.function.call}
-======
+# {call}
`{call}` is used to call a template function defined by the
-[`{function}`](#language.function.function) tag just like a plugin
+[`{function}`](./language-function-function.md) tag just like a plugin
function.
> **Note**
>
> Template functions are defined global. Since the Smarty compiler is a
-> single-pass compiler, The [`{call}`](#language.function.call) tag must
+> single-pass compiler, The `{call}` tag must
> be used to call a template function defined externally from the given
> template. Otherwise you can directly use the function as
> `{funcname ...}` in the template.
- The `{call}` tag must have the `name` attribute which contains the
- the name of the template function.
+ name of the template function.
- Values for variables can be passed to the template function as
- [attributes](#language.syntax.attributes).
+ [attributes](../language-basic-syntax/language-syntax-attributes.md).
-**Attributes:**
+## Attributes
- Attribute Name Type Required Default Description
- ---------------- -------------- ---------- --------- ------------------------------------------------------------------------------------------
- name string Yes *n/a* The name of the template function
- assign string No *n/a* The name of the variable that the output of called template function will be assigned to
- \[var \...\] \[var type\] No *n/a* variable to pass local to template function
+| Attribute Name | Required | Description |
+|----------------|----------|------------------------------------------------------------------------------------------|
+| name | Yes | The name of the template function |
+| assign | No | The name of the variable that the output of called template function will be assigned to |
+| [var ...] | No | variable to pass local to template function |
-**Option Flags:**
+## Option Flags
- Name Description
- --------- --------------------------------------------
- nocache Call the template function in nocache mode
+| Name | Description |
+|---------|--------------------------------------------|
+| nocache | Call the template function in nocache mode |
+## Examples
+
+```smarty
{* define the function *}
{function name=menu level=0}
<ul class="level{$level}">
@@ -55,12 +57,12 @@ function.
{* run the array through the function *}
{call name=menu data=$menu}
{call menu data=$menu} {* short-hand *}
-
-
+```
+
Will generate the following output
-
+```
* item1
* item2
* item3
@@ -70,7 +72,6 @@ Will generate the following output
+ item3-3-1
+ item3-3-2
* item4
+```
-
-
-See also [`{function}`](#language.function.function)
+See also [`{function}`](./language-function-function.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-capture.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-capture.md
index 9121b2874..657f077cd 100644
--- a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-capture.md
+++ b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-capture.md
@@ -1,5 +1,4 @@
-{capture} {#language.function.capture}
-=========
+# {capture}
`{capture}` is used to collect the output of the template between the
tags into a variable instead of displaying it. Any content between
@@ -7,26 +6,26 @@ tags into a variable instead of displaying it. Any content between
specified in the `name` attribute.
The captured content can be used in the template from the variable
-[`$smarty.capture.foo`](#language.variables.smarty.capture) where "foo"
+[`$smarty.capture.foo`](../language-variables/language-variables-smarty.md#smartycapture-languagevariablessmartycapture) where "foo"
is the value passed in the `name` attribute. If you do not supply the
`name` attribute, then "default" will be used as the name ie
`$smarty.capture.default`.
`{capture}'s` can be nested.
-**Attributes:**
+## Attributes
- Attribute Name Type Required Default Description
- ---------------- -------- ---------- --------- ----------------------------------------------------------------------
- name string Yes *n/a* The name of the captured block
- assign string No *n/a* The variable name where to assign the captured output to
- append string No *n/a* The name of an array variable where to append the captured output to
+| Attribute Name | Required | Description |
+|----------------|----------|----------------------------------------------------------------------|
+| name | Yes | The name of the captured block |
+| assign | No | The variable name where to assign the captured output to |
+| append | No | The name of an array variable where to append the captured output to |
-**Option Flags:**
+## Option Flags
- Name Description
- --------- -----------------------------------------
- nocache Disables caching of this captured block
+| Name | Description |
+|---------|-----------------------------------------|
+| nocache | Disables caching of this captured block |
> **Note**
>
@@ -35,48 +34,48 @@ is the value passed in the `name` attribute. If you do not supply the
> [`{insert}`](#language.function.insert) commands that you expect to
> run within cached content, do not capture this content.
+## Examples
- {* we don't want to print a div tag unless content is displayed *}
- {capture name="banner"}
- {capture "banner"} {* short-hand *}
- {include file="get_banner.tpl"}
- {/capture}
-
- {if $smarty.capture.banner ne ""}
- <div id="banner">{$smarty.capture.banner}</div>
- {/if}
-
-
+```smarty
+{* we don't want to print a div tag unless content is displayed *}
+{capture name="banner"}
+{capture "banner"} {* short-hand *}
+ {include file="get_banner.tpl"}
+{/capture}
+{if $smarty.capture.banner ne ""}
+<div id="banner">{$smarty.capture.banner}</div>
+{/if}
+```
+
This example demonstrates the capture function.
-
-
- {capture name=some_content assign=popText}
- {capture some_content assign=popText} {* short-hand *}
- The server is {$my_server_name|upper} at {$my_server_addr}<br>
- Your ip is {$my_ip}.
- {/capture}
- <a href="#">{$popText}</a>
-
+```smarty
+
+{capture name=some_content assign=popText}
+{capture some_content assign=popText} {* short-hand *}
+The server is {$my_server_name|upper} at {$my_server_addr}<br>
+Your ip is {$my_ip}.
+{/capture}
+<a href="#">{$popText}</a>
+```
This example also demonstrates how multiple calls of capture can be used
to create an array with captured content.
-
- {capture append="foo"}hello{/capture}I say just {capture append="foo"}world{/capture}
- {foreach $foo as $text}{$text} {/foreach}
-
-
+```smarty
+{capture append="foo"}hello{/capture}I say just {capture append="foo"}world{/capture}
+{foreach $foo as $text}{$text} {/foreach}
+```
The above example will output:
-
- I say just hello world
-
+```
+I say just hello world
+```
-See also [`$smarty.capture`](#language.variables.smarty.capture),
-[`{eval}`](#language.function.eval),
-[`{fetch}`](#language.function.fetch), [`fetch()`](#api.fetch) and
-[`{assign}`](#language.function.assign).
+See also [`$smarty.capture`](../language-variables/language-variables-smarty.md#smartycapture-languagevariablessmartycapture),
+[`{eval}`](../language-custom-functions/language-function-eval.md),
+[`{fetch}`](../language-custom-functions/language-function-fetch.md), [`fetch()`](../../programmers/api-functions/api-fetch.md) and
+[`{assign}`](./language-function-assign.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-config-load.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-config-load.md
index 750f337c4..e13c30836 100644
--- a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-config-load.md
+++ b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-config-load.md
@@ -1,56 +1,55 @@
-{config\_load} {#language.function.config.load}
-==============
+# {config_load}
`{config_load}` is used for loading config
-[`#variables#`](#language.config.variables) from a [configuration
-file](#config.files) into the template.
+[`#variables#`](#language.config.variables) from a [configuration file](#config.files) into the template.
-**Attributes:**
+## Attributes
- Attribute Name Type Required Default Description
- ---------------- -------- ---------- --------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- file string Yes *n/a* The name of the config file to include
- section string No *n/a* The name of the section to load
- scope string no *local* How the scope of the loaded variables are treated, which must be one of local, parent or global. local means variables are loaded into the local template context. parent means variables are loaded into both the local context and the parent template that called it. global means variables are available to all templates.
+| Attribute Name | Required | Description |
+|----------------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| file | Yes | The name of the config file to include |
+| section | No | The name of the section to load |
+| scope | no | How the scope of the loaded variables are treated, which must be one of local, parent or global. local means variables are loaded into the local template context. parent means variables are loaded into both the local context and the parent template that called it. global means variables are available to all templates. |
-The `example.conf` file.
+## Examples
- #this is config file comment
+The `example.conf` file.
- # global variables
- pageTitle = "Main Menu"
- bodyBgColor = #000000
- tableBgColor = #000000
- rowBgColor = #00ff00
+```ini
+#this is config file comment
- #customer variables section
- [Customer]
- pageTitle = "Customer Info"
+# global variables
+pageTitle = "Main Menu"
+bodyBgColor = #000000
+tableBgColor = #000000
+rowBgColor = #00ff00
+#customer variables section
+[Customer]
+pageTitle = "Customer Info"
+```
-
and the template
+```smarty
+{config_load file="example.conf"}
+{config_load "example.conf"} {* short-hand *}
- {config_load file="example.conf"}
- {config_load "example.conf"} {* short-hand *}
-
- <html>
+<html>
<title>{#pageTitle#|default:"No title"}</title>
<body bgcolor="{#bodyBgColor#}">
- <table border="{#tableBorderSize#}" bgcolor="{#tableBgColor#}">
- <tr bgcolor="{#rowBgColor#}">
- <td>First</td>
- <td>Last</td>
- <td>Address</td>
- </tr>
- </table>
+ <table border="{#tableBorderSize#}" bgcolor="{#tableBgColor#}">
+ <tr bgcolor="{#rowBgColor#}">
+ <td>First</td>
+ <td>Last</td>
+ <td>Address</td>
+ </tr>
+ </table>
</body>
- </html>
-
+</html>
+```
-
[Config Files](#config.files) may also contain sections. You can load
variables from within a section with the added attribute `section`. Note
that global config variables are always loaded along with section
@@ -59,33 +58,31 @@ variables, and same-named section variables overwrite the globals.
> **Note**
>
> Config file *sections* and the built-in template function called
-> [`{section}`](#language.function.section) have nothing to do with each
+> [`{section}`](../language-builtin-functions/language-function-section.md) have nothing to do with each
> other, they just happen to share a common naming convention.
+```smarty
+{config_load file='example.conf' section='Customer'}
+{config_load 'example.conf' 'Customer'} {* short-hand *}
- {config_load file='example.conf' section='Customer'}
- {config_load 'example.conf' 'Customer'} {* short-hand *}
-
- <html>
+<html>
<title>{#pageTitle#}</title>
<body bgcolor="{#bodyBgColor#}">
- <table border="{#tableBorderSize#}" bgcolor="{#tableBgColor#}">
- <tr bgcolor="{#rowBgColor#}">
- <td>First</td>
- <td>Last</td>
- <td>Address</td>
- </tr>
- </table>
+ <table border="{#tableBorderSize#}" bgcolor="{#tableBgColor#}">
+ <tr bgcolor="{#rowBgColor#}">
+ <td>First</td>
+ <td>Last</td>
+ <td>Address</td>
+ </tr>
+ </table>
</body>
- </html>
-
-
+</html>
+```
-See [`$config_overwrite`](#variable.config.overwrite) to create arrays
+See [`$config_overwrite`](../../programmers/api-variables/variable-config-overwrite.md) to create arrays
of config file variables.
-See also the [config files](#config.files) page, [config
-variables](#language.config.variables) page,
-[`$config_dir`](#variable.config.dir),
-[`getConfigVars()`](#api.get.config.vars) and
-[`configLoad()`](#api.config.load).
+See also the [config files](../config-files.md) page, [config variables](../language-variables/language-config-variables.md) page,
+[`$config_dir`](../../programmers/api-variables/variable-config-dir.md),
+[`getConfigVars()`](../../programmers/api-functions/api-get-config-vars.md) and
+[`configLoad()`](../../programmers/api-functions/api-config-load.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-debug.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-debug.md
index fbaae1944..29485d549 100644
--- a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-debug.md
+++ b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-debug.md
@@ -1,10 +1,9 @@
-{debug} {#language.function.debug}
-=======
+# {debug}
`{debug}` dumps the debug console to the page. This works regardless of
-the [debug](#chapter.debugging.console) settings in the php script.
+the [debug](../chapter-debugging-console.md) settings in the php script.
Since this gets executed at runtime, this is only able to show the
-[assigned](#api.assign) variables; not the templates that are in use.
+[assigned](../../programmers/api-functions/api-assign.md) variables; not the templates that are in use.
However, you can see all the currently available variables within the
scope of a template.
@@ -15,4 +14,4 @@ In order to see also the variables which have been locally assigned
within the template it does make sense to place the `{debug}` tag at the
end of the template.
-See also the [debugging console page](#chapter.debugging.console).
+See also the [debugging console page](../chapter-debugging-console.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-extends.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-extends.md
index 59f246451..eba17b9bd 100644
--- a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-extends.md
+++ b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-extends.md
@@ -1,9 +1,8 @@
-{extends} {#language.function.extends}
-=========
+# {extends}
`{extends}` tags are used in child templates in template inheritance for
extending parent templates. For details see section of [Template
-Inheritance](#advanced.features.template.inheritance).
+Inheritance](../../programmers/advanced-features/advanced-features-template-inheritance.md).
- The `{extends}` tag must be on the first line of the template.
@@ -11,27 +10,28 @@ Inheritance](#advanced.features.template.inheritance).
tag it may contain only `{block}` tags. Any other template content
is ignored.
-- Use the syntax for [template resources](#resources) to extend files
- outside of the [`$template_dir`](#variable.template.dir) directory.
+- Use the syntax for [template resources](../../programmers/resources.md) to extend files
+ outside the [`$template_dir`](../../programmers/api-variables/variable-template-dir.md) directory.
+
+## Attributes
+
+| Attribute | Required | Description |
+|-----------|----------|-------------------------------------------------|
+| file | Yes | The name of the template file which is extended |
> **Note**
>
> When extending a variable parent like `{extends file=$parent_file}`,
> make sure you include `$parent_file` in the
-> [`$compile_id`](#variable.compile.id). Otherwise Smarty cannot
+> [`$compile_id`](../../programmers/api-variables/variable-compile-id.md). Otherwise, Smarty cannot
> distinguish between different `$parent_file`s.
-**Attributes:**
-
- Attribute Name Type Required Default Description
- ---------------- -------- ---------- --------- -------------------------------------------------
- file string Yes *n/a* The name of the template file which is extended
-
-
- {extends file='parent.tpl'}
- {extends 'parent.tpl'} {* short-hand *}
+## Examples
-
+```smarty
+{extends file='parent.tpl'}
+{extends 'parent.tpl'} {* short-hand *}
+```
-See also [Template Inheritance](#advanced.features.template.inheritance)
-and [`{block}`](#language.function.block).
+See also [Template Inheritance](../../programmers/advanced-features/advanced-features-template-inheritance.md)
+and [`{block}`](./language-function-block.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-for.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-for.md
index 5445f6f3b..619b61efe 100644
--- a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-for.md
+++ b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-for.md
@@ -1,8 +1,6 @@
-{for} {#language.function.for}
-=====
+# {for}
-The `{for}{forelse}` tag is used to create simple loops. The following
-different formats are supported:
+The `{for}{forelse}` tag is used to create simple loops. The following different formats are supported:
- `{for $var=$start to $end}` simple loop with step size of 1.
@@ -11,87 +9,83 @@ different formats are supported:
`{forelse}` is executed when the loop is not iterated.
-**Attributes:**
+## Attributes
- Attribute Name Shorthand Type Required Default Description
- ---------------- ----------- --------- ---------- --------- --------------------------------
- max n/a integer No *n/a* Limit the number of iterations
+| Attribute | Required | Description |
+|-----------|----------|--------------------------------|
+| max | No | Limit the number of iterations |
-**Option Flags:**
+## Option Flags
- Name Description
- --------- --------------------------------------
- nocache Disables caching of the `{for}` loop
+| Name | Description |
+|---------|--------------------------------------|
+| nocache | Disables caching of the `{for}` loop |
+## Examples
- <ul>
+```smarty
+<ul>
{for $foo=1 to 3}
<li>{$foo}</li>
{/for}
- </ul>
-
+</ul>
+```
-
The above example will output:
-
- <ul>
- <li>1</li>
- <li>2</li>
- <li>3</li>
- </ul>
-
-
-
-
- $smarty->assign('to',10);
-
+```html
+<ul>
+ <li>1</li>
+ <li>2</li>
+ <li>3</li>
+</ul>
+```
-
-
- <ul>
+```php
+<?php
+$smarty->assign('to',10);
+```
+
+```smarty
+<ul>
{for $foo=3 to $to max=3}
<li>{$foo}</li>
{/for}
- </ul>
-
-
+</ul>
+```
The above example will output:
-
- <ul>
- <li>3</li>
- <li>4</li>
- <li>5</li>
- </ul>
-
-
-
-
- $smarty->assign('start',10);
- $smarty->assign('to',5);
-
-
-
-
- <ul>
+```html
+<ul>
+ <li>3</li>
+ <li>4</li>
+ <li>5</li>
+</ul>
+```
+
+```php
+<?php
+$smarty->assign('start',10);
+$smarty->assign('to',5);
+```
+
+```smarty
+<ul>
{for $foo=$start to $to}
<li>{$foo}</li>
{forelse}
no iteration
{/for}
- </ul>
-
-
+</ul>
+```
The above example will output:
-
- no iteration
-
+```
+ no iteration
+```
-
-See also [`{foreach}`](#language.function.foreach),
-[`{section}`](#language.function.section) and
-[`{while}`](#language.function.while)
+See also [`{foreach}`](./language-function-foreach.md),
+[`{section}`](./language-function-section.md) and
+[`{while}`](./language-function-while.md)
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-foreach.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-foreach.md
index fdd740148..645d6c52c 100644
--- a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-foreach.md
+++ b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-foreach.md
@@ -1,15 +1,30 @@
-{foreach},{foreachelse} {#language.function.foreach}
-=======================
+# {foreach},{foreachelse}
`{foreach}` is used for looping over arrays of data. `{foreach}` has a
simpler and cleaner syntax than the
-[`{section}`](#language.function.section) loop, and can also loop over
+[`{section}`](./language-function-section.md) loop, and can also loop over
associative arrays.
-`{foreach $arrayvar as $itemvar}`
+## Option Flags
-`{foreach $arrayvar as $keyvar=>$itemvar}`
+| Name | Description |
+|---------|------------------------------------------|
+| nocache | Disables caching of the `{foreach}` loop |
+
+## Examples
+
+```smarty
+
+{foreach $arrayvar as $itemvar}
+ {$itemvar|escape}
+{/foreach}
+
+{foreach $arrayvar as $keyvar=>$itemvar}
+ {$keyvar}: {$itemvar|escape}
+{/foreach}
+
+```
> **Note**
>
> This foreach syntax does not accept any named attributes. This syntax
@@ -26,15 +41,15 @@ associative arrays.
- `{foreachelse}` is executed when there are no values in the `array`
variable.
-- `{foreach}` properties are [`@index`](#foreach.property.index),
- [`@iteration`](#foreach.property.iteration),
- [`@first`](#foreach.property.first),
- [`@last`](#foreach.property.last),
- [`@show`](#foreach.property.show),
- [`@total`](#foreach.property.total).
+- `{foreach}` properties are [`@index`](#index),
+ [`@iteration`](#iteration),
+ [`@first`](#first),
+ [`@last`](#last),
+ [`@show`](#show),
+ [`@total`](#total).
-- `{foreach}` constructs are [`{break}`](#foreach.construct.break),
- [`{continue}`](#foreach.construct.continue).
+- `{foreach}` constructs are [`{break}`](#break),
+ [`{continue}`](#continue).
- Instead of specifying the `key` variable you can access the current
key of the loop item by `{$item@key}` (see examples below).
@@ -51,161 +66,139 @@ associative arrays.
> `{foreach $myArray as $myKey => $myValue}`, the key is always
> available as `$myValue@key` within the foreach loop.
-**Option Flags:**
-
- Name Description
- --------- ------------------------------------------
- nocache Disables caching of the `{foreach}` loop
-
-
- <?php
- $arr = array('red', 'green', 'blue');
- $smarty->assign('myColors', $arr);
- ?>
-
-
-
+```php
+<?php
+$arr = array('red', 'green', 'blue');
+$smarty->assign('myColors', $arr);
+```
+
Template to output `$myColors` in an un-ordered list
-
- <ul>
+```smarty
+<ul>
{foreach $myColors as $color}
<li>{$color}</li>
{/foreach}
- </ul>
-
+</ul>
+```
-
The above example will output:
+```html
+<ul>
+ <li>red</li>
+ <li>green</li>
+ <li>blue</li>
+</ul>
+```
- <ul>
- <li>red</li>
- <li>green</li>
- <li>blue</li>
- </ul>
-
-
-
-
- <?php
- $people = array('fname' => 'John', 'lname' => 'Doe', 'email' => 'j.doe@example.com');
- $smarty->assign('myPeople', $people);
- ?>
-
-
+```php
+<?php
+$people = array('fname' => 'John', 'lname' => 'Doe', 'email' => 'j.doe@example.com');
+$smarty->assign('myPeople', $people);
+```
Template to output `$myArray` as key/value pairs.
-
- <ul>
+```smarty
+<ul>
{foreach $myPeople as $value}
<li>{$value@key}: {$value}</li>
{/foreach}
- </ul>
-
-
-
+</ul>
+```
+
The above example will output:
-
- <ul>
- <li>fname: John</li>
- <li>lname: Doe</li>
- <li>email: j.doe@example.com</li>
- </ul>
-
+```html
+<ul>
+ <li>fname: John</li>
+ <li>lname: Doe</li>
+ <li>email: j.doe@example.com</li>
+</ul>
+```
-
Assign an array to Smarty, the key contains the key for each looped
value.
-
- <?php
- $smarty->assign('contacts', array(
- array('phone' => '555-555-1234',
- 'fax' => '555-555-5678',
- 'cell' => '555-555-0357'),
- array('phone' => '800-555-4444',
- 'fax' => '800-555-3333',
- 'cell' => '800-555-2222')
- ));
- ?>
-
-
+```php
+<?php
+ $smarty->assign(
+ 'contacts',
+ [
+ ['phone' => '555-555-1234', 'fax' => '555-555-5678', 'cell' => '555-555-0357'],
+ ['phone' => '800-555-4444', 'fax' => '800-555-3333', 'cell' => '800-555-2222'],
+ ]
+ );
+```
The template to output `$contact`.
-
- {* key always available as a property *}
- {foreach $contacts as $contact}
- {foreach $contact as $value}
- {$value@key}: {$value}
- {/foreach}
- {/foreach}
-
- {* accessing key the PHP syntax alternate *}
- {foreach $contacts as $contact}
- {foreach $contact as $key => $value}
- {$key}: {$value}
- {/foreach}
- {/foreach}
-
+```smarty
+{* key always available as a property *}
+{foreach $contacts as $contact}
+ {foreach $contact as $value}
+ {$value@key}: {$value}
+ {/foreach}
+{/foreach}
+
+{* accessing key the PHP syntax alternate *}
+{foreach $contacts as $contact}
+ {foreach $contact as $key => $value}
+ {$key}: {$value}
+ {/foreach}
+{/foreach}
+```
-
Either of the above examples will output:
-
- phone: 555-555-1234
- fax: 555-555-5678
- cell: 555-555-0357
- phone: 800-555-4444
- fax: 800-555-3333
- cell: 800-555-2222
-
+```
+ phone: 555-555-1234
+ fax: 555-555-5678
+ cell: 555-555-0357
+ phone: 800-555-4444
+ fax: 800-555-3333
+ cell: 800-555-2222
+```
-
A database (PDO) example of looping over search results. This example is
looping over a PHP iterator instead of an array().
+```php
+<?php
+ include('Smarty.class.php');
- <?php
- include('Smarty.class.php');
-
- $smarty = new Smarty;
-
- $dsn = 'mysql:host=localhost;dbname=test';
- $login = 'test';
- $passwd = 'test';
-
- // setting PDO to use buffered queries in mysql is
- // important if you plan on using multiple result cursors
- // in the template.
+ $smarty = new Smarty;
- $db = new PDO($dsn, $login, $passwd, array(
- PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
+ $dsn = 'mysql:host=localhost;dbname=test';
+ $login = 'test';
+ $passwd = 'test';
- $res = $db->prepare("select * from users");
- $res->execute();
- $res->setFetchMode(PDO::FETCH_LAZY);
+ // setting PDO to use buffered queries in mysql is
+ // important if you plan on using multiple result cursors
+ // in the template.
- // assign to smarty
- $smarty->assign('res',$res);
+ $db = new PDO($dsn, $login, $passwd, array(
+ PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
- $smarty->display('index.tpl');?>
- ?>
+ $res = $db->prepare("select * from users");
+ $res->execute();
+ $res->setFetchMode(PDO::FETCH_LAZY);
-
+ // assign to smarty
+ $smarty->assign('res',$res);
+ $smarty->display('index.tpl');?>
+```
- {foreach $res as $r}
- {$r.id}
- {$r.name}
- {foreachelse}
- .. no results ..
- {/foreach}
-
-
+```smarty
+{foreach $res as $r}
+ {$r.id}
+ {$r.name}
+{foreachelse}
+ .. no results ..
+{/foreach}
+```
The above is assuming the results contain the columns named `id` and
`name`.
@@ -216,14 +209,13 @@ looped. With an iterator, each result is loaded/released within the
loop. This saves processing time and memory, especially for very large
result sets.
-\@index {#foreach.property.index}
--------
+## @index
`index` contains the current array index, starting with zero.
-
- {* output empty row on the 4th iteration (when index is 3) *}
- <table>
+```smarty
+{* output empty row on the 4th iteration (when index is 3) *}
+<table>
{foreach $items as $i}
{if $i@index eq 3}
{* put empty table row *}
@@ -231,72 +223,69 @@ result sets.
{/if}
<tr><td>{$i.label}</td></tr>
{/foreach}
- </table>
-
+</table>
+```
-\@iteration {#foreach.property.iteration}
------------
+## @iteration
`iteration` contains the current loop iteration and always starts at
-one, unlike [`index`](#foreach.property.index). It is incremented by one
+one, unlike [`index`](#index). It is incremented by one
on each iteration.
-The *\"is div by\"* operator can be used to detect a specific iteration.
+The *"is div by"* operator can be used to detect a specific iteration.
Here we bold-face the name every 4th iteration.
+```smarty
+{foreach $myNames as $name}
+ {if $name@iteration is div by 4}
+ <b>{$name}</b>
+ {/if}
+ {$name}
+{/foreach}
+```
- {foreach $myNames as $name}
- {if $name@iteration is div by 4}
- <b>{$name}</b>
- {/if}
- {$name}
- {/foreach}
-
-The *\"is even by\"* and *\"is odd by\"* operators can be used to
+The *"is even by"* and *"is odd by"* operators can be used to
alternate something every so many iterations. Choosing between even or
odd rotates which one starts. Here we switch the font color every 3rd
iteration.
-
- {foreach $myNames as $name}
- {if $name@iteration is even by 3}
- <span style="color: #000">{$name}</span>
- {else}
- <span style="color: #eee">{$name}</span>
- {/if}
- {/foreach}
-
-
+```smarty
+ {foreach $myNames as $name}
+ {if $name@iteration is even by 3}
+ <span style="color: #000">{$name}</span>
+ {else}
+ <span style="color: #eee">{$name}</span>
+ {/if}
+ {/foreach}
+```
This will output something similar to this:
-
- <span style="color: #000">...</span>
- <span style="color: #000">...</span>
- <span style="color: #000">...</span>
- <span style="color: #eee">...</span>
- <span style="color: #eee">...</span>
- <span style="color: #eee">...</span>
- <span style="color: #000">...</span>
- <span style="color: #000">...</span>
- <span style="color: #000">...</span>
- <span style="color: #eee">...</span>
- <span style="color: #eee">...</span>
- <span style="color: #eee">...</span>
- ...
-
+```html
+<span style="color: #000">...</span>
+<span style="color: #000">...</span>
+<span style="color: #000">...</span>
+<span style="color: #eee">...</span>
+<span style="color: #eee">...</span>
+<span style="color: #eee">...</span>
+<span style="color: #000">...</span>
+<span style="color: #000">...</span>
+<span style="color: #000">...</span>
+<span style="color: #eee">...</span>
+<span style="color: #eee">...</span>
+<span style="color: #eee">...</span>
+...
+```
-
-\@first {#foreach.property.first}
--------
+## @first
`first` is TRUE if the current `{foreach}` iteration is the initial one.
Here we display a table header row on the first iteration.
-
- {* show table header at first iteration *}
- <table>
+```smarty
+{* show table header at first iteration *}
+<table>
{foreach $items as $i}
{if $i@first}
<tr>
@@ -309,99 +298,92 @@ Here we display a table header row on the first iteration.
<td>{$i.name}</td>
</tr>
{/foreach}
- </table>
-
+</table>
+```
-
-\@last {#foreach.property.last}
-------
+## @last
`last` is set to TRUE if the current `{foreach}` iteration is the final
one. Here we display a horizontal rule on the last iteration.
-
- {* Add horizontal rule at end of list *}
- {foreach $items as $item}
- <a href="#{$item.id}">{$item.name}</a>{if $item@last}<hr>{else},{/if}
- {foreachelse}
- ... no items to loop ...
- {/foreach}
-
+```smarty
+{* Add horizontal rule at end of list *}
+{foreach $items as $item}
+ <a href="#{$item.id}">{$item.name}</a>{if $item@last}<hr>{else},{/if}
+{foreachelse}
+ ... no items to loop ...
+{/foreach}
+```
-
-\@show {#foreach.property.show}
-------
+## @show
The show `show` property can be used after the execution of a
`{foreach}` loop to detect if data has been displayed or not. `show` is
a boolean value.
-
- <ul>
+```smarty
+<ul>
{foreach $myArray as $name}
<li>{$name}</li>
{/foreach}
- </ul>
- {if $name@show} do something here if the array contained data {/if}
+</ul>
+{if $name@show} do something here if the array contained data {/if}
+```
-\@total {#foreach.property.total}
--------
+## @total
`total` contains the number of iterations that this `{foreach}` will
loop. This can be used inside or after the `{foreach}`.
+```smarty
+{* show number of rows at end *}
+{foreach $items as $item}
+ {$item.name}<hr/>
+ {if $item@last}
+ <div id="total">{$item@total} items</div>
+ {/if}
+{foreachelse}
+ ... no items to loop ...
+{/foreach}
+```
- {* show number of rows at end *}
- {foreach $items as $item}
- {$item.name}<hr/>
- {if $item@last}
- <div id="total">{$item@total} items</div>
- {/if}
- {foreachelse}
- ... no items to loop ...
- {/foreach}
-
-See also [`{section}`](#language.function.section),
-[`{for}`](#language.function.for) and
-[`{while}`](#language.function.while)
+See also [`{section}`](./language-function-section.md),
+[`{for}`](./language-function-for.md) and
+[`{while}`](./language-function-while.md)
-{break} {#foreach.construct.break}
--------
+## {break}
`{break}` aborts the iteration of the array
-
- {$data = [1,2,3,4,5]}
- {foreach $data as $value}
- {if $value == 3}
- {* abort iterating the array *}
- {break}
- {/if}
- {$value}
- {/foreach}
- {*
- prints: 1 2
- *}
-
+```smarty
+ {$data = [1,2,3,4,5]}
+ {foreach $data as $value}
+ {if $value == 3}
+ {* abort iterating the array *}
+ {break}
+ {/if}
+ {$value}
+ {/foreach}
+ {*
+ prints: 1 2
+ *}
+```
-
-{continue} {#foreach.construct.continue}
-----------
+## {continue}
`{continue}` leaves the current iteration and begins with the next
iteration.
-
- {$data = [1,2,3,4,5]}
- {foreach $data as $value}
- {if $value == 3}
- {* skip this iteration *}
- {continue}
- {/if}
- {$value}
- {/foreach}
- {*
- prints: 1 2 4 5
- *}
-
-
+```smarty
+ {$data = [1,2,3,4,5]}
+ {foreach $data as $value}
+ {if $value == 3}
+ {* skip this iteration *}
+ {continue}
+ {/if}
+ {$value}
+ {/foreach}
+ {*
+ prints: 1 2 4 5
+ *}
+```
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-function.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-function.md
index 647e4bfc8..cee6762c8 100644
--- a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-function.md
+++ b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-function.md
@@ -1,5 +1,4 @@
-{function} {#language.function.function}
-==========
+# {function}
`{function}` is used to create functions within a template and call them
just like a plugin function. Instead of writing a plugin that generates
@@ -12,15 +11,22 @@ nested menus.
> Template functions are defined global. Since the Smarty compiler is a
> single-pass compiler, The [`{call}`](#language.function.call) tag must
> be used to call a template function defined externally from the given
-> template. Otherwise you can directly use the function as
+> template. Otherwise, you can directly use the function as
> `{funcname ...}` in the template.
+## Attributes
+
+| Attribute Name | Required | Description |
+|----------------|----------|---------------------------------------------------------------|
+| name | Yes | The name of the template function |
+| \[var \...\] | No | default variable value to pass local to the template function |
+
- The `{function}` tag must have the `name` attribute which contains
- the the name of the template function. A tag with this name can be
+ the name of the template function. A tag with this name can be
used to call the template function.
- Default values for variables can be passed to the template function
- as [attributes](#language.syntax.attributes). Like in PHP function
+ as [attributes](../language-basic-syntax/language-syntax-attributes.md). Like in PHP function
declarations you can only use scalar values as default. The default
values can be overwritten when the template function is being
called.
@@ -30,12 +36,7 @@ nested menus.
inside the template function have local scope and are not visible
inside the calling template after the template function is executed.
-**Attributes:**
- Attribute Name Type Required Default Description
- ---------------- -------------- ---------- --------- ---------------------------------------------------------------
- name string Yes *n/a* The name of the template function
- \[var \...\] \[var type\] No *n/a* default variable value to pass local to the template function
> **Note**
>
@@ -45,44 +46,44 @@ nested menus.
> values must be scalar and can not be variable. Variables must be
> passed when the template is called.
-
- {* define the function *}
- {function name=menu level=0}
- {function menu level=0} {* short-hand *}
- <ul class="level{$level}">
- {foreach $data as $entry}
- {if is_array($entry)}
- <li>{$entry@key}</li>
- {menu data=$entry level=$level+1}
- {else}
- <li>{$entry}</li>
- {/if}
- {/foreach}
- </ul>
- {/function}
-
- {* create an array to demonstrate *}
- {$menu = ['item1','item2','item3' => ['item3-1','item3-2','item3-3' =>
- ['item3-3-1','item3-3-2']],'item4']}
-
- {* run the array through the function *}
- {menu data=$menu}
-
-
+## Examples
+
+```smarty
+{* define the function *}
+{function name=menu level=0}
+{function menu level=0} {* short-hand *}
+ <ul class="level{$level}">
+ {foreach $data as $entry}
+ {if is_array($entry)}
+ <li>{$entry@key}</li>
+ {menu data=$entry level=$level+1}
+ {else}
+ <li>{$entry}</li>
+ {/if}
+ {/foreach}
+ </ul>
+{/function}
+
+{* create an array to demonstrate *}
+{$menu = ['item1','item2','item3' => ['item3-1','item3-2','item3-3' =>
+['item3-3-1','item3-3-2']],'item4']}
+
+{* run the array through the function *}
+{menu data=$menu}
+```
Will generate the following output
-
- * item1
- * item2
- * item3
- o item3-1
- o item3-2
- o item3-3
- + item3-3-1
- + item3-3-2
- * item4
-
+```
+* item1
+* item2
+* item3
+ o item3-1
+ o item3-2
+ o item3-3
+ + item3-3-1
+ + item3-3-2
+* item4
+```
-
-See also [`{call}`](#language.function.call)
+See also [`{call}`](./language-function-call.md)
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-if.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-if.md
index 2c1d68eea..c7be37a2c 100644
--- a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-if.md
+++ b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-if.md
@@ -1,121 +1,120 @@
-{if},{elseif},{else} {#language.function.if}
-====================
+# {if},{elseif},{else}
`{if}` statements in Smarty have much the same flexibility as PHP
-[if](&url.php-manual;if) statements, with a few added features for the
+[if](https://www.php.net/if) statements, with a few added features for the
template engine. Every `{if}` must be paired with a matching `{/if}`.
`{else}` and `{elseif}` are also permitted. All PHP conditionals and
functions are recognized, such as *\|\|*, *or*, *&&*, *and*,
-*is\_array()*, etc.
+*is_array()*, etc.
-If securty is enabled, only PHP functions from `$php_functions` property
-of the securty policy are allowed. See the
-[Security](#advanced.features.security) section for details.
+If security is enabled, only PHP functions from `$php_functions` property
+of the security policy are allowed. See the
+[Security](../../programmers/advanced-features/advanced-features-security.md) section for details.
The following is a list of recognized qualifiers, which must be
separated from surrounding elements by spaces. Note that items listed in
\[brackets\] are optional. PHP equivalents are shown where applicable.
- Qualifier Alternates Syntax Example Meaning PHP Equivalent
- -------------------- ------------ ------------------------ -------------------------------- ----------------------
- == eq \$a eq \$b equals ==
- != ne, neq \$a neq \$b not equals !=
- \> gt \$a gt \$b greater than \>
- \< lt \$a lt \$b less than \<
- \>= gte, ge \$a ge \$b greater than or equal \>=
- \<= lte, le \$a le \$b less than or equal \<=
- === \$a === 0 check for identity ===
- ! not not \$a negation (unary) !
- \% mod \$a mod \$b modulous \%
- is \[not\] div by \$a is not div by 4 divisible by \$a % \$b == 0
- is \[not\] even \$a is not even \[not\] an even number (unary) \$a % 2 == 0
- is \[not\] even by \$a is not even by \$b grouping level \[not\] even (\$a / \$b) % 2 == 0
- is \[not\] odd \$a is not odd \[not\] an odd number (unary) \$a % 2 != 0
- is \[not\] odd by \$a is not odd by \$b \[not\] an odd grouping (\$a / \$b) % 2 != 0
-
-
- {if $name eq 'Fred'}
- Welcome Sir.
- {elseif $name eq 'Wilma'}
- Welcome Ma'am.
- {else}
- Welcome, whatever you are.
- {/if}
-
- {* an example with "or" logic *}
- {if $name eq 'Fred' or $name eq 'Wilma'}
- ...
- {/if}
-
- {* same as above *}
- {if $name == 'Fred' || $name == 'Wilma'}
- ...
- {/if}
-
-
- {* parenthesis are allowed *}
- {if ( $amount < 0 or $amount > 1000 ) and $volume >= #minVolAmt#}
- ...
- {/if}
-
-
- {* you can also embed php function calls *}
- {if count($var) gt 0}
- ...
- {/if}
-
- {* check for array. *}
- {if is_array($foo) }
- .....
- {/if}
-
- {* check for not null. *}
- {if isset($foo) }
- .....
- {/if}
-
-
- {* test if values are even or odd *}
- {if $var is even}
- ...
- {/if}
- {if $var is odd}
- ...
- {/if}
- {if $var is not odd}
- ...
- {/if}
-
-
- {* test if var is divisible by 4 *}
- {if $var is div by 4}
- ...
- {/if}
-
-
- {*
- test if var is even, grouped by two. i.e.,
- 0=even, 1=even, 2=odd, 3=odd, 4=even, 5=even, etc.
- *}
- {if $var is even by 2}
- ...
- {/if}
-
- {* 0=even, 1=even, 2=even, 3=odd, 4=odd, 5=odd, etc. *}
- {if $var is even by 3}
- ...
- {/if}
-
-
-
-
- {if isset($name) && $name == 'Blog'}
- {* do something *}
- {elseif $name == $foo}
- {* do something *}
- {/if}
-
- {if is_array($foo) && count($foo) > 0}
- {* do a foreach loop *}
- {/if}
-
+## Qualifiers
+
+| Qualifier | Alternates | Syntax Example | Meaning | PHP Equivalent |
+|--------------------|------------|----------------------|--------------------------------|--------------------|
+| == | eq | $a eq $b | equals | == |
+| != | ne, neq | $a neq $b | not equals | != |
+| > | gt | $a gt $b | greater than | > |
+| < | lt | $a lt $b | less than | < |
+| >= | gte, ge | $a ge $b | greater than or equal | >= |
+| <= | lte, le | $a le $b | less than or equal | <= |
+| === | | $a === 0 | check for identity | === |
+| ! | not | not $a | negation (unary) | ! |
+| % | mod | $a mod $b | modulo | % |
+| is \[not\] div by | | $a is not div by 4 | divisible by | $a % $b == 0 |
+| is \[not\] even | | $a is not even | \[not\] an even number (unary) | $a % 2 == 0 |
+| is \[not\] even by | | $a is not even by $b | grouping level \[not\] even | ($a / $b) % 2 == 0 |
+| is \[not\] odd | | $a is not odd | \[not\] an odd number (unary) | $a % 2 != 0 |
+| is \[not\] odd by | | $a is not odd by $b | \[not\] an odd grouping | ($a / $b) % 2 != 0 |
+
+## Examples
+```smarty
+{if $name eq 'Fred'}
+ Welcome Sir.
+{elseif $name eq 'Wilma'}
+ Welcome Ma'am.
+{else}
+ Welcome, whatever you are.
+{/if}
+
+{* an example with "or" logic *}
+{if $name eq 'Fred' or $name eq 'Wilma'}
+ ...
+{/if}
+
+{* same as above *}
+{if $name == 'Fred' || $name == 'Wilma'}
+ ...
+{/if}
+
+
+{* parenthesis are allowed *}
+{if ( $amount < 0 or $amount > 1000 ) and $volume >= #minVolAmt#}
+ ...
+{/if}
+
+
+{* you can also embed php function calls *}
+{if count($var) gt 0}
+ ...
+{/if}
+
+{* check for array. *}
+{if is_array($foo) }
+ .....
+{/if}
+
+{* check for not null. *}
+{if isset($foo) }
+ .....
+{/if}
+
+
+{* test if values are even or odd *}
+{if $var is even}
+ ...
+{/if}
+{if $var is odd}
+ ...
+{/if}
+{if $var is not odd}
+ ...
+{/if}
+
+
+{* test if var is divisible by 4 *}
+{if $var is div by 4}
+ ...
+{/if}
+
+
+{*
+ test if var is even, grouped by two. i.e.,
+ 0=even, 1=even, 2=odd, 3=odd, 4=even, 5=even, etc.
+*}
+{if $var is even by 2}
+ ...
+{/if}
+
+{* 0=even, 1=even, 2=even, 3=odd, 4=odd, 5=odd, etc. *}
+{if $var is even by 3}
+ ...
+{/if}
+
+{if isset($name) && $name == 'Blog'}
+ {* do something *}
+{elseif $name == $foo}
+ {* do something *}
+{/if}
+
+{if is_array($foo) && count($foo) > 0}
+ {* do a foreach loop *}
+{/if}
+```
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-include.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-include.md
index bda2d802f..d12a817e0 100644
--- a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-include.md
+++ b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-include.md
@@ -1,19 +1,31 @@
-{include} {#language.function.include}
-=========
+# {include}
`{include}` tags are used for including other templates in the current
template. Any variables available in the current template are also
available within the included template.
+## Attributes
+
+| Attribute Name | Required | Description |
+|----------------|----------|--------------------------------------------------------------------------------------------|
+| file | Yes | The name of the template file to include |
+| assign | No | The name of the variable that the output of include will be assigned to |
+| cache_lifetime | No | Enable caching of this subtemplate with an individual cache lifetime |
+| compile_id | No | Compile this subtemplate with an individual compile_id |
+| cache_id | No | Enable caching of this subtemplate with an individual cache_id |
+| scope | No | Define the scope of all in the subtemplate assigned variables: 'parent','root' or 'global' |
+| \[var \...\] | No | variable to pass local to template |
+
+
- The `{include}` tag must have the `file` attribute which contains
the template resource path.
- Setting the optional `assign` attribute specifies the template
variable that the output of `{include}` is assigned to, instead of
- being displayed. Similar to [`{assign}`](#language.function.assign).
+ being displayed. Similar to [`{assign}`](./language-function-assign.md).
- Variables can be passed to included templates as
- [attributes](#language.syntax.attributes). Any variables explicitly
+ [attributes](../language-basic-syntax/language-syntax-attributes.md). Any variables explicitly
passed to an included template are only available within the scope
of the included file. Attribute variables override current template
variables, in the case when they are named the same.
@@ -25,36 +37,25 @@ available within the included template.
default behaviour can be changed for all variables assigned in the
included template by using the scope attribute at the `{include}`
statement or for individual variables by using the scope attribute
- at the [`{assign}`](#language.function.assign) statement. The later
+ at the [`{assign}`](./language-function-assign.md) statement. The later
is useful to return values from the included template to the
including template.
-- Use the syntax for [template resources](#resources) to `{include}`
- files outside of the [`$template_dir`](#variable.template.dir)
+- Use the syntax for [template resources](../../programmers/resources.md) to `{include}`
+ files outside of the [`$template_dir`](../../programmers/api-variables/variable-template-dir.md)
directory.
-**Attributes:**
-
- Attribute Name Type Required Default Description
- ----------------- ---------------- ---------- --------- --------------------------------------------------------------------------------------------------
- file string Yes *n/a* The name of the template file to include
- assign string No *n/a* The name of the variable that the output of include will be assigned to
- cache\_lifetime integer No *n/a* Enable caching of this subtemplate with an individual cache lifetime
- compile\_id string/integer No *n/a* Compile this subtemplate with an individual compile\_id
- cache\_id string/integer No *n/a* Enable caching of this subtemplate with an individual cache\_id
- scope string No *n/a* Define the scope of all in the subtemplate assigned variables: \'parent\',\'root\' or \'global\'
- \[var \...\] \[var type\] No *n/a* variable to pass local to template
-
-**Option Flags:**
+## Option Flags
- Name Description
- --------- -------------------------------------------------------------------------------------
- nocache Disables caching of this subtemplate
- caching Enable caching of this subtemplate
- inline If set merge the compile code of the subtemplate into the compiled calling template
+| Name | Description |
+|---------|--------------------------------------------------------------------------------------|
+| nocache | Disables caching of this subtemplate |
+| caching | Enable caching of this subtemplate |
+| inline | If set, merge the compile-code of the subtemplate into the compiled calling template |
-
- <html>
+## Examples
+```smarty
+<html>
<head>
<title>{$title}</title>
</head>
@@ -69,124 +70,118 @@ available within the included template.
{* using shortform file attribute *}
{include 'page_footer.tpl'}
</body>
- </html>
-
-
+</html>
+```
+```smarty
- {include 'links.tpl' title='Newest links' links=$link_array}
- {* body of template goes here *}
- {include 'footer.tpl' foo='bar'}
+{include 'links.tpl' title='Newest links' links=$link_array}
+{* body of template goes here *}
+{include 'footer.tpl' foo='bar'}
-
+```
The template above includes the example `links.tpl` below
-
- <div id="box">
+```smarty
+<div id="box">
<h3>{$title}{/h3>
<ul>
- {foreach from=$links item=l}
- .. do stuff ...
- </foreach}
+ {foreach from=$links item=l}
+ .. do stuff ...
+ </foreach}
</ul>
- </div>
-
+</div>
+```
Variables assigned in the included template will be seen in the
including template.
-
- {include 'sub_template.tpl' scope=parent}
- ...
- {* display variables assigned in sub_template *}
- {$foo}<br>
- {$bar}<br>
- ...
-
+```smarty
+{include 'sub_template.tpl' scope=parent}
+...
+{* display variables assigned in sub_template *}
+{$foo}<br>
+{$bar}<br>
+...
+```
-
The template above includes the example `sub_template.tpl` below
-
- ...
- {assign var=foo value='something'}
- {assign var=bar value='value'}
- ...
+```smarty
+...
+{assign var=foo value='something'}
+{assign var=bar value='value'}
+...
+```
The included template will not be cached.
-
- {include 'sub_template.tpl' nocache}
- ...
-
+```smarty
+{include 'sub_template.tpl' nocache}
+...
+```
-
In this example included template will be cached with an individual
cache lifetime of 500 seconds.
-
- {include 'sub_template.tpl' cache_lifetime=500}
- ...
-
+```smarty
+{include 'sub_template.tpl' cache_lifetime=500}
+...
+```
-
In this example included template will be cached independent of the
global caching setting.
-
- {include 'sub_template.tpl' caching}
- ...
-
+```smarty
+{include 'sub_template.tpl' caching}
+...
+```
-
This example assigns the contents of `nav.tpl` to the `$navbar`
variable, which is then output at both the top and bottom of the page.
-
- <body>
- {include 'nav.tpl' assign=navbar}
- {include 'header.tpl' title='Smarty is cool'}
- {$navbar}
- {* body of template goes here *}
- {$navbar}
- {include 'footer.tpl'}
- </body>
-
+```smarty
+<body>
+ {include 'nav.tpl' assign=navbar}
+ {include 'header.tpl' title='Smarty is cool'}
+ {$navbar}
+ {* body of template goes here *}
+ {$navbar}
+ {include 'footer.tpl'}
+</body>
+```
-
This example includes another template relative to the directory of the
current template.
-
- {include 'template-in-a-template_dir-directory.tpl'}
- {include './template-in-same-directory.tpl'}
- {include '../template-in-parent-directory.tpl'}
-
+```smarty
+{include 'template-in-a-template_dir-directory.tpl'}
+{include './template-in-same-directory.tpl'}
+{include '../template-in-parent-directory.tpl'}
+```
+```smarty
+{* absolute filepath *}
+{include file='/usr/local/include/templates/header.tpl'}
+{* absolute filepath (same thing) *}
+{include file='file:/usr/local/include/templates/header.tpl'}
- {* absolute filepath *}
- {include file='/usr/local/include/templates/header.tpl'}
+{* windows absolute filepath (MUST use "file:" prefix) *}
+{include file='file:C:/www/pub/templates/header.tpl'}
- {* absolute filepath (same thing) *}
- {include file='file:/usr/local/include/templates/header.tpl'}
+{* include from template resource named "db" *}
+{include file='db:header.tpl'}
- {* windows absolute filepath (MUST use "file:" prefix) *}
- {include file='file:C:/www/pub/templates/header.tpl'}
+{* include a $variable template - eg $module = 'contacts' *}
+{include file="$module.tpl"}
- {* include from template resource named "db" *}
- {include file='db:header.tpl'}
-
- {* include a $variable template - eg $module = 'contacts' *}
- {include file="$module.tpl"}
-
- {* wont work as its single quotes ie no variable substitution *}
- {include file='$module.tpl'}
-
- {* include a multi $variable template - eg amber/links.view.tpl *}
- {include file="$style_dir/$module.$view.tpl"}
+{* wont work as its single quotes ie no variable substitution *}
+{include file='$module.tpl'}
+{* include a multi $variable template - eg amber/links.view.tpl *}
+{include file="$style_dir/$module.$view.tpl"}
+```
-
-See also [`{insert}`](#language.function.insert), [template resources](#resources) and
-[componentized templates](#tips.componentized.templates).
+See also [`{insert}`](./language-function-insert.md), [template resources](../../programmers/resources.md) and
+[componentized templates](../../appendixes/tips.md#componentized-templates).
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-insert.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-insert.md
index e5bc7dcb4..54f0729dd 100644
--- a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-insert.md
+++ b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-insert.md
@@ -1,51 +1,51 @@
-{insert} {#language.function.insert}
-========
+# {insert}
> **Note**
>
> `{insert}` tags are deprecated from Smarty, and should not be used.
> Put your PHP logic in PHP scripts or plugin functions instead.
-
-> **Note**
->
> As of Smarty 3.1 the `{insert}` tags are only available from
> [SmartyBC](#bc).
-`{insert}` tags work much like [`{include}`](#language.function.include)
+`{insert}` tags work much like [`{include}`](./language-function-include.md)
tags, except that `{insert}` tags are NOT cached when template
-[caching](#caching) is enabled. They will be executed on every
+[caching](../../programmers/caching.md) is enabled. They will be executed on every
invocation of the template.
- Attribute Name Type Required Default Description
- ---------------- -------------- ---------- --------- ----------------------------------------------------------------------------------
- name string Yes *n/a* The name of the insert function (insert\_`name`) or insert plugin
- assign string No *n/a* The name of the template variable the output will be assigned to
- script string No *n/a* The name of the php script that is included before the insert function is called
- \[var \...\] \[var type\] No *n/a* variable to pass to insert function
+| Attribute Name | Required | Description |
+|----------------|----------|----------------------------------------------------------------------------------|
+| name | Yes | The name of the insert function (insert_`name`) or insert plugin |
+| assign | No | The name of the template variable the output will be assigned to |
+| script | No | The name of the php script that is included before the insert function is called |
+| \[var \...\] | No | variable to pass to insert function |
+
+## Examples
-Let\'s say you have a template with a banner slot at the top of the
+Let's say you have a template with a banner slot at the top of the
page. The banner can contain any mixture of HTML, images, flash, etc. so
-we can\'t just use a static link here, and we don\'t want this contents
+we can't just use a static link here, and we don't want this contents
cached with the page. In comes the {insert} tag: the template knows
\#banner\_location\_id\# and \#site\_id\# values (gathered from a
-[config file](#config.files)), and needs to call a function to get the
+[config file](../config-files.md)), and needs to call a function to get the
banner contents.
+```smarty
{* example of fetching a banner *}
{insert name="getBanner" lid=#banner_location_id# sid=#site_id#}
{insert "getBanner" lid=#banner_location_id# sid=#site_id#} {* short-hand *}
+```
In this example, we are using the name "getBanner" and passing the
parameters \#banner\_location\_id\# and \#site\_id\#. Smarty will look
for a function named insert\_getBanner() in your PHP application,
passing the values of \#banner\_location\_id\# and \#site\_id\# as the
first argument in an associative array. All {insert} function names in
-your application must be prepended with \"insert\_\" to remedy possible
+your application must be prepended with "insert_" to remedy possible
function name-space conflicts. Your insert\_getBanner() function should
do something with the passed values and return the results. These
results are then displayed in the template in place of the {insert} tag.
In this example, Smarty would call this function:
-insert\_getBanner(array(\"lid\" =\> \"12345\",\"sid\" =\> \"67890\"));
+insert_getBanner(array("lid" => "12345","sid" => "67890"));
and display the returned results in place of the {insert} tag.
- If you supply the `assign` attribute, the output of the `{insert}`
@@ -54,8 +54,8 @@ and display the returned results in place of the {insert} tag.
> **Note**
>
- > Assigning the output to a template variable isn\'t too useful with
- > [caching](#variable.caching) enabled.
+ > Assigning the output to a template variable isn't too useful with
+ > [caching](../../programmers/api-variables/variable-caching.md) enabled.
- If you supply the `script` attribute, this php script will be
included (only once) before the `{insert}` function is executed.
@@ -63,9 +63,9 @@ and display the returned results in place of the {insert} tag.
php script must be included first to make it work.
The path can be either absolute, or relative to
- [`$trusted_dir`](#variable.trusted.dir). If security is enabled,
+ [`$trusted_dir`](../../programmers/api-variables/variable-trusted-dir.md). If security is enabled,
then the script must be located in the `$trusted_dir` path of the
- security policy. See the [Security](#advanced.features.security)
+ security policy. See the [Security](../../programmers/advanced-features/advanced-features-security.md)
section for details.
The Smarty object is passed as the second argument. This way you can
@@ -78,9 +78,9 @@ insert plugin.
> **Note**
>
> It is possible to have portions of the template not cached. If you
-> have [caching](#caching) turned on, `{insert}` tags will not be
+> have [caching](../../programmers/api-variables/variable-caching.md) turned on, `{insert}` tags will not be
> cached. They will run dynamically every time the page is created, even
> within cached pages. This works good for things like banners, polls,
> live weather, search results, user feedback areas, etc.
-See also [`{include}`](#language.function.include)
+See also [`{include}`](./language-function-include.md)
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-ldelim.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-ldelim.md
index 2afda031a..c9f73c307 100644
--- a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-ldelim.md
+++ b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-ldelim.md
@@ -1,55 +1,51 @@
-{ldelim},{rdelim} {#language.function.ldelim}
-=================
+# {ldelim}, {rdelim}
-`{ldelim}` and `{rdelim}` are used for [escaping](#language.escaping)
+`{ldelim}` and `{rdelim}` are used for [escaping](../language-basic-syntax/language-escaping.md)
template delimiters, by default **{** and **}**. You can also use
-[`{literal}{/literal}`](#language.function.literal) to escape blocks of
+[`{literal}{/literal}`](./language-function-literal.md) to escape blocks of
text eg Javascript or CSS. See also the complementary
-[`{$smarty.ldelim}`](#language.variables.smarty.ldelim).
+[`{$smarty.ldelim}`](../../programmers/api-variables/variable-left-delimiter.md).
+```smarty
+{* this will print literal delimiters out of the template *}
- {* this will print literal delimiters out of the template *}
-
- {ldelim}funcname{rdelim} is how functions look in Smarty!
-
-
+{ldelim}funcname{rdelim} is how functions look in Smarty!
+```
The above example will output:
-
- {funcname} is how functions look in Smarty!
-
-
+```
+{funcname} is how functions look in Smarty!
+```
Another example with some Javascript
-
- <script language="JavaScript">
- function foo() {ldelim}
- ... code ...
- {rdelim}
- </script>
-
-
+```smarty
+<script>
+function foo() {ldelim}
+ ... code ...
+{rdelim}
+</script>
+```
will output
+```html
+<script>
+function foo() {
+ .... code ...
+}
+</script>
+```
+
+```smarty
+<script>
+ function myJsFunction(){ldelim}
+ alert("The server name\n{$smarty.server.SERVER_NAME|escape:javascript}\n{$smarty.server.SERVER_ADDR|escape:javascript}");
+ {rdelim}
+</script>
+<a href="javascript:myJsFunction()">Click here for Server Info</a>
+```
- <script language="JavaScript">
- function foo() {
- .... code ...
- }
- </script>
-
-
-
-
- <script language="JavaScript" type="text/javascript">
- function myJsFunction(){ldelim}
- alert("The server name\n{$smarty.server.SERVER_NAME}\n{$smarty.server.SERVER_ADDR}");
- {rdelim}
- </script>
- <a href="javascript:myJsFunction()">Click here for Server Info</a>
-
-See also [`{literal}`](#language.function.literal) and [escaping Smarty
-parsing](#language.escaping).
+See also [`{literal}`](./language-function-literal.md) and [escaping Smarty
+parsing](../language-basic-syntax/language-escaping.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-literal.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-literal.md
index 27ebb3ff4..4bc12f9d0 100644
--- a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-literal.md
+++ b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-literal.md
@@ -1,13 +1,12 @@
-{literal} {#language.function.literal}
-=========
+# {literal}
`{literal}` tags allow a block of data to be taken literally. This is
typically used around Javascript or stylesheet blocks where {curly
braces} would interfere with the template
-[delimiter](#variable.left.delimiter) syntax. Anything within
+[delimiter](../../programmers/api-variables/variable-left-delimiter.md) syntax. Anything within
`{literal}{/literal}` tags is not interpreted, but displayed as-is. If
you need template tags embedded in a `{literal}` block, consider using
-[`{ldelim}{rdelim}`](#language.function.ldelim) to escape the individual
+[`{ldelim}{rdelim}`](./language-function-ldelim.md) to escape the individual
delimiters instead.
> **Note**
@@ -17,20 +16,19 @@ delimiters instead.
> javascript and CSS curly braces are surrounded by whitespace. This is
> new behavior to Smarty 3.
+```smarty
+<script>
+ // the following braces are ignored by Smarty
+ // since they are surrounded by whitespace
+ function myFoo {
+ alert('Foo!');
+ }
+ // this one will need literal escapement
+ {literal}
+ function myBar {alert('Bar!');}
+ {/literal}
+</script>
+```
- <script>
- // the following braces are ignored by Smarty
- // since they are surrounded by whitespace
- function myFoo {
- alert('Foo!');
- }
- // this one will need literal escapement
- {literal}
- function myBar {alert('Bar!');}
- {/literal}
- </script>
-
-
-
-See also [`{ldelim} {rdelim}`](#language.function.ldelim) and the
-[escaping Smarty parsing](#language.escaping) page.
+See also [`{ldelim} {rdelim}`](./language-function-ldelim.md) and the
+[escaping Smarty parsing](../language-basic-syntax/language-escaping.md) page.
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-nocache.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-nocache.md
index a5922f838..e6d8453fd 100644
--- a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-nocache.md
+++ b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-nocache.md
@@ -1,5 +1,4 @@
-{nocache} {#language.function.nocache}
-=========
+# {nocache}
`{nocache}` is used to disable caching of a template section. Every
`{nocache}` must be paired with a matching `{/nocache}`.
@@ -9,15 +8,13 @@
> Be sure any variables used within a non-cached section are also
> assigned from PHP when the page is loaded from the cache.
-
-
- Today's date is
- {nocache}
- {$smarty.now|date_format}
- {/nocache}
-
-
-
+```smarty
+Today's date is
+{nocache}
+{$smarty.now|date_format}
+{/nocache}
+```
+
The above code will output the current date on a cached page.
-See also the [caching section](#caching).
+See also the [caching section](../../programmers/caching.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-section.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-section.md
index b28bb924a..ba17224c0 100644
--- a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-section.md
+++ b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-section.md
@@ -1,14 +1,13 @@
-{section},{sectionelse} {#language.function.section}
-=======================
+# {section}, {sectionelse}
A `{section}` is for looping over **sequentially indexed arrays of
-data**, unlike [`{foreach}`](#language.function.foreach) which is used
+data**, unlike [`{foreach}`](./language-function-foreach.md) which is used
to loop over a **single associative array**. Every `{section}` tag must
be paired with a closing `{/section}` tag.
> **Note**
>
-> The [`{foreach}`](#language.function.foreach) loop can do everything a
+> The [`{foreach}`](./language-function-foreach.md) loop can do everything a
> {section} loop can do, and has a simpler and easier syntax. It is
> usually preferred over the {section} loop.
@@ -16,30 +15,33 @@ be paired with a closing `{/section}` tag.
>
> {section} loops cannot loop over associative arrays, they must be
> numerically indexed, and sequential (0,1,2,\...). For associative
-> arrays, use the [`{foreach}`](#language.function.foreach) loop.
+> arrays, use the [`{foreach}`](./language-function-foreach.md) loop.
- Attribute Name Type Required Default Description
- ---------------- --------- ---------- --------- -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- name string Yes *n/a* The name of the section
- loop mixed Yes *n/a* Value to determine the number of loop iterations
- start integer No *0* The index position that the section will begin looping. If the value is negative, the start position is calculated from the end of the array. For example, if there are seven values in the loop array and start is -2, the start index is 5. Invalid values (values outside of the length of the loop array) are automatically truncated to the closest valid value.
- step integer No *1* The step value that will be used to traverse the loop array. For example, step=2 will loop on index 0,2,4, etc. If step is negative, it will step through the array backwards.
- max integer No *n/a* Sets the maximum number of times the section will loop.
- show boolean No *TRUE* Determines whether or not to show this section
-**Option Flags:**
+## Attributes
- Name Description
- --------- ------------------------------------------
- nocache Disables caching of the `{section}` loop
+| Attribute Name | Required | Description |
+|----------------|----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| name | Yes | The name of the section |
+| loop | Yes | Value to determine the number of loop iterations |
+| start | No | The index position that the section will begin looping. If the value is negative, the start position is calculated from the end of the array. For example, if there are seven values in the loop array and start is -2, the start index is 5. Invalid values (values outside of the length of the loop array) are automatically truncated to the closest valid value. Defaults to 0. |
+| step | No | The step value that will be used to traverse the loop array. For example, step=2 will loop on index 0, 2, 4, etc. If step is negative, it will step through the array backwards. Defaults to 1. |
+| max | No | Sets the maximum number of times the section will loop. |
+| show | No | Determines whether to show this section (defaults to true) |
+
+## Option Flags
+
+| Name | Description |
+|---------|------------------------------------------|
+| nocache | Disables caching of the `{section}` loop |
- Required attributes are `name` and `loop`.
- The `name` of the `{section}` can be anything you like, made up of
letters, numbers and underscores, like [PHP
- variables](&url.php-manual;language.variables).
+ variables](https://www.php.net/language.variables).
-- {section}\'s can be nested, and the nested `{section}` names must be
+- {section}'s can be nested, and the nested `{section}` names must be
unique from each other.
- The `loop` attribute, usually an array of values, determines the
@@ -54,162 +56,156 @@ be paired with a closing `{/section}` tag.
- A `{section}` also has its own variables that handle `{section}`
properties. These properties are accessible as:
- [`{$smarty.section.name.property}`](#language.variables.smarty.loops)
+ [`{$smarty.section.name.property}`](../language-variables/language-variables-smarty.md#smartysection-languagevariablessmartyloops)
where "name" is the attribute `name`.
-- `{section}` properties are [`index`](#section.property.index),
- [`index_prev`](#section.property.index.prev),
- [`index_next`](#section.property.index.next),
- [`iteration`](#section.property.iteration),
- [`first`](#section.property.first),
- [`last`](#section.property.last),
- [`rownum`](#section.property.rownum),
- [`loop`](#section.property.loop), [`show`](#section.property.show),
- [`total`](#section.property.total).
+- `{section}` properties are [`index`](#index),
+ [`index_prev`](#index_prev),
+ [`index_next`](#index_next),
+ [`iteration`](#iteration),
+ [`first`](#first),
+ [`last`](#last),
+ [`rownum`](#rownum),
+ [`loop`](#loop), [`show`](#show),
+ [`total`](#total).
-[`assign()`](#api.assign) an array to Smarty
+[`assign()`](../../programmers/api-functions/api-assign.md) an array to Smarty
+## Examples
- <?php
- $data = array(1000,1001,1002);
- $smarty->assign('custid',$data);
- ?>
+```php
+<?php
+$data = [1000, 1001, 1002];
+$smarty->assign('custid', $data);
+```
The template that outputs the array
-
- {* this example will print out all the values of the $custid array *}
- {section name=customer loop=$custid}
- {section customer $custid} {* short-hand *}
- id: {$custid[customer]}<br />
- {/section}
- <hr />
- {* print out all the values of the $custid array reversed *}
- {section name=foo loop=$custid step=-1}
- {section foo $custid step=-1} {* short-hand *}
- {$custid[foo]}<br />
- {/section}
-
+```smarty
+{* this example will print out all the values of the $custid array *}
+{section name=customer loop=$custid}
+{section customer $custid} {* short-hand *}
+ id: {$custid[customer]}<br />
+{/section}
+<hr />
+{* print out all the values of the $custid array reversed *}
+{section name=foo loop=$custid step=-1}
+{section foo $custid step=-1} {* short-hand *}
+ {$custid[foo]}<br />
+{/section}
+```
-
The above example will output:
-
- id: 1000<br />
- id: 1001<br />
- id: 1002<br />
- <hr />
- id: 1002<br />
- id: 1001<br />
- id: 1000<br />
-
+```html
+id: 1000<br />
+id: 1001<br />
+id: 1002<br />
+<hr />
+id: 1002<br />
+id: 1001<br />
+id: 1000<br />
+```
-
-
- {section name=foo start=10 loop=20 step=2}
- {$smarty.section.foo.index}
- {/section}
- <hr />
- {section name=bar loop=21 max=6 step=-2}
- {$smarty.section.bar.index}
- {/section}
+```smarty
+{section name=foo start=10 loop=20 step=2}
+ {$smarty.section.foo.index}
+{/section}
+<hr />
+{section name=bar loop=21 max=6 step=-2}
+ {$smarty.section.bar.index}
+{/section}
+```
The above example will output:
-
- 10 12 14 16 18
- <hr />
- 20 18 16 14 12 10
-
-
+```html
+10 12 14 16 18
+<hr />
+20 18 16 14 12 10
+```
The `name` of the `{section}` can be anything you like, see [PHP
-variables](&url.php-manual;language.variables). It is used to reference
+variables](https://www.php.net/language.variables). It is used to reference
the data within the `{section}`.
-
- {section name=anything loop=$myArray}
- {$myArray[anything].foo}
- {$name[anything]}
- {$address[anything].bar}
- {/section}
-
-
+```smarty
+{section name=anything loop=$myArray}
+ {$myArray[anything].foo}
+ {$name[anything]}
+ {$address[anything].bar}
+{/section}
+```
This is an example of printing an associative array of data with a
`{section}`. Following is the php script to assign the `$contacts` array
to Smarty.
-
- <?php
- $data = array(
- array('name' => 'John Smith', 'home' => '555-555-5555',
- 'cell' => '666-555-5555', 'email' => 'john@myexample.com'),
- array('name' => 'Jack Jones', 'home' => '777-555-5555',
- 'cell' => '888-555-5555', 'email' => 'jack@myexample.com'),
- array('name' => 'Jane Munson', 'home' => '000-555-5555',
- 'cell' => '123456', 'email' => 'jane@myexample.com')
- );
- $smarty->assign('contacts',$data);
- ?>
-
-
-
+```php
+<?php
+$data = [
+ ['name' => 'John Smith', 'home' => '555-555-5555',
+ 'cell' => '666-555-5555', 'email' => 'john@myexample.com'],
+ ['name' => 'Jack Jones', 'home' => '777-555-5555',
+ 'cell' => '888-555-5555', 'email' => 'jack@myexample.com'],
+ ['name' => 'Jane Munson', 'home' => '000-555-5555',
+ 'cell' => '123456', 'email' => 'jane@myexample.com']
+];
+$smarty->assign('contacts',$data);
+```
+
The template to output `$contacts`
-
- {section name=customer loop=$contacts}
- <p>
- name: {$contacts[customer].name}<br />
- home: {$contacts[customer].home}<br />
- cell: {$contacts[customer].cell}<br />
- e-mail: {$contacts[customer].email}
- </p>
- {/section}
-
-
+```smarty
+{section name=customer loop=$contacts}
+<p>
+ name: {$contacts[customer].name}<br />
+ home: {$contacts[customer].home}<br />
+ cell: {$contacts[customer].cell}<br />
+ e-mail: {$contacts[customer].email}
+</p>
+{/section}
+```
The above example will output:
-
- <p>
- name: John Smith<br />
- home: 555-555-5555<br />
- cell: 666-555-5555<br />
- e-mail: john@myexample.com
- </p>
- <p>
- name: Jack Jones<br />
- home phone: 777-555-5555<br />
- cell phone: 888-555-5555<br />
- e-mail: jack@myexample.com
- </p>
- <p>
- name: Jane Munson<br />
- home phone: 000-555-5555<br />
- cell phone: 123456<br />
- e-mail: jane@myexample.com
- </p>
-
+```html
+<p>
+ name: John Smith<br />
+ home: 555-555-5555<br />
+ cell: 666-555-5555<br />
+ e-mail: john@myexample.com
+</p>
+<p>
+ name: Jack Jones<br />
+ home phone: 777-555-5555<br />
+ cell phone: 888-555-5555<br />
+ e-mail: jack@myexample.com
+</p>
+<p>
+ name: Jane Munson<br />
+ home phone: 000-555-5555<br />
+ cell phone: 123456<br />
+ e-mail: jane@myexample.com
+</p>
+```
-
This example assumes that `$custid`, `$name` and `$address` are all
arrays containing the same number of values. First the php script that
-assign\'s the arrays to Smarty.
-
+assign's the arrays to Smarty.
- <?php
+```php
+<?php
- $id = array(1001,1002,1003);
- $smarty->assign('custid',$id);
+$id = [1001,1002,1003];
+$smarty->assign('custid',$id);
- $fullnames = array('John Smith','Jack Jones','Jane Munson');
- $smarty->assign('name',$fullnames);
+$fullnames = ['John Smith','Jack Jones','Jane Munson'];
+$smarty->assign('name',$fullnames);
- $addr = array('253 Abbey road', '417 Mulberry ln', '5605 apple st');
- $smarty->assign('address',$addr);
-
- ?>
+$addr = ['253 Abbey road', '417 Mulberry ln', '5605 apple st'];
+$smarty->assign('address',$addr);
+```
The `loop` variable only determines the number of times to loop. You can
access ANY variable from the template within the `{section}`. This is
@@ -217,125 +213,119 @@ useful for looping multiple arrays. You can pass an array which will
determine the loop count by the array size, or you can pass an integer
to specify the number of loops.
-
- {section name=customer loop=$custid}
- <p>
- id: {$custid[customer]}<br />
- name: {$name[customer]}<br />
- address: {$address[customer]}
- </p>
- {/section}
-
+```smarty
+{section name=customer loop=$custid}
+<p>
+ id: {$custid[customer]}<br />
+ name: {$name[customer]}<br />
+ address: {$address[customer]}
+</p>
+{/section}
+```
-
The above example will output:
-
- <p>
- id: 1000<br />
- name: John Smith<br />
- address: 253 Abbey road
- </p>
- <p>
- id: 1001<br />
- name: Jack Jones<br />
- address: 417 Mulberry ln
- </p>
- <p>
- id: 1002<br />
- name: Jane Munson<br />
- address: 5605 apple st
- </p>
-
+```html
+<p>
+ id: 1000<br />
+ name: John Smith<br />
+ address: 253 Abbey road
+</p>
+<p>
+ id: 1001<br />
+ name: Jack Jones<br />
+ address: 417 Mulberry ln
+</p>
+<p>
+ id: 1002<br />
+ name: Jane Munson<br />
+ address: 5605 apple st
+</p>
+```
-
-{section}\'s can be nested as deep as you like. With nested
-{section}\'s, you can access complex data structures, such as
-multi-dimensional arrays. This is an example `.php` script that
+{section}'s can be nested as deep as you like. With nested
+{section}'s, you can access complex data structures, such as
+multidimensional arrays. This is an example `.php` script that
assigns the arrays.
+```php
+<?php
- <?php
-
- $id = array(1001,1002,1003);
- $smarty->assign('custid',$id);
-
- $fullnames = array('John Smith','Jack Jones','Jane Munson');
- $smarty->assign('name',$fullnames);
+$id = [1001,1002,1003];
+$smarty->assign('custid',$id);
- $addr = array('253 N 45th', '417 Mulberry ln', '5605 apple st');
- $smarty->assign('address',$addr);
+$fullnames = ['John Smith','Jack Jones','Jane Munson'];
+$smarty->assign('name',$fullnames);
- $types = array(
- array( 'home phone', 'cell phone', 'e-mail'),
- array( 'home phone', 'web'),
- array( 'cell phone')
- );
- $smarty->assign('contact_type', $types);
+$addr = ['253 N 45th', '417 Mulberry ln', '5605 apple st'];
+$smarty->assign('address',$addr);
- $info = array(
- array('555-555-5555', '666-555-5555', 'john@myexample.com'),
- array( '123-456-4', 'www.example.com'),
- array( '0457878')
- );
- $smarty->assign('contact_info', $info);
+$types = [
+ [ 'home phone', 'cell phone', 'e-mail'],
+ [ 'home phone', 'web'],
+ [ 'cell phone']
+ ];
+$smarty->assign('contact_type', $types);
- ?>
+$info = [
+ ['555-555-5555', '666-555-5555', 'john@myexample.com'],
+ [ '123-456-4', 'www.example.com'],
+ [ '0457878']
+ ];
+$smarty->assign('contact_info', $info);
+```
-
-In this template, *\$contact\_type\[customer\]* is an array of contact
+In this template, *$contact_type\[customer\]* is an array of contact
types for the current customer.
-
- {section name=customer loop=$custid}
- <hr>
- id: {$custid[customer]}<br />
- name: {$name[customer]}<br />
- address: {$address[customer]}<br />
- {section name=contact loop=$contact_type[customer]}
- {$contact_type[customer][contact]}: {$contact_info[customer][contact]}<br />
- {/section}
- {/section}
-
+```smarty
+{section name=customer loop=$custid}
+<hr>
+ id: {$custid[customer]}<br />
+ name: {$name[customer]}<br />
+ address: {$address[customer]}<br />
+ {section name=contact loop=$contact_type[customer]}
+ {$contact_type[customer][contact]}: {$contact_info[customer][contact]}<br />
+ {/section}
+{/section}
+```
-
The above example will output:
-
- <hr>
- id: 1000<br />
- name: John Smith<br />
- address: 253 N 45th<br />
- home phone: 555-555-5555<br />
- cell phone: 666-555-5555<br />
- e-mail: john@myexample.com<br />
- <hr>
- id: 1001<br />
- name: Jack Jones<br />
- address: 417 Mulberry ln<br />
- home phone: 123-456-4<br />
- web: www.example.com<br />
- <hr>
- id: 1002<br />
- name: Jane Munson<br />
- address: 5605 apple st<br />
- cell phone: 0457878<br />
-
+```html
+<hr>
+ id: 1000<br />
+ name: John Smith<br />
+ address: 253 N 45th<br />
+ home phone: 555-555-5555<br />
+ cell phone: 666-555-5555<br />
+ e-mail: john@myexample.com<br />
+<hr>
+ id: 1001<br />
+ name: Jack Jones<br />
+ address: 417 Mulberry ln<br />
+ home phone: 123-456-4<br />
+ web: www.example.com<br />
+<hr>
+ id: 1002<br />
+ name: Jane Munson<br />
+ address: 5605 apple st<br />
+ cell phone: 0457878<br />
+```
-
Results of a database search (eg ADODB or PEAR) are assigned to Smarty
-
- <?php
- $sql = 'select id, name, home, cell, email from contacts '
- ."where name like '$foo%' ";
- $smarty->assign('contacts', $db->getAll($sql));
- ?>
+```php
+<?php
+$sql = 'select id, name, home, cell, email from contacts '
+ ."where name like '$foo%' ";
+$smarty->assign('contacts', $db->getAll($sql));
+```
The template to output the database result in a HTML table
-
- <table>
+```smarty
+<table>
<tr><th>&nbsp;</th><th>Name></th><th>Home</th><th>Cell</th><th>Email</th></tr>
{section name=co loop=$contacts}
<tr>
@@ -348,11 +338,10 @@ The template to output the database result in a HTML table
{sectionelse}
<tr><td colspan="5">No items found</td></tr>
{/section}
- </table>
-
-.index {#section.property.index}
-------
+</table>
+```
+## .index
`index` contains the current array index, starting with zero or the
`start` attribute if given. It increments by one or by the `step`
attribute if given.
@@ -360,129 +349,120 @@ attribute if given.
> **Note**
>
> If the `step` and `start` properties are not modified, then this works
-> the same as the [`iteration`](#section.property.iteration) property,
+> the same as the [`iteration`](#iteration) property,
> except it starts at zero instead of one.
> **Note**
>
> `$custid[customer.index]` and `$custid[customer]` are identical.
-
- {section name=customer loop=$custid}
- {$smarty.section.customer.index} id: {$custid[customer]}<br />
- {/section}
-
+```smarty
+{section name=customer loop=$custid}
+ {$smarty.section.customer.index} id: {$custid[customer]}<br />
+{/section}
+```
-
The above example will output:
-
- 0 id: 1000<br />
- 1 id: 1001<br />
- 2 id: 1002<br />
-
+```html
+0 id: 1000<br />
+1 id: 1001<br />
+2 id: 1002<br />
+```
-.index\_prev {#section.property.index.prev}
-------------
+## .index_prev
-`index_prev` is the previous loop index. On the first loop, this is set
-to -1.
+`index_prev` is the previous loop index. On the first loop, this is set to -1.
-.index\_next {#section.property.index.next}
-------------
+## .index_next
`index_next` is the next loop index. On the last loop, this is still one
more than the current index, respecting the setting of the `step`
attribute, if given.
-
- <?php
- $data = array(1001,1002,1003,1004,1005);
+```php
+<?php
+ $data = [1001,1002,1003,1004,1005];
$smarty->assign('rows',$data);
- ?>
+```
Template to output the above array in a table
-
- {* $rows[row.index] and $rows[row] are identical in meaning *}
- <table>
- <tr>
- <th>index</th><th>id</th>
- <th>index_prev</th><th>prev_id</th>
- <th>index_next</th><th>next_id</th>
- </tr>
- {section name=row loop=$rows}
- <tr>
- <td>{$smarty.section.row.index}</td><td>{$rows[row]}</td>
- <td>{$smarty.section.row.index_prev}</td><td>{$rows[row.index_prev]}</td>
- <td>{$smarty.section.row.index_next}</td><td>{$rows[row.index_next]}</td>
- </tr>
- {/section}
- </table>
-
+```smarty
+{* $rows[row.index] and $rows[row] are identical in meaning *}
+<table>
+ <tr>
+ <th>index</th><th>id</th>
+ <th>index_prev</th><th>prev_id</th>
+ <th>index_next</th><th>next_id</th>
+ </tr>
+{section name=row loop=$rows}
+ <tr>
+ <td>{$smarty.section.row.index}</td><td>{$rows[row]}</td>
+ <td>{$smarty.section.row.index_prev}</td><td>{$rows[row.index_prev]}</td>
+ <td>{$smarty.section.row.index_next}</td><td>{$rows[row.index_next]}</td>
+ </tr>
+{/section}
+</table>
+```
-
The above example will output a table containing the following:
-
+```
index id index_prev prev_id index_next next_id
0 1001 -1 1 1002
1 1002 0 1001 2 1003
2 1003 1 1002 3 1004
3 1004 2 1003 4 1005
4 1005 3 1004 5
-
+```
-
-.iteration {#section.property.iteration}
-----------
+## .iteration
`iteration` contains the current loop iteration and starts at one.
> **Note**
>
> This is not affected by the `{section}` properties `start`, `step` and
-> `max`, unlike the [`index`](#section.property.index) property.
+> `max`, unlike the [`index`](#index) property.
> `iteration` also starts with one instead of zero unlike `index`.
-> [`rownum`](#section.property.rownum) is an alias to `iteration`, they
+> [`rownum`](#rownum) is an alias to `iteration`, they
> are identical.
-
- <?php
- // array of 3000 to 3015
- $id = range(3000,3015);
- $smarty->assign('arr',$id);
- ?>
+```php
+<?php
+// array of 3000 to 3015
+$id = range(3000,3015);
+$smarty->assign('arr', $id);
+```
Template to output every other element of the `$arr` array as `step=2`
-
- {section name=cu loop=$arr start=5 step=2}
- iteration={$smarty.section.cu.iteration}
- index={$smarty.section.cu.index}
- id={$custid[cu]}<br />
- {/section}
-
+```smarty
+{section name=cu loop=$arr start=5 step=2}
+ iteration={$smarty.section.cu.iteration}
+ index={$smarty.section.cu.index}
+ id={$custid[cu]}<br />
+{/section}
+```
-
The above example will output:
-
- iteration=1 index=5 id=3005<br />
- iteration=2 index=7 id=3007<br />
- iteration=3 index=9 id=3009<br />
- iteration=4 index=11 id=3011<br />
- iteration=5 index=13 id=3013<br />
- iteration=6 index=15 id=3015<br />
-
-
+```html
+iteration=1 index=5 id=3005<br />
+iteration=2 index=7 id=3007<br />
+iteration=3 index=9 id=3009<br />
+iteration=4 index=11 id=3011<br />
+iteration=5 index=13 id=3013<br />
+iteration=6 index=15 id=3015<br />
+```
Another example that uses the `iteration` property to output a table
header block every five rows.
-
- <table>
+```smarty
+<table>
{section name=co loop=$contacts}
{if $smarty.section.co.iteration is div by 5}
<tr><th>&nbsp;</th><th>Name></th><th>Home</th><th>Cell</th><th>Email</th></tr>
@@ -495,150 +475,136 @@ header block every five rows.
<td>{$contacts[co].email}</td>
<tr>
{/section}
- </table>
-
-
+</table>
+```
-An that uses the `iteration` property to alternate a text color every
+An example that uses the `iteration` property to alternate a text color every
third row.
-
- <table>
- {section name=co loop=$contacts}
- {if $smarty.section.co.iteration is even by 3}
- <span style="color: #ffffff">{$contacts[co].name}</span>
- {else}
- <span style="color: #dddddd">{$contacts[co].name}</span>
- {/if}
- {/section}
- </table>
-
-
+```smarty
+<table>
+ {section name=co loop=$contacts}
+ {if $smarty.section.co.iteration is even by 3}
+ <span style="color: #ffffff">{$contacts[co].name}</span>
+ {else}
+ <span style="color: #dddddd">{$contacts[co].name}</span>
+ {/if}
+ {/section}
+</table>
+```
> **Note**
>
-> The *\"is div by\"* syntax is a simpler alternative to the PHP mod
+> The *"is div by"* syntax is a simpler alternative to the PHP mod
> operator syntax. The mod operator is allowed:
> `{if $smarty.section.co.iteration % 5 == 1}` will work just the same.
> **Note**
>
-> You can also use *\"is odd by\"* to reverse the alternating.
+> You can also use *"is odd by"* to reverse the alternating.
-.first {#section.property.first}
-------
+## .first
-`first` is set to TRUE if the current `{section}` iteration is the
-initial one.
+`first` is set to TRUE if the current `{section}` iteration is the initial one.
-.last {#section.property.last}
------
+## .last
`last` is set to TRUE if the current section iteration is the final one.
This example loops the `$customers` array, outputs a header block on the
first iteration and on the last outputs the footer block. Also uses the
-[`total`](#section.property.total) property.
+[`total`](#total) property.
+```smarty
+{section name=customer loop=$customers}
+ {if $smarty.section.customer.first}
+ <table>
+ <tr><th>id</th><th>customer</th></tr>
+ {/if}
- {section name=customer loop=$customers}
- {if $smarty.section.customer.first}
- <table>
- <tr><th>id</th><th>customer</th></tr>
- {/if}
-
- <tr>
- <td>{$customers[customer].id}}</td>
- <td>{$customers[customer].name}</td>
- </tr>
-
- {if $smarty.section.customer.last}
- <tr><td></td><td>{$smarty.section.customer.total} customers</td></tr>
- </table>
- {/if}
- {/section}
+ <tr>
+ <td>{$customers[customer].id}}</td>
+ <td>{$customers[customer].name}</td>
+ </tr>
-
+ {if $smarty.section.customer.last}
+ <tr><td></td><td>{$smarty.section.customer.total} customers</td></tr>
+ </table>
+ {/if}
+{/section}
+```
-.rownum {#section.property.rownum}
--------
+## .rownum
`rownum` contains the current loop iteration, starting with one. It is
-an alias to [`iteration`](#section.property.iteration), they work
+an alias to [`iteration`](#iteration), they work
identically.
-.loop {#section.property.loop}
------
+## .loop
`loop` contains the last index number that this {section} looped. This
can be used inside or after the `{section}`.
-
- {section name=customer loop=$custid}
- {$smarty.section.customer.index} id: {$custid[customer]}<br />
- {/section}
- There are {$smarty.section.customer.loop} customers shown above.
-
-
+```smarty
+{section name=customer loop=$custid}
+ {$smarty.section.customer.index} id: {$custid[customer]}<br />
+{/section}
+There are {$smarty.section.customer.loop} customers shown above.
+```
The above example will output:
+```html
+0 id: 1000<br />
+1 id: 1001<br />
+2 id: 1002<br />
+There are 3 customers shown above.
+```
- 0 id: 1000<br />
- 1 id: 1001<br />
- 2 id: 1002<br />
- There are 3 customers shown above.
-
-
-
-.show {#section.property.show}
------
+## .show
`show` is used as a parameter to section and is a boolean value. If
FALSE, the section will not be displayed. If there is a `{sectionelse}`
present, that will be alternately displayed.
Boolean `$show_customer_info` has been passed from the PHP application,
-to regulate whether or not this section shows.
-
-
- {section name=customer loop=$customers show=$show_customer_info}
- {$smarty.section.customer.rownum} id: {$customers[customer]}<br />
- {/section}
-
- {if $smarty.section.customer.show}
- the section was shown.
- {else}
- the section was not shown.
- {/if}
-
+to regulate whether this section shows.
+
+```smarty
+{section name=customer loop=$customers show=$show_customer_info}
+ {$smarty.section.customer.rownum} id: {$customers[customer]}<br />
+{/section}
+
+{if $smarty.section.customer.show}
+ the section was shown.
+{else}
+ the section was not shown.
+{/if}
+```
-
The above example will output:
+```html
+1 id: 1000<br />
+2 id: 1001<br />
+3 id: 1002<br />
- 1 id: 1000<br />
- 2 id: 1001<br />
- 3 id: 1002<br />
-
- the section was shown.
-
+the section was shown.
+```
-.total {#section.property.total}
-------
+## .total
`total` contains the number of iterations that this `{section}` will
loop. This can be used inside or after a `{section}`.
-
- {section name=customer loop=$custid step=2}
- {$smarty.section.customer.index} id: {$custid[customer]}<br />
- {/section}
- There are {$smarty.section.customer.total} customers shown above.
-
+```smarty
+{section name=customer loop=$custid step=2}
+ {$smarty.section.customer.index} id: {$custid[customer]}<br />
+{/section}
+ There are {$smarty.section.customer.total} customers shown above.
+```
-
-See also [`{foreach}`](#language.function.foreach),
-[`{for}`](#language.function.for), [`{while}`](#language.function.while)
-and [`$smarty.section`](#language.variables.smarty.loops).
+See also [`{foreach}`](./language-function-foreach.md),
+[`{for}`](./language-function-for.md), [`{while}`](./language-function-while.md)
+and [`$smarty.section`](../language-variables/language-variables-smarty.md#smartysection-languagevariablessmartyloops).
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-setfilter.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-setfilter.md
index c7f99e783..eb11cbf1e 100644
--- a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-setfilter.md
+++ b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-setfilter.md
@@ -1,29 +1,35 @@
-{setfilter} {#language.function.setfilter}
-===========
+# {setfilter}
The `{setfilter}...{/setfilter}` block tag allows the definition of
-template instance\'s variable filters.
+template instance's variable filters.
-SYNTAX: {setfilter filter1\|filter2\|filter3\....}\...{/setfilter}
+SYNTAX: `{setfilter filter1\|filter2\|filter3\....}\...{/setfilter}`
The filter can be:
-- A variable filter plugin specified by it\'s name.
+- A variable filter plugin specified by it's name.
-- A modifier specified by it\'s name and optional additional
+- A modifier specified by it's name and optional additional
parameter.
`{setfilter}...{/setfilter}` blocks can be nested. The filter definition
of inner blocks does replace the definition of the outer block.
Template instance filters run in addition to other modifiers and
-filters. They run in the following order: modifier, default\_modifier,
-\$escape\_html, registered variable filters, autoloaded variable
-filters, template instance\'s variable filters. Everything after
-default\_modifier can be disabled with the `nofilter` flag.
+filters. They run in the following order: modifier, default_modifier,
+$escape_html, registered variable filters, autoloaded variable
+filters, template instance's variable filters. Everything after
+default_modifier can be disabled with the `nofilter` flag.
+> **Note**
+>
+> The setting of template instance filters does not affect the output of
+> included subtemplates.
+
+## Examples
- <script>
+```smarty
+<script>
{setfilter filter1}
{$foo} {* filter1 runs on output of $foo *}
{setfilter filter2|mod:true}
@@ -32,11 +38,6 @@ default\_modifier can be disabled with the `nofilter` flag.
{$buh} {* filter1 runs on output of $buh *}
{/setfilter}
{$blar} {* no template instance filter runs on output of $blar}
- </script>
+</script>
+```
-
-
-> **Note**
->
-> The setting of template instance filters does not effect the output of
-> included subtemplates.
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-shortform-assign.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-shortform-assign.md
deleted file mode 100644
index d6a9e9798..000000000
--- a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-shortform-assign.md
+++ /dev/null
@@ -1,84 +0,0 @@
-{\$var=\...} {#language.function.shortform.assign}
-============
-
-This is a short-hand version of the {assign} function. You can assign
-values directly to the template, or assign values to array elements too.
-
-> **Note**
->
-> Assignment of variables in-template is essentially placing application
-> logic into the presentation that may be better handled in PHP. Use at
-> your own discretion.
-
-The following attributes can be added to the tag:
-
-**Attributes:**
-
- Attribute Name Shorthand Type Required Default Description
- ---------------- ----------- -------- ---------- --------- -----------------------------------------------------------------------
- scope n/a string No *n/a* The scope of the assigned variable: \'parent\',\'root\' or \'global\'
-
-**Option Flags:**
-
- Name Description
- --------- -----------------------------------------------------
- nocache Assigns the variable with the \'nocache\' attribute
-
-
- {$name='Bob'}
-
- The value of $name is {$name}.
-
-
-
-The above example will output:
-
-
- The value of $name is Bob.
-
-
-
-
- {$running_total=$running_total+$some_array[row].some_value}
-
-
-
-
- {$user.name="Bob"}
-
-
-
-
- {$user.name.first="Bob"}
-
-
-
-
- {$users[]="Bob"}
-
-
-
-Variables assigned in the included template will be seen in the
-including template.
-
-
- {include file="sub_template.tpl"}
- ...
- {* display variable assigned in sub_template *}
- {$foo}<br>
- ...
-
-
-
-The template above includes the example `sub_template.tpl` below
-
-
- ...
- {* foo will be known also in the including template *}
- {$foo="something" scope=parent}
- {* bar is assigned only local in the including template *}
- {$bar="value"}
- ...
-
-See also [`{assign}`](#language.function.assign) and
-[`{append}`](#language.function.append)
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-strip.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-strip.md
index d40646e5f..800de84bf 100644
--- a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-strip.md
+++ b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-strip.md
@@ -1,9 +1,8 @@
-{strip} {#language.function.strip}
-=======
+# {strip}
Many times web designers run into the issue where white space and
carriage returns affect the output of the rendered HTML (browser
-\"features\"), so you must run all your tags together in the template to
+"features"), so you must run all your tags together in the template to
get the desired results. This usually ends up in unreadable or
unmanageable templates.
@@ -15,34 +14,32 @@ worry about extra white space causing problems.
> **Note**
>
> `{strip}{/strip}` does not affect the contents of template variables,
-> see the [strip modifier](#language.modifier.strip) instead.
+> see the [strip modifier](../language-modifiers/language-modifier-strip.md) instead.
-
- {* the following will be all run into one line upon output *}
- {strip}
- <table border='0'>
+```smarty
+{* the following will be all run into one line upon output *}
+{strip}
+ <table>
<tr>
<td>
- <a href="{$url}">
- <font color="red">This is a test</font>
+ <a href="#">
+ This is a test
</a>
</td>
</tr>
</table>
- {/strip}
-
+{/strip}
+```
-
The above example will output:
-
- <table border='0'><tr><td><a href="http://. snipped...</a></td></tr></table>
-
-
+```html
+<table><tr><td><a href="#">This is a test</a></td></tr></table>
+```
Notice that in the above example, all the lines begin and end with HTML
tags. Be aware that all the lines are run together. If you have plain
text at the beginning or end of any line, they will be run together, and
may not be desired results.
-See also the [`strip`](#language.modifier.strip) modifier.
+See also the [`strip`](../language-modifiers/language-modifier-strip.md) modifier.
diff --git a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-while.md b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-while.md
index 755c091f6..13eaef9b4 100644
--- a/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-while.md
+++ b/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-while.md
@@ -1,43 +1,43 @@
-{while} {#language.function.while}
-=======
+# {while}
`{while}` loops in Smarty have much the same flexibility as PHP
-[while](&url.php-manual;while) statements, with a few added features for
+[while](https://www.php.net/while) statements, with a few added features for
the template engine. Every `{while}` must be paired with a matching
`{/while}`. All PHP conditionals and functions are recognized, such as
-*\|\|*, *or*, *&&*, *and*, *is\_array()*, etc.
+*\|\|*, *or*, *&&*, *and*, *is_array()*, etc.
The following is a list of recognized qualifiers, which must be
separated from surrounding elements by spaces. Note that items listed in
\[brackets\] are optional. PHP equivalents are shown where applicable.
- Qualifier Alternates Syntax Example Meaning PHP Equivalent
- -------------------- ------------ ------------------------ -------------------------------- ----------------------
- == eq \$a eq \$b equals ==
- != ne, neq \$a neq \$b not equals !=
- \> gt \$a gt \$b greater than \>
- \< lt \$a lt \$b less than \<
- \>= gte, ge \$a ge \$b greater than or equal \>=
- \<= lte, le \$a le \$b less than or equal \<=
- === \$a === 0 check for identity ===
- ! not not \$a negation (unary) !
- \% mod \$a mod \$b modulous \%
- is \[not\] div by \$a is not div by 4 divisible by \$a % \$b == 0
- is \[not\] even \$a is not even \[not\] an even number (unary) \$a % 2 == 0
- is \[not\] even by \$a is not even by \$b grouping level \[not\] even (\$a / \$b) % 2 == 0
- is \[not\] odd \$a is not odd \[not\] an odd number (unary) \$a % 2 != 0
- is \[not\] odd by \$a is not odd by \$b \[not\] an odd grouping (\$a / \$b) % 2 != 0
-
-
-
- {while $foo > 0}
- {$foo--}
- {/while}
-
-
-
-The above example will count down the value of \$foo until 1 is reached.
-
-See also [`{foreach}`](#language.function.foreach),
-[`{for}`](#language.function.for) and
-[`{section}`](#language.function.section).
+## Qualifiers
+
+| Qualifier | Alternates | Syntax Example | Meaning | PHP Equivalent |
+|--------------------|------------|----------------------|--------------------------------|--------------------|
+| == | eq | $a eq $b | equals | == |
+| != | ne, neq | $a neq $b | not equals | != |
+| > | gt | $a gt $b | greater than | > |
+| < | lt | $a lt $b | less than | < |
+| >= | gte, ge | $a ge $b | greater than or equal | >= |
+| <= | lte, le | $a le $b | less than or equal | <= |
+| === | | $a === 0 | check for identity | === |
+| ! | not | not $a | negation (unary) | ! |
+| % | mod | $a mod $b | modulo | % |
+| is \[not\] div by | | $a is not div by 4 | divisible by | $a % $b == 0 |
+| is \[not\] even | | $a is not even | \[not\] an even number (unary) | $a % 2 == 0 |
+| is \[not\] even by | | $a is not even by $b | grouping level \[not\] even | ($a / $b) % 2 == 0 |
+| is \[not\] odd | | $a is not odd | \[not\] an odd number (unary) | $a % 2 != 0 |
+| is \[not\] odd by | | $a is not odd by $b | \[not\] an odd grouping | ($a / $b) % 2 != 0 |
+
+## Examples
+```smarty
+{while $foo > 0}
+ {$foo--}
+{/while}
+```
+
+The above example will count down the value of $foo until 1 is reached.
+
+See also [`{foreach}`](./language-function-foreach.md),
+[`{for}`](./language-function-for.md) and
+[`{section}`](./language-function-section.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-combining-modifiers.md b/vendor/smarty/smarty/docs/designers/language-combining-modifiers.md
index edf1a83ea..97903c535 100644
--- a/vendor/smarty/smarty/docs/designers/language-combining-modifiers.md
+++ b/vendor/smarty/smarty/docs/designers/language-combining-modifiers.md
@@ -1,35 +1,32 @@
-Combining Modifiers {#language.combining.modifiers}
-===================
+# Combining Modifiers
You can apply any number of modifiers to a variable. They will be
applied in the order they are combined, from left to right. They must be
separated with a `|` (pipe) character.
+```php
+<?php
- <?php
-
- $smarty->assign('articleTitle', 'Smokers are Productive, but Death Cuts Efficiency.');
-
- ?>
+$smarty->assign('articleTitle', 'Smokers are Productive, but Death Cuts Efficiency.');
+```
where template is:
-
- {$articleTitle}
- {$articleTitle|upper|spacify}
- {$articleTitle|lower|spacify|truncate}
- {$articleTitle|lower|truncate:30|spacify}
- {$articleTitle|lower|spacify|truncate:30:". . ."}
-
+```smarty
+{$articleTitle}
+{$articleTitle|upper|spacify}
+{$articleTitle|lower|spacify|truncate}
+{$articleTitle|lower|truncate:30|spacify}
+{$articleTitle|lower|spacify|truncate:30:". . ."}
+```
The above example will output:
-
- Smokers are Productive, but Death Cuts Efficiency.
- S M O K E R S A R ....snip.... H C U T S E F F I C I E N C Y .
- s m o k e r s a r ....snip.... b u t d e a t h c u t s...
- s m o k e r s a r e p r o d u c t i v e , b u t . . .
- s m o k e r s a r e p. . .
-
-
+```
+Smokers are Productive, but Death Cuts Efficiency.
+S M O K E R S A R ....snip.... H C U T S E F F I C I E N C Y .
+s m o k e r s a r ....snip.... b u t d e a t h c u t s...
+s m o k e r s a r e p r o d u c t i v e , b u t . . .
+s m o k e r s a r e p. . .
+```
diff --git a/vendor/smarty/smarty/docs/designers/language-custom-functions.md b/vendor/smarty/smarty/docs/designers/language-custom-functions.md
deleted file mode 100644
index 20ad54e99..000000000
--- a/vendor/smarty/smarty/docs/designers/language-custom-functions.md
+++ /dev/null
@@ -1,21 +0,0 @@
-Custom Functions {#language.custom.functions}
-================
-
-Smarty comes with several custom plugin functions that you can use in
-the templates.
-
-## Table of contents
-- [{counter}](./language-custom-functions/language-function-counter.md)
-- [{cycle}](./language-custom-functions/language-function-cycle.md)
-- [{eval}](./language-custom-functions/language-function-eval.md)
-- [{fetch}](./language-custom-functions/language-function-fetch.md)
-- [{html_checkboxes}](./language-custom-functions/language-function-html-checkboxes.md)
-- [{html_image}](./language-custom-functions/language-function-html-image.md)
-- [{html_options}](./language-custom-functions/language-function-html-options.md)
-- [{html_radios}](./language-custom-functions/language-function-html-radios.md)
-- [{html_select_date}](./language-custom-functions/language-function-html-select-date.md)
-- [{html_select_time}](./language-custom-functions/language-function-html-select-time.md)
-- [{html_table}](./language-custom-functions/language-function-html-table.md)
-- [{mailto}](./language-custom-functions/language-function-mailto.md)
-- [{math}](./language-custom-functions/language-function-math.md)
-- [{textformat}](./language-custom-functions/language-function-textformat.md)
diff --git a/vendor/smarty/smarty/docs/designers/language-custom-functions/index.md b/vendor/smarty/smarty/docs/designers/language-custom-functions/index.md
new file mode 100644
index 000000000..81979654c
--- /dev/null
+++ b/vendor/smarty/smarty/docs/designers/language-custom-functions/index.md
@@ -0,0 +1,19 @@
+# Custom Functions
+
+Smarty comes with several custom plugin functions that you can use in
+the templates.
+
+- [{counter}](language-function-counter.md)
+- [{cycle}](language-function-cycle.md)
+- [{eval}](language-function-eval.md)
+- [{fetch}](language-function-fetch.md)
+- [{html_checkboxes}](language-function-html-checkboxes.md)
+- [{html_image}](language-function-html-image.md)
+- [{html_options}](language-function-html-options.md)
+- [{html_radios}](language-function-html-radios.md)
+- [{html_select_date}](language-function-html-select-date.md)
+- [{html_select_time}](language-function-html-select-time.md)
+- [{html_table}](language-function-html-table.md)
+- [{mailto}](language-function-mailto.md)
+- [{math}](language-function-math.md)
+- [{textformat}](language-function-textformat.md)
diff --git a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-counter.md b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-counter.md
index cc1ac08f2..de04c2fee 100644
--- a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-counter.md
+++ b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-counter.md
@@ -1,41 +1,45 @@
-{counter} {#language.function.counter}
-=========
+# {counter}
`{counter}` is used to print out a count. `{counter}` will remember the
count on each iteration. You can adjust the number, the interval and the
-direction of the count, as well as determine whether or not to print the
+direction of the count, as well as determine whether to print the
value. You can run multiple counters concurrently by supplying a unique
name for each one. If you do not supply a name, the name "default" will
be used.
+## Attributes
+
+| Attribute Name | Required | Description |
+|----------------|----------|-----------------------------------------------------------|
+| name | No | The name of the counter |
+| start | No | The initial number to start counting from (defaults to 1) |
+| skip | No | The interval to count by (defaults to 1) |
+| direction | No | The direction to count (up/down) (defaults to 'up') |
+| print | No | Whether or not to print the value (defaults to true) |
+| assign | No | the template variable the output will be assigned to |
+
If you supply the `assign` attribute, the output of the `{counter}`
function will be assigned to this template variable instead of being
output to the template.
- Attribute Name Type Required Default Description
- ---------------- --------- ---------- ----------- ------------------------------------------------------
- name string No *default* The name of the counter
- start number No *1* The initial number to start counting from
- skip number No *1* The interval to count by
- direction string No *up* The direction to count (up/down)
- print boolean No *TRUE* Whether or not to print the value
- assign string No *n/a* the template variable the output will be assigned to
+## Examples
+```smarty
- {* initialize the count *}
- {counter start=0 skip=2}<br />
- {counter}<br />
- {counter}<br />
- {counter}<br />
+{* initialize the count *}
+{counter start=0 skip=2}<br />
+{counter}<br />
+{counter}<br />
+{counter}<br />
-
+```
this will output:
-
- 0<br />
- 2<br />
- 4<br />
- 6<br />
-
+```html
+0<br />
+2<br />
+4<br />
+6<br />
+```
diff --git a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-cycle.md b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-cycle.md
index 5986e6322..661e490dc 100644
--- a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-cycle.md
+++ b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-cycle.md
@@ -1,22 +1,23 @@
-{cycle} {#language.function.cycle}
-=======
+# {cycle}
`{cycle}` is used to alternate a set of values. This makes it easy to
for example, alternate between two or more colors in a table, or cycle
through an array of values.
- Attribute Name Type Required Default Description
- ---------------- --------- ---------- ----------- -------------------------------------------------------------------------------------------------------------
- name string No *default* The name of the cycle
- values mixed Yes *N/A* The values to cycle through, either a comma delimited list (see delimiter attribute), or an array of values
- print boolean No *TRUE* Whether to print the value or not
- advance boolean No *TRUE* Whether or not to advance to the next value
- delimiter string No *,* The delimiter to use in the values attribute
- assign string No *n/a* The template variable the output will be assigned to
- reset boolean No *FALSE* The cycle will be set to the first value and not advanced
+## Attributes
+
+| Attribute Name | Required | Description |
+|----------------|----------|-------------------------------------------------------------------------------------------------------------|
+| name | No | The name of the cycle |
+| values | Yes | The values to cycle through, either a comma delimited list (see delimiter attribute), or an array of values |
+| print | No | Whether to print the value or not (defaults to true) |
+| advance | No | Whether or not to advance to the next value (defaults to true) |
+| delimiter | No | The delimiter to use in the values attribute (defaults to ',') |
+| assign | No | The template variable the output will be assigned to |
+| reset | No | The cycle will be set to the first value and not advanced (defaults to false) |
- You can `{cycle}` through more than one set of values in a template
- by supplying a `name` attribute. Give each `{cycle}` an unique
+ by supplying a `name` attribute. Give each `{cycle}` a unique
`name`.
- You can force the current value not to print with the `print`
@@ -30,20 +31,18 @@ through an array of values.
function will be assigned to a template variable instead of being
output to the template.
-<!-- -->
-
-
- {section name=rows loop=$data}
+## Examples
+```smarty
+{section name=rows loop=$data}
<tr class="{cycle values="odd,even"}">
<td>{$data[rows]}</td>
</tr>
- {/section}
-
-
+{/section}
+```
The above template would output:
-
+```html
<tr class="odd">
<td>1</td>
</tr>
@@ -53,5 +52,4 @@ The above template would output:
<tr class="odd">
<td>3</td>
</tr>
-
-
+```
diff --git a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-debug.md b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-debug.md
index 79b3477c1..788614537 100644
--- a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-debug.md
+++ b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-debug.md
@@ -1,15 +1,14 @@
-{debug} {#language.function.debug}
-=======
+# {debug}
`{debug}` dumps the debug console to the page. This works regardless of
-the [debug](#chapter.debugging.console) settings in the php script.
+the [debug](../chapter-debugging-console.md) settings in the php script.
Since this gets executed at runtime, this is only able to show the
-[assigned](#api.assign) variables; not the templates that are in use.
+[assigned](../../programmers/api-functions/api-assign.md) variables; not the templates that are in use.
However, you can see all the currently available variables within the
scope of a template.
- Attribute Name Type Required Default Description
- ---------------- -------- ---------- -------------- ---------------------------------
- output string No *javascript* output type, html or javascript
+| Attribute Name | Required | Description |
+|----------------|----------|------------------------------------------------------------|
+| output | No | output type, html or javascript (defaults to 'javascript') |
-See also the [debugging console page](#chapter.debugging.console).
+See also the [debugging console page](../chapter-debugging-console.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-eval.md b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-eval.md
index e11f57e3e..70c7a3d19 100644
--- a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-eval.md
+++ b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-eval.md
@@ -1,19 +1,20 @@
-{eval} {#language.function.eval}
-======
+# {eval}
`{eval}` is used to evaluate a variable as a template. This can be used
for things like embedding template tags/variables into variables or
tags/variables into config file variables.
+## Attributes
+
+| Attribute Name | Required | Description |
+|----------------|----------|------------------------------------------------------|
+| var | Yes | Variable (or string) to evaluate |
+| assign | No | The template variable the output will be assigned to |
+
If you supply the `assign` attribute, the output of the `{eval}`
function will be assigned to this template variable instead of being
output to the template.
- Attribute Name Type Required Default Description
- ---------------- -------- ---------- --------- ------------------------------------------------------
- var mixed Yes *n/a* Variable (or string) to evaluate
- assign string No *n/a* The template variable the output will be assigned to
-
> **Note**
>
> - Evaluated variables are treated the same as templates. They follow
@@ -21,64 +22,60 @@ output to the template.
> templates.
>
> - Evaluated variables are compiled on every invocation, the compiled
-> versions are not saved! However if you have [caching](#caching)
+> versions are not saved! However, if you have [caching](../../programmers/caching.md)
> enabled, the output will be cached with the rest of the template.
>
-> - If the content to evaluate doesn\'t change often, or is used
+> - If the content to evaluate doesn't change often, or is used
> repeatedly, consider using
> `{include file="string:{$template_code}"}` instead. This may cache
-> the compiled state and thus doesn\'t have to run the (comparably
+> the compiled state and thus doesn't have to run the (comparably
> slow) compiler on every invocation.
->
-The contents of the config file, `setup.conf`.
+## Examples
- emphstart = <strong>
- emphend = </strong>
- title = Welcome to {$company}'s home page!
- ErrorCity = You must supply a {#emphstart#}city{#emphend#}.
- ErrorState = You must supply a {#emphstart#}state{#emphend#}.
+The contents of the config file, `setup.conf`.
-
+```ini
+emphstart = <strong>
+emphend = </strong>
+title = Welcome to {$company}'s home page!
+ErrorCity = You must supply a {#emphstart#}city{#emphend#}.
+ErrorState = You must supply a {#emphstart#}state{#emphend#}.
+```
Where the template is:
+```smarty
+{config_load file='setup.conf'}
- {config_load file='setup.conf'}
-
- {eval var=$foo}
- {eval var=#title#}
- {eval var=#ErrorCity#}
- {eval var=#ErrorState# assign='state_error'}
- {$state_error}
-
+{eval var=$foo}
+{eval var=#title#}
+{eval var=#ErrorCity#}
+{eval var=#ErrorState# assign='state_error'}
+{$state_error}
+```
-
The above template will output:
-
- This is the contents of foo.
- Welcome to Foobar Pub & Grill's home page!
- You must supply a <strong>city</strong>.
- You must supply a <strong>state</strong>.
-
-
+```html
+This is the contents of foo.
+Welcome to Foobar Pub & Grill's home page!
+You must supply a <strong>city</strong>.
+You must supply a <strong>state</strong>.
+```
This outputs the server name (in uppercase) and IP. The assigned
variable `$str` could be from a database query.
-
- <?php
+```php
+<?php
$str = 'The server name is {$smarty.server.SERVER_NAME|upper} '
.'at {$smarty.server.SERVER_ADDR}';
$smarty->assign('foo',$str);
- ?>
-
-
+```
Where the template is:
-
- {eval var=$foo}
-
-
+```smarty
+{eval var=$foo}
+```
diff --git a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-fetch.md b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-fetch.md
index 3dbc5610f..2ff494fdd 100644
--- a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-fetch.md
+++ b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-fetch.md
@@ -1,10 +1,15 @@
-{fetch} {#language.function.fetch}
-=======
+# {fetch}
`{fetch}` is used to retrieve files from the local file system, http, or
ftp and display the contents.
-- If the file name begins with `http://`, the web site page will be
+## Attributes
+| Attribute | Required | Description |
+|-----------|----------|------------------------------------------------------|
+| file | Yes | The file, http or ftp site to fetch |
+| assign | No | The template variable the output will be assigned to |
+
+- If the file name begins with `http://`, the website page will be
fetched and displayed.
> **Note**
@@ -20,40 +25,37 @@ ftp and display the contents.
> **Note**
>
- > If security is enabled and you are fetching a file from the local
+ > If security is enabled, and you are fetching a file from the local
> file system, `{fetch}` will only allow files from within the
> `$secure_dir` path of the security policy. See the
- > [Security](#advanced.features.security) section for details.
+ > [Security](../../programmers/advanced-features/advanced-features-security.md) section for details.
- If the `assign` attribute is set, the output of the `{fetch}`
function will be assigned to this template variable instead of being
output to the template.
- Attribute Name Type Required Default Description
- ---------------- -------- ---------- --------- ------------------------------------------------------
- file string Yes *n/a* The file, http or ftp site to fetch
- assign string No *n/a* The template variable the output will be assigned to
-
-
- {* include some javascript in your template *}
- {fetch file='/export/httpd/www.example.com/docs/navbar.js'}
+## Examples
- {* embed some weather text in your template from another web site *}
- {fetch file='http://www.myweather.com/68502/'}
+```smarty
+{* include some javascript in your template *}
+{fetch file='/export/httpd/www.example.com/docs/navbar.js'}
- {* fetch a news headline file via ftp *}
- {fetch file='ftp://user:password@ftp.example.com/path/to/currentheadlines.txt'}
- {* as above but with variables *}
- {fetch file="ftp://`$user`:`$password`@`$server`/`$path`"}
+{* embed some weather text in your template from another web site *}
+{fetch file='http://www.myweather.com/68502/'}
- {* assign the fetched contents to a template variable *}
- {fetch file='http://www.myweather.com/68502/' assign='weather'}
- {if $weather ne ''}
- <div id="weather">{$weather}</div>
- {/if}
+{* fetch a news headline file via ftp *}
+{fetch file='ftp://user:password@ftp.example.com/path/to/currentheadlines.txt'}
+{* as above but with variables *}
+{fetch file="ftp://`$user`:`$password`@`$server`/`$path`"}
+{* assign the fetched contents to a template variable *}
+{fetch file='http://www.myweather.com/68502/' assign='weather'}
+{if $weather ne ''}
+ <div id="weather">{$weather}</div>
+{/if}
+```
-See also [`{capture}`](#language.function.capture),
-[`{eval}`](#language.function.eval),
-[`{assign}`](#language.function.assign) and [`fetch()`](#api.fetch).
+See also [`{capture}`](../language-builtin-functions/language-function-capture.md),
+[`{eval}`](language-function-eval.md),
+[`{assign}`](../language-builtin-functions/language-function-assign.md) and [`fetch()`](../../programmers/api-functions/api-fetch.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-checkboxes.md b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-checkboxes.md
index 23af713b7..3ab36096a 100644
--- a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-checkboxes.md
+++ b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-checkboxes.md
@@ -1,113 +1,102 @@
-{html\_checkboxes} {#language.function.html.checkboxes}
-==================
+# {html_checkboxes}
-`{html_checkboxes}` is a [custom function](#language.custom.functions)
+`{html_checkboxes}` is a [custom function](index.md)
that creates an html checkbox group with provided data. It takes care of
which item(s) are selected by default as well.
- Attribute Name Type Required Default Description
- ---------------- ------------------- ------------------------------------- ------------ -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- name string No *checkbox* Name of checkbox list
- values array Yes, unless using options attribute *n/a* An array of values for checkbox buttons
- output array Yes, unless using options attribute *n/a* An array of output for checkbox buttons
- selected string/array No *empty* The selected checkbox element(s)
- options associative array Yes, unless using values and output *n/a* An associative array of values and output
- separator string No *empty* String of text to separate each checkbox item
- assign string No *empty* Assign checkbox tags to an array instead of output
- labels boolean No *TRUE* Add \<label\>-tags to the output
- label\_ids boolean No *FALSE* Add id-attributes to \<label\> and \<input\> to the output
- escape boolean No *TRUE* Escape the output / content (values are always escaped)
- strict boolean No *FALSE* Will make the \"extra\" attributes *disabled* and *readonly* only be set, if they were supplied with either boolean *TRUE* or string *\"disabled\"* and *\"readonly\"* respectively
-
-- Required attributes are `values` and `output`, unless you use
- `options` instead.
+## Attributes
-- All output is XHTML compliant.
-
-- All parameters that are not in the list above are printed as
- name/value-pairs inside each of the created \<input\>-tags.
-
-<!-- -->
+| Attribute Name | Required | Description |
+|----------------|-------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| name | No | Name of checkbox list (defaults to 'checkbox') |
+| values | Yes, unless using options attribute | An array of values for checkbox buttons |
+| output | Yes, unless using options attribute | An array of output for checkbox buttons |
+| selected | No | The selected checkbox element(s) as a string or array |
+| options | Yes, unless using values and output | An associative array of values and output |
+| separator | No | String of text to separate each checkbox item |
+| assign | No | Assign checkbox tags to an array instead of output |
+| labels | No | Add <label\>-tags to the output (defaults to true) |
+| label\_ids | No | Add id-attributes to <label\> and <input\> to the output (defaults to false) |
+| escape | No | Escape the output / content (values are always escaped) (defaults to true) |
+| strict | No | Will make the "extra" attributes *disabled* and *readonly* only be set, if they were supplied with either boolean *TRUE* or string *"disabled"* and *"readonly"* respectively (defaults to false) |
+- Required attributes are `values` and `output`, unless you use `options` instead.
- <?php
-
- $smarty->assign('cust_ids', array(1000,1001,1002,1003));
- $smarty->assign('cust_names', array(
- 'Joe Schmoe',
- 'Jack Smith',
- 'Jane Johnson',
- 'Charlie Brown')
- );
- $smarty->assign('customer_id', 1001);
-
- ?>
+- All output is XHTML compliant.
-
+- All parameters that are not in the list above are printed as
+ name/value-pairs inside each of the created <input\>-tags.
+
+## Examples
+```php
+<?php
+
+$smarty->assign('cust_ids', array(1000,1001,1002,1003));
+$smarty->assign('cust_names', array(
+ 'Joe Schmoe',
+ 'Jack Smith',
+ 'Jane Johnson',
+ 'Charlie Brown')
+ );
+$smarty->assign('customer_id', 1001);
+```
where template is
-
- {html_checkboxes name='id' values=$cust_ids output=$cust_names
- selected=$customer_id separator='<br />'}
-
-
+```smarty
+{html_checkboxes name='id' values=$cust_ids output=$cust_names selected=$customer_id separator='<br />'}
+```
or where PHP code is:
-
- <?php
-
- $smarty->assign('cust_checkboxes', array(
- 1000 => 'Joe Schmoe',
- 1001 => 'Jack Smith',
- 1002 => 'Jane Johnson',
- 1003 => 'Charlie Brown')
- );
- $smarty->assign('customer_id', 1001);
-
- ?>
-
-
+```php
+<?php
+
+$smarty->assign(
+ 'cust_checkboxes',
+ [
+ 1000 => 'Joe Schmoe',
+ 1001 => 'Jack Smith',
+ 1002 => 'Jane Johnson',
+ 1003 => 'Charlie Brown',
+ ]
+);
+$smarty->assign('customer_id', 1001);
+```
and the template is
-
- {html_checkboxes name='id' options=$cust_checkboxes
- selected=$customer_id separator='<br />'}
-
-
+```smarty
+{html_checkboxes name='id' options=$cust_checkboxes selected=$customer_id separator='<br />'}
+```
both examples will output:
-
- <label><input type="checkbox" name="id[]" value="1000" />Joe Schmoe</label><br />
- <label><input type="checkbox" name="id[]" value="1001" checked="checked" />Jack Smith</label>
- <br />
- <label><input type="checkbox" name="id[]" value="1002" />Jane Johnson</label><br />
- <label><input type="checkbox" name="id[]" value="1003" />Charlie Brown</label><br />
-
+```html
+<label><input type="checkbox" name="id[]" value="1000" />Joe Schmoe</label><br />
+<label><input type="checkbox" name="id[]" value="1001" checked="checked" />Jack Smith</label>
+<br />
+<label><input type="checkbox" name="id[]" value="1002" />Jane Johnson</label><br />
+<label><input type="checkbox" name="id[]" value="1003" />Charlie Brown</label><br />
+```
+```php
+<?php
- <?php
-
- $sql = 'select type_id, types from contact_types order by type';
- $smarty->assign('contact_types',$db->getAssoc($sql));
-
- $sql = 'select contact_id, contact_type_id, contact '
- .'from contacts where contact_id=12';
- $smarty->assign('contact',$db->getRow($sql));
+$sql = 'select type_id, types from contact_types order by type';
+$smarty->assign('contact_types',$db->getAssoc($sql));
- ?>
-
-
+$sql = 'select contact_id, contact_type_id, contact '
+ .'from contacts where contact_id=12';
+$smarty->assign('contact',$db->getRow($sql));
+```
The results of the database queries above would be output with.
+```smarty
+{html_checkboxes name='contact_type_id' options=$contact_types selected=$contact.contact_type_id separator='<br />'}
+```
- {html_checkboxes name='contact_type_id' options=$contact_types
- selected=$contact.contact_type_id separator='<br />'}
-
-See also [`{html_radios}`](#language.function.html.radios) and
-[`{html_options}`](#language.function.html.options)
+See also [`{html_radios}`](./language-function-html-radios.md) and
+[`{html_options}`](./language-function-html-options.md)
diff --git a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-image.md b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-image.md
index e21f2a121..7ecde2654 100644
--- a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-image.md
+++ b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-image.md
@@ -1,25 +1,26 @@
-{html\_image} {#language.function.html.image}
-=============
+# {html_image}
-`{html_image}` is a [custom function](#language.custom.functions) that
+`{html_image}` is a [custom function](index.md) that
generates an HTML `<img>` tag. The `height` and `width` are
automatically calculated from the image file if they are not supplied.
- Attribute Name Type Required Default Description
- ---------------- -------- ---------- ----------------------- ---------------------------------------
- file string Yes *n/a* name/path to image
- height string No *actual image height* Height to display image
- width string No *actual image width* Width to display image
- basedir string no *web server doc root* Directory to base relative paths from
- alt string no *""* Alternative description of the image
- href string no *n/a* href value to link the image to
- path\_prefix string no *n/a* Prefix for output path
+## Attributes
+
+| Attribute Name | Required | Description |
+|----------------|----------|-------------------------------------------------------------------------|
+| file | Yes | name/path to image |
+| height | No | Height to display image (defaults to actual image height) |
+| width | No | Width to display image (defaults to actual image width) |
+| basedir | no | Directory to base relative paths from (defaults to web server doc root) |
+| alt | no | Alternative description of the image |
+| href | no | href value to link the image to |
+| path\_prefix | no | Prefix for output path |
- `basedir` is the base directory that relative image paths are based
- from. If not given, the web server\'s document root
+ from. If not given, the web server's document root
`$_ENV['DOCUMENT_ROOT']` is used as the base. If security is
enabled, then the image must be located in the `$secure_dir` path of
- the security policy. See the [Security](#advanced.features.security)
+ the security policy. See the [Security](../../programmers/advanced-features/advanced-features-security.md)
section for details.
- `href` is the href value to link the image to. If link is supplied,
@@ -35,22 +36,23 @@ automatically calculated from the image file if they are not supplied.
> **Note**
>
> `{html_image}` requires a hit to the disk to read the image and
-> calculate the height and width. If you don\'t use template
-> [caching](#caching), it is generally better to avoid `{html_image}`
+> calculate the height and width. If you don't use template
+> [caching](../../programmers/caching.md), it is generally better to avoid `{html_image}`
> and leave image tags static for optimal performance.
+## Examples
- {html_image file='pumpkin.jpg'}
- {html_image file='/path/from/docroot/pumpkin.jpg'}
- {html_image file='../path/relative/to/currdir/pumpkin.jpg'}
-
-
+```smarty
+{html_image file='pumpkin.jpg'}
+{html_image file='/path/from/docroot/pumpkin.jpg'}
+{html_image file='../path/relative/to/currdir/pumpkin.jpg'}
+```
Example output of the above template would be:
-
- <img src="pumpkin.jpg" alt="" width="44" height="68" />
- <img src="/path/from/docroot/pumpkin.jpg" alt="" width="44" height="68" />
- <img src="../path/relative/to/currdir/pumpkin.jpg" alt="" width="44" height="68" />
-
+```html
+<img src="pumpkin.jpg" alt="" width="44" height="68" />
+<img src="/path/from/docroot/pumpkin.jpg" alt="" width="44" height="68" />
+<img src="../path/relative/to/currdir/pumpkin.jpg" alt="" width="44" height="68" />
+```
diff --git a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-options.md b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-options.md
index b7c04e940..a63ccc56b 100644
--- a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-options.md
+++ b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-options.md
@@ -1,18 +1,19 @@
-{html\_options} {#language.function.html.options}
-===============
+# {html_options}
-`{html_options}` is a [custom function](#language.custom.functions) that
+`{html_options}` is a [custom function](index.md) that
creates the html `<select><option>` group with the assigned data. It
takes care of which item(s) are selected by default as well.
- Attribute Name Type Required Default Description
- ---------------- ------------------- ------------------------------------- --------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- values array Yes, unless using options attribute *n/a* An array of values for dropdown
- output array Yes, unless using options attribute *n/a* An array of output for dropdown
- selected string/array No *empty* The selected option element(s)
- options associative array Yes, unless using values and output *n/a* An associative array of values and output
- name string No *empty* Name of select group
- strict boolean No *FALSE* Will make the \"extra\" attributes *disabled* and *readonly* only be set, if they were supplied with either boolean *TRUE* or string *\"disabled\"* and *\"readonly\"* respectively
+## Attributes
+
+| Attribute Name | Required | Description |
+|----------------|-------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| values | Yes, unless using options attribute | An array of values for dropdown |
+| output | Yes, unless using options attribute | An array of output for dropdown |
+| selected | No | The selected option element(s) as a string or array |
+| options | Yes, unless using values and output | An associative array of values and output |
+| name | No | Name of select group |
+| strict | No | Will make the "extra" attributes *disabled* and *readonly* only be set, if they were supplied with either boolean *TRUE* or string *"disabled"* and *"readonly"* respectively (defaults to false) |
- Required attributes are `values` and `output`, unless you use the
combined `options` instead.
@@ -30,126 +31,116 @@ takes care of which item(s) are selected by default as well.
- All output is XHTML compliant.
-<!-- -->
-
-
- <?php
- $smarty->assign('myOptions', array(
- 1800 => 'Joe Schmoe',
- 9904 => 'Jack Smith',
- 2003 => 'Charlie Brown')
- );
- $smarty->assign('mySelect', 9904);
- ?>
+## Examples
-
+```php
+<?php
+$smarty->assign('myOptions', [
+ 1800 => 'Joe Schmoe',
+ 9904 => 'Jack Smith',
+ 2003 => 'Charlie Brown']
+ );
+$smarty->assign('mySelect', 9904);
+```
The following template will generate a drop-down list. Note the presence
of the `name` attribute which creates the `<select>` tags.
-
- {html_options name=foo options=$myOptions selected=$mySelect}
-
-
+```smarty
+{html_options name=foo options=$myOptions selected=$mySelect}
+```
Output of the above example would be:
-
- <select name="foo">
+```html
+<select name="foo">
<option value="1800">Joe Schmoe</option>
<option value="9904" selected="selected">Jack Smith</option>
<option value="2003">Charlie Brown</option>
- </select>
-
-
- <?php
- $smarty->assign('cust_ids', array(56,92,13));
- $smarty->assign('cust_names', array(
- 'Joe Schmoe',
- 'Jane Johnson',
- 'Charlie Brown'));
- $smarty->assign('customer_id', 92);
- ?>
-
-
+</select>
+```
+
+```php
+<?php
+$smarty->assign('cust_ids', [56,92,13]);
+$smarty->assign('cust_names', [
+ 'Joe Schmoe',
+ 'Jane Johnson',
+ 'Charlie Brown']);
+$smarty->assign('customer_id', 92);
+```
The above arrays would be output with the following template (note the
-use of the php [`count()`](&url.php-manual;function.count) function as a
+use of the php [`count()`](https://www.php.net/function.count) function as a
modifier to set the select size).
-
- <select name="customer_id" size="{$cust_names|@count}">
- {html_options values=$cust_ids output=$cust_names selected=$customer_id}
- </select>
-
-
+```smarty
+<select name="customer_id" size="{$cust_names|@count}">
+ {html_options values=$cust_ids output=$cust_names selected=$customer_id}
+</select>
+```
The above example would output:
+```html
+<select name="customer_id" size="3">
+ <option value="56">Joe Schmoe</option>
+ <option value="92" selected="selected">Jane Johnson</option>
+ <option value="13">Charlie Brown</option>
+</select>
+```
- <select name="customer_id" size="3">
- <option value="56">Joe Schmoe</option>
- <option value="92" selected="selected">Jane Johnson</option>
- <option value="13">Charlie Brown</option>
- </select>
-
+```php
+<?php
-
+$sql = 'select type_id, types from contact_types order by type';
+$smarty->assign('contact_types',$db->getAssoc($sql));
+$sql = 'select contact_id, name, email, contact_type_id
+ from contacts where contact_id='.$contact_id;
+$smarty->assign('contact',$db->getRow($sql));
- <?php
-
- $sql = 'select type_id, types from contact_types order by type';
- $smarty->assign('contact_types',$db->getAssoc($sql));
-
- $sql = 'select contact_id, name, email, contact_type_id
- from contacts where contact_id='.$contact_id;
- $smarty->assign('contact',$db->getRow($sql));
-
- ?>
+```
Where a template could be as follows. Note the use of the
-[`truncate`](#language.modifier.truncate) modifier.
-
-
- <select name="type_id">
- <option value='null'>-- none --</option>
- {html_options options=$contact_types|truncate:20 selected=$contact.type_id}
- </select>
-
-
-
-
- <?php
- $arr['Sport'] = array(6 => 'Golf', 9 => 'Cricket',7 => 'Swim');
- $arr['Rest'] = array(3 => 'Sauna',1 => 'Massage');
- $smarty->assign('lookups', $arr);
- $smarty->assign('fav', 7);
- ?>
-
-
+[`truncate`](../language-modifiers/language-modifier-truncate.md) modifier.
+
+```smarty
+<select name="type_id">
+ <option value='null'>-- none --</option>
+ {html_options options=$contact_types|truncate:20 selected=$contact.type_id}
+</select>
+```
+
+```php
+<?php
+$arr['Sport'] = array(6 => 'Golf', 9 => 'Cricket',7 => 'Swim');
+$arr['Rest'] = array(3 => 'Sauna',1 => 'Massage');
+$smarty->assign('lookups', $arr);
+$smarty->assign('fav', 7);
+```
The script above and the following template
-
- {html_options name=foo options=$lookups selected=$fav}
-
-
+```smarty
+{html_options name=foo options=$lookups selected=$fav}
+```
would output:
-
- <select name="foo">
+```html
+<select name="foo">
<optgroup label="Sport">
- <option value="6">Golf</option>
- <option value="9">Cricket</option>
- <option value="7" selected="selected">Swim</option>
+ <option value="6">Golf</option>
+ <option value="9">Cricket</option>
+ <option value="7" selected="selected">Swim</option>
</optgroup>
<optgroup label="Rest">
- <option value="3">Sauna</option>
- <option value="1">Massage</option>
+ <option value="3">Sauna</option>
+ <option value="1">Massage</option>
</optgroup>
- </select>
+</select>
+```
-See also [`{html_checkboxes}`](#language.function.html.checkboxes) and
-[`{html_radios}`](#language.function.html.radios)
+See also [`{html_checkboxes}`](./language-function-html-checkboxes.md) and
+[`{html_radios}`](./language-function-html-radios.md)
diff --git a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-radios.md b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-radios.md
index 992adaeaf..af8ecda68 100644
--- a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-radios.md
+++ b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-radios.md
@@ -1,23 +1,24 @@
-{html\_radios} {#language.function.html.radios}
-==============
+# {html_radios}
-`{html_radios}` is a [custom function](#language.custom.functions) that
-creates a HTML radio button group. It also takes care of which item is
+`{html_radios}` is a [custom function](index.md) that
+creates an HTML radio button group. It also takes care of which item is
selected by default as well.
- Attribute Name Type Required Default Description
- ---------------- ------------------- ------------------------------------- --------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- name string No *radio* Name of radio list
- values array Yes, unless using options attribute *n/a* An array of values for radio buttons
- output array Yes, unless using options attribute *n/a* An array of output for radio buttons
- selected string No *empty* The selected radio element
- options associative array Yes, unless using values and output *n/a* An associative array of values and output
- separator string No *empty* String of text to separate each radio item
- assign string No *empty* Assign radio tags to an array instead of output
- labels boolean No *TRUE* Add \<label\>-tags to the output
- label\_ids boolean No *FALSE* Add id-attributes to \<label\> and \<input\> to the output
- escape boolean No *TRUE* Escape the output / content (values are always escaped)
- strict boolean No *FALSE* Will make the \"extra\" attributes *disabled* and *readonly* only be set, if they were supplied with either boolean *TRUE* or string *\"disabled\"* and *\"readonly\"* respectively
+## Attributes
+
+| Attribute Name | Required | Description |
+|----------------|-------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| name | No | Name of radio list |
+| values | Yes, unless using options attribute | An array of values for radio buttons |
+| output | Yes, unless using options attribute | An array of output for radio buttons |
+| selected | No | The selected radio element |
+| options | Yes, unless using values and output | An associative array of values and output |
+| separator | No | String of text to separate each radio item |
+| assign | No | Assign radio tags to an array instead of output |
+| labels | No | Add <label>-tags to the output (defaults to true) |
+| label\_ids | No | Add id-attributes to <label\> and <input\> to the output (defaults to false) |
+| escape | No | Escape the output / content (values are always escaped) (defaults to true) |
+| strict | No | Will make the "extra" attributes *disabled* and *readonly* only be set, if they were supplied with either boolean *TRUE* or string *"disabled"* and *"readonly"* respectively (defaults to false) |
- Required attributes are `values` and `output`, unless you use
`options` instead.
@@ -27,86 +28,77 @@ selected by default as well.
- All parameters that are not in the list above are output as
name/value-pairs inside each of the created `<input>`-tags.
-<!-- -->
+## Examples
+```php
+<?php
- <?php
-
- $smarty->assign('cust_ids', array(1000,1001,1002,1003));
- $smarty->assign('cust_names', array(
- 'Joe Schmoe',
- 'Jack Smith',
- 'Jane Johnson',
- 'Charlie Brown')
- );
- $smarty->assign('customer_id', 1001);
-
- ?>
-
+$smarty->assign('cust_ids', array(1000,1001,1002,1003));
+$smarty->assign('cust_names', array(
+ 'Joe Schmoe',
+ 'Jack Smith',
+ 'Jane Johnson',
+ 'Charlie Brown')
+ );
+$smarty->assign('customer_id', 1001);
+```
-
Where template is:
+```smarty
+{html_radios name='id' values=$cust_ids output=$cust_names
+ selected=$customer_id separator='<br />'}
+```
- {html_radios name='id' values=$cust_ids output=$cust_names
- selected=$customer_id separator='<br />'}
-
-
-
-
- <?php
- $smarty->assign('cust_radios', array(
- 1000 => 'Joe Schmoe',
- 1001 => 'Jack Smith',
- 1002 => 'Jane Johnson',
- 1003 => 'Charlie Brown'));
- $smarty->assign('customer_id', 1001);
+```php
+<?php
+$smarty->assign('cust_radios', array(
+ 1000 => 'Joe Schmoe',
+ 1001 => 'Jack Smith',
+ 1002 => 'Jane Johnson',
+ 1003 => 'Charlie Brown'));
+$smarty->assign('customer_id', 1001);
- ?>
-
-
+```
Where template is:
+```smarty
- {html_radios name='id' options=$cust_radios
- selected=$customer_id separator='<br />'}
-
+{html_radios name='id' options=$cust_radios
+ selected=$customer_id separator='<br />'}
+```
-
Both examples will output:
-
- <label><input type="radio" name="id" value="1000" />Joe Schmoe</label><br />
- <label><input type="radio" name="id" value="1001" checked="checked" />Jack Smith</label><br />
- <label><input type="radio" name="id" value="1002" />Jane Johnson</label><br />
- <label><input type="radio" name="id" value="1003" />Charlie Brown</label><br />
-
+```html
+<label><input type="radio" name="id" value="1000" />Joe Schmoe</label><br />
+<label><input type="radio" name="id" value="1001" checked="checked" />Jack Smith</label><br />
+<label><input type="radio" name="id" value="1002" />Jane Johnson</label><br />
+<label><input type="radio" name="id" value="1003" />Charlie Brown</label><br />
+```
+```php
+<?php
- <?php
+$sql = 'select type_id, types from contact_types order by type';
+$smarty->assign('contact_types',$db->getAssoc($sql));
- $sql = 'select type_id, types from contact_types order by type';
- $smarty->assign('contact_types',$db->getAssoc($sql));
+$sql = 'select contact_id, name, email, contact_type_id '
+ .'from contacts where contact_id='.$contact_id;
+$smarty->assign('contact',$db->getRow($sql));
- $sql = 'select contact_id, name, email, contact_type_id '
- .'from contacts where contact_id='.$contact_id;
- $smarty->assign('contact',$db->getRow($sql));
-
- ?>
-
-
+```
The variable assigned from the database above would be output with the
template:
+```smarty
+{html_radios name='contact_type_id' options=$contact_types
+ selected=$contact.contact_type_id separator='<br />'}
+```
- {html_radios name='contact_type_id' options=$contact_types
- selected=$contact.contact_type_id separator='<br />'}
-
-
-
-See also [`{html_checkboxes}`](#language.function.html.checkboxes) and
-[`{html_options}`](#language.function.html.options)
+See also [`{html_checkboxes}`](language-function-html-checkboxes.md) and
+[`{html_options}`](language-function-html-options.md)
diff --git a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-select-date.md b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-select-date.md
index b46eb0419..2a045baf8 100644
--- a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-select-date.md
+++ b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-select-date.md
@@ -1,62 +1,64 @@
-{html\_select\_date} {#language.function.html.select.date}
-====================
+# {html_select_date}
-`{html_select_date}` is a [custom function](#language.custom.functions)
-that creates date dropdowns. It can display any or all of year, month,
+`{html_select_date}` is a [custom function](index.md)
+that creates date dropdowns. It can display any or all of: year, month,
and day. All parameters that are not in the list below are printed as
name/value-pairs inside the `<select>` tags of day, month and year.
- Attribute Name Type Required Default Description
- ---------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------- ---------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- prefix string No Date\_ What to prefix the var name with
- time [timestamp](&url.php-manual;function.time), [DateTime](&url.php-manual;class.DateTime), mysql timestamp or any string parsable by [`strtotime()`](&url.php-manual;strtotime), arrays as produced by this function if field\_array is set. No current [timestamp](&url.php-manual;function.time) What date/time to pre-select. If an array is given, the attributes field\_array and prefix are used to identify the array elements to extract year, month and day from. Omitting this parameter or supplying a falsy value will select the current date. To prevent date selection, pass in NULL
- start\_year string No current year The first year in the dropdown, either year number, or relative to current year (+/- N)
- end\_year string No same as start\_year The last year in the dropdown, either year number, or relative to current year (+/- N)
- display\_days boolean No TRUE Whether to display days or not
- display\_months boolean No TRUE Whether to display months or not
- display\_years boolean No TRUE Whether to display years or not
- month\_names array No null List of strings to display for months. array(1 =\> \'Jan\', ..., 12 =\> \'Dec\')
- month\_format string No \%B What format the month should be in (strftime)
- day\_format string No \%02d What format the day output should be in (sprintf)
- day\_value\_format string No \%d What format the day value should be in (sprintf)
- year\_as\_text boolean No FALSE Whether or not to display the year as text
- reverse\_years boolean No FALSE Display years in reverse order
- field\_array string No null If a name is given, the select boxes will be drawn such that the results will be returned to PHP in the form of name\[Day\], name\[Year\], name\[Month\].
- day\_size string No null Adds size attribute to select tag if given
- month\_size string No null Adds size attribute to select tag if given
- year\_size string No null Adds size attribute to select tag if given
- all\_extra string No null Adds extra attributes to all select/input tags if given
- day\_extra string No null Adds extra attributes to select/input tags if given
- month\_extra string No null Adds extra attributes to select/input tags if given
- year\_extra string No null Adds extra attributes to select/input tags if given
- all\_id string No null Adds id-attribute to all select/input tags if given
- day\_id string No null Adds id-attribute to select/input tags if given
- month\_id string No null Adds id-attribute to select/input tags if given
- year\_id string No null Adds id-attribute to select/input tags if given
- field\_order string No MDY The order in which to display the fields
- field\_separator string No \\n String printed between different fields
- month\_value\_format string No \%m strftime() format of the month values, default is %m for month numbers.
- all\_empty string No null If supplied then the first element of any select-box has this value as it\'s label and "" as it\'s value. This is useful to make the select-boxes read "Please select" for example.
- year\_empty string No null If supplied then the first element of the year\'s select-box has this value as it\'s label and "" as it\'s value. This is useful to make the select-box read "Please select a year" for example. Note that you can use values like "-MM-DD" as time-attribute to indicate an unselected year.
- month\_empty string No null If supplied then the first element of the month\'s select-box has this value as it\'s label and "" as it\'s value. . Note that you can use values like "YYYY\--DD" as time-attribute to indicate an unselected month.
- day\_empty string No null If supplied then the first element of the day\'s select-box has this value as it\'s label and "" as it\'s value. Note that you can use values like "YYYY-MM-" as time-attribute to indicate an unselected day.
+## Attributes
+
+| Attribute Name | Default | Description |
+|--------------------|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| prefix | Date_ | What to prefix the var name with |
+| time | | What date/time to pre-select. Accepts timestamps, DateTime objects or any string parseable by [strtotime()](https://www.php.net/strtotime). If an array is given, the attributes field_array and prefix are used to identify the array elements to extract year, month and day from. Omitting this parameter or supplying a falsy value will select the current date. To prevent date selection, pass in NULL. |
+| start_year | current year | The first year in the dropdown, either year number, or relative to current year (+/- N) |
+| end_year | same as start_year | The last year in the dropdown, either year number, or relative to current year (+/- N) |
+| display_days | TRUE | Whether to display days or not |
+| display_months | TRUE | Whether to display months or not |
+| display_years | TRUE | Whether to display years or not |
+| month_names | | List of strings to display for months. array(1 =\> 'Jan', ..., 12 =\> 'Dec') |
+| month_format | \%B | What format the month should be in (strftime) |
+| day_format | \%02d | What format the day output should be in (sprintf) |
+| day_value_format | \%d | What format the day value should be in (sprintf) |
+| year_as_text | FALSE | Whether or not to display the year as text |
+| reverse_years | FALSE | Display years in reverse order |
+| field_array | | If a name is given, the select boxes will be drawn such that the results will be returned to PHP in the form of name\[Day\], name\[Year\], name\[Month\]. |
+| day_size | | Adds size attribute to select tag if given |
+| month_size | | Adds size attribute to select tag if given |
+| year_size | | Adds size attribute to select tag if given |
+| all_extra | | Adds extra attributes to all select/input tags if given |
+| day_extra | | Adds extra attributes to select/input tags if given |
+| month_extra | | Adds extra attributes to select/input tags if given |
+| year_extra | | Adds extra attributes to select/input tags if given |
+| all_id | | Adds id-attribute to all select/input tags if given |
+| day_id | | Adds id-attribute to select/input tags if given |
+| month_id | | Adds id-attribute to select/input tags if given |
+| year_id | | Adds id-attribute to select/input tags if given |
+| field_order | MDY | The order in which to display the fields |
+| field_separator | \\n | String printed between different fields |
+| month_value_format | \%m | strftime() format of the month values, default is %m for month numbers. |
+| all_empty | | If supplied then the first element of any select-box has this value as it's label and "" as it's value. This is useful to make the select-boxes read "Please select" for example. |
+| year_empty | | If supplied then the first element of the year's select-box has this value as it's label and "" as it's value. This is useful to make the select-box read "Please select a year" for example. Note that you can use values like "-MM-DD" as time-attribute to indicate an unselected year. |
+| month_empty | | If supplied then the first element of the month's select-box has this value as it's label and "" as it's value. . Note that you can use values like "YYYY\--DD" as time-attribute to indicate an unselected month. |
+| day_empty | | If supplied then the first element of the day's select-box has this value as it's label and "" as it's value. Note that you can use values like "YYYY-MM-" as time-attribute to indicate an unselected day. |
> **Note**
>
-> There is an useful php function on the [date tips page](#tips.dates)
+> There is an useful php function on the [date tips page](../../appendixes/tips.md)
> for converting `{html_select_date}` form values to a timestamp.
-Template code
-
+## Exaples
- {html_select_date}
+Template code
-
+```smarty
+{html_select_date}
+```
This will output:
-
- <select name="Date_Month">
+```html
+<select name="Date_Month">
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
@@ -64,8 +66,8 @@ This will output:
<option value="10">October</option>
<option value="11">November</option>
<option value="12" selected="selected">December</option>
- </select>
- <select name="Date_Day">
+</select>
+<select name="Date_Day">
<option value="1">01</option>
<option value="2">02</option>
<option value="3">03</option>
@@ -79,41 +81,38 @@ This will output:
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
- </select>
- <select name="Date_Year">
+</select>
+<select name="Date_Year">
<option value="2006" selected="selected">2006</option>
- </select>
-
+</select>
+```
-
-
- {* start and end year can be relative to current year *}
- {html_select_date prefix='StartDate' time=$time start_year='-5'
+```smarty
+{* start and end year can be relative to current year *}
+{html_select_date prefix='StartDate' time=$time start_year='-5'
end_year='+1' display_days=false}
-
-
+```
With 2000 as the current year the output:
-
- <select name="StartDateMonth">
+```html
+<select name="StartDateMonth">
<option value="1">January</option>
<option value="2">February</option>
.... snipped ....
<option value="11">November</option>
<option value="12" selected="selected">December</option>
- </select>
- <select name="StartDateYear">
+</select>
+<select name="StartDateYear">
<option value="1995">1995</option>
.... snipped ....
<option value="1999">1999</option>
<option value="2000" selected="selected">2000</option>
<option value="2001">2001</option>
- </select>
-
+</select>
+```
-
-See also [`{html_select_time}`](#language.function.html.select.time),
-[`date_format`](#language.modifier.date.format),
-[`$smarty.now`](#language.variables.smarty.now) and the [date tips
-page](#tips.dates).
+See also [`{html_select_time}`](language-function-html-select-time.md),
+[`date_format`](../language-modifiers/language-modifier-date-format.md),
+[`$smarty.now`](../language-variables/language-variables-smarty.md#smartynow-languagevariablessmartynow) and the [date tips
+page](../../appendixes/tips.md#dates).
diff --git a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-select-time.md b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-select-time.md
index 6ccc59907..001734523 100644
--- a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-select-time.md
+++ b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-select-time.md
@@ -1,59 +1,62 @@
-{html\_select\_time} {#language.function.html.select.time}
-====================
+# {html_select_time}
-`{html_select_time}` is a [custom function](#language.custom.functions)
-that creates time dropdowns for you. It can display any or all of hour,
+`{html_select_time}` is a [custom function](index.md)
+that creates time dropdowns for you. It can display any or all of: hour,
minute, second and meridian.
The `time` attribute can have different formats. It can be a unique
timestamp, a string of the format `YYYYMMDDHHMMSS` or a string that is
-parseable by PHP\'s [`strtotime()`](&url.php-manual;strtotime).
+parseable by PHP's [`strtotime()`](https://www.php.net/strtotime).
- Attribute Name Type Required Default Description
- ----------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------- ---------------------------------------------------- -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- prefix string No Time\_ What to prefix the var name with
- time [timestamp](&url.php-manual;function.time), [DateTime](&url.php-manual;class.DateTime), mysql timestamp or any string parsable by [`strtotime()`](&url.php-manual;strtotime), arrays as produced by this function if field\_array is set. No current [timestamp](&url.php-manual;function.time) What date/time to pre-select. If an array is given, the attributes field\_array and prefix are used to identify the array elements to extract hour, minute, second and meridian from.
- display\_hours boolean No TRUE Whether or not to display hours
- display\_minutes boolean No TRUE Whether or not to display minutes
- display\_seconds boolean No TRUE Whether or not to display seconds
- display\_meridian boolean No TRUE Whether or not to display meridian (am/pm)
- use\_24\_hours boolean No TRUE Whether or not to use 24 hour clock
- minute\_interval integer No 1 Number interval in minute dropdown
- second\_interval integer No 1 Number interval in second dropdown
- hour\_format string No \%02d What format the hour label should be in (sprintf)
- hour\_value\_format string No \%20d What format the hour value should be in (sprintf)
- minute\_format string No \%02d What format the minute label should be in (sprintf)
- minute\_value\_format string No \%20d What format the minute value should be in (sprintf)
- second\_format string No \%02d What format the second label should be in (sprintf)
- second\_value\_format string No \%20d What format the second value should be in (sprintf)
- field\_array string No n/a Outputs values to array of this name
- all\_extra string No null Adds extra attributes to select/input tags if given
- hour\_extra string No null Adds extra attributes to select/input tags if given
- minute\_extra string No null Adds extra attributes to select/input tags if given
- second\_extra string No null Adds extra attributes to select/input tags if given
- meridian\_extra string No null Adds extra attributes to select/input tags if given
- field\_separator string No \\n String printed between different fields
- option\_separator string No \\n String printed between different options of a field
- all\_id string No null Adds id-attribute to all select/input tags if given
- hour\_id string No null Adds id-attribute to select/input tags if given
- minute\_id string No null Adds id-attribute to select/input tags if given
- second\_id string No null Adds id-attribute to select/input tags if given
- meridian\_id string No null Adds id-attribute to select/input tags if given
- all\_empty string No null If supplied then the first element of any select-box has this value as it\'s label and "" as it\'s value. This is useful to make the select-boxes read "Please select" for example.
- hour\_empty string No null If supplied then the first element of the hour\'s select-box has this value as it\'s label and "" as it\'s value. This is useful to make the select-box read "Please select an hour" for example.
- minute\_empty string No null If supplied then the first element of the minute\'s select-box has this value as it\'s label and "" as it\'s value. This is useful to make the select-box read "Please select an minute" for example.
- second\_empty string No null If supplied then the first element of the second\'s select-box has this value as it\'s label and "" as it\'s value. This is useful to make the select-box read "Please select an second" for example.
- meridian\_empty string No null If supplied then the first element of the meridian\'s select-box has this value as it\'s label and "" as it\'s value. This is useful to make the select-box read "Please select an meridian" for example.
+## Attributes
+| Attribute Name | Default | Description |
+|-----------------------|--------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| prefix | Time\_ | What to prefix the var name with |
+| time | current [timestamp](https://www.php.net/function.time) | What date/time to pre-select. Accepts [timestamp](https://www.php.net/function.time), [DateTime](https://www.php.net/class.DateTime), mysql timestamp or any string parsable by [`strtotime()`](https://www.php.net/strtotime). If an array is given, the attributes field\_array and prefix are used to identify the array elements to extract hour, minute, second and meridian from. |
+| display\_hours | TRUE | Whether or not to display hours |
+| display\_minutes | TRUE | Whether or not to display minutes |
+| display\_seconds | TRUE | Whether or not to display seconds |
+| display\_meridian | TRUE | Whether or not to display meridian (am/pm) |
+| use\_24\_hours | TRUE | Whether or not to use 24 hour clock |
+| minute\_interval | 1 | Number interval in minute dropdown |
+| second\_interval | 1 | Number interval in second dropdown |
+| hour\_format | \%02d | What format the hour label should be in (sprintf) |
+| hour\_value\_format | \%20d | What format the hour value should be in (sprintf) |
+| minute\_format | \%02d | What format the minute label should be in (sprintf) |
+| minute\_value\_format | \%20d | What format the minute value should be in (sprintf) |
+| second\_format | \%02d | What format the second label should be in (sprintf) |
+| second\_value\_format | \%20d | What format the second value should be in (sprintf) |
+| field\_array | n/a | Outputs values to array of this name |
+| all\_extra | null | Adds extra attributes to select/input tags if given |
+| hour\_extra | null | Adds extra attributes to select/input tags if given |
+| minute\_extra | null | Adds extra attributes to select/input tags if given |
+| second\_extra | null | Adds extra attributes to select/input tags if given |
+| meridian\_extra | null | Adds extra attributes to select/input tags if given |
+| field\_separator | \\n | String printed between different fields |
+| option\_separator | \\n | String printed between different options of a field |
+| all\_id | null | Adds id-attribute to all select/input tags if given |
+| hour\_id | null | Adds id-attribute to select/input tags if given |
+| minute\_id | null | Adds id-attribute to select/input tags if given |
+| second\_id | null | Adds id-attribute to select/input tags if given |
+| meridian\_id | null | Adds id-attribute to select/input tags if given |
+| all\_empty | null | If supplied then the first element of any select-box has this value as it's label and "" as it's value. This is useful to make the select-boxes read "Please select" for example. |
+| hour\_empty | null | If supplied then the first element of the hour's select-box has this value as it's label and "" as it's value. This is useful to make the select-box read "Please select an hour" for example. |
+| minute\_empty | null | If supplied then the first element of the minute's select-box has this value as it's label and "" as it's value. This is useful to make the select-box read "Please select an minute" for example. |
+| second\_empty | null | If supplied then the first element of the second's select-box has this value as it's label and "" as it's value. This is useful to make the select-box read "Please select an second" for example. |
+| meridian\_empty | null | If supplied then the first element of the meridian's select-box has this value as it's label and "" as it's value. This is useful to make the select-box read "Please select an meridian" for example. |
- {html_select_time use_24_hours=true}
-
+## Examples
+```smarty
+{html_select_time use_24_hours=true}
+```
+
At 9:20 and 23 seconds in the morning the template above would output:
-
- <select name="Time_Hour">
+```html
+<select name="Time_Hour">
<option value="00">00</option>
<option value="01">01</option>
... snipped ....
@@ -63,8 +66,8 @@ At 9:20 and 23 seconds in the morning the template above would output:
... snipped ....
<option value="22">22</option>
<option value="23">23</option>
- </select>
- <select name="Time_Minute">
+</select>
+<select name="Time_Minute">
<option value="00">00</option>
<option value="01">01</option>
... snipped ....
@@ -74,8 +77,8 @@ At 9:20 and 23 seconds in the morning the template above would output:
... snipped ....
<option value="58">58</option>
<option value="59">59</option>
- </select>
- <select name="Time_Second">
+</select>
+<select name="Time_Second">
<option value="00">00</option>
<option value="01">01</option>
... snipped ....
@@ -85,14 +88,13 @@ At 9:20 and 23 seconds in the morning the template above would output:
... snipped ....
<option value="58">58</option>
<option value="59">59</option>
- </select>
- <select name="Time_Meridian">
+</select>
+<select name="Time_Meridian">
<option value="am" selected>AM</option>
<option value="pm">PM</option>
- </select>
-
-
+</select>
+```
-See also [`$smarty.now`](#language.variables.smarty.now),
-[`{html_select_date}`](#language.function.html.select.date) and the
-[date tips page](#tips.dates).
+See also [`$smarty.now`](../language-variables/language-variables-smarty.md#smartynow-languagevariablessmartynow),
+[`{html_select_date}`](language-function-html-select-date.md) and the
+[date tips page](../../appendixes/tips.md#dates).
diff --git a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-table.md b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-table.md
index fed4ae4d7..b0eaf0ddf 100644
--- a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-table.md
+++ b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-html-table.md
@@ -1,23 +1,24 @@
-{html\_table} {#language.function.html.table}
-=============
+# {html_table}
-`{html_table}` is a [custom function](#language.custom.functions) that
+`{html_table}` is a [custom function](index.md) that
dumps an array of data into an HTML `<table>`.
- Attribute Name Type Required Default Description
- ---------------- --------- ---------- ---------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- loop array Yes *n/a* Array of data to loop through
- cols mixed No *3* Number of columns in the table or a comma-separated list of column heading names or an array of column heading names.if the cols-attribute is empty, but rows are given, then the number of cols is computed by the number of rows and the number of elements to display to be just enough cols to display all elements. If both, rows and cols, are omitted cols defaults to 3. if given as a list or array, the number of columns is computed from the number of elements in the list or array.
- rows integer No *empty* Number of rows in the table. if the rows-attribute is empty, but cols are given, then the number of rows is computed by the number of cols and the number of elements to display to be just enough rows to display all elements.
- inner string No *cols* Direction of consecutive elements in the loop-array to be rendered. *cols* means elements are displayed col-by-col. *rows* means elements are displayed row-by-row.
- caption string No *empty* Text to be used for the `<caption>` element of the table
- table\_attr string No *border=\"1\"* Attributes for `<table>` tag
- th\_attr string No *empty* Attributes for `<th>` tag (arrays are cycled)
- tr\_attr string No *empty* attributes for `<tr>` tag (arrays are cycled)
- td\_attr string No *empty* Attributes for `<td>` tag (arrays are cycled)
- trailpad string No *&nbsp;* Value to pad the trailing cells on last row with (if any)
- hdir string No *right* Direction of each row to be rendered. possible values: *right* (left-to-right), and *left* (right-to-left)
- vdir string No *down* Direction of each column to be rendered. possible values: *down* (top-to-bottom), *up* (bottom-to-top)
+## Attributes
+
+| Attribute Name | Required | Description |
+|----------------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| loop | Yes | Array of data to loop through |
+| cols | No | Number of columns in the table or a comma-separated list of column heading names or an array of column heading names.if the cols-attribute is empty, but rows are given, then the number of cols is computed by the number of rows and the number of elements to display to be just enough cols to display all elements. If both, rows and cols, are omitted cols defaults to 3. if given as a list or array, the number of columns is computed from the number of elements in the list or array. |
+| rows | No | Number of rows in the table. if the rows-attribute is empty, but cols are given, then the number of rows is computed by the number of cols and the number of elements to display to be just enough rows to display all elements. |
+| inner | No | Direction of consecutive elements in the loop-array to be rendered. *cols* means elements are displayed col-by-col. *rows* means elements are displayed row-by-row. |
+| caption | No | Text to be used for the `<caption>` element of the table |
+| table\_attr | No | Attributes for `<table>` tag (defaults to 'border="1"') |
+| th\_attr | No | Attributes for `<th>` tag (arrays are cycled) |
+| tr\_attr | No | attributes for `<tr>` tag (arrays are cycled) |
+| td\_attr | No | Attributes for `<td>` tag (arrays are cycled) |
+| trailpad | No | Value to pad the trailing cells on last row with (if any) (defaults to '&nbsp;') |
+| hdir | No | Direction of each row to be rendered. possible values: *right* (left-to-right), and *left* (right-to-left) (defaults to 'right') |
+| vdir | No | Direction of each column to be rendered. possible values: *down* (top-to-bottom), *up* (bottom-to-top) (defaults to 'down') |
- The `cols` attribute determines how many columns will be in the
table.
@@ -30,60 +31,63 @@ dumps an array of data into an HTML `<table>`.
- `trailpad` is the value put into the trailing cells on the last
table row if there are any present.
-<!-- -->
+## Examples
-
- <?php
- $smarty->assign( 'data', array(1,2,3,4,5,6,7,8,9) );
- $smarty->assign( 'tr', array('bgcolor="#eeeeee"','bgcolor="#dddddd"') );
- $smarty->display('index.tpl');
- ?>
-
-
+```php
+<?php
+$smarty->assign( 'data', array(1,2,3,4,5,6,7,8,9) );
+$smarty->assign( 'tr', array('bgcolor="#eeeeee"','bgcolor="#dddddd"') );
+$smarty->display('index.tpl');
+```
The variables assigned from php could be displayed as these three
examples demonstrate. Each example shows the template followed by
output.
-
- {**** Example One ****}
- {html_table loop=$data}
-
- <table border="1">
+** Example 1 **
+```smarty
+{html_table loop=$data}
+```
+```html
+<table border="1">
<tbody>
- <tr><td>1</td><td>2</td><td>3</td></tr>
- <tr><td>4</td><td>5</td><td>6</td></tr>
- <tr><td>7</td><td>8</td><td>9</td></tr>
+ <tr><td>1</td><td>2</td><td>3</td></tr>
+ <tr><td>4</td><td>5</td><td>6</td></tr>
+ <tr><td>7</td><td>8</td><td>9</td></tr>
</tbody>
- </table>
-
-
- {**** Example Two ****}
- {html_table loop=$data cols=4 table_attr='border="0"'}
-
- <table border="0">
+</table>
+```
+
+** Example 2 **
+```smarty
+{html_table loop=$data cols=4 table_attr='border="0"'}
+```
+```html
+<table border="0">
<tbody>
- <tr><td>1</td><td>2</td><td>3</td><td>4</td></tr>
- <tr><td>5</td><td>6</td><td>7</td><td>8</td></tr>
- <tr><td>9</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+ <tr><td>1</td><td>2</td><td>3</td><td>4</td></tr>
+ <tr><td>5</td><td>6</td><td>7</td><td>8</td></tr>
+ <tr><td>9</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
</tbody>
- </table>
-
-
- {**** Example Three ****}
- {html_table loop=$data cols="first,second,third,fourth" tr_attr=$tr}
-
- <table border="1">
+</table>
+```
+
+** Example 3 **
+```smarty
+{html_table loop=$data cols="first,second,third,fourth" tr_attr=$tr}
+```
+```html
+<table border="1">
<thead>
- <tr>
- <th>first</th><th>second</th><th>third</th><th>fourth</th>
- </tr>
+ <tr>
+ <th>first</th><th>second</th><th>third</th><th>fourth</th>
+ </tr>
</thead>
<tbody>
- <tr bgcolor="#eeeeee"><td>1</td><td>2</td><td>3</td><td>4</td></tr>
- <tr bgcolor="#dddddd"><td>5</td><td>6</td><td>7</td><td>8</td></tr>
- <tr bgcolor="#eeeeee"><td>9</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+ <tr bgcolor="#eeeeee"><td>1</td><td>2</td><td>3</td><td>4</td></tr>
+ <tr bgcolor="#dddddd"><td>5</td><td>6</td><td>7</td><td>8</td></tr>
+ <tr bgcolor="#eeeeee"><td>9</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
</tbody>
- </table>
-
+</table>
+```
diff --git a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-mailto.md b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-mailto.md
index cc5bf6968..bcb8b7d4d 100644
--- a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-mailto.md
+++ b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-mailto.md
@@ -1,56 +1,61 @@
-{mailto} {#language.function.mailto}
-========
+# {mailto}
`{mailto}` automates the creation of a `mailto:` anchor links and
optionally encodes them. Encoding emails makes it more difficult for web
spiders to lift email addresses off of a site.
+## Attributes
+
+| Attribute Name | Required | Description |
+|----------------|----------|-----------------------------------------------------------------------------------------------|
+| address | Yes | The e-mail address |
+| text | No | The text to display, default is the e-mail address |
+| encode | No | How to encode the e-mail. Can be one of `none`, `hex`, `javascript` or `javascript_charcode`. |
+| cc | No | Email addresses to carbon copy, separate entries by a comma. |
+| bcc | No | Email addresses to blind carbon copy, separate entries by a comma |
+| subject | No | Email subject |
+| newsgroups | No | Newsgroups to post to, separate entries by a comma. |
+| followupto | No | Addresses to follow up to, separate entries by a comma. |
+| extra | No | Any extra information you want passed to the link, such as style sheet classes |
+
> **Note**
>
> Javascript is probably the most thorough form of encoding, although
> you can use hex encoding too.
- Attribute Name Type Required Default Description
- ---------------- -------- ---------- --------- -----------------------------------------------------------------------------------------------
- address string Yes *n/a* The e-mail address
- text string No *n/a* The text to display, default is the e-mail address
- encode string No *none* How to encode the e-mail. Can be one of `none`, `hex`, `javascript` or `javascript_charcode`.
- cc string No *n/a* Email addresses to carbon copy, separate entries by a comma.
- bcc string No *n/a* Email addresses to blind carbon copy, separate entries by a comma
- subject string No *n/a* Email subject
- newsgroups string No *n/a* Newsgroups to post to, separate entries by a comma.
- followupto string No *n/a* Addresses to follow up to, separate entries by a comma.
- extra string No *n/a* Any extra information you want passed to the link, such as style sheet classes
+## Examples
- {mailto address="me@example.com"}
- <a href="mailto:me@example.com" >me@example.com</a>
+```smarty
+{mailto address="me@example.com"}
+<a href="mailto:me@example.com" >me@example.com</a>
- {mailto address="me@example.com" text="send me some mail"}
- <a href="mailto:me@example.com" >send me some mail</a>
+{mailto address="me@example.com" text="send me some mail"}
+<a href="mailto:me@example.com" >send me some mail</a>
- {mailto address="me@example.com" encode="javascript"}
- <script type="text/javascript" language="javascript">
- eval(unescape('%64%6f% ... snipped ...%61%3e%27%29%3b'))
- </script>
+{mailto address="me@example.com" encode="javascript"}
+<script type="text/javascript" language="javascript">
+ eval(unescape('%64%6f% ... snipped ...%61%3e%27%29%3b'))
+</script>
- {mailto address="me@example.com" encode="hex"}
- <a href="mailto:%6d%65.. snipped..3%6f%6d">&#x6d;&..snipped...#x6f;&#x6d;</a>
+{mailto address="me@example.com" encode="hex"}
+<a href="mailto:%6d%65.. snipped..3%6f%6d">&#x6d;&..snipped...#x6f;&#x6d;</a>
- {mailto address="me@example.com" subject="Hello to you!"}
- <a href="mailto:me@example.com?subject=Hello%20to%20you%21" >me@example.com</a>
+{mailto address="me@example.com" subject="Hello to you!"}
+<a href="mailto:me@example.com?subject=Hello%20to%20you%21" >me@example.com</a>
- {mailto address="me@example.com" cc="you@example.com,they@example.com"}
- <a href="mailto:me@example.com?cc=you@example.com,they@example.com" >me@example.com</a>
+{mailto address="me@example.com" cc="you@example.com,they@example.com"}
+<a href="mailto:me@example.com?cc=you@example.com,they@example.com" >me@example.com</a>
- {mailto address="me@example.com" extra='class="email"'}
- <a href="mailto:me@example.com" class="email">me@example.com</a>
+{mailto address="me@example.com" extra='class="email"'}
+<a href="mailto:me@example.com" class="email">me@example.com</a>
- {mailto address="me@example.com" encode="javascript_charcode"}
- <script type="text/javascript" language="javascript">
- {document.write(String.fromCharCode(60,97, ... snipped ....60,47,97,62))}
- </script>
+{mailto address="me@example.com" encode="javascript_charcode"}
+<script type="text/javascript" language="javascript">
+ {document.write(String.fromCharCode(60,97, ... snipped ....60,47,97,62))}
+</script>
+```
-See also [`escape`](#language.modifier.escape),
-[`{textformat}`](#language.function.textformat) and [obfuscating email
-addresses](#tips.obfuscating.email).
+See also [`escape`](../language-modifiers/language-modifier-escape.md),
+[`{textformat}`](../language-custom-functions/language-function-textformat.md) and [obfuscating email
+addresses](../../appendixes/tips.md#obfuscating-e-mail-addresses).
diff --git a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-math.md b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-math.md
index 9adfd1c5a..7b34fccff 100644
--- a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-math.md
+++ b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-math.md
@@ -1,9 +1,18 @@
-{math} {#language.function.math}
-======
+# {math}
`{math}` allows the template designer to do math equations in the
template.
+## Attributes
+
+| Attribute Name | Required | Description |
+|----------------|----------|--------------------------------------------------|
+| equation | Yes | The equation to execute |
+| format | No | The format of the result (sprintf) |
+| var | Yes | Equation variable value |
+| assign | No | Template variable the output will be assigned to |
+| \[var \...\] | Yes | Equation variable value |
+
- Any numeric template variables may be used in the equations, and the
result is printed in place of the tag.
@@ -13,7 +22,7 @@ template.
- +, -, /, \*, abs, ceil, cos, exp, floor, log, log10, max, min, pi,
pow, rand, round, sin, sqrt, srans and tan are all valid operators.
Check the PHP documentation for further information on these
- [math](&url.php-manual;eval) functions.
+ [math](https://www.php.net/eval) functions.
- If you supply the `assign` attribute, the output of the `{math}`
function will be assigned to this template variable instead of being
@@ -22,83 +31,69 @@ template.
> **Note**
>
> `{math}` is an expensive function in performance due to its use of the
-> php [`eval()`](&url.php-manual;eval) function. Doing the math in PHP
+> php [`eval()`](https://www.php.net/eval) function. Doing the math in PHP
> is much more efficient, so whenever possible do the math calculations
-> in the script and [`assign()`](#api.assign) the results to the
+> in the script and [`assign()`](../../programmers/api-functions/api-assign.md) the results to the
> template. Definitely avoid repetitive `{math}` function calls, eg
-> within [`{section}`](#language.function.section) loops.
-
- Attribute Name Type Required Default Description
- ---------------- --------- ---------- --------- --------------------------------------------------
- equation string Yes *n/a* The equation to execute
- format string No *n/a* The format of the result (sprintf)
- var numeric Yes *n/a* Equation variable value
- assign string No *n/a* Template variable the output will be assigned to
- \[var \...\] numeric Yes *n/a* Equation variable value
-
-**Example a:**
+> within [`{section}`](../language-builtin-functions/language-function-section.md) loops.
+## Examples
- {* $height=4, $width=5 *}
+**Example 1**
+```smarty
- {math equation="x + y" x=$height y=$width}
+{* $height=4, $width=5 *}
+{math equation="x + y" x=$height y=$width}
+```
-
The above example will output:
+```
+9
+```
- 9
-
-
-**Example b:**
+**Example 2**
+```smarty
+{* $row_height = 10, $row_width = 20, #col_div# = 2, assigned in template *}
- {* $row_height = 10, $row_width = 20, #col_div# = 2, assigned in template *}
-
- {math equation="height * width / division"
- height=$row_height
- width=$row_width
- division=#col_div#}
-
-
+{math equation="height * width / division"
+ height=$row_height
+ width=$row_width
+ division=#col_div#}
+```
The above example will output:
-
- 100
-
+```
+100
+```
+**Example 3**
-**Example c:**
-
+```smarty
+{* you can use parenthesis *}
- {* you can use parenthesis *}
-
- {math equation="(( x + y ) / z )" x=2 y=10 z=2}
-
-
+{math equation="(( x + y ) / z )" x=2 y=10 z=2}
+```
The above example will output:
+```
+6
+```
- 6
-
-
-
-**Example d:**
-
+**Example 4**
- {* you can supply a format parameter in sprintf format *}
+```smarty
+{* you can supply a format parameter in sprintf format *}
- {math equation="x + y" x=4.4444 y=5.0000 format="%.2f"}
-
+{math equation="x + y" x=4.4444 y=5.0000 format="%.2f"}
+```
-
The above example will output:
-
-
- 9.44
-
-
+```
+9.44
+```
diff --git a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-textformat.md b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-textformat.md
index d0cd4cfc8..4089fdb33 100644
--- a/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-textformat.md
+++ b/vendor/smarty/smarty/docs/designers/language-custom-functions/language-function-textformat.md
@@ -1,190 +1,182 @@
-{textformat} {#language.function.textformat}
-============
+# {textformat}
-`{textformat}` is a [block function](#plugins.block.functions) used to
+`{textformat}` is a [block function](../../programmers/plugins/plugins-block-functions.md) used to
format text. It basically cleans up spaces and special characters, and
formats paragraphs by wrapping at a boundary and indenting lines.
-You can set the parameters explicitly, or use a preset style. Currently
+You can set the parameters explicitly, or use a preset style. Currently,
"email" is the only available style.
- Attribute Name Type Required Default Description
- ---------------- --------- ---------- ------------------ ----------------------------------------------------------------------------------------
- style string No *n/a* Preset style
- indent number No *0* The number of chars to indent every line
- indent\_first number No *0* The number of chars to indent the first line
- indent\_char string No *(single space)* The character (or string of chars) to indent with
- wrap number No *80* How many characters to wrap each line to
- wrap\_char string No *\\n* The character (or string of chars) to break each line with
- wrap\_cut boolean No *FALSE* If TRUE, wrap will break the line at the exact character instead of at a word boundary
- assign string No *n/a* The template variable the output will be assigned to
+## Attributes
+| Attribute Name | Default | Description |
+|----------------|------------------|----------------------------------------------------------------------------------------|
+| style | *n/a* | Preset style |
+| indent | *0* | The number of chars to indent every line |
+| indent\_first | *0* | The number of chars to indent the first line |
+| indent\_char | *(single space)* | The character (or string of chars) to indent with |
+| wrap | *80* | How many characters to wrap each line to |
+| wrap\_char | *\\n* | The character (or string of chars) to break each line with |
+| wrap\_cut | *FALSE* | If TRUE, wrap will break the line at the exact character instead of at a word boundary |
+| assign | *n/a* | The template variable the output will be assigned to |
- {textformat wrap=40}
+## Examples
- This is foo.
- This is foo.
- This is foo.
- This is foo.
- This is foo.
- This is foo.
+```smarty
+{textformat wrap=40}
- This is bar.
+This is foo.
+This is foo.
+This is foo.
+This is foo.
+This is foo.
+This is foo.
- bar foo bar foo foo.
- bar foo bar foo foo.
- bar foo bar foo foo.
- bar foo bar foo foo.
- bar foo bar foo foo.
- bar foo bar foo foo.
- bar foo bar foo foo.
+This is bar.
- {/textformat}
+bar foo bar foo foo.
+bar foo bar foo foo.
+bar foo bar foo foo.
+bar foo bar foo foo.
+bar foo bar foo foo.
+bar foo bar foo foo.
+bar foo bar foo foo.
-
-
+{/textformat}
+```
The above example will output:
+```
+This is foo. This is foo. This is foo.
+This is foo. This is foo. This is foo.
+This is bar.
- This is foo. This is foo. This is foo.
- This is foo. This is foo. This is foo.
-
- This is bar.
+bar foo bar foo foo. bar foo bar foo
+foo. bar foo bar foo foo. bar foo bar
+foo foo. bar foo bar foo foo. bar foo
+bar foo foo. bar foo bar foo foo.
+```
- bar foo bar foo foo. bar foo bar foo
- foo. bar foo bar foo foo. bar foo bar
- foo foo. bar foo bar foo foo. bar foo
- bar foo foo. bar foo bar foo foo.
-
-
+```smarty
+{textformat wrap=40 indent=4}
+This is foo.
+This is foo.
+This is foo.
+This is foo.
+This is foo.
+This is foo.
- {textformat wrap=40 indent=4}
+This is bar.
- This is foo.
- This is foo.
- This is foo.
- This is foo.
- This is foo.
- This is foo.
+bar foo bar foo foo.
+bar foo bar foo foo.
+bar foo bar foo foo.
+bar foo bar foo foo.
+bar foo bar foo foo.
+bar foo bar foo foo.
+bar foo bar foo foo.
- This is bar.
-
- bar foo bar foo foo.
- bar foo bar foo foo.
- bar foo bar foo foo.
- bar foo bar foo foo.
- bar foo bar foo foo.
- bar foo bar foo foo.
- bar foo bar foo foo.
-
- {/textformat}
-
-
-
+{/textformat}
+```
The above example will output:
-
-
- This is foo. This is foo. This is
- foo. This is foo. This is foo. This
- is foo.
-
- This is bar.
-
- bar foo bar foo foo. bar foo bar foo
- foo. bar foo bar foo foo. bar foo
- bar foo foo. bar foo bar foo foo.
- bar foo bar foo foo. bar foo bar
- foo foo.
-
-
-
-
- {textformat wrap=40 indent=4 indent_first=4}
-
- This is foo.
- This is foo.
- This is foo.
- This is foo.
- This is foo.
- This is foo.
-
- This is bar.
-
- bar foo bar foo foo.
- bar foo bar foo foo.
- bar foo bar foo foo.
- bar foo bar foo foo.
- bar foo bar foo foo.
- bar foo bar foo foo.
- bar foo bar foo foo.
-
- {/textformat}
-
-
+```
+ This is foo. This is foo. This is
+ foo. This is foo. This is foo. This
+ is foo.
+
+ This is bar.
+
+ bar foo bar foo foo. bar foo bar foo
+ foo. bar foo bar foo foo. bar foo
+ bar foo foo. bar foo bar foo foo.
+ bar foo bar foo foo. bar foo bar
+ foo foo.
+```
+
+
+```smarty
+{textformat wrap=40 indent=4 indent_first=4}
+
+This is foo.
+This is foo.
+This is foo.
+This is foo.
+This is foo.
+This is foo.
+
+This is bar.
+
+bar foo bar foo foo.
+bar foo bar foo foo.
+bar foo bar foo foo.
+bar foo bar foo foo.
+bar foo bar foo foo.
+bar foo bar foo foo.
+bar foo bar foo foo.
+
+{/textformat}
+```
The above example will output:
+```
+ This is foo. This is foo. This
+ is foo. This is foo. This is foo.
+ This is foo.
- This is foo. This is foo. This
- is foo. This is foo. This is foo.
- This is foo.
-
- This is bar.
-
- bar foo bar foo foo. bar foo bar
- foo foo. bar foo bar foo foo. bar
- foo bar foo foo. bar foo bar foo
- foo. bar foo bar foo foo. bar foo
- bar foo foo.
+ This is bar.
+ bar foo bar foo foo. bar foo bar
+ foo foo. bar foo bar foo foo. bar
+ foo bar foo foo. bar foo bar foo
+ foo. bar foo bar foo foo. bar foo
+ bar foo foo.
+```
+```smarty
+{textformat style="email"}
- {textformat style="email"}
+This is foo.
+This is foo.
+This is foo.
+This is foo.
+This is foo.
+This is foo.
- This is foo.
- This is foo.
- This is foo.
- This is foo.
- This is foo.
- This is foo.
+This is bar.
- This is bar.
+bar foo bar foo foo.
+bar foo bar foo foo.
+bar foo bar foo foo.
+bar foo bar foo foo.
+bar foo bar foo foo.
+bar foo bar foo foo.
+bar foo bar foo foo.
- bar foo bar foo foo.
- bar foo bar foo foo.
- bar foo bar foo foo.
- bar foo bar foo foo.
- bar foo bar foo foo.
- bar foo bar foo foo.
- bar foo bar foo foo.
-
- {/textformat}
-
-
-
+{/textformat}
+```
The above example will output:
+```
+This is foo. This is foo. This is foo. This is foo. This is foo. This is
+foo.
- This is foo. This is foo. This is foo. This is foo. This is foo. This is
- foo.
+This is bar.
- This is bar.
-
- bar foo bar foo foo. bar foo bar foo foo. bar foo bar foo foo. bar foo
- bar foo foo. bar foo bar foo foo. bar foo bar foo foo. bar foo bar foo
- foo.
-
-
-
+bar foo bar foo foo. bar foo bar foo foo. bar foo bar foo foo. bar foo
+bar foo foo. bar foo bar foo foo. bar foo bar foo foo. bar foo bar foo
+foo.
+```
+
-See also [`{strip}`](#language.function.strip) and
-[`wordwrap`](#language.modifier.wordwrap).
+See also [`{strip}`](../language-builtin-functions/language-function-strip.md) and
+[`wordwrap`](../language-modifiers/language-modifier-wordwrap.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers.md b/vendor/smarty/smarty/docs/designers/language-modifiers.md
deleted file mode 100644
index 4626dbe55..000000000
--- a/vendor/smarty/smarty/docs/designers/language-modifiers.md
+++ /dev/null
@@ -1,123 +0,0 @@
-Variable Modifiers {#language.modifiers}
-==================
-
-## Table of contents
-- [capitalize](./language-modifiers/language-modifier-capitalize.md)
-- [cat](./language-modifiers/language-modifier-cat.md)
-- [count_characters](./language-modifiers/language-modifier-count-characters.md)
-- [count_paragraphs](./language-modifiers/language-modifier-count-paragraphs.md)
-- [count_sentences](./language-modifiers/language-modifier-count-sentences.md)
-- [count_words](./language-modifiers/language-modifier-count-words.md)
-- [date_format](./language-modifiers/language-modifier-date-format.md)
-- [default](./language-modifiers/language-modifier-default.md)
-- [escape](./language-modifiers/language-modifier-escape.md)
-- [from_charset](./language-modifiers/language-modifier-from-charset.md)
-- [indent](./language-modifiers/language-modifier-indent.md)
-- [lower](./language-modifiers/language-modifier-lower.md)
-- [nl2br](./language-modifiers/language-modifier-nl2br.md)
-- [regex_replace](./language-modifiers/language-modifier-regex-replace.md)
-- [replace](./language-modifiers/language-modifier-replace.md)
-- [spacify](./language-modifiers/language-modifier-spacify.md)
-- [string_format](./language-modifiers/language-modifier-string-format.md)
-- [strip](./language-modifiers/language-modifier-strip.md)
-- [strip_tags](./language-modifiers/language-modifier-strip-tags.md)
-- [to_charset](./language-modifiers/language-modifier-to-charset.md)
-- [truncate](./language-modifiers/language-modifier-truncate.md)
-- [unescape](./language-modifiers/language-modifier-unescape.md)
-- [upper](./language-modifiers/language-modifier-upper.md)
-- [wordwrap](./language-modifiers/language-modifier-wordwrap.md)
-
-Variable modifiers can be applied to
-[variables](./language-variables.md), [custom
-functions](./language-custom-functions.md) or strings. To apply a modifier,
-specify the value followed by a `|` (pipe) and the modifier name. A
-modifier may accept additional parameters that affect its behavior.
-These parameters follow the modifier name and are separated by a `:`
-(colon). Also, *all php-functions can be used as modifiers implicitly*
-(more below) and modifiers can be
-[combined](./language-combining-modifiers.md).
-
-
- {* apply modifier to a variable *}
- {$title|upper}
-
- {* modifier with parameters *}
- {$title|truncate:40:"..."}
-
- {* apply modifier to a function parameter *}
- {html_table loop=$myvar|upper}
-
- {* with parameters *}
- {html_table loop=$myvar|truncate:40:"..."}
-
- {* apply modifier to literal string *}
- {"foobar"|upper}
-
- {* using date_format to format the current date *}
- {$smarty.now|date_format:"%Y/%m/%d"}
-
- {* apply modifier to a custom function *}
- {mailto|upper address="smarty@example.com"}
-
- {* using php's str_repeat *}
- {"="|str_repeat:80}
-
- {* php's count *}
- {$myArray|@count}
-
- {* this will uppercase and truncate the whole array *}
- <select name="name_id">
- {html_options output=$my_array|upper|truncate:20}
- </select>
-
-
-
-- Modifiers can be applied to any type of variables, including arrays
- and objects.
-
- > **Note**
- >
- > The default behavior was changed with Smarty 3. In Smarty 2.x, you
- > had to use an \"`@`\" symbol to apply a modifier to an array, such
- > as `{$articleTitle|@count}`. With Smarty 3, the \"`@`\" is no
- > longer necessary, and is ignored.
- >
- > If you want a modifier to apply to each individual item of an
- > array, you will either need to loop the array in the template, or
- > provide for this functionality inside your modifier function.
-
- > **Note**
- >
- > Second, in Smarty 2.x, modifiers were applied to the result of
- > math expressions like `{8+2}`, meaning that
- > `{8+2|count_characters}` would give `2`, as 8+2=10 and 10 is two
- > characters long. With Smarty 3, modifiers are applied to the
- > variables or atomic expressions before executing the calculations,
- > so since 2 is one character long, `{8+2|count_characters}`
- > gives 9. To get the old result use parentheses like
- > `{(8+2)|count_characters}`.
-
-- Modifiers are autoloaded from the
- [`$plugins_dir`](../programmers/api-variables/variable-plugins-dir.md) or can be registered
- explicitly with the [`registerPlugin()`](../programmers/api-functions/api-register-plugin.md)
- function. The later is useful for sharing a function between php
- scripts and smarty templates.
-
-- All php-functions can be used as modifiers implicitly, as
- demonstrated in the example above. However, using php-functions as
- modifiers has two little pitfalls:
-
- - First - sometimes the order of the function-parameters is not
- the desirable one. Formatting `$foo` with
- `{"%2.f"|sprintf:$foo}` actually works, but asks for the more
- intuitive, like `{$foo|string_format:"%2.f"}` that is provided
- by the Smarty distribution.
-
- - Secondly - if security is enabled, all php-functions that are to
- be used as modifiers have to be declared trusted in the
- `$modifiers` property of the security policy. See the
- [Security](../programmers/advanced-features/advanced-features-security.md) section for details.
-
-See also [`registerPlugin()`](../programmers/api-functions/api-register-plugin.md), [combining
-modifiers](./language-combining-modifiers.md). and [extending smarty with
-plugins](../programmers/plugins.md)
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/index.md b/vendor/smarty/smarty/docs/designers/language-modifiers/index.md
new file mode 100644
index 000000000..c9aeef887
--- /dev/null
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/index.md
@@ -0,0 +1,122 @@
+# Variable Modifiers
+
+Variable modifiers can be applied to
+[variables](../language-variables/index.md), [custom functions](../language-custom-functions/index.md)
+or strings. To apply a modifier,
+specify the value followed by a `|` (pipe) and the modifier name. A
+modifier may accept additional parameters that affect its behavior.
+These parameters follow the modifier name and are separated by a `:`
+(colon). Also, *all php-functions can be used as modifiers implicitly*
+(more below) and modifiers can be
+[combined](../language-combining-modifiers.md).
+
+- [capitalize](language-modifier-capitalize.md)
+- [cat](language-modifier-cat.md)
+- [count_characters](language-modifier-count-characters.md)
+- [count_paragraphs](language-modifier-count-paragraphs.md)
+- [count_sentences](language-modifier-count-sentences.md)
+- [count_words](language-modifier-count-words.md)
+- [date_format](language-modifier-date-format.md)
+- [default](language-modifier-default.md)
+- [escape](language-modifier-escape.md)
+- [from_charset](language-modifier-from-charset.md)
+- [indent](language-modifier-indent.md)
+- [lower](language-modifier-lower.md)
+- [nl2br](language-modifier-nl2br.md)
+- [regex_replace](language-modifier-regex-replace.md)
+- [replace](language-modifier-replace.md)
+- [spacify](language-modifier-spacify.md)
+- [string_format](language-modifier-string-format.md)
+- [strip](language-modifier-strip.md)
+- [strip_tags](language-modifier-strip-tags.md)
+- [to_charset](language-modifier-to-charset.md)
+- [truncate](language-modifier-truncate.md)
+- [unescape](language-modifier-unescape.md)
+- [upper](language-modifier-upper.md)
+- [wordwrap](language-modifier-wordwrap.md)
+
+## Examples
+
+```smarty
+{* apply modifier to a variable *}
+{$title|upper}
+
+{* modifier with parameters *}
+{$title|truncate:40:"..."}
+
+{* apply modifier to a function parameter *}
+{html_table loop=$myvar|upper}
+
+{* with parameters *}
+{html_table loop=$myvar|truncate:40:"..."}
+
+{* apply modifier to literal string *}
+{"foobar"|upper}
+
+{* using date_format to format the current date *}
+{$smarty.now|date_format:"%Y/%m/%d"}
+
+{* apply modifier to a custom function *}
+{mailto|upper address="smarty@example.com"}
+
+{* using php's str_repeat *}
+{"="|str_repeat:80}
+
+{* php's count *}
+{$myArray|@count}
+
+{* this will uppercase and truncate the whole array *}
+<select name="name_id">
+{html_options output=$my_array|upper|truncate:20}
+</select>
+```
+
+- Modifiers can be applied to any type of variables, including arrays
+ and objects.
+
+ > **Note**
+ >
+ > The default behavior was changed with Smarty 3. In Smarty 2.x, you
+ > had to use an "`@`" symbol to apply a modifier to an array, such
+ > as `{$articleTitle|@count}`. With Smarty 3, the "`@`" is no
+ > longer necessary, and is ignored.
+ >
+ > If you want a modifier to apply to each individual item of an
+ > array, you will either need to loop the array in the template, or
+ > provide for this functionality inside your modifier function.
+
+ > **Note**
+ >
+ > Second, in Smarty 2.x, modifiers were applied to the result of
+ > math expressions like `{8+2}`, meaning that
+ > `{8+2|count_characters}` would give `2`, as 8+2=10 and 10 is two
+ > characters long. With Smarty 3, modifiers are applied to the
+ > variables or atomic expressions before executing the calculations,
+ > so since 2 is one character long, `{8+2|count_characters}`
+ > gives 9. To get the old result use parentheses like
+ > `{(8+2)|count_characters}`.
+
+- Modifiers are autoloaded from the
+ [`$plugins_dir`](../../programmers/api-variables/variable-plugins-dir.md) or can be registered
+ explicitly with the [`registerPlugin()`](../../programmers/api-functions/api-register-plugin.md)
+ function. The later is useful for sharing a function between php
+ scripts and smarty templates.
+
+- All php-functions can be used as modifiers implicitly, as
+ demonstrated in the example above. However, using php-functions as
+ modifiers has two little pitfalls:
+
+ - First - sometimes the order of the function-parameters is not
+ the desirable one. Formatting `$foo` with
+ `{"%2.f"|sprintf:$foo}` actually works, but asks for the more
+ intuitive, like `{$foo|string_format:"%2.f"}` that is provided
+ by the Smarty distribution.
+
+ - Secondly - if security is enabled, all php-functions that are to
+ be used as modifiers have to be declared trusted in the
+ `$modifiers` property of the security policy. See the
+ [Security](../../programmers/advanced-features/advanced-features-security.md) section for details.
+
+See also [`registerPlugin()`](../../programmers/api-functions/api-register-plugin.md), [combining
+modifiers](../language-combining-modifiers.md). and [extending smarty with
+plugins](../../programmers/plugins.md)
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-capitalize.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-capitalize.md
index 015bb3bc0..0368c7b3b 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-capitalize.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-capitalize.md
@@ -1,41 +1,49 @@
-capitalize {#language.modifier.capitalize}
-==========
+# capitalize
This is used to capitalize the first letter of all words in a variable.
-This is similar to the PHP [`ucwords()`](&url.php-manual;ucwords)
+This is similar to the PHP [`ucwords()`](https://www.php.net/ucwords)
function.
- Parameter Position Type Required Default Description
- -------------------- --------- ---------- --------- -----------------------------------------------------------------------------------------------------------
- 1 boolean No FALSE This determines whether or not words with digits will be uppercased
- 2 boolean No FALSE This determines whether or not Capital letters within words should be lowercased, e.g. \"aAa\" to \"Aaa\"
+## Basic usage
+```smarty
+{$myVar|capitalize}
+```
+## Parameters
- <?php
+| Parameter | Type | Required | Description |
+|-----------|---------|----------|-------------------------------------------------------------------------------------------------------|
+| 1 | boolean | No | This determines whether or not words with digits will be uppercased |
+| 2 | boolean | No | This determines whether or not Capital letters within words should be lowercased, e.g. "aAa" to "Aaa" |
- $smarty->assign('articleTitle', 'next x-men film, x3, delayed.');
- ?>
+## Examples
+
+```php
+<?php
+
+ $smarty->assign('articleTitle', 'next x-men film, x3, delayed.');
+```
Where the template is:
-
+```smarty
{$articleTitle}
{$articleTitle|capitalize}
{$articleTitle|capitalize:true}
-
+```
Will output:
-
+```
next x-men film, x3, delayed.
Next X-Men Film, x3, Delayed.
Next X-Men Film, X3, Delayed.
-
+```
-See also [`lower`](#language.modifier.lower) and
-[`upper`](#language.modifier.upper)
+See also [`lower`](language-modifier-lower.md) and
+[`upper`](language-modifier-upper.md)
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-cat.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-cat.md
index 1f43ae177..97dda4b37 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-cat.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-cat.md
@@ -1,31 +1,36 @@
-cat {#language.modifier.cat}
-===
+# cat
This value is concatenated to the given variable.
- Parameter Position Type Required Default Description
- -------------------- -------- ---------- --------- -----------------------------------------------
- 1 string No *empty* This value to catenate to the given variable.
+## Basic usage
+```smarty
+{$myVar|cat:' units'}
+```
+## Parameters
- <?php
+| Parameter | Type | Required | Description |
+|-----------|--------|----------|--------------------------------------------------|
+| 1 | string | No | This value to concatenate to the given variable. |
- $smarty->assign('articleTitle', "Psychics predict world didn't end");
+## Examples
- ?>
+```php
+<?php
-
+ $smarty->assign('articleTitle', "Psychics predict world didn't end");
-Where template is:
+```
+Where template is:
+```smarty
{$articleTitle|cat:' yesterday.'}
-
-
+```
Will output:
-
+```
Psychics predict world didn't end yesterday.
-
+```
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-count-characters.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-count-characters.md
index 23bc00d51..8fc37d7a9 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-count-characters.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-count-characters.md
@@ -1,39 +1,43 @@
-count\_characters {#language.modifier.count.characters}
-=================
+# count_characters
This is used to count the number of characters in a variable.
- Parameter Position Type Required Default Description
- -------------------- --------- ---------- --------- -------------------------------------------------------------------------------
- 1 boolean No FALSE This determines whether or not to include whitespace characters in the count.
+## Basic usage
+```smarty
+{$myVar|count_characters}
+```
+## Parameters
- <?php
+| Parameter | Type | Required | Description |
+|-----------|---------|----------|------------------------------------------------------------------------|
+| 1 | boolean | No | This determines whether to include whitespace characters in the count. |
- $smarty->assign('articleTitle', 'Cold Wave Linked to Temperatures.');
+## Examples
- ?>
+```php
+<?php
-
+ $smarty->assign('articleTitle', 'Cold Wave Linked to Temperatures.');
-Where template is:
+```
+Where template is:
+```smarty
{$articleTitle}
{$articleTitle|count_characters}
{$articleTitle|count_characters:true}
-
-
+```
Will output:
-
+```
Cold Wave Linked to Temperatures.
29
33
-
+```
-
-See also [`count_words`](#language.modifier.count.words),
-[`count_sentences`](#language.modifier.count.sentences) and
-[`count_paragraphs`](#language.modifier.count.paragraphs).
+See also [`count_words`](language-modifier-count-words.md),
+[`count_sentences`](language-modifier-count-sentences.md) and
+[`count_paragraphs`](language-modifier-count-paragraphs.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-count-paragraphs.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-count-paragraphs.md
index 02c474e6b..060cb98a5 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-count-paragraphs.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-count-paragraphs.md
@@ -1,38 +1,41 @@
-count\_paragraphs {#language.modifier.count.paragraphs}
-=================
+# count_paragraphs
This is used to count the number of paragraphs in a variable.
+## Basic usage
+```smarty
+{$myVar|count_paragraphs}
+```
- <?php
+## Examples
+
+```php
+<?php
$smarty->assign('articleTitle',
"War Dims Hope for Peace. Child's Death Ruins Couple's Holiday.\n\n
Man is Fatally Slain. Death Causes Loneliness, Feeling of Isolation."
);
- ?>
-
-
+```
Where template is:
-
+```smarty
{$articleTitle}
{$articleTitle|count_paragraphs}
-
+```
Will output:
-
+```
War Dims Hope for Peace. Child's Death Ruins Couple's Holiday.
Man is Fatally Slain. Death Causes Loneliness, Feeling of Isolation.
2
+```
-
-
-See also [`count_characters`](#language.modifier.count.characters),
-[`count_sentences`](#language.modifier.count.sentences) and
-[`count_words`](#language.modifier.count.words).
+See also [`count_characters`](language-modifier-count-characters.md),
+[`count_sentences`](language-modifier-count-sentences.md) and
+[`count_words`](language-modifier-count-words.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-count-sentences.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-count-sentences.md
index 0a77ab82a..dd2f69c61 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-count-sentences.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-count-sentences.md
@@ -1,37 +1,39 @@
-count\_sentences {#language.modifier.count.sentences}
-================
+# count_sentences
This is used to count the number of sentences in a variable. A sentence
being delimited by a dot, question- or exclamation-mark (.?!).
+## Basic usage
+```smarty
+{$myVar|count_sentences}
+```
- <?php
+## Examples
+
+```php
+<?php
$smarty->assign('articleTitle',
'Two Soviet Ships Collide - One Dies.
Enraged Cow Injures Farmer with Axe.'
);
- ?>
-
-
+```
Where template is:
-
+```smarty
{$articleTitle}
{$articleTitle|count_sentences}
-
-
+```
Will output:
-
+```
Two Soviet Ships Collide - One Dies. Enraged Cow Injures Farmer with Axe.
2
-
+```
-
-See also [`count_characters`](#language.modifier.count.characters),
-[`count_paragraphs`](#language.modifier.count.paragraphs) and
-[`count_words`](#language.modifier.count.words).
+See also [`count_characters`](language-modifier-count-characters.md),
+[`count_paragraphs`](language-modifier-count-paragraphs.md) and
+[`count_words`](language-modifier-count-words.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-count-words.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-count-words.md
index d25fbd5b8..1ab0d1d47 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-count-words.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-count-words.md
@@ -1,33 +1,35 @@
-count\_words {#language.modifier.count.words}
-============
+# count_words
This is used to count the number of words in a variable.
+## Basic usage
+```smarty
+{$myVar|count_words}
+```
- <?php
+## Examples
- $smarty->assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.');
+```php
+<?php
- ?>
+ $smarty->assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.');
-
+```
Where template is:
-
+```smarty
{$articleTitle}
{$articleTitle|count_words}
-
-
+```
This will output:
-
+```
Dealers Will Hear Car Talk at Noon.
7
+```
-
-
-See also [`count_characters`](#language.modifier.count.characters),
-[`count_paragraphs`](#language.modifier.count.paragraphs) and
-[`count_sentences`](#language.modifier.count.sentences).
+See also [`count_characters`](language-modifier-count-characters.md),
+[`count_paragraphs`](language-modifier-count-paragraphs.md) and
+[`count_sentences`](language-modifier-count-sentences.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-date-format.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-date-format.md
index edd81937b..620d085b8 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-date-format.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-date-format.md
@@ -1,20 +1,26 @@
-date\_format {#language.modifier.date.format}
-============
+# date_format
This formats a date and time into the given
-[`strftime()`](&url.php-manual;strftime) format. Dates can be passed to
-Smarty as unix [timestamps](&url.php-manual;function.time), [DateTime
-objects](&url.php-manual;class.DateTime), mysql timestamps or any string
+[`strftime()`](https://www.php.net/strftime) format. Dates can be passed to
+Smarty as unix [timestamps](https://www.php.net/function.time), [DateTime
+objects](https://www.php.net/class.DateTime), mysql timestamps or any string
made up of month day year, parsable by php\'s
-[`strtotime()`](&url.php-manual;strtotime). Designers can then use
+[`strtotime()`](https://www.php.net/strtotime). Designers can then use
`date_format` to have complete control of the formatting of the date. If
the date passed to `date_format` is empty and a second parameter is
passed, that will be used as the date to format.
- Parameter Position Type Required Default Description
- -------------------- -------- ---------- ------------ -------------------------------------------------
- 1 string No \%b %e, %Y This is the format for the outputted date.
- 2 string No n/a This is the default date if the input is empty.
+## Basic usage
+```smarty
+{$myVar|date_format:"%Y-%m-%d"}
+```
+
+## Parameters
+
+| Parameter Position | Type | Required | Default | Description |
+|--------------------|--------|----------|-----------|-------------------------------------------------|
+| 1 | string | No | %b %e, %Y | This is the format for the outputted date. |
+| 2 | string | No | n/a | This is the default date if the input is empty. |
> **Note**
>
@@ -33,143 +39,107 @@ passed, that will be used as the date to format.
> **Note**
>
-> `date_format` is essentially a wrapper to PHP\'s
-> [`strftime()`](&url.php-manual;strftime) function. You may have more
-> or less conversion specifiers available depending on your system\'s
-> [`strftime()`](&url.php-manual;strftime) function where PHP was
+> `date_format` is essentially a wrapper to PHP's
+> [`strftime()`](https://www.php.net/strftime) function. You may have more
+> or less conversion specifiers available depending on your system's
+> [`strftime()`](https://www.php.net/strftime) function where PHP was
> compiled. Check your system\'s manpage for a full list of valid
> specifiers. However, a few of the specifiers are emulated on Windows.
> These are: %D, %e, %h, %l, %n, %r, %R, %t, %T.
+## Examples
- <?php
-
- $config['date'] = '%I:%M %p';
- $config['time'] = '%H:%M:%S';
- $smarty->assign('config', $config);
- $smarty->assign('yesterday', strtotime('-1 day'));
+```php
+<?php
- ?>
+$config['date'] = '%I:%M %p';
+$config['time'] = '%H:%M:%S';
+$smarty->assign('config', $config);
+$smarty->assign('yesterday', strtotime('-1 day'));
-
+```
-This template uses [`$smarty.now`](#language.variables.smarty.now) to
+This template uses [`$smarty.now`](../language-variables/language-variables-smarty.md#smartynow-languagevariablessmartynow) to
get the current time:
-
- {$smarty.now|date_format}
- {$smarty.now|date_format:"%D"}
- {$smarty.now|date_format:$config.date}
- {$yesterday|date_format}
- {$yesterday|date_format:"%A, %B %e, %Y"}
- {$yesterday|date_format:$config.time}
-
-
+```smarty
+{$smarty.now|date_format}
+{$smarty.now|date_format:"%D"}
+{$smarty.now|date_format:$config.date}
+{$yesterday|date_format}
+{$yesterday|date_format:"%A, %B %e, %Y"}
+{$yesterday|date_format:$config.time}
+```
This above will output:
-
- Jan 1, 2022
- 01/01/22
- 02:33 pm
- Dec 31, 2021
- Monday, December 1, 2021
- 14:33:00
-
+```
+Jan 1, 2022
+01/01/22
+02:33 pm
+Dec 31, 2021
+Monday, December 1, 2021
+14:33:00
+```
+## Conversion specifiers
`date_format` conversion specifiers:
-- \%a - abbreviated weekday name according to the current locale
-
-- \%A - full weekday name according to the current locale
-
-- \%b - abbreviated month name according to the current locale
-
-- \%B - full month name according to the current locale
-
-- \%c - preferred date and time representation for the current locale
-
-- \%C - century number (the year divided by 100 and truncated to an
+- %a - abbreviated weekday name according to the current locale
+- %A - full weekday name according to the current locale
+- %b - abbreviated month name according to the current locale
+- %B - full month name according to the current locale
+- %c - preferred date and time representation for the current locale
+- %C - century number (the year divided by 100 and truncated to an
integer, range 00 to 99)
-
-- \%d - day of the month as a decimal number (range 01 to 31)
-
-- \%D - same as %m/%d/%y
-
-- \%e - day of the month as a decimal number, a single digit is
+- %d - day of the month as a decimal number (range 01 to 31)
+- %D - same as %m/%d/%y
+- %e - day of the month as a decimal number, a single digit is
preceded by a space (range 1 to 31)
-
-- \%g - Week-based year within century \[00,99\]
-
-- \%G - Week-based year, including the century \[0000,9999\]
-
-- \%h - same as %b
-
-- \%H - hour as a decimal number using a 24-hour clock (range 00
+- %g - Week-based year within century \[00,99\]
+- %G - Week-based year, including the century \[0000,9999\]
+- %h - same as %b
+- %H - hour as a decimal number using a 24-hour clock (range 00
to 23)
-
-- \%I - hour as a decimal number using a 12-hour clock (range 01
+- %I - hour as a decimal number using a 12-hour clock (range 01
to 12)
-
-- \%j - day of the year as a decimal number (range 001 to 366)
-
-- \%k - Hour (24-hour clock) single digits are preceded by a blank.
+- %j - day of the year as a decimal number (range 001 to 366)
+- %k - Hour (24-hour clock) single digits are preceded by a blank.
(range 0 to 23)
-
-- \%l - hour as a decimal number using a 12-hour clock, single digits
+- %l - hour as a decimal number using a 12-hour clock, single digits
preceded by a space (range 1 to 12)
-
-- \%m - month as a decimal number (range 01 to 12)
-
-- \%M - minute as a decimal number
-
-- \%n - newline character
-
-- \%p - either \`am\' or \`pm\' according to the given time value, or
+- %m - month as a decimal number (range 01 to 12)
+- %M - minute as a decimal number
+- %n - newline character
+- %p - either 'am' or 'pm' according to the given time value, or
the corresponding strings for the current locale
-
-- \%r - time in a.m. and p.m. notation
-
-- \%R - time in 24 hour notation
-
-- \%S - second as a decimal number
-
-- \%t - tab character
-
-- \%T - current time, equal to %H:%M:%S
-
-- \%u - weekday as a decimal number \[1,7\], with 1 representing
+- %r - time in a.m. and p.m. notation
+- %R - time in 24 hour notation
+- %S - second as a decimal number
+- %t - tab character
+- %T - current time, equal to %H:%M:%S
+- %u - weekday as a decimal number \[1,7\], with 1 representing
Monday
-
-- \%U - week number of the current year as a decimal number, starting
+- %U - week number of the current year as a decimal number, starting
with the first Sunday as the first day of the first week
-
-- \%V - The ISO 8601:1988 week number of the current year as a decimal
+- %V - The ISO 8601:1988 week number of the current year as a decimal
number, range 01 to 53, where week 1 is the first week that has at
least 4 days in the current year, and with Monday as the first day
of the week.
-
-- \%w - day of the week as a decimal, Sunday being 0
-
-- \%W - week number of the current year as a decimal number, starting
+- %w - day of the week as a decimal, Sunday being 0
+- %W - week number of the current year as a decimal number, starting
with the first Monday as the first day of the first week
-
-- \%x - preferred date representation for the current locale without
+- %x - preferred date representation for the current locale without
the time
-
-- \%X - preferred time representation for the current locale without
+- %X - preferred time representation for the current locale without
the date
-
-- \%y - year as a decimal number without a century (range 00 to 99)
-
-- \%Y - year as a decimal number including the century
-
-- \%Z - time zone or name or abbreviation
-
-- \%% - a literal \`%\' character
-
-See also [`$smarty.now`](#language.variables.smarty.now),
-[`strftime()`](&url.php-manual;strftime),
-[`{html_select_date}`](#language.function.html.select.date) and the
-[date tips](#tips.dates) page.
+- %y - year as a decimal number without a century (range 00 to 99)
+- %Y - year as a decimal number including the century
+- %Z - time zone or name or abbreviation
+- %% - a literal '%' character
+
+See also [`$smarty.now`](../language-variables/language-variables-smarty.md#smartynow-languagevariablessmartynow),
+[`strftime()`](https://www.php.net/strftime),
+[`{html_select_date}`](../language-custom-functions/language-function-html-select-date.md) and the
+[date tips](../../appendixes/tips.md#dates) page.
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-default.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-default.md
index ce08e96ef..b8697a0d9 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-default.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-default.md
@@ -1,41 +1,45 @@
-default {#language.modifier.default}
-=======
+# default
This is used to set a default value for a variable. If the variable is
unset or an empty string, the given default value is printed instead.
Default takes the one argument.
- Parameter Position Type Required Default Description
- -------------------- -------- ---------- --------- ---------------------------------------------------------------
- 1 string No *empty* This is the default value to output if the variable is empty.
+## Basic usage
+```smarty
+{$myVar|default:"(none)"}
+```
+## Parameters
- <?php
+| Parameter | Type | Required | Default | Description |
+|-----------|--------|----------|---------|---------------------------------------------------------------|
+| 1 | string | No | *empty* | This is the default value to output if the variable is empty. |
+
+## Examples
+
+```php
+<?php
$smarty->assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.');
$smarty->assign('email', '');
- ?>
-
-
+```
Where template is:
-
- {$articleTitle|default:'no title'}
- {$myTitle|default:'no title'}
- {$email|default:'No email address available'}
-
-
+```smarty
+{$articleTitle|default:'no title'}
+{$myTitle|default:'no title'}
+{$email|default:'No email address available'}
+```
Will output:
+```
+Dealers Will Hear Car Talk at Noon.
+no title
+No email address available
+```
- Dealers Will Hear Car Talk at Noon.
- no title
- No email address available
-
-
-
-See also the [default variable handling](#tips.default.var.handling) and
-the [blank variable handling](#tips.blank.var.handling) pages.
+See also the [default variable handling](../../appendixes/tips.md#default-variable-handling) and
+the [blank variable handling](../../appendixes/tips.md#blank-variable-handling) pages.
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-escape.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-escape.md
index 37c71dde9..6fd5dd2b4 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-escape.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-escape.md
@@ -1,74 +1,78 @@
-escape {#language.modifier.escape}
-======
+# escape
`escape` is used to encode or escape a variable to `html`, `url`,
`single quotes`, `hex`, `hexentity`, `javascript` and `mail`. By default
its `html`.
- Parameter Position Type Required Possible Values Default Description
- -------------------- --------- ---------- ------------------------------------------------------------------------------------------------------------ --------- -------------------------------------------------------------------------------------
- 1 string No `html`, `htmlall`, `url`, `urlpathinfo`, `quotes`, `hex`, `hexentity`, `javascript`, `mail` `html` This is the escape format to use.
- 2 string No `ISO-8859-1`, `UTF-8`, and any character set supported by [`htmlentities()`](&url.php-manual;htmlentities) `UTF-8` The character set encoding passed to htmlentities() et. al.
- 3 boolean No FALSE TRUE Double encode entites from &amp; to &amp;amp; (applys to `html` and `htmlall` only)
+## Basic usage
+```smarty
+{$myVar|escape}
+```
+## Parameters
- <?php
+| Parameter Position | Type | Required | Possible Values | Default | Description |
+|--------------------|---------|----------|----------------------------------------------------------------------------------------------------------------|---------|--------------------------------------------------------------------------------------|
+| 1 | string | No | `html`, `htmlall`, `url`, `urlpathinfo`, `quotes`, `hex`, `hexentity`, `javascript`, `mail` | `html` | This is the escape format to use. |
+| 2 | string | No | `ISO-8859-1`, `UTF-8`, and any character set supported by [`htmlentities()`](https://www.php.net/htmlentities) | `UTF-8` | The character set encoding passed to htmlentities() et. al. |
+| 3 | boolean | No | FALSE | TRUE | Double encode entities from &amp; to &amp;amp; (applies to `html` and `htmlall` only) |
- $smarty->assign('articleTitle',
- "'Stiff Opposition Expected to Casketless Funeral Plan'"
- );
- $smarty->assign('EmailAddress','smarty@example.com');
- ?>
+## Examples
-
-
-These are example `escape` template lines followed by the output
+```php
+<?php
+$smarty->assign('articleTitle',
+ "'Stiff Opposition Expected to Casketless Funeral Plan'"
+ );
+$smarty->assign('EmailAddress','smarty@example.com');
- {$articleTitle}
- 'Stiff Opposition Expected to Casketless Funeral Plan'
+```
+
- {$articleTitle|escape}
- &#039;Stiff Opposition Expected to Casketless Funeral Plan&#039;
+These are example `escape` template lines followed by the output
- {$articleTitle|escape:'html'} {* escapes & " ' < > *}
- &#039;Stiff Opposition Expected to Casketless Funeral Plan&#039;
+```smarty
+{$articleTitle}
+'Stiff Opposition Expected to Casketless Funeral Plan'
- {$articleTitle|escape:'htmlall'} {* escapes ALL html entities *}
- &#039;Stiff Opposition Expected to Casketless Funeral Plan&#039;
+{$articleTitle|escape}
+&#039;Stiff Opposition Expected to Casketless Funeral Plan&#039;
- <a href="?title={$articleTitle|escape:'url'}">click here</a>
- <a
- href="?title=%27Stiff%20Opposition%20Expected%20to%20Casketless%20Funeral%20Plan%27">click here</a>
+{$articleTitle|escape:'html'} {* escapes & " ' < > *}
+&#039;Stiff Opposition Expected to Casketless Funeral Plan&#039;
- {$articleTitle|escape:'quotes'}
- \'Stiff Opposition Expected to Casketless Funeral Plan\'
+{$articleTitle|escape:'htmlall'} {* escapes ALL html entities *}
+&#039;Stiff Opposition Expected to Casketless Funeral Plan&#039;
- <a href="mailto:{$EmailAddress|escape:"hex"}">{$EmailAddress|escape:"hexentity"}</a>
- {$EmailAddress|escape:'mail'} {* this converts to email to text *}
- <a href="mailto:%62%6f%..snip..%65%74">&#x62;&#x6f;&#x62..snip..&#x65;&#x74;</a>
+<a href="?title={$articleTitle|escape:'url'}">click here</a>
+<a
+href="?title=%27Stiff%20Opposition%20Expected%20to%20Casketless%20Funeral%20Plan%27">click here</a>
- {'mail@example.com'|escape:'mail'}
- smarty [AT] example [DOT] com
+{$articleTitle|escape:'quotes'}
+\'Stiff Opposition Expected to Casketless Funeral Plan\'
-
+<a href="mailto:{$EmailAddress|escape:"hex"}">{$EmailAddress|escape:"hexentity"}</a>
+{$EmailAddress|escape:'mail'} {* this converts to email to text *}
+<a href="mailto:%62%6f%..snip..%65%74">&#x62;&#x6f;&#x62..snip..&#x65;&#x74;</a>
+{'mail@example.com'|escape:'mail'}
+smarty [AT] example [DOT] com
- {* the "rewind" parameter registers the current location *}
- <a href="$my_path?page=foo&rewind=$my_uri|urlencode}">click here</a>
+{* the "rewind" parameter registers the current location *}
+<a href="$my_path?page=foo&rewind={$my_uri|escape:url}">click here</a>
-
+```
This snippet is useful for emails, but see also
-[`{mailto}`](#language.function.mailto)
-
+[`{mailto}`](../language-custom-functions/language-function-mailto.md)
- {* email address mangled *}
- <a href="mailto:{$EmailAddress|escape:'hex'}">{$EmailAddress|escape:'mail'}</a>
-
-
+```smarty
+{* email address mangled *}
+<a href="mailto:{$EmailAddress|escape:'hex'}">{$EmailAddress|escape:'mail'}</a>
+```
-See also [escaping smarty parsing](#language.escaping),
-[`{mailto}`](#language.function.mailto) and the [obfuscating email
-addresses](#tips.obfuscating.email) page.
+See also [escaping smarty parsing](../language-basic-syntax/language-escaping.md),
+[`{mailto}`](../language-custom-functions/language-function-mailto.md) and the [obfuscating email
+addresses](../../appendixes/tips.md#obfuscating-e-mail-addresses) page.
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-from-charset.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-from-charset.md
index 1c301c3b1..bf4b4769e 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-from-charset.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-from-charset.md
@@ -1,13 +1,14 @@
-from\_charset {#language.modifier.from_charset}
-=============
+# from_charset
`from_charset` is used to transcode a string from a given charset to the
-internal charset. This is the exact opposite of the [to\_charset
-modifier](#language.modifier.to_charset).
+internal charset. This is the exact opposite of the [to_charset
+modifier](language-modifier-to-charset.md).
- Parameter Position Type Required Possible Values Default Description
- -------------------- -------- ---------- -------------------------------------------------------------------------------------------------------------------------- -------------- ---------------------------------------------------------------
- 1 string No `ISO-8859-1`, `UTF-8`, and any character set supported by [`mb_convert_encoding()`](&url.php-manual;mb_convert_encoding) `ISO-8859-1` The charset encoding the value is supposed to be decoded from
+## Parameters
+
+| Parameter Position | Type | Required | Possible Values | Default | Description |
+|--------------------|--------|----------|------------------------------------------------------------------------------------------------------------------------------|--------------|---------------------------------------------------------------|
+| 1 | string | No | `ISO-8859-1`, `UTF-8`, and any character set supported by [`mb_convert_encoding()`](https://www.php.net/mb_convert_encoding) | `ISO-8859-1` | The charset encoding the value is supposed to be decoded from |
> **Note**
>
@@ -15,5 +16,5 @@ modifier](#language.modifier.to_charset).
> modifier should only be used in cases where the application cannot
> anticipate that a certain string is required in another encoding.
-See also [Charset Encoding](#charset), [from\_charset
-modifier](#language.modifier.from_charset).
+See also [Charset Encoding](../../programmers/charset.md), [to_charset
+modifier](language-modifier-to-charset.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-indent.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-indent.md
index d0264dca3..9fa3540a3 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-indent.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-indent.md
@@ -1,62 +1,67 @@
-indent {#language.modifier.indent}
-======
+# indent
This indents a string on each line, default is 4. As an optional
parameter, you can specify the number of characters to indent. As an
optional second parameter, you can specify the character to use to
-indent with eg use `"\t"` for a tab.
+indent with. For example: use `"\t"` for a tab.
- Parameter Position Type Required Default Description
- -------------------- --------- ---------- ------------- ---------------------------------------------------
- 1 integer No 4 This determines how many characters to indent to.
- 2 string No (one space) This is the character used to indent with.
+## Basic usage
+```smarty
+{$myVar|indent:4}
+```
+## Parameters
- <?php
+| Parameter Position | Type | Required | Default | Description |
+|--------------------|---------|----------|-------------|---------------------------------------------------|
+| 1 | integer | No | 4 | This determines how many characters to indent to. |
+| 2 | string | No | (one space) | This is the character used to indent with. |
- $smarty->assign('articleTitle',
- 'NJ judge to rule on nude beach.
- Sun or rain expected today, dark tonight.
- Statistics show that teen pregnancy drops off significantly after 25.'
- );
- ?>
+## Examples
-
+```php
+<?php
-Where template is:
+$smarty->assign('articleTitle',
+ 'NJ judge to rule on nude beach.
+Sun or rain expected today, dark tonight.
+Statistics show that teen pregnancy drops off significantly after 25.'
+ );
+```
+Where template is:
- {$articleTitle}
-
- {$articleTitle|indent}
+```smarty
+{$articleTitle}
- {$articleTitle|indent:10}
+{$articleTitle|indent}
- {$articleTitle|indent:1:"\t"}
+{$articleTitle|indent:10}
+{$articleTitle|indent:1:"\t"}
+```
-
Will output:
+```
+NJ judge to rule on nude beach.
+Sun or rain expected today, dark tonight.
+Statistics show that teen pregnancy drops off significantly after 25.
NJ judge to rule on nude beach.
Sun or rain expected today, dark tonight.
Statistics show that teen pregnancy drops off significantly after 25.
+ NJ judge to rule on nude beach.
+ Sun or rain expected today, dark tonight.
+ Statistics show that teen pregnancy drops off significantly after 25.
+
NJ judge to rule on nude beach.
Sun or rain expected today, dark tonight.
Statistics show that teen pregnancy drops off significantly after 25.
-
- NJ judge to rule on nude beach.
- Sun or rain expected today, dark tonight.
- Statistics show that teen pregnancy drops off significantly after 25.
-
- NJ judge to rule on nude beach.
- Sun or rain expected today, dark tonight.
- Statistics show that teen pregnancy drops off significantly after 25.
-
+```
-See also [`strip`](#language.modifier.strip),
-[`wordwrap`](#language.modifier.wordwrap) and
-[`spacify`](#language.modifier.spacify).
+See also [`strip`](language-modifier-strip.md),
+[`wordwrap`](language-modifier-wordwrap.md) and
+[`spacify`](language-modifier-spacify.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-lower.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-lower.md
index 90122e9e4..e5e6886f1 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-lower.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-lower.md
@@ -1,33 +1,34 @@
-lower {#language.modifier.lower}
-=====
+# lower
This is used to lowercase a variable. This is equivalent to the PHP
-[`strtolower()`](&url.php-manual;strtolower) function.
+[`strtolower()`](https://www.php.net/strtolower) function.
+## Basic usage
+```smarty
+{$myVar|lower}
+```
- <?php
+## Examples
- $smarty->assign('articleTitle', 'Two Convicts Evade Noose, Jury Hung.');
+```php
+<?php
- ?>
-
-
+$smarty->assign('articleTitle', 'Two Convicts Evade Noose, Jury Hung.');
+```
Where template is:
-
- {$articleTitle}
- {$articleTitle|lower}
-
-
+```smarty
+{$articleTitle}
+{$articleTitle|lower}
+```
This will output:
-
- Two Convicts Evade Noose, Jury Hung.
- two convicts evade noose, jury hung.
-
+```
+Two Convicts Evade Noose, Jury Hung.
+two convicts evade noose, jury hung.
+```
-
-See also [`upper`](#language.modifier.upper) and
-[`capitalize`](#language.modifier.capitalize).
+See also [`upper`](language-modifier-upper.md) and
+[`capitalize`](language-modifier-capitalize.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-nl2br.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-nl2br.md
index 541233c8b..2808716fc 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-nl2br.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-nl2br.md
@@ -1,35 +1,37 @@
-nl2br {#language.modifier.nl2br}
-=====
+# nl2br
All `"\n"` line breaks will be converted to html `<br />` tags in the
given variable. This is equivalent to the PHP\'s
-[`nl2br()`](&url.php-manual;nl2br) function.
+[`nl2br()`](https://www.php.net/nl2br) function.
+## Basic usage
+```smarty
+{$myVar|nl2br}
+```
- <?php
+## Examples
- $smarty->assign('articleTitle',
- "Sun or rain expected\ntoday, dark tonight"
- );
+```php
+<?php
- ?>
+$smarty->assign('articleTitle',
+ "Sun or rain expected\ntoday, dark tonight"
+ );
-
+```
Where the template is:
-
- {$articleTitle|nl2br}
-
+```smarty
+{$articleTitle|nl2br}
+```
-
Will output:
+```
+Sun or rain expected<br />today, dark tonight
+```
- Sun or rain expected<br />today, dark tonight
-
-
-
-See also [`word_wrap`](#language.modifier.wordwrap),
-[`count_paragraphs`](#language.modifier.count.paragraphs) and
-[`count_sentences`](#language.modifier.count.sentences).
+See also [`word_wrap`](language-modifier-wordwrap.md),
+[`count_paragraphs`](language-modifier-count-paragraphs.md) and
+[`count_sentences`](language-modifier-count-sentences.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-regex-replace.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-regex-replace.md
index 6fcb33fad..033d2a43d 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-regex-replace.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-regex-replace.md
@@ -1,10 +1,14 @@
-regex\_replace {#language.modifier.regex.replace}
-==============
+# regex_replace
A regular expression search and replace on a variable. Use the
-[`preg_replace()`](&url.php-manual;preg_replace) syntax from the PHP
+[`preg_replace()`](https://www.php.net/preg_replace) syntax from the PHP
manual.
+## Basic usage
+```smarty
+{$myVar|regex_replace:"/foo/":"bar"}
+```
+
> **Note**
>
> Although Smarty supplies this regex convenience modifier, it is
@@ -12,40 +16,40 @@ manual.
> functions or modifiers. Regular expressions are considered application
> code and are not part of presentation logic.
-Parameters
+## Parameters
- Parameter Position Type Required Default Description
- -------------------- -------- ---------- --------- ------------------------------------------------
- 1 string Yes *n/a* This is the regular expression to be replaced.
- 2 string Yes *n/a* This is the string of text to replace with.
+| Parameter Position | Type | Required | Description |
+|--------------------|--------|----------|------------------------------------------------|
+| 1 | string | Yes | This is the regular expression to be replaced. |
+| 2 | string | Yes | This is the string of text to replace with. |
- <?php
+## Examples
- $smarty->assign('articleTitle', "Infertility unlikely to\nbe passed on, experts say.");
+```php
+<?php
- ?>
+$smarty->assign('articleTitle', "Infertility unlikely to\nbe passed on, experts say.");
-
+```
Where template is:
+```smarty
+{* replace each carriage return, tab and new line with a space *}
- {* replace each carriage return, tab and new line with a space *}
-
- {$articleTitle}
- {$articleTitle|regex_replace:"/[\r\t\n]/":" "}
-
+{$articleTitle}
+{$articleTitle|regex_replace:"/[\r\t\n]/":" "}
+```
-
Will output:
-
- Infertility unlikely to
- be passed on, experts say.
- Infertility unlikely to be passed on, experts say.
-
+```
+Infertility unlikely to
+be passed on, experts say.
+Infertility unlikely to be passed on, experts say.
+```
-See also [`replace`](#language.modifier.replace) and
-[`escape`](#language.modifier.escape).
+See also [`replace`](language-modifier-replace.md) and
+[`escape`](language-modifier-escape.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-replace.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-replace.md
index c7c2903ea..0e01ab46f 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-replace.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-replace.md
@@ -1,40 +1,45 @@
-replace {#language.modifier.replace}
-=======
+# replace
A simple search and replace on a variable. This is equivalent to the
-PHP\'s [`str_replace()`](&url.php-manual;str_replace) function.
+PHP's [`str_replace()`](https://www.php.net/str_replace) function.
- Parameter Position Type Required Default Description
- -------------------- -------- ---------- --------- ---------------------------------------------
- 1 string Yes *n/a* This is the string of text to be replaced.
- 2 string Yes *n/a* This is the string of text to replace with.
+## Basic usage
+```smarty
+{$myVar|replace:"foo":"bar"}
+```
+## Parameters
- <?php
+| Parameter Position | Type | Required | Description |
+|--------------------|--------|----------|---------------------------------------------|
+| 1 | string | Yes | This is the string of text to be replaced. |
+| 2 | string | Yes | This is the string of text to replace with. |
- $smarty->assign('articleTitle', "Child's Stool Great for Use in Garden.");
- ?>
+## Examples
-
+```php
+<?php
-Where template is:
+$smarty->assign('articleTitle', "Child's Stool Great for Use in Garden.");
+```
- {$articleTitle}
- {$articleTitle|replace:'Garden':'Vineyard'}
- {$articleTitle|replace:' ':' '}
+Where template is:
+```smarty
+{$articleTitle}
+{$articleTitle|replace:'Garden':'Vineyard'}
+{$articleTitle|replace:' ':' '}
+```
-
Will output:
+```
+Child's Stool Great for Use in Garden.
+Child's Stool Great for Use in Vineyard.
+Child's Stool Great for Use in Garden.
+```
- Child's Stool Great for Use in Garden.
- Child's Stool Great for Use in Vineyard.
- Child's Stool Great for Use in Garden.
-
-
-
-See also [`regex_replace`](#language.modifier.regex.replace) and
-[`escape`](#language.modifier.escape).
+See also [`regex_replace`](language-modifier-regex-replace.md) and
+[`escape`](language-modifier-escape.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-spacify.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-spacify.md
index 8856dab43..229e2d22d 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-spacify.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-spacify.md
@@ -1,40 +1,44 @@
-spacify {#language.modifier.spacify}
-=======
+# spacify
`spacify` is a way to insert a space between every character of a
variable. You can optionally pass a different character or string to
insert.
- Parameter Position Type Required Default Description
- -------------------- -------- ---------- ------------- -----------------------------------------------------------------
- 1 string No *one space* This what gets inserted between each character of the variable.
+## Basic usage
+```smarty
+{$myVar|spacify}
+```
+## Parameters
- <?php
+| Parameter Position | Type | Required | Default | Description |
+|--------------------|--------|----------|-------------|-----------------------------------------------------------------|
+| 1 | string | No | *one space* | This what gets inserted between each character of the variable. |
- $smarty->assign('articleTitle', 'Something Went Wrong in Jet Crash, Experts Say.');
+## Examples
- ?>
+```php
+<?php
-
-
-Where template is:
+$smarty->assign('articleTitle', 'Something Went Wrong in Jet Crash, Experts Say.');
+```
- {$articleTitle}
- {$articleTitle|spacify}
- {$articleTitle|spacify:"^^"}
+Where template is:
-
+```smarty
+{$articleTitle}
+{$articleTitle|spacify}
+{$articleTitle|spacify:"^^"}
+```
Will output:
+```
+Something Went Wrong in Jet Crash, Experts Say.
+S o m e t h i n g W .... snip .... s h , E x p e r t s S a y .
+S^^o^^m^^e^^t^^h^^i^^n^^g^^ .... snip .... ^^e^^r^^t^^s^^ ^^S^^a^^y^^.
+```
- Something Went Wrong in Jet Crash, Experts Say.
- S o m e t h i n g W .... snip .... s h , E x p e r t s S a y .
- S^^o^^m^^e^^t^^h^^i^^n^^g^^ .... snip .... ^^e^^r^^t^^s^^ ^^S^^a^^y^^.
-
-
-
-See also [`wordwrap`](#language.modifier.wordwrap) and
-[`nl2br`](#language.modifier.nl2br).
+See also [`wordwrap`](language-modifier-wordwrap.md) and
+[`nl2br`](language-modifier-nl2br.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-string-format.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-string-format.md
index 754014e2d..6163a0785 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-string-format.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-string-format.md
@@ -1,39 +1,43 @@
-string\_format {#language.modifier.string.format}
-==============
+# string_format
This is a way to format strings, such as decimal numbers and such. Use
-the syntax for [`sprintf()`](&url.php-manual;sprintf) for the
+the syntax for [`sprintf()`](https://www.php.net/sprintf) for the
formatting.
- Parameter Position Type Required Default Description
- -------------------- -------- ---------- --------- ---------------------------------------
- 1 string Yes *n/a* This is what format to use. (sprintf)
+## Basic usage
+```smarty
+{$myVar|string_format:"%d"}
+```
+## Parameters
- <?php
+| Parameter Position | Type | Required | Description |
+|--------------------|--------|----------|---------------------------------------|
+| 1 | string | Yes | This is what format to use. (sprintf) |
- $smarty->assign('number', 23.5787446);
+## Examples
- ?>
+```php
+<?php
-
-
-Where template is:
+$smarty->assign('number', 23.5787446);
+```
- {$number}
- {$number|string_format:"%.2f"}
- {$number|string_format:"%d"}
+Where template is:
-
+```smarty
+{$number}
+{$number|string_format:"%.2f"}
+{$number|string_format:"%d"}
+```
Will output:
+```
+23.5787446
+23.58
+23
+```
- 23.5787446
- 23.58
- 23
-
-
-
-See also [`date_format`](#language.modifier.date.format).
+See also [`date_format`](language-modifier-date-format.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-strip-tags.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-strip-tags.md
index 4a019767b..7d94fdd0d 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-strip-tags.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-strip-tags.md
@@ -1,41 +1,46 @@
-strip\_tags {#language.modifier.strip.tags}
-===========
+# strip_tags
-This strips out markup tags, basically anything between `<` and `>`.
+This strips out HTML markup tags, basically anything between `<` and `>`.
- Parameter Position Type Required Default Description
- -------------------- ------ ---------- --------- ----------------------------------------------------------------
- 1 bool No TRUE This determines whether the tags are replaced by \' \' or \'\'
+## Basic usage
+```smarty
+{$myVar|strip_tags}
+```
+## Parameters
- <?php
+| Parameter Position | Type | Required | Default | Description |
+|--------------------|------|----------|---------|------------------------------------------------------------|
+| 1 | bool | No | TRUE | This determines whether the tags are replaced by ' ' or '' |
- $smarty->assign('articleTitle',
- "Blind Woman Gets <font face=\"helvetica\">New
- Kidney</font> from Dad she Hasn't Seen in <b>years</b>."
- );
+## Examples
- ?>
+```php
+<?php
+$smarty->assign('articleTitle',
+ "Blind Woman Gets <font face=\"helvetica\">New
+Kidney</font> from Dad she Hasn't Seen in <b>years</b>."
+ );
+
+```
Where template is:
-
- {$articleTitle}
- {$articleTitle|strip_tags} {* same as {$articleTitle|strip_tags:true} *}
- {$articleTitle|strip_tags:false}
-
-
+```smarty
+{$articleTitle}
+{$articleTitle|strip_tags} {* same as {$articleTitle|strip_tags:true} *}
+{$articleTitle|strip_tags:false}
+```
Will output:
+```html
+Blind Woman Gets <font face="helvetica">New Kidney</font> from Dad she Hasn't Seen in <b>years</b>.
+Blind Woman Gets New Kidney from Dad she Hasn't Seen in years .
+Blind Woman Gets New Kidney from Dad she Hasn't Seen in years.
+```
- Blind Woman Gets <font face="helvetica">New Kidney</font> from Dad she Hasn't Seen in <b>years</b>.
- Blind Woman Gets New Kidney from Dad she Hasn't Seen in years .
- Blind Woman Gets New Kidney from Dad she Hasn't Seen in years.
-
-
-
-See also [`replace`](#language.modifier.replace) and
-[`regex_replace`](#language.modifier.regex.replace).
+See also [`replace`](language-modifier-replace.md) and
+[`regex_replace`](language-modifier-regex-replace.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-strip.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-strip.md
index 7027e0313..b7bdc282c 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-strip.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-strip.md
@@ -1,40 +1,42 @@
-strip {#language.modifier.strip}
-=====
+# strip
This replaces all spaces, newlines and tabs with a single space, or with
the supplied string.
+## Basic usage
+```smarty
+{$myVar|strip}
+```
+
> **Note**
>
> If you want to strip blocks of template text, use the built-in
-> [`{strip}`](#language.function.strip) function.
-
+> [`{strip}`](../language-builtin-functions/language-function-strip.md) function.
- <?php
- $smarty->assign('articleTitle', "Grandmother of\neight makes\t hole in one.");
- $smarty->display('index.tpl');
- ?>
+## Examples
-
+```php
+<?php
+$smarty->assign('articleTitle', "Grandmother of\neight makes\t hole in one.");
+$smarty->display('index.tpl');
+```
Where template is:
-
- {$articleTitle}
- {$articleTitle|strip}
- {$articleTitle|strip:'&nbsp;'}
-
-
+```smarty
+{$articleTitle}
+{$articleTitle|strip}
+{$articleTitle|strip:'&nbsp;'}
+```
Will output:
+```html
+Grandmother of
+eight makes hole in one.
+Grandmother of eight makes hole in one.
+Grandmother&nbsp;of&nbsp;eight&nbsp;makes&nbsp;hole&nbsp;in&nbsp;one.
+```
- Grandmother of
- eight makes hole in one.
- Grandmother of eight makes hole in one.
- Grandmother&nbsp;of&nbsp;eight&nbsp;makes&nbsp;hole&nbsp;in&nbsp;one.
-
-
-
-See also [`{strip}`](#language.function.strip) and
-[`truncate`](#language.modifier.truncate).
+See also [`{strip}`](../language-builtin-functions/language-function-strip.md) and
+[`truncate`](language-modifier-truncate.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-to-charset.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-to-charset.md
index a0d95f53f..c0b003842 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-to-charset.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-to-charset.md
@@ -1,13 +1,14 @@
-to\_charset {#language.modifier.to_charset}
-===========
+# to_charset
`to_charset` is used to transcode a string from the internal charset to
-a given charset. This is the exact opposite of the [from\_charset
+a given charset. This is the exact opposite of the [from_charset
modifier](#language.modifier.from_charset).
- Parameter Position Type Required Possible Values Default Description
- -------------------- -------- ---------- -------------------------------------------------------------------------------------------------------------------------- -------------- -------------------------------------------------------------
- 1 string No `ISO-8859-1`, `UTF-8`, and any character set supported by [`mb_convert_encoding()`](&url.php-manual;mb_convert_encoding) `ISO-8859-1` The charset encoding the value is supposed to be encoded to
+## Parameters
+
+| Parameter Position | Type | Required | Possible Values | Default | Description |
+|--------------------|--------|----------|------------------------------------------------------------------------------------------------------------------------------|--------------|-------------------------------------------------------------|
+| 1 | string | No | `ISO-8859-1`, `UTF-8`, and any character set supported by [`mb_convert_encoding()`](https://www.php.net/mb_convert_encoding) | `ISO-8859-1` | The charset encoding the value is supposed to be encoded to |
> **Note**
>
@@ -15,5 +16,5 @@ modifier](#language.modifier.from_charset).
> modifier should only be used in cases where the application cannot
> anticipate that a certain string is required in another encoding.
-See also [Charset Encoding](#charset), [from\_charset
-modifier](#language.modifier.from_charset).
+See also [Charset Encoding](../../programmers/charset.md), [from_charset
+modifier](language-modifier-from-charset.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-truncate.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-truncate.md
index 2303a5432..1cbb7abcb 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-truncate.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-truncate.md
@@ -1,5 +1,4 @@
-truncate {#language.modifier.truncate}
-========
+# truncate
This truncates a variable to a character length, the default is 80. As
an optional second parameter, you can specify a string of text to
@@ -9,44 +8,50 @@ string are included with the original truncation length. By default,
cut off at the exact character length, pass the optional third parameter
of TRUE.
- Parameter Position Type Required Default Description
- -------------------- --------- ---------- --------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- 1 integer No 80 This determines how many characters to truncate to.
- 2 string No \... This is a text string that replaces the truncated text. Its length is included in the truncation length setting.
- 3 boolean No FALSE This determines whether or not to truncate at a word boundary with FALSE, or at the exact character with TRUE.
- 4 boolean No FALSE This determines whether the truncation happens at the end of the string with FALSE, or in the middle of the string with TRUE. Note that if this setting is TRUE, then word boundaries are ignored.
+## Basic usage
+```smarty
+{$myVar|truncate:40:"..."}
+```
+## Parameters
- <?php
- $smarty->assign('articleTitle', 'Two Sisters Reunite after Eighteen Years at Checkout Counter.');
- ?>
+| Parameter Position | Type | Required | Default | Description |
+|--------------------|---------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| 1 | integer | No | 80 | This determines how many characters to truncate to. |
+| 2 | string | No | \... | This is a text string that replaces the truncated text. Its length is included in the truncation length setting. |
+| 3 | boolean | No | FALSE | This determines whether or not to truncate at a word boundary with FALSE, or at the exact character with TRUE. |
+| 4 | boolean | No | FALSE | This determines whether the truncation happens at the end of the string with FALSE, or in the middle of the string with TRUE. Note that if this setting is TRUE, then word boundaries are ignored. |
-
+## Examples
-where template is:
+```php
+<?php
+$smarty->assign('articleTitle', 'Two Sisters Reunite after Eighteen Years at Checkout Counter.');
+```
+where template is:
- {$articleTitle}
- {$articleTitle|truncate}
- {$articleTitle|truncate:30}
- {$articleTitle|truncate:30:""}
- {$articleTitle|truncate:30:"---"}
- {$articleTitle|truncate:30:"":true}
- {$articleTitle|truncate:30:"...":true}
- {$articleTitle|truncate:30:'..':true:true}
-
-
+```smarty
+{$articleTitle}
+{$articleTitle|truncate}
+{$articleTitle|truncate:30}
+{$articleTitle|truncate:30:""}
+{$articleTitle|truncate:30:"---"}
+{$articleTitle|truncate:30:"":true}
+{$articleTitle|truncate:30:"...":true}
+{$articleTitle|truncate:30:'..':true:true}
+```
This will output:
-
- Two Sisters Reunite after Eighteen Years at Checkout Counter.
- Two Sisters Reunite after Eighteen Years at Checkout Counter.
- Two Sisters Reunite after...
- Two Sisters Reunite after
- Two Sisters Reunite after---
- Two Sisters Reunite after Eigh
- Two Sisters Reunite after E...
- Two Sisters Re..ckout Counter.
-
+```
+Two Sisters Reunite after Eighteen Years at Checkout Counter.
+Two Sisters Reunite after Eighteen Years at Checkout Counter.
+Two Sisters Reunite after...
+Two Sisters Reunite after
+Two Sisters Reunite after---
+Two Sisters Reunite after Eigh
+Two Sisters Reunite after E...
+Two Sisters Re..ckout Counter.
+```
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-unescape.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-unescape.md
index 58d0b3f75..8e8603053 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-unescape.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-unescape.md
@@ -1,39 +1,43 @@
-unescape {#language.modifier.unescape}
-========
+# unescape
`unescape` is used to decode `entity`, `html` and `htmlall`. It counters
-the effects of the [escape modifier](#language.modifier.escape) for the
+the effects of the [escape modifier](language-modifier-escape.md) for the
given types.
- Parameter Position Type Required Possible Values Default Description
- -------------------- -------- ---------- ------------------------------------------------------------------------------------------------------------ --------- ------------------------------------------------------------------------------------------------------------------------------
- 1 string No `html`, `htmlall`, `entity`, `html` This is the escape format to use.
- 2 string No `ISO-8859-1`, `UTF-8`, and any character set supported by [`htmlentities()`](&url.php-manual;htmlentities) `UTF-8` The character set encoding passed to html\_entity\_decode() or htmlspecialchars\_decode() or mb\_convert\_encoding() et. al.
+## Basic usage
+```smarty
+{$myVar|unescape}
+```
+## Parameters
- <?php
+| Parameter Position | Type | Required | Possible Values | Default | Description |
+|--------------------|--------|----------|----------------------------------------------------------------------------------------------------------------|---------|------------------------------------------------------------------------------------------------------------------------------|
+| 1 | string | No | `html`, `htmlall`, `entity`, | `html` | This is the escape format to use. |
+| 2 | string | No | `ISO-8859-1`, `UTF-8`, and any character set supported by [`htmlentities()`](https://www.php.net/htmlentities) | `UTF-8` | The character set encoding passed to html\_entity\_decode() or htmlspecialchars\_decode() or mb\_convert\_encoding() et. al. |
- $smarty->assign('articleTitle',
- "Germans use &quot;&Uuml;mlauts&quot; and pay in &euro;uro"
- );
+## Examples
- ?>
+```php
+<?php
-
+$smarty->assign('articleTitle',
+ "Germans use &quot;&Uuml;mlauts&quot; and pay in &euro;uro"
+ );
+```
These are example `unescape` template lines followed by the output
+```smarty
+{$articleTitle}
+Germans use &quot;&Uuml;mlauts&quot; and pay in &euro;uro
- {$articleTitle}
- Germans use &quot;&Uuml;mlauts&quot; and pay in &euro;uro
+{$articleTitle|unescape:"html"}
+Germans use "&Uuml;mlauts" and pay in &euro;uro
- {$articleTitle|unescape:"html"}
- Germans use "&Uuml;mlauts" and pay in &euro;uro
+{$articleTitle|unescape:"htmlall"}
+Germans use "Ümlauts" and pay in €uro
+```
- {$articleTitle|unescape:"htmlall"}
- Germans use "Ümlauts" and pay in €uro
-
-
-
-See also [escaping smarty parsing](#language.escaping), [escape
-modifier](#language.modifier.escape).
+See also [escaping smarty parsing](../language-basic-syntax/language-escaping.md), [escape
+modifier](language-modifier-escape.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-upper.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-upper.md
index 9240f42d6..3173059c9 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-upper.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-upper.md
@@ -1,31 +1,33 @@
-upper {#language.modifier.upper}
-=====
+# upper
This is used to uppercase a variable. This is equivalent to the PHP
-[`strtoupper()`](&url.php-manual;strtoupper) function.
+[`strtoupper()`](https://www.php.net/strtoupper) function.
+## Basic usage
+```smarty
+{$myVar|upper}
+```
- <?php
- $smarty->assign('articleTitle', "If Strike isn't Settled Quickly it may Last a While.");
- ?>
+## Examples
-
+```php
+<?php
+$smarty->assign('articleTitle', "If Strike isn't Settled Quickly it may Last a While.");
+```
Where template is:
-
- {$articleTitle}
- {$articleTitle|upper}
-
-
+```smarty
+{$articleTitle}
+{$articleTitle|upper}
+```
Will output:
+```
+If Strike isn't Settled Quickly it may Last a While.
+IF STRIKE ISN'T SETTLED QUICKLY IT MAY LAST A WHILE.
+```
- If Strike isn't Settled Quickly it may Last a While.
- IF STRIKE ISN'T SETTLED QUICKLY IT MAY LAST A WHILE.
-
-
-
-See also [`lower`](#language.modifier.lower) and
-[`capitalize`](#language.modifier.capitalize).
+See also [`lower`](lower) and
+[`capitalize`](language-modifier-capitalize.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-wordwrap.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-wordwrap.md
index 97cd774f7..f3348fd72 100644
--- a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-wordwrap.md
+++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-wordwrap.md
@@ -1,5 +1,4 @@
-wordwrap {#language.modifier.wordwrap}
-========
+# wordwrap
Wraps a string to a column width, the default is 80. As an optional
second parameter, you can specify a string of text to wrap the text to
@@ -7,63 +6,68 @@ the next line, the default is a carriage return `"\n"`. By default,
`wordwrap` will attempt to wrap at a word boundary. If you want to cut
off at the exact character length, pass the optional third parameter as
TRUE. This is equivalent to the PHP
-[`wordwrap()`](&url.php-manual;wordwrap) function.
+[`wordwrap()`](https://www.php.net/wordwrap) function.
- Parameter Position Type Required Default Description
- -------------------- --------- ---------- --------- ------------------------------------------------------------------------------------------------------
- 1 integer No 80 This determines how many columns to wrap to.
- 2 string No \\n This is the string used to wrap words with.
- 3 boolean No FALSE This determines whether or not to wrap at a word boundary (FALSE), or at the exact character (TRUE).
+## Basic usage
+```smarty
+{$myVar|wordwrap:30}
+```
+## Parameters
- <?php
+| Parameter Position | Type | Required | Default | Description |
+|--------------------|---------|----------|---------|-----------------------------------------------------------------------------------------------|
+| 1 | integer | No | 80 | This determines how many columns to wrap to. |
+| 2 | string | No | \\n | This is the string used to wrap words with. |
+| 3 | boolean | No | FALSE | This determines whether to wrap at a word boundary (FALSE), or at the exact character (TRUE). |
- $smarty->assign('articleTitle',
- "Blind woman gets new kidney from dad she hasn't seen in years."
- );
+## Examples
- ?>
+```php
+<?php
-
-
-Where template is
+$smarty->assign('articleTitle',
+ "Blind woman gets new kidney from dad she hasn't seen in years."
+ );
+```
- {$articleTitle}
+Where template is
- {$articleTitle|wordwrap:30}
+```smarty
+{$articleTitle}
- {$articleTitle|wordwrap:20}
+{$articleTitle|wordwrap:30}
- {$articleTitle|wordwrap:30:"<br />\n"}
+{$articleTitle|wordwrap:20}
- {$articleTitle|wordwrap:26:"\n":true}
+{$articleTitle|wordwrap:30:"<br />\n"}
-
+{$articleTitle|wordwrap:26:"\n":true}
+```
Will output:
+```html
+Blind woman gets new kidney from dad she hasn't seen in years.
- Blind woman gets new kidney from dad she hasn't seen in years.
-
- Blind woman gets new kidney
- from dad she hasn't seen in
- years.
-
- Blind woman gets new
- kidney from dad she
- hasn't seen in
- years.
+Blind woman gets new kidney
+from dad she hasn't seen in
+years.
- Blind woman gets new kidney<br />
- from dad she hasn't seen in<br />
- years.
+Blind woman gets new
+kidney from dad she
+hasn't seen in
+years.
- Blind woman gets new kidn
- ey from dad she hasn't se
- en in years.
+Blind woman gets new kidney<br />
+from dad she hasn't seen in<br />
+years.
-
+Blind woman gets new kidn
+ey from dad she hasn't se
+en in years.
+```
-See also [`nl2br`](#language.modifier.nl2br) and
-[`{textformat}`](#language.function.textformat).
+See also [`nl2br`](language-modifier-nl2br.md) and
+[`{textformat}`](../language-custom-functions/language-function-textformat.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-variables.md b/vendor/smarty/smarty/docs/designers/language-variables.md
deleted file mode 100644
index 3950d0baf..000000000
--- a/vendor/smarty/smarty/docs/designers/language-variables.md
+++ /dev/null
@@ -1,37 +0,0 @@
-Variables
-=========
-
-## Table of contents
-- [Variables assigned from PHP](./language-variables/language-assigned-variables.md)
-- [Variable scopes](./language-variables/language-variable-scopes.md)
-- [Variables loaded from config files](./language-variables/language-config-variables.md)
-- [{$smarty} reserved variable](./language-variables/language-variables-smarty.md)
-
-
-Smarty has several different types of variables. The type of the
-variable depends on what symbol it is prefixed or enclosed within.
-
-Variables in Smarty can be either displayed directly or used as
-arguments for [functions](./language-basic-syntax/language-syntax-functions.md),
-[attributes](./language-basic-syntax/language-syntax-attributes.md) and
-[modifiers](./language-modifiers.md), inside conditional expressions, etc.
-To print a variable, simply enclose it in the
-[delimiters](../programmers/api-variables/variable-left-delimiter.md) so that it is the only thing
-contained between them.
-
-
- {$Name}
-
- {$product.part_no} <b>{$product.description}</b>
-
- {$Contacts[row].Phone}
-
- <body bgcolor="{#bgcolor#}">
-
-
-
-> **Note**
->
-> An easy way to examine assigned Smarty variables is with the
-> [debugging console](./chapter-debugging-console.md).
-
diff --git a/vendor/smarty/smarty/docs/designers/language-variables/index.md b/vendor/smarty/smarty/docs/designers/language-variables/index.md
new file mode 100644
index 000000000..58ae6eb95
--- /dev/null
+++ b/vendor/smarty/smarty/docs/designers/language-variables/index.md
@@ -0,0 +1,36 @@
+# Variables
+
+Smarty has several types of variables. The type of the
+variable depends on what symbol it is prefixed or enclosed within.
+
+- [Variables assigned from PHP](language-assigned-variables.md)
+- [Variables loaded from config files](language-config-variables.md)
+- [{$smarty} reserved variable](language-variables-smarty.md)
+
+Variables in Smarty can be either displayed directly or used as
+arguments for [functions](../language-basic-syntax/language-syntax-functions.md),
+[attributes](../language-basic-syntax/language-syntax-attributes.md) and
+[modifiers](../language-modifiers/index.md), inside conditional expressions, etc.
+To print a variable, simply enclose it in the
+[delimiters](../../programmers/api-variables/variable-left-delimiter.md) so that it is the only thing
+contained between them.
+
+```smarty
+{$Name}
+
+{$product.part_no} <b>{$product.description}</b>
+
+{$Contacts[row].Phone}
+
+<body bgcolor="{#bgcolor#}">
+```
+
+## Scopes
+You can assign variables to specific [variable scopes](language-variable-scopes.md).
+
+
+> **Note**
+>
+> An easy way to examine assigned Smarty variables is with the
+> [debugging console](../chapter-debugging-console.md).
+
diff --git a/vendor/smarty/smarty/docs/designers/language-variables/language-assigned-variables.md b/vendor/smarty/smarty/docs/designers/language-variables/language-assigned-variables.md
index 005dea4a9..bd356a2b0 100644
--- a/vendor/smarty/smarty/docs/designers/language-variables/language-assigned-variables.md
+++ b/vendor/smarty/smarty/docs/designers/language-variables/language-assigned-variables.md
@@ -1,142 +1,126 @@
-Variables assigned from PHP {#language.assigned.variables}
-===========================
+# Variables assigned from PHP
-Assigned variables that are referenced by preceding them with a dollar
+Variables assigned from PHP are referenced by preceding them with a dollar
(`$`) sign.
-PHP code
+## Examples
+```php
+<?php
- <?php
+$smarty = new Smarty();
- $smarty = new Smarty();
+$smarty->assign('firstname', 'Doug');
+$smarty->assign('lastname', 'Evans');
+$smarty->assign('meetingPlace', 'New York');
- $smarty->assign('firstname', 'Doug');
- $smarty->assign('lastname', 'Evans');
- $smarty->assign('meetingPlace', 'New York');
+$smarty->display('index.tpl');
- $smarty->display('index.tpl');
-
- ?>
+```
`index.tpl` source:
-
- Hello {$firstname} {$lastname}, glad to see you can make it.
- <br />
- {* this will not work as $variables are case sensitive *}
- This weeks meeting is in {$meetingplace}.
- {* this will work *}
- This weeks meeting is in {$meetingPlace}.
-
+```smarty
+Hello {$firstname} {$lastname}, glad to see you can make it.
+<br />
+{* this will not work as $variables are case sensitive *}
+This weeks meeting is in {$meetingplace}.
+{* this will work *}
+This weeks meeting is in {$meetingPlace}.
+```
-
This above would output:
-
- Hello Doug Evans, glad to see you can make it.
- <br />
- This weeks meeting is in .
- This weeks meeting is in New York.
-
+```html
+Hello Doug Evans, glad to see you can make it.
+<br />
+This weeks meeting is in .
+This weeks meeting is in New York.
+```
-
-Associative arrays {#language.variables.assoc.arrays}
-------------------
+## Associative arrays
You can also reference associative array variables by specifying the key
-after a dot \".\" symbol.
-
-
- <?php
- $smarty->assign('Contacts',
- array('fax' => '555-222-9876',
- 'email' => 'zaphod@slartibartfast.example.com',
- 'phone' => array('home' => '555-444-3333',
- 'cell' => '555-111-1234')
- )
- );
- $smarty->display('index.tpl');
- ?>
-
-
+after a dot "." symbol.
+
+```php
+<?php
+$smarty->assign('Contacts',
+ array('fax' => '555-222-9876',
+ 'email' => 'zaphod@slartibartfast.example.com',
+ 'phone' => array('home' => '555-444-3333',
+ 'cell' => '555-111-1234')
+ )
+ );
+$smarty->display('index.tpl');
+```
`index.tpl` source:
-
- {$Contacts.fax}<br />
- {$Contacts.email}<br />
- {* you can print arrays of arrays as well *}
- {$Contacts.phone.home}<br />
- {$Contacts.phone.cell}<br />
-
-
+```smarty
+{$Contacts.fax}<br />
+{$Contacts.email}<br />
+{* you can print arrays of arrays as well *}
+{$Contacts.phone.home}<br />
+{$Contacts.phone.cell}<br />
+```
this will output:
+```html
+555-222-9876<br />
+zaphod@slartibartfast.example.com<br />
+555-444-3333<br />
+555-111-1234<br />
+```
- 555-222-9876<br />
- zaphod@slartibartfast.example.com<br />
- 555-444-3333<br />
- 555-111-1234<br />
-
-
-
-Array indexes {#language.variables.array.indexes}
--------------
+## Array indexes
You can reference arrays by their index, much like native PHP syntax.
-
- <?php
- $smarty->assign('Contacts', array(
- '555-222-9876',
- 'zaphod@slartibartfast.example.com',
- array('555-444-3333',
- '555-111-1234')
- ));
- $smarty->display('index.tpl');
- ?>
-
-
+```php
+<?php
+$smarty->assign('Contacts', array(
+ '555-222-9876',
+ 'zaphod@slartibartfast.example.com',
+ array('555-444-3333',
+ '555-111-1234')
+ ));
+$smarty->display('index.tpl');
+```
`index.tpl` source:
-
- {$Contacts[0]}<br />
- {$Contacts[1]}<br />
- {* you can print arrays of arrays as well *}
- {$Contacts[2][0]}<br />
- {$Contacts[2][1]}<br />
-
-
+```smarty
+{$Contacts[0]}<br />
+{$Contacts[1]}<br />
+{* you can print arrays of arrays as well *}
+{$Contacts[2][0]}<br />
+{$Contacts[2][1]}<br />
+```
This will output:
+```html
+555-222-9876<br />
+zaphod@slartibartfast.example.com<br />
+555-444-3333<br />
+555-111-1234<br />
+```
- 555-222-9876<br />
- zaphod@slartibartfast.example.com<br />
- 555-444-3333<br />
- 555-111-1234<br />
-
-
-
-Objects {#language.variables.objects}
--------
+## Objects
-Properties of [objects](#advanced.features.objects) assigned from PHP
+Properties of [objects](../../programmers/advanced-features/advanced-features-objects.md) assigned from PHP
can be referenced by specifying the property name after the `->` symbol.
-
- name: {$person->name}<br />
- email: {$person->email}<br />
-
-
+```smarty
+name: {$person->name}<br />
+email: {$person->email}<br />
+```
this will output:
-
- name: Zaphod Beeblebrox<br />
- email: zaphod@slartibartfast.example.com<br />
-
-
+```html
+name: Zaphod Beeblebrox<br />
+email: zaphod@slartibartfast.example.com<br />
+``` \ No newline at end of file
diff --git a/vendor/smarty/smarty/docs/designers/language-variables/language-config-variables.md b/vendor/smarty/smarty/docs/designers/language-variables/language-config-variables.md
index a3683d99b..89a90ce11 100644
--- a/vendor/smarty/smarty/docs/designers/language-variables/language-config-variables.md
+++ b/vendor/smarty/smarty/docs/designers/language-variables/language-config-variables.md
@@ -1,83 +1,79 @@
-Variables loaded from config files {#language.config.variables}
-==================================
+# Variables loaded from config files
-Variables that are loaded from the [config files](#config.files) are
+Variables that are loaded from the [config files](../config-files.md) are
referenced by enclosing them within `#hash_marks#`, or with the smarty
-variable [`$smarty.config`](#language.variables.smarty.config). The
+variable [`$smarty.config`](language-variables-smarty.md#smartyconfig-languagevariablessmartyconfig). The
later syntax is useful for embedding into quoted attribute values, or
-accessing variable values such as \$smarty.config.\$foo.
-
-Example config file - `foo.conf`:
+accessing variable values such as `$smarty.config.$foo`.
+## Examples
- pageTitle = "This is mine"
- bodyBgColor = '#eeeeee'
- tableBorderSize = 3
- tableBgColor = "#bbbbbb"
- rowBgColor = "#cccccc"
-
-
+Example config file - `foo.conf`:
+```ini
+pageTitle = "This is mine"
+bodyBgColor = '#eeeeee'
+tableBorderSize = 3
+tableBgColor = "#bbbbbb"
+rowBgColor = "#cccccc"
+```
A template demonstrating the `#hash#` method:
-
- {config_load file='foo.conf'}
- <html>
+```smarty
+{config_load file='foo.conf'}
+<html>
<title>{#pageTitle#}</title>
<body bgcolor="{#bodyBgColor#}">
- <table border="{#tableBorderSize#}" bgcolor="{#tableBgColor#}">
- <tr bgcolor="{#rowBgColor#}">
- <td>First</td>
- <td>Last</td>
- <td>Address</td>
- </tr>
- </table>
+ <table border="{#tableBorderSize#}" bgcolor="{#tableBgColor#}">
+ <tr bgcolor="{#rowBgColor#}">
+ <td>First</td>
+ <td>Last</td>
+ <td>Address</td>
+ </tr>
+ </table>
</body>
- </html>
-
+</html>
+```
-
A template demonstrating the
-[`$smarty.config`](#language.variables.smarty.config) method:
-
+[`$smarty.config`](language-variables-smarty.md#smartyconfig-languagevariablessmartyconfig) method:
- {config_load file='foo.conf'}
- <html>
- <title>{$smarty.config.pageTitle}</title>
+```smarty
+{config_load file='foo.conf'}
+<html>
+<title>{$smarty.config.pageTitle}</title>
<body bgcolor="{$smarty.config.bodyBgColor}">
- <table border="{$smarty.config.tableBorderSize}" bgcolor="{$smarty.config.tableBgColor}">
- <tr bgcolor="{$smarty.config.rowBgColor}">
- <td>First</td>
- <td>Last</td>
- <td>Address</td>
- </tr>
- </table>
+ <table border="{$smarty.config.tableBorderSize}" bgcolor="{$smarty.config.tableBgColor}">
+ <tr bgcolor="{$smarty.config.rowBgColor}">
+ <td>First</td>
+ <td>Last</td>
+ <td>Address</td>
+ </tr>
+ </table>
</body>
- </html>
-
-
+</html>
+```
Both examples would output:
-
- <html>
+```html
+<html>
<title>This is mine</title>
<body bgcolor="#eeeeee">
- <table border="3" bgcolor="#bbbbbb">
- <tr bgcolor="#cccccc">
- <td>First</td>
- <td>Last</td>
- <td>Address</td>
- </tr>
- </table>
+ <table border="3" bgcolor="#bbbbbb">
+ <tr bgcolor="#cccccc">
+ <td>First</td>
+ <td>Last</td>
+ <td>Address</td>
+ </tr>
+ </table>
</body>
- </html>
-
-
+</html>
+```
Config file variables cannot be used until after they are loaded in from
a config file. This procedure is explained later in this document under
-[`{config_load}`](#language.function.config.load).
+[`{config_load}`](../language-builtin-functions/language-function-config-load.md).
-See also [variables](#language.syntax.variables) and [\$smarty reserved
-variables](#language.variables.smarty)
+See also [variables](../language-basic-syntax/language-syntax-variables.md) and [$smarty reserved
+variables](language-variables-smarty.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-variables/language-variable-scopes.md b/vendor/smarty/smarty/docs/designers/language-variables/language-variable-scopes.md
index 2ba3f026b..e2b244661 100644
--- a/vendor/smarty/smarty/docs/designers/language-variables/language-variable-scopes.md
+++ b/vendor/smarty/smarty/docs/designers/language-variables/language-variable-scopes.md
@@ -1,61 +1,60 @@
-Variable scopes {#language.variable.scopes}
-===============
+# Variable scopes
You have the choice to assign variables to the scope of the main Smarty
-object, data objects created with [`createData()`](#api.create.data),
+object, data objects created with [`createData()`](../../programmers/api-functions/api-create-data.md),
and template objects created with
-[`createTemplate()`](#api.create.template). These objects can be
+[`createTemplate()`](../../programmers/api-functions/api-create-template.md). These objects can be
chained. A template sees all the variables of its own object and all
variables assigned to the objects in its chain of parent objects.
-By default templates which are rendered by
-[`$smarty->display(...)`](#api.display) or
-[`$smarty->fetch(...)`](#api.fetch) calls are automatically linked to
+By default, templates which are rendered by
+[`$smarty->display(...)`](../../programmers/api-functions/api-display.md) or
+[`$smarty->fetch(...)`](../../programmers/api-functions/api-fetch.md) calls are automatically linked to
the Smarty object variable scope.
By assigning variables to individual data or template objects you have
full control which variables can be seen by a template.
+```php
+<?php
+// assign variable to Smarty object scope
+$smarty->assign('foo','smarty');
+// assign variables to data object scope
+$data = $smarty->createData();
+$data->assign('foo','data');
+$data->assign('bar','bar-data');
- // assign variable to Smarty object scope
- $smarty->assign('foo','smarty');
+// assign variables to other data object scope
+$data2 = $smarty->createData($data);
+$data2->assign('bar','bar-data2');
- // assign variables to data object scope
- $data = $smarty->createData();
- $data->assign('foo','data');
- $data->assign('bar','bar-data');
+// assign variable to template object scope
+$tpl = $smarty->createTemplate('index.tpl');
+$tpl->assign('bar','bar-template');
- // assign variables to other data object scope
- $data2 = $smarty->createData($data);
- $data2->assign('bar','bar-data2');
+// assign variable to template object scope with link to Smarty object
+$tpl2 = $smarty->createTemplate('index.tpl',$smarty);
+$tpl2->assign('bar','bar-template2');
- // assign variable to template object scope
- $tpl = $smarty->createTemplate('index.tpl');
- $tpl->assign('bar','bar-template');
+// This display() does see $foo='smarty' from the $smarty object
+$smarty->display('index.tpl');
- // assign variable to template object scope with link to Smarty object
- $tpl2 = $smarty->createTemplate('index.tpl',$smarty);
- $tpl2->assign('bar','bar-template2');
+// This display() does see $foo='data' and $bar='bar-data' from the data object $data
+$smarty->display('index.tpl',$data);
- // This display() does see $foo='smarty' from the $smarty object
- $smarty->display('index.tpl');
+// This display() does see $foo='data' from the data object $data
+// and $bar='bar-data2' from the data object $data2
+$smarty->display('index.tpl',$data2);
- // This display() does see $foo='data' and $bar='bar-data' from the data object $data
- $smarty->display('index.tpl',$data);
+// This display() does see $bar='bar-template' from the template object $tpl
+$tpl->display(); // or $smarty->display($tpl);
- // This display() does see $foo='data' from the data object $data
- // and $bar='bar-data2' from the data object $data2
- $smarty->display('index.tpl',$data2);
+// This display() does see $bar='bar-template2' from the template object $tpl2
+// and $foo='smarty' form the Smarty object $foo
+$tpl2->display(); // or $smarty->display($tpl2);
+```
- // This display() does see $bar='bar-template' from the template object $tpl
- $tpl->display(); // or $smarty->display($tpl);
-
- // This display() does see $bar='bar-template2' from the template object $tpl2
- // and $foo='smarty' form the Smarty object $foo
- $tpl2->display(); // or $smarty->display($tpl2);
-
-
-
-See also [`assign()`](#api.assign), [`createData()`](#api.create.data)
-and [`createTemplate()`](#api.create.template).
+See also [`assign()`](../../programmers/api-functions/api-assign.md),
+[`createData()`](../../programmers/api-functions/api-create-data.md)
+and [`createTemplate()`](../../programmers/api-functions/api-create-template.md).
diff --git a/vendor/smarty/smarty/docs/designers/language-variables/language-variables-smarty.md b/vendor/smarty/smarty/docs/designers/language-variables/language-variables-smarty.md
index e2949e0e5..da543fb62 100644
--- a/vendor/smarty/smarty/docs/designers/language-variables/language-variables-smarty.md
+++ b/vendor/smarty/smarty/docs/designers/language-variables/language-variables-smarty.md
@@ -1,43 +1,40 @@
-{\$smarty} reserved variable {#language.variables.smarty}
-============================
+# {$smarty} reserved variable
The PHP reserved `{$smarty}` variable can be used to access several
environment and request variables. The full list of them follows.
-Request variables {#language.variables.smarty.request}
------------------
+## Request variables
-The [request variables](&url.php-manual;reserved.variables) such as
+The [request variables](https://www.php.net/reserved.variables) such as
`$_GET`, `$_POST`, `$_COOKIE`, `$_SERVER`, `$_ENV` and `$_SESSION` can
be accessed as demonstrated in the examples below:
+```smarty
+{* display value of page from URL ($_GET) http://www.example.com/index.php?page=foo *}
+{$smarty.get.page}
- {* display value of page from URL ($_GET) http://www.example.com/index.php?page=foo *}
- {$smarty.get.page}
+{* display the variable "page" from a form ($_POST['page']) *}
+{$smarty.post.page}
- {* display the variable "page" from a form ($_POST['page']) *}
- {$smarty.post.page}
+{* display the value of the cookie "username" ($_COOKIE['username']) *}
+{$smarty.cookies.username}
- {* display the value of the cookie "username" ($_COOKIE['username']) *}
- {$smarty.cookies.username}
+{* display the server variable "SERVER_NAME" ($_SERVER['SERVER_NAME'])*}
+{$smarty.server.SERVER_NAME}
- {* display the server variable "SERVER_NAME" ($_SERVER['SERVER_NAME'])*}
- {$smarty.server.SERVER_NAME}
+{* display the system environment variable "PATH" *}
+{$smarty.env.PATH}
- {* display the system environment variable "PATH" *}
- {$smarty.env.PATH}
+{* display the php session variable "id" ($_SESSION['id']) *}
+{$smarty.session.id}
- {* display the php session variable "id" ($_SESSION['id']) *}
- {$smarty.session.id}
-
- {* display the variable "username" from merged get/post/cookies/server/env *}
- {$smarty.request.username}
-
-
+{* display the variable "username" from merged get/post/cookies/server/env *}
+{$smarty.request.username}
+```
> **Note**
>
-> For historical reasons `{$SCRIPT_NAME}` is short-hand for
+> For historical reasons `{$SCRIPT_NAME}` is shorthand for
> `{$smarty.server.SCRIPT_NAME}`.
>
>
@@ -51,46 +48,38 @@ be accessed as demonstrated in the examples below:
> globals mixes underlying application code structure with templates. A
> good practice is to assign specific needed values to template vars.
-{\$smarty.now} {#language.variables.smarty.now}
---------------
+## {$smarty.now}
-The current [timestamp](&url.php-manual;function.time) can be accessed
+The current [timestamp](https://www.php.net/function.time) can be accessed
with `{$smarty.now}`. The value reflects the number of seconds passed
since the so-called Epoch on January 1, 1970, and can be passed directly
-to the [`date_format`](#language.modifier.date.format) modifier for
-display. Note that [`time()`](&url.php-manual;function.time) is called
+to the [`date_format`](../language-modifiers/language-modifier-date-format.md) modifier for
+display. Note that [`time()`](https://www.php.net/function.time) is called
on each invocation; eg a script that takes three seconds to execute with
-a call to `$smarty.now` at start and end will show the three second
+a call to `$smarty.now` at start and end will show the three-second
difference.
-::: {.informalexample}
-
- {* use the date_format modifier to show current date and time *}
- {$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}
-
-
-:::
+```smarty
+{* use the date_format modifier to show current date and time *}
+{$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}
+```
-{\$smarty.const} {#language.variables.smarty.const}
-----------------
+## {$smarty.const}
You can access PHP constant values directly. See also [smarty
-constants](#smarty.constants).
+constants](../../programmers/smarty-constants.md).
-::: {.informalexample}
-
- <?php
- // the constant defined in php
- define('MY_CONST_VAL','CHERRIES');
- ?>
-:::
+```php
+<?php
+// the constant defined in php
+define('MY_CONST_VAL','CHERRIES');
+```
Output the constant in a template with
-::: {.informalexample}
-
- {$smarty.const.MY_CONST_VAL}
-:::
+```smarty
+{$smarty.const.MY_CONST_VAL}
+```
> **Note**
>
@@ -99,78 +88,69 @@ Output the constant in a template with
> application code structure into the templates. A good practice is to
> assign specific needed values to template vars.
-{\$smarty.capture} {#language.variables.smarty.capture}
-------------------
+## {$smarty.capture}
Template output captured via the built-in
-[`{capture}..{/capture}`](#language.function.capture) function can be
+[`{capture}..{/capture}`](../language-builtin-functions/language-function-capture.md) function can be
accessed using the `{$smarty.capture}` variable. See the
-[`{capture}`](#language.function.capture) page for more information.
+[`{capture}`](../language-builtin-functions/language-function-capture.md) page for more information.
-{\$smarty.config} {#language.variables.smarty.config}
------------------
+## {$smarty.config}
`{$smarty.config}` variable can be used to refer to loaded [config
-variables](#language.config.variables). `{$smarty.config.foo}` is a
+variables](language-config-variables.md). `{$smarty.config.foo}` is a
synonym for `{#foo#}`. See the
-[{config\_load}](#language.function.config.load) page for more info.
+[{config_load}](../language-builtin-functions/language-function-config-load.md) page for more info.
-{\$smarty.section} {#language.variables.smarty.loops}
-------------------
+## {$smarty.section}
The `{$smarty.section}` variables can be used to refer to
-[`{section}`](#language.function.section) loop properties. These have
+[`{section}`](../language-builtin-functions/language-function-section.md) loop properties. These have
some very useful values such as `.first`, `.index`, etc.
> **Note**
>
> The `{$smarty.foreach}` variable is no longer used with the new
-> [`{foreach}`](#language.function.foreach) syntax, but is still
+> [`{foreach}`](../language-builtin-functions/language-function-foreach.md) syntax, but is still
> supported with Smarty 2.x style foreach syntax.
-{\$smarty.template} {#language.variables.smarty.template}
--------------------
+## {$smarty.template}
Returns the name of the current template being processed (without the
directory).
-{\$smarty.template\_object} {#language.variables.smarty.template_object}
----------------------------
+## {$smarty.template_object}
Returns the template object of the current template being processed.
-{\$smarty.current\_dir} {#language.variables.smarty.current_dir}
------------------------
+## {$smarty.current_dir}
Returns the name of the directory for the current template being
-processed.
+processed if it is loaded from the filesystem (the default).
-{\$smarty.version} {#language.variables.smarty.version}
-------------------
+## {$smarty.version}
Returns the version of Smarty the template was compiled with.
+```smarty
+<div id="footer">Powered by Smarty {$smarty.version}</div>
+```
- <div id="footer">Powered by Smarty {$smarty.version}</div>
-
-{\$smarty.block.child} {#language.variables.smarty.block.child}
-----------------------
+## {$smarty.block.child}
Returns block text from child template. See [Template
-inheritance](#advanced.features.template.inheritance).
+inheritance](../../programmers/advanced-features/advanced-features-template-inheritance.md).
-{\$smarty.block.parent} {#language.variables.smarty.block.parent}
------------------------
+## {$smarty.block.parent}
Returns block text from parent template. See [Template
-inheritance](#advanced.features.template.inheritance)
+inheritance](../../programmers/advanced-features/advanced-features-template-inheritance.md)
-{\$smarty.ldelim}, {\$smarty.rdelim} {#language.variables.smarty.ldelim}
-------------------------------------
+## {$smarty.ldelim}, {$smarty.rdelim}
These variables are used for printing the left-delimiter and
right-delimiter value literally, the same as
-[`{ldelim},{rdelim}`](#language.function.ldelim).
+[`{ldelim},{rdelim}`](../language-builtin-functions/language-function-ldelim.md).
-See also [assigned variables](#language.assigned.variables) and [config
-variables](#language.config.variables)
+See also [assigned variables](language-assigned-variables.md) and [config
+variables](language-config-variables.md)
diff --git a/vendor/smarty/smarty/docs/getting-started.md b/vendor/smarty/smarty/docs/getting-started.md
index 2a1391f4b..2ffbbd11b 100644
--- a/vendor/smarty/smarty/docs/getting-started.md
+++ b/vendor/smarty/smarty/docs/getting-started.md
@@ -1,26 +1,25 @@
-What is Smarty?
-==============
+# Getting started
## Requirements
Smarty can be run with PHP 7.1 to PHP 8.2.
## Installation
-Smarty versions 3.1.11 or later can be installed with [Composer](https://getcomposer.org/).
+Smarty can be installed with [Composer](https://getcomposer.org/).
To get the latest stable version of Smarty use:
-```bash
+```shell
composer require smarty/smarty
-````
+```
To get the latest, unreleased version, use:
-```bash
+```shell
composer require smarty/smarty:dev-master
-````
+```
To get the previous stable version of Smarty, Smarty 3, use:
-```bash
+```shell
composer require smarty/smarty:^3
-````
+```
Here's how you create an instance of Smarty in your PHP scripts:
```php
@@ -30,7 +29,7 @@ require 'vendor/autoload.php';
$smarty = new Smarty();
```
-Now that the library files are in place, it's time to setup the Smarty
+Now that the library files are in place, it's time to set up the Smarty
directories for your application.
Smarty requires four directories which are by default named
@@ -82,7 +81,7 @@ $smarty->testInstall();
Now, let's create the `index.tpl` file that Smarty will display. This
needs to be located in the [`$template_dir`](./programmers/api-variables/variable-template-dir.md).
-```html
+```smarty
{* Smarty *}
Hello {$name}, welcome to Smarty!
```
@@ -118,24 +117,22 @@ $smarty->display('index.tpl');
> **Note**
>
-> In our example, we are setting absolute paths to all of the Smarty
+> In our example, we are setting absolute paths to all the Smarty
> directories. If `/web/www.example.com/guestbook/` is within your PHP
> include\_path, then these settings are not necessary. However, it is
> more efficient and (from experience) less error-prone to set them to
> absolute paths. This ensures that Smarty is getting files from the
> directories you intended.
-Now, run your PHP file. You should see *\"Hello Ned, welcome to Smarty!\"*
+Now, run your PHP file. You should see *"Hello Ned, welcome to Smarty!"*
You have completed the basic setup for Smarty!
-## Extended Setup {#installing.smarty.extended}
-==============
+## Extended Setup
-This is a continuation of the [basic
-installation](#installing.smarty.basic), please read that first!
+This is a continuation of the [basic installation](#installation), please read that first!
-A slightly more flexible way to setup Smarty is to extend the Smarty
+A slightly more flexible way to set up Smarty is to extend the Smarty
class and initialize your Smarty
environment. So instead of repeatedly setting directory paths, assigning
the same vars, etc., we can do that in one place.
@@ -163,7 +160,8 @@ class Smarty_GuestBook extends Smarty {
Now, we can use `Smarty_GuestBook` instead of `Smarty` in our scripts:
```php
+<?php
$smarty = new Smarty_GuestBook();
-$smarty->assign('name','Ned');
+$smarty->assign('name', 'Ned');
$smarty->display('index.tpl');
```
diff --git a/vendor/smarty/smarty/docs/index.md b/vendor/smarty/smarty/docs/index.md
index cf2b2ddcd..cff5e490e 100644
--- a/vendor/smarty/smarty/docs/index.md
+++ b/vendor/smarty/smarty/docs/index.md
@@ -26,12 +26,12 @@ and 480 for $height, the result is:
- [Getting Started](./getting-started.md)
## Smarty for template designers
-- [Basic Syntax](./designers/language-basic-syntax.md)
-- [Variables](./designers/language-variables.md)
-- [Variable Modifiers](./designers/language-modifiers.md)
+- [Basic Syntax](designers/language-basic-syntax/index.md)
+- [Variables](designers/language-variables/index.md)
+- [Variable Modifiers](designers/language-modifiers/index.md)
- [Combining Modifiers](./designers/language-combining-modifiers.md)
-- [Built-in Functions](./designers/language-builtin-functions.md)
-- [Custom Functions](./designers/language-custom-functions.md)
+- [Built-in Functions](designers/language-builtin-functions/index.md)
+- [Custom Functions](designers/language-custom-functions/index.md)
- [Config Files](./designers/config-files.md)
- [Debugging Console](./designers/chapter-debugging-console.md)
diff --git a/vendor/smarty/smarty/docs/philosophy.md b/vendor/smarty/smarty/docs/philosophy.md
index 86f6c46ed..34555c288 100644
--- a/vendor/smarty/smarty/docs/philosophy.md
+++ b/vendor/smarty/smarty/docs/philosophy.md
@@ -1,5 +1,4 @@
-Philosophy
-=======
+# Philosophy
## What is Smarty?
diff --git a/vendor/smarty/smarty/docs/programmers/advanced-features/advanced-features-objects.md b/vendor/smarty/smarty/docs/programmers/advanced-features/advanced-features-objects.md
index 88bd647a7..b681945e1 100644
--- a/vendor/smarty/smarty/docs/programmers/advanced-features/advanced-features-objects.md
+++ b/vendor/smarty/smarty/docs/programmers/advanced-features/advanced-features-objects.md
@@ -1,7 +1,7 @@
Objects {#advanced.features.objects}
=======
-Smarty allows access to PHP [objects](&url.php-manual;object) through
+Smarty allows access to PHP [objects](https://www.php.net/object) through
the templates.
> **Note**
diff --git a/vendor/smarty/smarty/docs/programmers/api-functions/api-add-config-dir.md b/vendor/smarty/smarty/docs/programmers/api-functions/api-add-config-dir.md
index 6c8b54e41..c3a052289 100644
--- a/vendor/smarty/smarty/docs/programmers/api-functions/api-add-config-dir.md
+++ b/vendor/smarty/smarty/docs/programmers/api-functions/api-add-config-dir.md
@@ -21,7 +21,7 @@ key
<?php
// add directory where config files are stored
- $smarty->addConigDir('./config_1');
+ $smarty->addConfigDir('./config_1');
// add directory where config files are stored and specify array-key
$smarty->addConfigDir('./config_1', 'one');
diff --git a/vendor/smarty/smarty/docs/programmers/api-functions/api-fetch.md b/vendor/smarty/smarty/docs/programmers/api-functions/api-fetch.md
index a0c1676aa..6da05bd0e 100644
--- a/vendor/smarty/smarty/docs/programmers/api-functions/api-fetch.md
+++ b/vendor/smarty/smarty/docs/programmers/api-functions/api-fetch.md
@@ -69,7 +69,7 @@ The `email_body.tpl` template
-The php script using the PHP [`mail()`](&url.php-manual;function.mail)
+The php script using the PHP [`mail()`](https://www.php.net/function.mail)
function
diff --git a/vendor/smarty/smarty/docs/programmers/api-functions/api-mute-expected-errors.md b/vendor/smarty/smarty/docs/programmers/api-functions/api-mute-expected-errors.md
index c0c29c061..626288ea6 100644
--- a/vendor/smarty/smarty/docs/programmers/api-functions/api-mute-expected-errors.md
+++ b/vendor/smarty/smarty/docs/programmers/api-functions/api-mute-expected-errors.md
@@ -10,7 +10,7 @@ string
muteExpectedErrors
muteExpectedErrors() registers a custom error handler using
-[set\_error\_handler()](&url.php-manual;set_error_handler). The error
+[set\_error\_handler()](https://www.php.net/set_error_handler). The error
handler merely inspects `$errno` and `$errfile` to determine if the
given error was produced deliberately and must be ignored, or should be
passed on to the next error handler.
diff --git a/vendor/smarty/smarty/docs/programmers/api-variables/variable-auto-literal.md b/vendor/smarty/smarty/docs/programmers/api-variables/variable-auto-literal.md
index e5ddb34fc..8d0685025 100644
--- a/vendor/smarty/smarty/docs/programmers/api-variables/variable-auto-literal.md
+++ b/vendor/smarty/smarty/docs/programmers/api-variables/variable-auto-literal.md
@@ -14,4 +14,4 @@ auto\_literal to false.
:::
-See also [Escaping Smarty Parsing](#language.escaping),
+See also [Escaping Smarty parsing](#language.escaping),
diff --git a/vendor/smarty/smarty/docs/programmers/api-variables/variable-compile-check.md b/vendor/smarty/smarty/docs/programmers/api-variables/variable-compile-check.md
index c0582d4d4..075e7f17a 100644
--- a/vendor/smarty/smarty/docs/programmers/api-variables/variable-compile-check.md
+++ b/vendor/smarty/smarty/docs/programmers/api-variables/variable-compile-check.md
@@ -13,6 +13,9 @@ changing), the compile check step is no longer needed. Be sure to set
change this to FALSE and a template file is changed, you will \*not\*
see the change since the template will not get recompiled.
+Note that up to Smarty 4.x, Smarty will check for the existence of
+the source template even if `$compile_check` is disabled.
+
If [`$caching`](#variable.caching) is enabled and `$compile_check` is
enabled, then the cache files will get regenerated if an involved
template file or config file was updated.
diff --git a/vendor/smarty/smarty/docs/programmers/api-variables/variable-error-reporting.md b/vendor/smarty/smarty/docs/programmers/api-variables/variable-error-reporting.md
index eec7894da..c0aa9cedb 100644
--- a/vendor/smarty/smarty/docs/programmers/api-variables/variable-error-reporting.md
+++ b/vendor/smarty/smarty/docs/programmers/api-variables/variable-error-reporting.md
@@ -2,7 +2,7 @@
==================
When this value is set to a non-null-value it\'s value is used as php\'s
-[`error_reporting`](&url.php-manual;error_reporting) level inside of
+[`error_reporting`](https://www.php.net/error_reporting) level inside of
[`display()`](#api.display) and [`fetch()`](#api.fetch).
Smarty 3.1.2 introduced the
diff --git a/vendor/smarty/smarty/docs/programmers/api-variables/variable-template-dir.md b/vendor/smarty/smarty/docs/programmers/api-variables/variable-template-dir.md
index e49578b1b..1db9c4139 100644
--- a/vendor/smarty/smarty/docs/programmers/api-variables/variable-template-dir.md
+++ b/vendor/smarty/smarty/docs/programmers/api-variables/variable-template-dir.md
@@ -18,7 +18,7 @@ found.
>
> If the directories known to `$template_dir` are relative to
> directories known to the
-> [include\_path](&url.php-manual;ini.core.php#ini.include-path) you
+> [include\_path](https://www.php.net/ini.core.php#ini.include-path) you
> need to activate the [`$use_include_path`](#variable.use.include.path)
> option.
diff --git a/vendor/smarty/smarty/docs/programmers/api-variables/variable-use-include-path.md b/vendor/smarty/smarty/docs/programmers/api-variables/variable-use-include-path.md
index 103a9767d..90f55f073 100644
--- a/vendor/smarty/smarty/docs/programmers/api-variables/variable-use-include-path.md
+++ b/vendor/smarty/smarty/docs/programmers/api-variables/variable-use-include-path.md
@@ -2,7 +2,7 @@
====================
This tells smarty to respect the
-[include\_path](&url.php-manual;ini.core.php#ini.include-path) within
+[include\_path](https://www.php.net/ini.core.php#ini.include-path) within
the [`File Template Resource`](#resources.file) handler and the plugin
loader to resolve the directories known to
[`$template_dir`](#variable.template.dir). The flag also makes the
@@ -23,14 +23,14 @@ If use\_include\_path is enabled, file discovery for
\$plugins\_dir) do
- Test if requested file is in `$directory` relative to the [current
- working directory](&url.php-manual;function.getcwd.php). If file
+ working directory](https://www.php.net/function.getcwd.php). If file
found, return it.
- For each `$path` in include\_path do
- Test if requested file is in `$directory` relative to the `$path`
(possibly relative to the [current working
- directory](&url.php-manual;function.getcwd.php)). If file found,
+ directory](https://www.php.net/function.getcwd.php)). If file found,
return it.
- Try default\_handler or fail.
diff --git a/vendor/smarty/smarty/docs/programmers/api-variables/variable-use-sub-dirs.md b/vendor/smarty/smarty/docs/programmers/api-variables/variable-use-sub-dirs.md
index d973c2409..dcda3f2d6 100644
--- a/vendor/smarty/smarty/docs/programmers/api-variables/variable-use-sub-dirs.md
+++ b/vendor/smarty/smarty/docs/programmers/api-variables/variable-use-sub-dirs.md
@@ -19,7 +19,7 @@ almost nothing.
> **Note**
>
> - `$use_sub_dirs=true` doesn\'t work with
-> [safe\_mode=On](&url.php-manual;features.safe-mode), that\'s why
+> [safe\_mode=On](https://www.php.net/features.safe-mode), that\'s why
> it\'s switchable and why it\'s off by default.
>
> - `$use_sub_dirs=true` on Windows can cause problems.
diff --git a/vendor/smarty/smarty/docs/programmers/plugins/plugins-block-functions.md b/vendor/smarty/smarty/docs/programmers/plugins/plugins-block-functions.md
index 47281fef5..0e11c0782 100644
--- a/vendor/smarty/smarty/docs/programmers/plugins/plugins-block-functions.md
+++ b/vendor/smarty/smarty/docs/programmers/plugins/plugins-block-functions.md
@@ -62,7 +62,7 @@ cannot have both custom function `{func}` and block function
If you have nested block functions, it\'s possible to find out what the
parent block function is by accessing `$smarty->_tag_stack` variable.
-Just do a [`var_dump()`](&url.php-manual;var_dump) on it and the
+Just do a [`var_dump()`](https://www.php.net/var_dump) on it and the
structure should be apparent.
diff --git a/vendor/smarty/smarty/docs/programmers/plugins/plugins-modifiers.md b/vendor/smarty/smarty/docs/programmers/plugins/plugins-modifiers.md
index b089821a6..a4e99daa3 100644
--- a/vendor/smarty/smarty/docs/programmers/plugins/plugins-modifiers.md
+++ b/vendor/smarty/smarty/docs/programmers/plugins/plugins-modifiers.md
@@ -25,7 +25,7 @@ The first parameter to the modifier plugin is the value on which the
modifier is to operate. The rest of the parameters are optional,
depending on what kind of operation is to be performed.
-The modifier has to [return](&url.php-manual;return) the result of its
+The modifier has to [return](https://www.php.net/return) the result of its
processing.
This plugin basically aliases one of the built-in PHP functions. It does
diff --git a/vendor/smarty/smarty/docs/programmers/plugins/plugins-naming-conventions.md b/vendor/smarty/smarty/docs/programmers/plugins/plugins-naming-conventions.md
index 28bbcfde8..15bc26015 100644
--- a/vendor/smarty/smarty/docs/programmers/plugins/plugins-naming-conventions.md
+++ b/vendor/smarty/smarty/docs/programmers/plugins/plugins-naming-conventions.md
@@ -32,7 +32,7 @@ in order to be located by Smarty.
- And `name` should be a valid identifier; letters, numbers, and
underscores only, see [php
- variables](&url.php-manual;language.variables).
+ variables](https://www.php.net/language.variables).
- Some examples: `function.html_select_date.php`, `resource.db.php`,
`modifier.spacify.php`.
diff --git a/vendor/smarty/smarty/docs/programmers/resources/resources-file.md b/vendor/smarty/smarty/docs/programmers/resources/resources-file.md
index e49f4737e..9a89af183 100644
--- a/vendor/smarty/smarty/docs/programmers/resources/resources-file.md
+++ b/vendor/smarty/smarty/docs/programmers/resources/resources-file.md
@@ -14,7 +14,7 @@ is invoked.
> **Note**
>
> As of Smarty 3.1 the file resource no longer walks through the
-> [include\_path](&url.php-manual;ini.core.php#ini.include-path) unless
+> [include\_path](https://www.php.net/ini.core.php#ini.include-path) unless
> [`$use_include_path` is activated](#variable.use.include.path)
Templates from \$template\_dir {#templates.from.template.dir}
diff --git a/vendor/smarty/smarty/docs/programmers/resources/resources-string.md b/vendor/smarty/smarty/docs/programmers/resources/resources-string.md
index 4b19d8e32..d3f6d4155 100644
--- a/vendor/smarty/smarty/docs/programmers/resources/resources-string.md
+++ b/vendor/smarty/smarty/docs/programmers/resources/resources-string.md
@@ -46,8 +46,8 @@ From within a Smarty template
Both `string:` and `eval:` resources may be encoded with
-[`urlencode()`](&url.php-manual;urlencode) or
-[`base64_encode()`](&url.php-manual;urlencode). This is not necessary
+[`urlencode()`](https://www.php.net/urlencode) or
+[`base64_encode()`](https://www.php.net/urlencode). This is not necessary
for the usual use of `string:` and `eval:`, but is required when using
either of them in conjunction with
[`Extends Template Resource`](#resources.extends)
diff --git a/vendor/smarty/smarty/libs/Smarty.class.php b/vendor/smarty/smarty/libs/Smarty.class.php
index 5d2e3a4b4..81dc6ab52 100644
--- a/vendor/smarty/smarty/libs/Smarty.class.php
+++ b/vendor/smarty/smarty/libs/Smarty.class.php
@@ -107,7 +107,7 @@ class Smarty extends Smarty_Internal_TemplateBase
/**
* smarty version
*/
- const SMARTY_VERSION = '4.3.0';
+ const SMARTY_VERSION = '4.3.1';
/**
* define variable scopes
*/
@@ -1386,8 +1386,7 @@ class Smarty extends Smarty_Internal_TemplateBase
}
/**
- * Activates PHP7 compatibility mode:
- * - converts E_WARNINGS for "undefined array key" and "trying to read property of null" errors to E_NOTICE
+ * Mutes errors for "undefined index", "undefined array key" and "trying to read property of null".
*
* @void
*/
@@ -1396,7 +1395,7 @@ class Smarty extends Smarty_Internal_TemplateBase
}
/**
- * Indicates if PHP7 compatibility mode is set.
+ * Indicates if Smarty will mute errors for "undefined index", "undefined array key" and "trying to read property of null".
* @bool
*/
public function isMutingUndefinedOrNullWarnings(): bool {
diff --git a/vendor/smarty/smarty/libs/plugins/modifier.escape.php b/vendor/smarty/smarty/libs/plugins/modifier.escape.php
index 11e44682e..e168679c3 100644
--- a/vendor/smarty/smarty/libs/plugins/modifier.escape.php
+++ b/vendor/smarty/smarty/libs/plugins/modifier.escape.php
@@ -115,7 +115,9 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
// see https://html.spec.whatwg.org/multipage/scripting.html#restrictions-for-contents-of-script-elements
'<!--' => '<\!--',
'<s' => '<\s',
- '<S' => '<\S'
+ '<S' => '<\S',
+ "`" => "\\\\`",
+ "\${" => "\\\\\\$\\{"
)
);
case 'mail':
diff --git a/vendor/smarty/smarty/libs/plugins/modifier.truncate.php b/vendor/smarty/smarty/libs/plugins/modifier.truncate.php
index 80dcdb531..d253e4a61 100644
--- a/vendor/smarty/smarty/libs/plugins/modifier.truncate.php
+++ b/vendor/smarty/smarty/libs/plugins/modifier.truncate.php
@@ -26,7 +26,7 @@
*/
function smarty_modifier_truncate($string, $length = 80, $etc = '...', $break_words = false, $middle = false)
{
- if ($length === 0) {
+ if ($length === 0 || $string === null) {
return '';
}
if (Smarty::$_MBSTRING) {
diff --git a/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_characters.php b/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_characters.php
index b5d97e276..7798cabc1 100644
--- a/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_characters.php
+++ b/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_characters.php
@@ -25,8 +25,8 @@ function smarty_modifiercompiler_count_characters($params)
return 'preg_match_all(\'/[^\s]/' . Smarty::$_UTF8_MODIFIER . '\',' . $params[ 0 ] . ', $tmp)';
}
if (Smarty::$_MBSTRING) {
- return 'mb_strlen(' . $params[ 0 ] . ', \'' . addslashes(Smarty::$_CHARSET) . '\')';
+ return 'mb_strlen((string) ' . $params[ 0 ] . ', \'' . addslashes(Smarty::$_CHARSET) . '\')';
}
// no MBString fallback
- return 'strlen(' . $params[ 0 ] . ')';
+ return 'strlen((string) ' . $params[ 0 ] . ')';
}
diff --git a/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_words.php b/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_words.php
index cf2e50222..48a3daa17 100644
--- a/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_words.php
+++ b/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_words.php
@@ -27,5 +27,5 @@ function smarty_modifiercompiler_count_words($params)
$params[ 0 ] . ', $tmp)';
}
// no MBString fallback
- return 'str_word_count(' . $params[ 0 ] . ')';
+ return 'str_word_count((string) ' . $params[ 0 ] . ')';
}
diff --git a/vendor/smarty/smarty/libs/plugins/modifiercompiler.escape.php b/vendor/smarty/smarty/libs/plugins/modifiercompiler.escape.php
index 602c3dbfc..21b1b4c2a 100644
--- a/vendor/smarty/smarty/libs/plugins/modifiercompiler.escape.php
+++ b/vendor/smarty/smarty/libs/plugins/modifiercompiler.escape.php
@@ -64,7 +64,9 @@ function smarty_modifiercompiler_escape($params, Smarty_Internal_TemplateCompile
// see https://html.spec.whatwg.org/multipage/scripting.html#restrictions-for-contents-of-script-elements
return 'strtr((string)' .
$params[ 0 ] .
- ', array("\\\\" => "\\\\\\\\", "\'" => "\\\\\'", "\"" => "\\\\\"", "\\r" => "\\\\r", "\\n" => "\\\n", "</" => "<\/", "<!--" => "<\!--", "<s" => "<\s", "<S" => "<\S" ))';
+ ', array("\\\\" => "\\\\\\\\", "\'" => "\\\\\'", "\"" => "\\\\\"", "\\r" => "\\\\r",
+ "\\n" => "\\\n", "</" => "<\/", "<!--" => "<\!--", "<s" => "<\s", "<S" => "<\S",
+ "`" => "\\\\`", "\${" => "\\\\\\$\\{"))';
}
} catch (SmartyException $e) {
// pass through to regular plugin fallback
diff --git a/vendor/smarty/smarty/libs/plugins/modifiercompiler.lower.php b/vendor/smarty/smarty/libs/plugins/modifiercompiler.lower.php
index ac9cc39d7..4144e5619 100644
--- a/vendor/smarty/smarty/libs/plugins/modifiercompiler.lower.php
+++ b/vendor/smarty/smarty/libs/plugins/modifiercompiler.lower.php
@@ -22,8 +22,8 @@
function smarty_modifiercompiler_lower($params)
{
if (Smarty::$_MBSTRING) {
- return 'mb_strtolower(' . $params[ 0 ] . ', \'' . addslashes(Smarty::$_CHARSET) . '\')';
+ return 'mb_strtolower((string) ' . $params[ 0 ] . ', \'' . addslashes(Smarty::$_CHARSET) . '\')';
}
// no MBString fallback
- return 'strtolower(' . $params[ 0 ] . ')';
+ return 'strtolower((string) ' . $params[ 0 ] . ')';
}
diff --git a/vendor/smarty/smarty/libs/plugins/modifiercompiler.upper.php b/vendor/smarty/smarty/libs/plugins/modifiercompiler.upper.php
index 31a90a055..96030518e 100644
--- a/vendor/smarty/smarty/libs/plugins/modifiercompiler.upper.php
+++ b/vendor/smarty/smarty/libs/plugins/modifiercompiler.upper.php
@@ -21,8 +21,8 @@
function smarty_modifiercompiler_upper($params)
{
if (Smarty::$_MBSTRING) {
- return 'mb_strtoupper(' . $params[ 0 ] . ' ?? \'\', \'' . addslashes(Smarty::$_CHARSET) . '\')';
+ return 'mb_strtoupper((string) ' . $params[ 0 ] . ' ?? \'\', \'' . addslashes(Smarty::$_CHARSET) . '\')';
}
// no MBString fallback
- return 'strtoupper(' . $params[ 0 ] . ' ?? \'\')';
+ return 'strtoupper((string) ' . $params[ 0 ] . ' ?? \'\')';
}
diff --git a/vendor/smarty/smarty/libs/plugins/outputfilter.trimwhitespace.php b/vendor/smarty/smarty/libs/plugins/outputfilter.trimwhitespace.php
index 2f747ad5a..180cdd081 100644
--- a/vendor/smarty/smarty/libs/plugins/outputfilter.trimwhitespace.php
+++ b/vendor/smarty/smarty/libs/plugins/outputfilter.trimwhitespace.php
@@ -62,7 +62,7 @@ function smarty_outputfilter_trimwhitespace($source)
}
}
$expressions = array(// replace multiple spaces between tags by a single space
- // can't remove them entirely, becaue that might break poorly implemented CSS display:inline-block elements
+ // can't remove them entirely, because that might break poorly implemented CSS display:inline-block elements
'#(:SMARTY@!@|>)\s+(?=@!@SMARTY:|<)#s' => '\1 \2',
// remove spaces between attributes (but not in attribute values!)
'#(([a-z0-9]\s*=\s*("[^"]*?")|(\'[^\']*?\'))|<[a-z0-9_]+)\s+([a-z/>])#is' => '\1 \5',
diff --git a/vendor/smarty/smarty/libs/plugins/shared.escape_special_chars.php b/vendor/smarty/smarty/libs/plugins/shared.escape_special_chars.php
index a204b092c..355b02b57 100644
--- a/vendor/smarty/smarty/libs/plugins/shared.escape_special_chars.php
+++ b/vendor/smarty/smarty/libs/plugins/shared.escape_special_chars.php
@@ -20,7 +20,7 @@
function smarty_function_escape_special_chars($string)
{
if (!is_array($string)) {
- $string = htmlspecialchars($string, ENT_COMPAT, Smarty::$_CHARSET, false);
+ $string = htmlspecialchars((string) $string, ENT_COMPAT, Smarty::$_CHARSET, false);
}
return $string;
}
diff --git a/vendor/smarty/smarty/libs/plugins/variablefilter.htmlspecialchars.php b/vendor/smarty/smarty/libs/plugins/variablefilter.htmlspecialchars.php
index 3c85295db..2eb12d20a 100644
--- a/vendor/smarty/smarty/libs/plugins/variablefilter.htmlspecialchars.php
+++ b/vendor/smarty/smarty/libs/plugins/variablefilter.htmlspecialchars.php
@@ -15,5 +15,5 @@
*/
function smarty_variablefilter_htmlspecialchars($source, Smarty_Internal_Template $template)
{
- return htmlspecialchars($source, ENT_QUOTES, Smarty::$_CHARSET);
+ return htmlspecialchars((string) $source, ENT_QUOTES, Smarty::$_CHARSET);
}
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_errorhandler.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_errorhandler.php
index c2b653ef4..f57cc21ff 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_errorhandler.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_errorhandler.php
@@ -23,6 +23,12 @@ class Smarty_Internal_ErrorHandler
*/
public $allowUndefinedArrayKeys = true;
+ /**
+ * Allows {$foo->bar} where bar is not an object (e.g. null or false).
+ * @var bool
+ */
+ public $allowDereferencingNonObjects = true;
+
private $previousErrorHandler = null;
/**
@@ -66,17 +72,28 @@ class Smarty_Internal_ErrorHandler
*/
public function handleError($errno, $errstr, $errfile, $errline, $errcontext = [])
{
- if ($this->allowUndefinedVars && $errstr == 'Attempt to read property "value" on null') {
+
+ if ($this->allowUndefinedVars && preg_match(
+ '/^(Attempt to read property "value" on null|Trying to get property (\'value\' )?of non-object)/',
+ $errstr
+ )) {
return; // suppresses this error
}
if ($this->allowUndefinedArrayKeys && preg_match(
- '/^(Undefined array key|Trying to access array offset on value of type null)/',
+ '/^(Undefined index|Undefined array key|Trying to access array offset on value of type)/',
$errstr
)) {
return; // suppresses this error
}
+ if ($this->allowDereferencingNonObjects && preg_match(
+ '/^Attempt to read property ".+?" on/',
+ $errstr
+ )) {
+ return; // suppresses this error
+ }
+
// pass all other errors through to the previous error handler or to the default PHP error handler
return $this->previousErrorHandler ?
call_user_func($this->previousErrorHandler, $errno, $errstr, $errfile, $errline, $errcontext) : false;
diff --git a/vendor/smarty/smarty/mkdocs.yml b/vendor/smarty/smarty/mkdocs.yml
new file mode 100644
index 000000000..7762cd75e
--- /dev/null
+++ b/vendor/smarty/smarty/mkdocs.yml
@@ -0,0 +1,123 @@
+site_name: Smarty Documentation
+theme:
+ name: material
+ palette:
+ primary: amber
+ features:
+ - content.code.copy
+ - navigation.tabs
+ - navigation.tabs.sticky
+ - navigation.instant
+ - navigation.tracking
+ icon:
+ logo: material/lightbulb-on
+ favicon: images/favicon.ico
+
+extra:
+ version:
+ provider: mike
+
+markdown_extensions:
+ - pymdownx.highlight:
+ anchor_linenums: true
+ - pymdownx.inlinehilite
+ - pymdownx.snippets
+ - pymdownx.superfences
+
+nav:
+ - Home: 'index.md'
+ - 'Getting started': 'getting-started.md'
+ - 'Designers':
+ - 'Basic Syntax':
+ - Introduction: 'designers/language-basic-syntax/index.md'
+ - Comments: 'designers/language-basic-syntax/language-syntax-comments.md'
+ - Variables: 'designers/language-basic-syntax/language-syntax-variables.md'
+ - Functions: 'designers/language-basic-syntax/language-syntax-functions.md'
+ - Attributes: 'designers/language-basic-syntax/language-syntax-attributes.md'
+ - Quotes: 'designers/language-basic-syntax/language-syntax-quotes.md'
+ - Math: 'designers/language-basic-syntax/language-math.md'
+ - 'Escaping Smarty parsing': 'designers/language-basic-syntax/language-escaping.md'
+ - 'Variables':
+ - 'Introduction': 'designers/language-variables/index.md'
+ - 'Assigned from PHP': 'designers/language-variables/language-assigned-variables.md'
+ - 'Variable scopes': 'designers/language-variables/language-variable-scopes.md'
+ - 'From config files': 'designers/language-variables/language-config-variables.md'
+ - '{$smarty}': 'designers/language-variables/language-variables-smarty.md'
+ - 'Modifiers':
+ - 'Introduction': 'designers/language-modifiers/index.md'
+ - 'capitalize': 'designers/language-modifiers/language-modifier-capitalize.md'
+ - 'cat': 'designers/language-modifiers/language-modifier-cat.md'
+ - 'count_characters': 'designers/language-modifiers/language-modifier-count-characters.md'
+ - 'count_paragraphs': 'designers/language-modifiers/language-modifier-count-paragraphs.md'
+ - 'count_sentences': 'designers/language-modifiers/language-modifier-count-sentences.md'
+ - 'count_words': 'designers/language-modifiers/language-modifier-count-words.md'
+ - 'date_format': 'designers/language-modifiers/language-modifier-date-format.md'
+ - 'default': 'designers/language-modifiers/language-modifier-default.md'
+ - 'escape': 'designers/language-modifiers/language-modifier-escape.md'
+ - 'from_charset': 'designers/language-modifiers/language-modifier-from-charset.md'
+ - 'indent': 'designers/language-modifiers/language-modifier-indent.md'
+ - 'lower': 'designers/language-modifiers/language-modifier-lower.md'
+ - 'nl2br': 'designers/language-modifiers/language-modifier-nl2br.md'
+ - 'regex_replace': 'designers/language-modifiers/language-modifier-regex-replace.md'
+ - 'replace': 'designers/language-modifiers/language-modifier-replace.md'
+ - 'spacify': 'designers/language-modifiers/language-modifier-spacify.md'
+ - 'string_format': 'designers/language-modifiers/language-modifier-string-format.md'
+ - 'strip': 'designers/language-modifiers/language-modifier-strip.md'
+ - 'strip_tags': 'designers/language-modifiers/language-modifier-strip-tags.md'
+ - 'to_charset': 'designers/language-modifiers/language-modifier-to-charset.md'
+ - 'truncate': 'designers/language-modifiers/language-modifier-truncate.md'
+ - 'unescape': 'designers/language-modifiers/language-modifier-unescape.md'
+ - 'upper': 'designers/language-modifiers/language-modifier-upper.md'
+ - 'wordwrap': 'designers/language-modifiers/language-modifier-wordwrap.md'
+ - 'designers/language-combining-modifiers.md'
+ - 'Builtin Functions':
+ - 'Introduction': 'designers/language-builtin-functions/index.md'
+ - '{append}': 'designers/language-builtin-functions/language-function-append.md'
+ - '{assign}': 'designers/language-builtin-functions/language-function-assign.md'
+ - '{block}': 'designers/language-builtin-functions/language-function-block.md'
+ - '{call}': 'designers/language-builtin-functions/language-function-call.md'
+ - '{capture}': 'designers/language-builtin-functions/language-function-capture.md'
+ - '{config_load}': 'designers/language-builtin-functions/language-function-config-load.md'
+ - '{debug}': 'designers/language-builtin-functions/language-function-debug.md'
+ - '{extends}': 'designers/language-builtin-functions/language-function-extends.md'
+ - '{for}': 'designers/language-builtin-functions/language-function-for.md'
+ - '{foreach}': 'designers/language-builtin-functions/language-function-foreach.md'
+ - '{function}': 'designers/language-builtin-functions/language-function-function.md'
+ - '{if},{elseif},{else}': 'designers/language-builtin-functions/language-function-if.md'
+ - '{include}': 'designers/language-builtin-functions/language-function-include.md'
+ - '{insert}': 'designers/language-builtin-functions/language-function-insert.md'
+ - '{ldelim},{rdelim}': 'designers/language-builtin-functions/language-function-ldelim.md'
+ - '{literal}': 'designers/language-builtin-functions/language-function-literal.md'
+ - '{nocache}': 'designers/language-builtin-functions/language-function-nocache.md'
+ - '{section}': 'designers/language-builtin-functions/language-function-section.md'
+ - '{setfilter}': 'designers/language-builtin-functions/language-function-setfilter.md'
+ - '{strip}': 'designers/language-builtin-functions/language-function-strip.md'
+ - '{while}': 'designers/language-builtin-functions/language-function-while.md'
+ - 'Custom Functions':
+ - 'Introduction': 'designers/language-custom-functions/index.md'
+ - '{counter}': 'designers/language-custom-functions/language-function-counter.md'
+ - '{cycle}': 'designers/language-custom-functions/language-function-cycle.md'
+ - '{debug}': 'designers/language-custom-functions/language-function-debug.md'
+ - '{eval}': 'designers/language-custom-functions/language-function-eval.md'
+ - '{fetch}': 'designers/language-custom-functions/language-function-fetch.md'
+ - '{html_checkboxes}': 'designers/language-custom-functions/language-function-html-checkboxes.md'
+ - '{html_image}': 'designers/language-custom-functions/language-function-html-image.md'
+ - '{html_options}': 'designers/language-custom-functions/language-function-html-options.md'
+ - '{html_radios}': 'designers/language-custom-functions/language-function-html-radios.md'
+ - '{html_select_date}': 'designers/language-custom-functions/language-function-html-select-date.md'
+ - '{html_select_time}': 'designers/language-custom-functions/language-function-html-select-time.md'
+ - '{html_table}': 'designers/language-custom-functions/language-function-html-table.md'
+ - '{mailto}': 'designers/language-custom-functions/language-function-mailto.md'
+ - '{math}': 'designers/language-custom-functions/language-function-math.md'
+ - '{textformat}': 'designers/language-custom-functions/language-function-textformat.md'
+ - 'designers/config-files.md'
+ - 'designers/chapter-debugging-console.md'
+ - 'Programmers':
+ - 'programmers/charset.md'
+ - 'programmers/smarty-constants.md'
+ - 'programmers/api-variables.md'
+ - 'programmers/api-functions.md'
+ - 'programmers/caching.md'
+ - 'programmers/resources.md'
+ - 'programmers/advanced-features.md'
+ - 'programmers/plugins.md' \ No newline at end of file
diff --git a/vendor/smarty/smarty/run-tests-for-all-php-versions.sh b/vendor/smarty/smarty/run-tests-for-all-php-versions.sh
index 6ecd9afbc..b64f01e40 100755
--- a/vendor/smarty/smarty/run-tests-for-all-php-versions.sh
+++ b/vendor/smarty/smarty/run-tests-for-all-php-versions.sh
@@ -1,44 +1,13 @@
#!/bin/bash
-Help()
-{
- # Display Help
- echo "Runs PHPUnit tests for all PHP versions supported by this version of Smarty."
- echo
- echo "Syntax: $0 [-e|h]"
- echo "options:"
- echo "e Exclude a group of unit tests, e.g. -e 'slow'"
- echo "h Print this Help."
- echo
-}
-
-Exclude=""
-
-# Get the options
-while getopts ":he:" option; do
- case $option in
- e) # Exclude
- echo $OPTARG
- Exclude=$OPTARG;;
- h) # display Help
- Help
- exit;;
- \?) # Invalid option
- echo "Error: Invalid option"
- exit;;
- esac
-done
-
-if [ -z $Exclude ];
-then
- Entrypoint="./run-tests.sh"
-else
- Entrypoint="./run-tests.sh $Exclude"
-fi
# Runs tests for all supported PHP versions
-docker-compose run --entrypoint "$Entrypoint" php71 && \
-docker-compose run --entrypoint "$Entrypoint" php72 && \
-docker-compose run --entrypoint "$Entrypoint" php73 && \
-docker-compose run --entrypoint "$Entrypoint" php74 && \
-docker-compose run --entrypoint "$Entrypoint" php80 && \
-docker-compose run --entrypoint "$Entrypoint" php81
+# Usage examples:
+# - ./run-tests-for-all-php-versions.sh --group 20221124
+# - ./run-tests-for-all-php-versions.sh --exclude-group slow
+
+docker-compose run php71 ./run-tests.sh $@ && \
+docker-compose run php72 ./run-tests.sh $@ && \
+docker-compose run php73 ./run-tests.sh $@ && \
+docker-compose run php74 ./run-tests.sh $@ && \
+docker-compose run php80 ./run-tests.sh $@ && \
+docker-compose run php81 ./run-tests.sh $@
diff --git a/vendor/smarty/smarty/run-tests.sh b/vendor/smarty/smarty/run-tests.sh
index ddcad01b1..1990a07f1 100755
--- a/vendor/smarty/smarty/run-tests.sh
+++ b/vendor/smarty/smarty/run-tests.sh
@@ -1,13 +1,10 @@
#!/bin/sh
-composer update
-php -r 'echo "\nPHP version " . phpversion() . ". ";';
+# Runs composer update, echoes php version and runs PHPUnit
+# Usage examples:
+# - ./run-tests.sh --group 20221124
+# - ./run-tests.sh --exclude-group slow
-if [ -z $1 ];
-then
- echo "Running all unit tests.\n"
- php ./vendor/phpunit/phpunit/phpunit
-else
- echo "Running all unit tests, except tests marked with @group $1.\n"
- php ./vendor/phpunit/phpunit/phpunit --exclude-group $1
-fi \ No newline at end of file
+composer update --quiet
+#php -r 'echo "\nPHP version " . phpversion() . ". ";'
+php ./vendor/phpunit/phpunit/phpunit $@
diff --git a/vendor/spomky-labs/otphp/composer.json b/vendor/spomky-labs/otphp/composer.json
index 30db9729d..080df371a 100644
--- a/vendor/spomky-labs/otphp/composer.json
+++ b/vendor/spomky-labs/otphp/composer.json
@@ -30,7 +30,7 @@
"phpstan/phpstan-strict-rules": "^1.0",
"phpunit/phpunit": "^9.5.26",
"qossmic/deptrac-shim": "^1.0",
- "rector/rector": "^0.14",
+ "rector/rector": "^0.15",
"symfony/phpunit-bridge": "^6.1",
"symplify/easy-coding-standard": "^11.0"
},
diff --git a/vendor/spomky-labs/otphp/src/Factory.php b/vendor/spomky-labs/otphp/src/Factory.php
index d5c60cc34..409d8751e 100644
--- a/vendor/spomky-labs/otphp/src/Factory.php
+++ b/vendor/spomky-labs/otphp/src/Factory.php
@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace OTPHP;
+use function assert;
use function count;
use InvalidArgumentException;
use Throwable;
@@ -55,6 +56,9 @@ final class Factory implements FactoryInterface
);
$otp->setIssuerIncludedAsParameter(true);
}
+
+ assert($result[0] !== '');
+
$otp->setIssuer($result[0]);
}
@@ -76,10 +80,16 @@ final class Factory implements FactoryInterface
}
}
+ /**
+ * @param non-empty-string $data
+ * @return non-empty-string
+ */
private static function getLabel(string $data): string
{
$result = explode(':', rawurldecode(mb_substr($data, 1)));
+ $label = count($result) === 2 ? $result[1] : $result[0];
+ assert($label !== '');
- return count($result) === 2 ? $result[1] : $result[0];
+ return $label;
}
}
diff --git a/vendor/spomky-labs/otphp/src/FactoryInterface.php b/vendor/spomky-labs/otphp/src/FactoryInterface.php
index 74386adeb..dd14e45f9 100644
--- a/vendor/spomky-labs/otphp/src/FactoryInterface.php
+++ b/vendor/spomky-labs/otphp/src/FactoryInterface.php
@@ -9,6 +9,8 @@ interface FactoryInterface
/**
* This method is the unique public method of the class. It can load a provisioning Uri and convert it into an OTP
* object.
+ *
+ * @param non-empty-string $uri
*/
public static function loadFromProvisioningUri(string $uri): OTPInterface;
}
diff --git a/vendor/spomky-labs/otphp/src/HOTP.php b/vendor/spomky-labs/otphp/src/HOTP.php
index aa5a22754..1588d48aa 100644
--- a/vendor/spomky-labs/otphp/src/HOTP.php
+++ b/vendor/spomky-labs/otphp/src/HOTP.php
@@ -49,7 +49,7 @@ final class HOTP extends OTP implements HOTPInterface
public function getCounter(): int
{
$value = $this->getParameter('counter');
- is_int($value) || throw new InvalidArgumentException('Invalid "counter" parameter.');
+ (is_int($value) && $value >= 0) || throw new InvalidArgumentException('Invalid "counter" parameter.');
return $value;
}
@@ -83,7 +83,7 @@ final class HOTP extends OTP implements HOTPInterface
}
/**
- * @return array<string, callable>
+ * @return array<non-empty-string, callable>
*/
protected function getParameterMap(): array
{
@@ -97,16 +97,27 @@ final class HOTP extends OTP implements HOTPInterface
]];
}
+ /**
+ * @param positive-int $counter
+ */
private function updateCounter(int $counter): void
{
$this->setCounter($counter);
}
+ /**
+ * @param null|0|positive-int $window
+ */
private function getWindow(null|int $window): int
{
return abs($window ?? self::DEFAULT_WINDOW);
}
+ /**
+ * @param non-empty-string $otp
+ * @param 0|positive-int $counter
+ * @param null|0|positive-int $window
+ */
private function verifyOtpWithWindow(string $otp, int $counter, null|int $window): bool
{
$window = $this->getWindow($window);
diff --git a/vendor/spomky-labs/otphp/src/HOTPInterface.php b/vendor/spomky-labs/otphp/src/HOTPInterface.php
index 853e76c07..449e9383b 100644
--- a/vendor/spomky-labs/otphp/src/HOTPInterface.php
+++ b/vendor/spomky-labs/otphp/src/HOTPInterface.php
@@ -10,6 +10,8 @@ interface HOTPInterface extends OTPInterface
/**
* The initial counter (a positive integer).
+ *
+ * @return 0|positive-int
*/
public function getCounter(): int;
@@ -19,7 +21,9 @@ interface HOTPInterface extends OTPInterface
* If the secret is null, a random 64 bytes secret will be generated.
*
* @param null|non-empty-string $secret
+ * @param 0|positive-int $counter
* @param non-empty-string $digest
+ * @param positive-int $digits
*
* @deprecated Deprecated since v11.1, use ::createFromSecret or ::generate instead
*/
@@ -30,5 +34,8 @@ interface HOTPInterface extends OTPInterface
int $digits = 6
): self;
+ /**
+ * @param 0|positive-int $counter
+ */
public function setCounter(int $counter): void;
}
diff --git a/vendor/spomky-labs/otphp/src/OTP.php b/vendor/spomky-labs/otphp/src/OTP.php
index 2cba067b3..4765d49eb 100644
--- a/vendor/spomky-labs/otphp/src/OTP.php
+++ b/vendor/spomky-labs/otphp/src/OTP.php
@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace OTPHP;
+use function assert;
use function chr;
use function count;
use Exception;
@@ -49,6 +50,10 @@ abstract class OTP implements OTPInterface
/**
* The OTP at the specified input.
+ *
+ * @param 0|positive-int $input
+ *
+ * @return non-empty-string
*/
protected function generateOTP(int $input): string
{
@@ -65,7 +70,7 @@ abstract class OTP implements OTPInterface
}
/**
- * @param array<string, mixed> $options
+ * @param array<non-empty-string, mixed> $options
*/
protected function filterOptions(array &$options): void
{
@@ -83,7 +88,10 @@ abstract class OTP implements OTPInterface
}
/**
- * @param array<string, mixed> $options
+ * @param non-empty-string $type
+ * @param array<non-empty-string, mixed> $options
+ *
+ * @return non-empty-string
*/
protected function generateURI(string $type, array $options): string
{
@@ -102,20 +110,33 @@ abstract class OTP implements OTPInterface
);
}
+ /**
+ * @param non-empty-string $safe
+ * @param non-empty-string $user
+ */
protected function compareOTP(string $safe, string $user): bool
{
return hash_equals($safe, $user);
}
+ /**
+ * @return non-empty-string
+ */
private function getDecodedSecret(): string
{
try {
- return Base32::decodeUpper($this->getSecret());
+ $decoded = Base32::decodeUpper($this->getSecret());
} catch (Exception) {
throw new RuntimeException('Unable to decode the secret. Is it correctly base32 encoded?');
}
+ assert($decoded !== '');
+
+ return $decoded;
}
+ /**
+ * @param 0|positive-int $int
+ */
private function intToByteString(int $int): string
{
$result = [];
diff --git a/vendor/spomky-labs/otphp/src/OTPInterface.php b/vendor/spomky-labs/otphp/src/OTPInterface.php
index 3b27f5456..f14eef9f4 100644
--- a/vendor/spomky-labs/otphp/src/OTPInterface.php
+++ b/vendor/spomky-labs/otphp/src/OTPInterface.php
@@ -27,6 +27,9 @@ interface OTPInterface
*/
public function setSecret(string $secret): void;
+ /**
+ * @param positive-int $digits
+ */
public function setDigits(int $digits): void;
/**
@@ -35,36 +38,45 @@ interface OTPInterface
public function setDigest(string $digest): void;
/**
- * @return string Return the OTP at the specified timestamp
+ * @param 0|positive-int $input
+ *
+ * @return non-empty-string Return the OTP at the specified timestamp
*/
public function at(int $input): string;
/**
* Verify that the OTP is valid with the specified input. If no input is provided, the input is set to a default
* value or false is returned.
+ *
+ * @param non-empty-string $otp
+ * @param null|0|positive-int $input
+ * @param null|0|positive-int $window
*/
public function verify(string $otp, null|int $input = null, null|int $window = null): bool;
/**
- * @return string The secret of the OTP
+ * @return non-empty-string The secret of the OTP
*/
public function getSecret(): string;
/**
- * @param string $label The label of the OTP
+ * @param non-empty-string $label The label of the OTP
*/
public function setLabel(string $label): void;
/**
- * @return string|null The label of the OTP
+ * @return non-empty-string|null The label of the OTP
*/
public function getLabel(): null|string;
/**
- * @return string|null The issuer
+ * @return non-empty-string|null The issuer
*/
public function getIssuer(): ?string;
+ /**
+ * @param non-empty-string $issuer
+ */
public function setIssuer(string $issuer): void;
/**
@@ -75,36 +87,47 @@ interface OTPInterface
public function setIssuerIncludedAsParameter(bool $issuer_included_as_parameter): void;
/**
- * @return int Number of digits in the OTP
+ * @return positive-int Number of digits in the OTP
*/
public function getDigits(): int;
/**
- * @return string Digest algorithm used to calculate the OTP. Possible values are 'md5', 'sha1', 'sha256' and 'sha512'
+ * @return non-empty-string Digest algorithm used to calculate the OTP. Possible values are 'md5', 'sha1', 'sha256' and 'sha512'
*/
public function getDigest(): string;
+ /**
+ * @param non-empty-string $parameter
+ */
public function getParameter(string $parameter): mixed;
+ /**
+ * @param non-empty-string $parameter
+ */
public function hasParameter(string $parameter): bool;
/**
- * @return array<string, mixed>
+ * @return array<non-empty-string, mixed>
*/
public function getParameters(): array;
+ /**
+ * @param non-empty-string $parameter
+ */
public function setParameter(string $parameter, mixed $value): void;
/**
* Get the provisioning URI.
+ *
+ * @return non-empty-string
*/
public function getProvisioningUri(): string;
/**
* Get the provisioning URI.
*
- * @param string $uri The Uri of the QRCode generator with all parameters. This Uri MUST contain a placeholder that will be replaced by the method.
- * @param string $placeholder the placeholder to be replaced in the QR Code generator URI
+ * @param non-empty-string $uri The Uri of the QRCode generator with all parameters. This Uri MUST contain a placeholder that will be replaced by the method.
+ * @param non-empty-string $placeholder the placeholder to be replaced in the QR Code generator URI
*/
public function getQrCodeUri(string $uri, string $placeholder): string;
}
diff --git a/vendor/spomky-labs/otphp/src/ParameterTrait.php b/vendor/spomky-labs/otphp/src/ParameterTrait.php
index b05092351..3b2641e0c 100644
--- a/vendor/spomky-labs/otphp/src/ParameterTrait.php
+++ b/vendor/spomky-labs/otphp/src/ParameterTrait.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace OTPHP;
use function array_key_exists;
+use function assert;
use function in_array;
use InvalidArgumentException;
use function is_int;
@@ -13,18 +14,24 @@ use function is_string;
trait ParameterTrait
{
/**
- * @var array<string, mixed>
+ * @var array<non-empty-string, mixed>
*/
private array $parameters = [];
+ /**
+ * @var non-empty-string|null
+ */
private null|string $issuer = null;
+ /**
+ * @var non-empty-string|null
+ */
private null|string $label = null;
private bool $issuer_included_as_parameter = true;
/**
- * @return array<string, mixed>
+ * @return array<non-empty-string, mixed>
*/
public function getParameters(): array
{
@@ -40,7 +47,7 @@ trait ParameterTrait
public function getSecret(): string
{
$value = $this->getParameter('secret');
- is_string($value) || throw new InvalidArgumentException('Invalid "secret" parameter.');
+ (is_string($value) && $value !== '') || throw new InvalidArgumentException('Invalid "secret" parameter.');
return $value;
}
@@ -78,7 +85,7 @@ trait ParameterTrait
public function getDigits(): int
{
$value = $this->getParameter('digits');
- is_int($value) || throw new InvalidArgumentException('Invalid "digits" parameter.');
+ (is_int($value) && $value > 0) || throw new InvalidArgumentException('Invalid "digits" parameter.');
return $value;
}
@@ -86,7 +93,7 @@ trait ParameterTrait
public function getDigest(): string
{
$value = $this->getParameter('algorithm');
- is_string($value) || throw new InvalidArgumentException('Invalid "algorithm" parameter.');
+ (is_string($value) && $value !== '') || throw new InvalidArgumentException('Invalid "algorithm" parameter.');
return $value;
}
@@ -137,20 +144,21 @@ trait ParameterTrait
}
/**
- * @return array<string, callable>
+ * @return array<non-empty-string, callable>
*/
protected function getParameterMap(): array
{
return [
- 'label' => function ($value) {
+ 'label' => function (string $value): string {
+ assert($value !== '');
$this->hasColon($value) === false || throw new InvalidArgumentException(
'Label must not contain a colon.'
);
return $value;
},
- 'secret' => static fn ($value): string => mb_strtoupper(trim((string) $value, '=')),
- 'algorithm' => static function ($value): string {
+ 'secret' => static fn (string $value): string => mb_strtoupper(trim($value, '=')),
+ 'algorithm' => static function (string $value): string {
$value = mb_strtolower($value);
in_array($value, hash_algos(), true) || throw new InvalidArgumentException(sprintf(
'The "%s" digest is not supported.',
@@ -164,7 +172,8 @@ trait ParameterTrait
return (int) $value;
},
- 'issuer' => function ($value) {
+ 'issuer' => function (string $value): string {
+ assert($value !== '');
$this->hasColon($value) === false || throw new InvalidArgumentException(
'Issuer must not contain a colon.'
);
@@ -174,6 +183,9 @@ trait ParameterTrait
];
}
+ /**
+ * @param non-empty-string $value
+ */
private function hasColon(string $value): bool
{
$colons = [':', '%3A', '%3a'];
diff --git a/vendor/spomky-labs/otphp/src/TOTP.php b/vendor/spomky-labs/otphp/src/TOTP.php
index e9bce9e14..3a7d72870 100644
--- a/vendor/spomky-labs/otphp/src/TOTP.php
+++ b/vendor/spomky-labs/otphp/src/TOTP.php
@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace OTPHP;
+use function assert;
use InvalidArgumentException;
use function is_int;
@@ -50,7 +51,7 @@ final class TOTP extends OTP implements TOTPInterface
public function getPeriod(): int
{
$value = $this->getParameter('period');
- is_int($value) || throw new InvalidArgumentException('Invalid "period" parameter.');
+ (is_int($value) && $value > 0) || throw new InvalidArgumentException('Invalid "period" parameter.');
return $value;
}
@@ -58,7 +59,7 @@ final class TOTP extends OTP implements TOTPInterface
public function getEpoch(): int
{
$value = $this->getParameter('epoch');
- is_int($value) || throw new InvalidArgumentException('Invalid "epoch" parameter.');
+ (is_int($value) && $value >= 0) || throw new InvalidArgumentException('Invalid "epoch" parameter.');
return $value;
}
@@ -128,7 +129,7 @@ final class TOTP extends OTP implements TOTPInterface
}
/**
- * @return array<string, callable>
+ * @return array<non-empty-string, callable>
*/
protected function getParameterMap(): array
{
@@ -152,7 +153,7 @@ final class TOTP extends OTP implements TOTPInterface
}
/**
- * @param array<string, mixed> $options
+ * @param array<non-empty-string, mixed> $options
*/
protected function filterOptions(array &$options): void
{
@@ -165,8 +166,16 @@ final class TOTP extends OTP implements TOTPInterface
ksort($options);
}
+ /**
+ * @param 0|positive-int $timestamp
+ *
+ * @return 0|positive-int
+ */
private function timecode(int $timestamp): int
{
- return (int) floor(($timestamp - $this->getEpoch()) / $this->getPeriod());
+ $timecode = (int) floor(($timestamp - $this->getEpoch()) / $this->getPeriod());
+ assert($timecode >= 0);
+
+ return $timecode;
}
}
diff --git a/vendor/spomky-labs/otphp/src/TOTPInterface.php b/vendor/spomky-labs/otphp/src/TOTPInterface.php
index afb54e8e9..47ef16ac0 100644
--- a/vendor/spomky-labs/otphp/src/TOTPInterface.php
+++ b/vendor/spomky-labs/otphp/src/TOTPInterface.php
@@ -16,7 +16,9 @@ interface TOTPInterface extends OTPInterface
* If the secret is null, a random 64 bytes secret will be generated.
*
* @param null|non-empty-string $secret
+ * @param positive-int $period
* @param non-empty-string $digest
+ * @param positive-int $digits
*
* @deprecated Deprecated since v11.1, use ::createFromSecret or ::generate instead
*/
@@ -27,21 +29,37 @@ interface TOTPInterface extends OTPInterface
int $digits = self::DEFAULT_DIGITS
): self;
+ /**
+ * @param positive-int $period
+ */
public function setPeriod(int $period): void;
+ /**
+ * @param 0|positive-int $epoch
+ */
public function setEpoch(int $epoch): void;
/**
* Return the TOTP at the current time.
+ *
+ * @return non-empty-string
*/
public function now(): string;
/**
* Get the period of time for OTP generation (a non-null positive integer, in second).
+ *
+ * @return positive-int
*/
public function getPeriod(): int;
+ /**
+ * @return 0|positive-int
+ */
public function expiresIn(): int;
+ /**
+ * @return 0|positive-int
+ */
public function getEpoch(): int;
}
diff --git a/vendor/spomky-labs/otphp/src/Url.php b/vendor/spomky-labs/otphp/src/Url.php
index 56ad979c5..76919d27a 100644
--- a/vendor/spomky-labs/otphp/src/Url.php
+++ b/vendor/spomky-labs/otphp/src/Url.php
@@ -14,8 +14,11 @@ use function is_string;
final class Url
{
/**
+ * @param non-empty-string $scheme
+ * @param non-empty-string $host
+ * @param non-empty-string $path
* @param non-empty-string $secret
- * @param array<string, mixed> $query
+ * @param array<non-empty-string, mixed> $query
*/
public function __construct(
private readonly string $scheme,
@@ -26,16 +29,25 @@ final class Url
) {
}
+ /**
+ * @return non-empty-string
+ */
public function getScheme(): string
{
return $this->scheme;
}
+ /**
+ * @return non-empty-string
+ */
public function getHost(): string
{
return $this->host;
}
+ /**
+ * @return non-empty-string
+ */
public function getPath(): string
{
return $this->path;
@@ -50,13 +62,16 @@ final class Url
}
/**
- * @return array<string, mixed>
+ * @return array<non-empty-string, mixed>
*/
public function getQuery(): array
{
return $this->query;
}
+ /**
+ * @param non-empty-string $uri
+ */
public static function fromString(string $uri): self
{
$parsed_url = parse_url($uri);
diff --git a/vendor/symfony/polyfill-php81/Resources/stubs/ReturnTypeWillChange.php b/vendor/symfony/polyfill-php81/Resources/stubs/ReturnTypeWillChange.php
index f4cad34f6..cb7720a8d 100644
--- a/vendor/symfony/polyfill-php81/Resources/stubs/ReturnTypeWillChange.php
+++ b/vendor/symfony/polyfill-php81/Resources/stubs/ReturnTypeWillChange.php
@@ -1,5 +1,14 @@
<?php
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
if (\PHP_VERSION_ID < 80100) {
#[Attribute(Attribute::TARGET_METHOD)]
final class ReturnTypeWillChange
diff --git a/vendor/symfony/polyfill-php81/composer.json b/vendor/symfony/polyfill-php81/composer.json
index 014da788e..149b59821 100644
--- a/vendor/symfony/polyfill-php81/composer.json
+++ b/vendor/symfony/polyfill-php81/composer.json
@@ -26,7 +26,7 @@
"minimum-stability": "dev",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
diff --git a/view/css/doubleleft.css b/view/css/doubleleft.css
new file mode 100644
index 000000000..f26b66824
--- /dev/null
+++ b/view/css/doubleleft.css
@@ -0,0 +1,31 @@
+main {
+ position: relative;
+ min-height: 100vh;
+ display: flex;
+ flex-direction: column;
+}
+
+.content {
+ display: flex;
+ flex: 1;
+}
+
+.columns {
+ display: flex;
+ flex:1;
+ min-width: 0;
+}
+
+#region_1 {
+ position: relative;
+ order: 1;
+ padding: 4.5rem 7px 0px 7px;
+}
+
+#region_2 {
+ position: relative;
+ flex: 1;
+ order: 2;
+ padding: 4.5rem 7px 200px 7px;
+ min-width: 0;
+}
diff --git a/view/css/doubleright.css b/view/css/doubleright.css
new file mode 100644
index 000000000..29a09c007
--- /dev/null
+++ b/view/css/doubleright.css
@@ -0,0 +1,31 @@
+main {
+ position: relative;
+ min-height: 100vh;
+ display: flex;
+ flex-direction: column;
+}
+
+.content {
+ display: flex;
+ flex: 1;
+}
+
+.columns {
+ display: flex;
+ flex:1;
+ min-width: 0;
+}
+
+#region_1 {
+ position: relative;
+ flex: 1;
+ order: 1;
+ padding: 4.5rem 7px 200px 7px;
+ min-width: 0;
+}
+
+#region_2 {
+ position: relative;
+ order: 2;
+ padding: 4.5rem 7px 0px 7px;
+}
diff --git a/view/css/mod_directory.css b/view/css/mod_directory.css
index fce3a47fc..775fc3a68 100644
--- a/view/css/mod_directory.css
+++ b/view/css/mod_directory.css
@@ -22,7 +22,7 @@
}
.contact-info-element {
- word-break: break-all;
+ word-break: break-word;
}
.contact-info-label {
diff --git a/view/es-es/hmessages.po b/view/es-es/hmessages.po
index eb2d6fafd..8d4c4ea60 100644
--- a/view/es-es/hmessages.po
+++ b/view/es-es/hmessages.po
@@ -1797,7 +1797,7 @@ msgstr "Insertar enlace web"
#: ../../addon/hsse/hsse.php:99 ../../include/conversation.php:1352
msgid "Embed (existing) photo from your photo albums"
-msgstr "Insertar una foto de sus álbumes"
+msgstr "Insertar una foto (existente) de sus álbumes"
#: ../../addon/hsse/hsse.php:134 ../../include/conversation.php:1385
#: ../../Zotlabs/Module/Chat.php:217
diff --git a/view/es-es/hstrings.php b/view/es-es/hstrings.php
index cb4a70a3d..db074bd4d 100644
--- a/view/es-es/hstrings.php
+++ b/view/es-es/hstrings.php
@@ -321,7 +321,7 @@ App::$strings["Until modified date yyyy-mm-dd"] = "Modificado hasta la fecha yyy
App::$strings["Set your location"] = "Establecer su ubicación";
App::$strings["Clear browser location"] = "Eliminar los datos de localización geográfica del navegador";
App::$strings["Insert web link"] = "Insertar enlace web";
-App::$strings["Embed (existing) photo from your photo albums"] = "Insertar una foto de sus álbumes";
+App::$strings["Embed (existing) photo from your photo albums"] = "Insertar una foto (existente) de sus álbumes";
App::$strings["Please enter a link URL:"] = "Por favor, introduzca la dirección del enlace:";
App::$strings["Tag term:"] = "Término de la etiqueta:";
App::$strings["Where are you right now?"] = "¿Donde está ahora?";
diff --git a/view/js/main.js b/view/js/main.js
index dcdf58396..9c2480795 100644
--- a/view/js/main.js
+++ b/view/js/main.js
@@ -1314,6 +1314,18 @@ function dounsubthread(ident) {
liking = 1;
}
+function moderate_approve(ident) {
+ $('#like-rotator-' + ident.toString()).show();
+ $.get('moderate/' + ident.toString() + '/approve', updateInit );
+ liking = 1;
+}
+
+function moderate_drop(ident) {
+ $('#like-rotator-' + ident.toString()).show();
+ $.get('moderate/' + ident.toString() + '/drop', $('#thread-wrapper-' + ident.toString()).fadeOut(function() { this.remove(); }));
+ liking = 1;
+}
+
function dostar(ident) {
ident = ident.toString();
$('#like-rotator-' + ident).show();
diff --git a/view/php/doubleleft.php b/view/php/doubleleft.php
new file mode 100644
index 000000000..2d1571bf8
--- /dev/null
+++ b/view/php/doubleleft.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * * Name: doubleleft
+ * * Description: Hubzilla 2-column layout with left aside
+ * * Version: 1
+ * * Author: zlax
+ * * Maintainer: zlax
+ * * ContentRegion: aside, left_aside_wrapper
+ * * ContentRegion: content, region_2
+ */
+?>
+<!DOCTYPE html >
+<html prefix="og: http://ogp.me/ns#" <?php if(x($page,'color_mode')) echo $page['color_mode'] ?>>
+<head>
+ <title><?php if(x($page,'title')) echo $page['title'] ?></title>
+ <script>var baseurl="<?php echo z_root() ?>";</script>
+ <?php if(x($page,'htmlhead')) echo $page['htmlhead'] ?>
+</head>
+<body <?php if($page['direction']) echo 'dir="rtl"' ?> >
+ <?php if(x($page,'banner')) echo $page['banner']; ?>
+ <header><?php if(x($page,'header')) echo $page['header']; ?></header>
+ <?php if(x($page,'nav')) echo $page['nav']; ?>
+ <main>
+ <div class="content">
+ <div class="columns">
+ <aside id="region_1"><div class="aside_spacer_top_left"></div><div class="aside_spacer_left"><div id="left_aside_wrapper" class="aside_wrapper"><?php if(x($page,'aside')) echo $page['aside']; ?></div></div></aside>
+ <section id="region_2"><?php if(x($page,'content')) echo $page['content']; ?>
+ <div id="page-footer"></div>
+ <div id="pause"></div>
+ </section>
+ </div>
+ </div>
+ </main>
+ <footer><?php if(x($page,'footer')) echo $page['footer']; ?></footer>
+</body>
+</html>
diff --git a/view/php/doubleright.php b/view/php/doubleright.php
new file mode 100644
index 000000000..d6ae0f960
--- /dev/null
+++ b/view/php/doubleright.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * * Name: default
+ * * Description: Hubzilla 2-column layout with right aside
+ * * Version: 1
+ * * Author: zlax
+ * * Maintainer: zlax
+ * * ContentRegion: content, region_1
+ * * ContentRegion: right_aside, right_aside_wrapper
+ */
+?>
+<!DOCTYPE html >
+<html prefix="og: http://ogp.me/ns#" <?php if(x($page,'color_mode')) echo $page['color_mode'] ?>>
+<head>
+ <title><?php if(x($page,'title')) echo $page['title'] ?></title>
+ <script>var baseurl="<?php echo z_root() ?>";</script>
+ <?php if(x($page,'htmlhead')) echo $page['htmlhead'] ?>
+</head>
+<body <?php if($page['direction']) echo 'dir="rtl"' ?> >
+ <?php if(x($page,'banner')) echo $page['banner']; ?>
+ <header><?php if(x($page,'header')) echo $page['header']; ?></header>
+ <?php if(x($page,'nav')) echo $page['nav']; ?>
+ <main>
+ <div class="content">
+ <div class="columns">
+ <section id="region_1"><?php if(x($page,'content')) echo $page['content']; ?>
+ <div id="page-footer"></div>
+ <div id="pause"></div>
+ </section>
+ <aside id="region_2" class="d-none d-xl-block"><div class="aside_spacer_top_right"></div><div class="aside_spacer_right"><div id="right_aside_wrapper" class="aside_wrapper"><?php if(x($page,'right_aside')) echo $page['right_aside']; ?></div></div></aside>
+ </div>
+ </div>
+ </main>
+ <footer><?php if(x($page,'footer')) echo $page['footer']; ?></footer>
+</body>
+</html>
diff --git a/view/php/full.php b/view/php/full.php
index d855fb650..cb554724a 100644
--- a/view/php/full.php
+++ b/view/php/full.php
@@ -9,7 +9,7 @@
*/
?>
<!DOCTYPE html >
-<html prefix="og: http://ogp.me/ns#">
+<html prefix="og: http://ogp.me/ns#" <?php if(x($page,'color_mode')) echo $page['color_mode'] ?>>
<head>
<title><?php if(x($page,'title')) echo $page['title'] ?></title>
<script>var baseurl="<?php echo z_root() ?>";</script>
diff --git a/view/php/minimal.php b/view/php/minimal.php
index 3fab0c5f9..b21cefc5e 100644
--- a/view/php/minimal.php
+++ b/view/php/minimal.php
@@ -9,7 +9,7 @@
*/
?>
<!DOCTYPE html >
-<html prefix="og: http://ogp.me/ns#">
+<html prefix="og: http://ogp.me/ns#" <?php if(x($page,'color_mode')) echo $page['color_mode'] ?>>
<head>
<title><?php if(x($page,'title')) echo $page['title'] ?></title>
<script>var baseurl="<?php echo z_root() ?>";</script>
diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css
index 1696f10bd..658a3cf6e 100644
--- a/view/theme/redbasic/css/style.css
+++ b/view/theme/redbasic/css/style.css
@@ -255,6 +255,10 @@ input[type=text], textarea {
display: none;
}
+span.spinner {
+ display: block;
+}
+
.spinner.s {
height: 1rem;
width: 1rem;
@@ -1015,14 +1019,10 @@ img.mail-conv-sender-photo {
.wall-item-content-wrapper {
background-color: var(--bs-tertiary-bg);
- border-top-right-radius: var(--bs-border-radius);
- border-top-left-radius: var(--bs-border-radius);
}
.wall-item-content-wrapper.comment {
background-color: var(--bs-body-bg);
- border-top-right-radius: 0px;
- border-top-left-radius: 0px;
}
.hide-comments-outer {
@@ -1199,6 +1199,7 @@ img.mail-conv-sender-photo {
}
.generic-content-wrapper {
+ background-color: var(--bs-body-bg);
border: 1px solid var(--bs-border-color);
border-radius: var(--bs-border-radius);
margin-bottom: 1.5rem;
@@ -1376,7 +1377,6 @@ blockquote {
overflow: auto;
}
-.dropdown-item.active,
.textcomplete-item.active {
color: #fff;
background-color: var(--bs-tertiary-bg);
diff --git a/view/theme/redbasic/schema/Focus-Boxy.css b/view/theme/redbasic/schema/Focus-Boxy.css
index e5f3280f6..df5bf2d75 100644
--- a/view/theme/redbasic/schema/Focus-Boxy.css
+++ b/view/theme/redbasic/schema/Focus-Boxy.css
@@ -25,6 +25,7 @@
}
.vcard-card .card {
+ border: 1px solid var(--bs-border-color);
border-top: 0;
border-right: 0;
border-left: 0;
diff --git a/view/tpl/cal_calendar.tpl b/view/tpl/cal_calendar.tpl
index 68ec318bd..2f3140ce3 100644
--- a/view/tpl/cal_calendar.tpl
+++ b/view/tpl/cal_calendar.tpl
@@ -86,7 +86,7 @@ function updateSize() {
<div class="float-end">
<div class="btn-group">
<button id="prev-btn" class="btn btn-outline-secondary btn-sm" title="{{$prev}}"><i class="fa fa-backward"></i></button>
- <button id="today-btn" class="btn btn-outline-secondary btn-sm" title="{{$today}}"><div id="events-spinner" class="spinner s"></div><i class="fa fa-bullseye" style="display: none; width: 1rem;"></i></button>
+ <button id="today-btn" class="btn btn-outline-secondary btn-sm" title="{{$today}}"><span id="events-spinner" class="spinner s"></span><i class="fa fa-bullseye" style="display: none; width: 1rem;"></i></button>
<button id="next-btn" class="btn btn-outline-secondary btn-sm" title="{{$next}}"><i class="fa fa-forward"></i></button>
</div>
<button id="fullscreen-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen();"><i class="fa fa-expand"></i></button>
diff --git a/view/tpl/cdav_calendar.tpl b/view/tpl/cdav_calendar.tpl
index edfa2a422..88aa0789d 100644
--- a/view/tpl/cdav_calendar.tpl
+++ b/view/tpl/cdav_calendar.tpl
@@ -357,8 +357,16 @@ $(document).ready(function() {
$('#calendar_select').val('channel_calendar').attr('disabled', true);
$('#id_title').val(resource.summary);
- $('#id_dtstart').val(new Date(resource.dtstart).toUTCString().slice(0, -4));
- $('#id_dtend').val(new Date(resource.dtend).toUTCString().slice(0, -4));
+
+ // A hack to match with internal workings of fullcalendar.
+ // See https://fullcalendar.io/docs/timeZone#UTC-coercion
+ let start_d = new Date(resource.dtstart);
+ let start_o = start_d.getTimezoneOffset();
+ let end_d = new Date(resource.dtend);
+ let end_o = start_d.getTimezoneOffset();
+ $('#id_dtstart').val(new Date(start_d - start_o * 60000).toUTCString().slice(0, -4));
+ $('#id_dtend').val(new Date(end_d - end_o * 60000).toUTCString().slice(0, -4));
+
$('#id_categories').tagsinput('add', '{{$categories}}'),
$('#id_description').val(resource.description);
$('#id_location').val(resource.location);
@@ -572,17 +580,17 @@ function exportDate() {
<div class="dropdown">
<button id="view_selector" type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown"></button>
<div class="dropdown-menu">
- <a class="dropdown-item" href="#" onclick="changeView('dayGridMonth'); return false;">{{$month}}</a></li>
- <a class="dropdown-item" href="#" onclick="changeView('timeGridWeek'); return false;">{{$week}}</a></li>
- <a class="dropdown-item" href="#" onclick="changeView('timeGridDay'); return false;">{{$day}}</a></li>
+ <a class="dropdown-item" href="#" onclick="changeView('dayGridMonth'); return false;">{{$month}}</a>
+ <a class="dropdown-item" href="#" onclick="changeView('timeGridWeek'); return false;">{{$week}}</a>
+ <a class="dropdown-item" href="#" onclick="changeView('timeGridDay'); return false;">{{$day}}</a>
<div class="dropdown-divider"></div>
- <a class="dropdown-item" href="#" onclick="changeView('listMonth'); return false;">{{$list_month}}</a></li>
- <a class="dropdown-item" href="#" onclick="changeView('listWeek'); return false;">{{$list_week}}</a></li>
- <a class="dropdown-item" href="#" onclick="changeView('listDay'); return false;">{{$list_day}}</a></li>
+ <a class="dropdown-item" href="#" onclick="changeView('listMonth'); return false;">{{$list_month}}</a>
+ <a class="dropdown-item" href="#" onclick="changeView('listWeek'); return false;">{{$list_week}}</a>
+ <a class="dropdown-item" href="#" onclick="changeView('listDay'); return false;">{{$list_day}}</a>
</div>
<div class="btn-group">
<button id="prev-btn" class="btn btn-outline-secondary btn-sm" title="{{$prev}}"><i class="fa fa-backward"></i></button>
- <button id="today-btn" class="btn btn-outline-secondary btn-sm" title="{{$today}}"><div id="events-spinner" class="spinner s"></div><i class="fa fa-bullseye" style="display: none; width: 1rem;"></i></button>
+ <button id="today-btn" class="btn btn-outline-secondary btn-sm" title="{{$today}}"><span id="events-spinner" class="spinner s"></span><i class="fa fa-bullseye" style="display: none; width: 1rem;"></i></button>
<button id="next-btn" class="btn btn-outline-secondary btn-sm" title="{{$next}}"><i class="fa fa-forward"></i></button>
</div>
<button id="fullscreen-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen();"><i class="fa fa-expand"></i></button>
diff --git a/view/tpl/cloud_directory.tpl b/view/tpl/cloud_directory.tpl
index 587adaeea..7bc298203 100644
--- a/view/tpl/cloud_directory.tpl
+++ b/view/tpl/cloud_directory.tpl
@@ -173,7 +173,7 @@
<a id="cloud-tool-dir-download-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-dir-download-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-cloud-download"></i> {{$download_label}}</a>
{{else}}
{{if $is_owner}}
- <a id="cloud-tool-share-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-share-btn" href="/rpost?attachment=[attachment]{{$item.resource}},{{$item.revision}}[/attachment]&acl[allow_cid]={{$item.raw_allow_cid}}&acl[allow_gid]={{$item.raw_allow_gid}}&acl[deny_cid]={{$item.raw_deny_cid}}&acl[deny_gid]={{$item.raw_deny_gid}}" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-share-square-o"></i> {{$post_label}}</a>
+ <a id="cloud-tool-share-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-share-btn" href="/rpost?attachment=[attachment]{{$item.resource}},{{$item.revision}}[/attachment]" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-share-square-o"></i> {{$post_label}}</a>
{{/if}}
<a download="{{$item.name}}" id="cloud-tool-download-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-download-btn" href="/attach/{{$item.resource}}" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-cloud-download"></i> {{$download_label}}</a>
{{/if}}
diff --git a/view/tpl/conv_item.tpl b/view/tpl/conv_item.tpl
index 3f760998d..5f6c4f6c6 100644
--- a/view/tpl/conv_item.tpl
+++ b/view/tpl/conv_item.tpl
@@ -7,7 +7,7 @@
<div id="thread-wrapper-{{$item.id}}" class="thread-wrapper{{if $item.toplevel}} {{$item.toplevel}} generic-content-wrapper h-entry {{else}} u-comment h-cite{{/if}}" data-b64mids='{{$item.mids}}'>
<a name="item_{{$item.id}}" ></a>
<div class="wall-item-outside-wrapper{{if $item.is_comment}} comment{{/if}}{{if $item.previewing}} preview{{/if}}" id="wall-item-outside-wrapper-{{$item.id}}" >
- <div class="clearfix wall-item-content-wrapper{{if $item.is_comment}} comment{{/if}}" id="wall-item-content-wrapper-{{$item.id}}">
+ <div class="rounded clearfix wall-item-content-wrapper{{if $item.is_comment}} comment{{/if}}" id="wall-item-content-wrapper-{{$item.id}}">
{{if $item.photo}}
<div class="wall-photo-item" id="wall-photo-item-{{$item.id}}">
{{$item.photo}}
@@ -120,6 +120,10 @@
</div>
</div>
{{/if}}
+ {{if $item.moderate}}
+ <a href="moderate/{{$item.id}}/approve" onclick="moderate_approve({{$item.id}}); return false;" class="btn btn-sm btn-outline-success"><i class="fa fa-check" ></i> {{$item.moderate_approve}}</a>
+ <a href="moderate/{{$item.id}}/drop" onclick="moderate_drop({{$item.id}}); return false;" class="btn btn-sm btn-outline-danger"><i class="fa fa-trash-o" ></i> {{$item.moderate_delete}}</a>
+ {{else}}
<div class="btn-group">
{{if $item.like}}
<button type="button" title="{{$item.like.0}}" class="btn btn-outline-secondary btn-sm" onclick="dolike({{$item.id}},'like'); return false;">
@@ -230,6 +234,7 @@
</div>
</div>
</div>
+ {{/if}}
</div>
{{if $item.responses || $item.attachments}}
diff --git a/view/tpl/mail_conv.tpl b/view/tpl/mail_conv.tpl
deleted file mode 100644
index 948890312..000000000
--- a/view/tpl/mail_conv.tpl
+++ /dev/null
@@ -1,40 +0,0 @@
-<div id="mail-{{$mail.id}}" class="mb-2 clearfix mail-conv-outside-wrapper"{{if $mail.sig}} data-sig="{{$mail.sig}}"{{/if}}>
- <div class="mb-2 clearfix wall-item-head">
- <div class="wall-item-info" >
- <a href="{{$mail.from_url}}"><img class="wall-item-photo" src="{{$mail.from_photo}}" alt="{{$mail.from_name}}" /></a>
- </div>
- <div class="mail-conv-detail">
- {{if $mail.is_recalled}}<strong>{{$mail.is_recalled}}</strong>{{/if}}
- <div class="wall-item-name"><a class="wall-item-name-link" href="{{$mail.from_url}}">{{$mail.from_name}}</a></div>
- <div class="autotime wall-item-ago" title="{{$mail.date}}"></div>
- </div>
- </div>
- <div class="clearfix mail-conv-content">
- <div class="clearfix mail-conv-body">
- {{$mail.body}}
- </div>
- {{if $mail.attachments}}
- <div class="dropdown float-start">
- <button type="button" class="btn btn-outline-secondary btn-sm wall-item-like dropdown-toggle" data-bs-toggle="dropdown" id="attachment-menu-{{$item.id}}"><i class="fa fa-fw fa-paperclip"></i></button>
- <div class="dropdown-menu" role="menu" aria-labelledby="attachment-menu-{{$item.id}}">{{$mail.attachments}}</div>
- </div>
- {{/if}}
- <div class="float-end dropdown">
- <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown" id="mail-item-menu-{{$mail.id}}">
- <i class="fa fa-cog"></i>
- </button>
- <div class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="mail-item-menu-{{$mail.id}}">
- {{** if $mail.can_recall}}
- <a class="dropdown-item" href="mail/{{$mail.mailbox}}/recall/{{$mail.id}}" title="{{$mail.recall}}" id="mail-conv-recall-icon-{{$mail.id}}"><i class="fa fa-fw fa-undo"></i>&nbsp;{{$mail.recall}}</a>
- {{/if **}}
- <a class="dropdown-item" href="mail/{{$mail.id}}/download" id="mail-conv-download-icon-{{$mail.id}}"><i class="fa fa-fw fa-download"></i>&nbsp;{{$mail.download}}</a>
- <div class="dropdown-divider"></div>
- <a class="dropdown-item" href="#" onclick="dropItem('mail/{{$mail.mailbox}}/drop/{{$mail.id}}', '#mail-{{$mail.id}}'); return false;" title="{{$mail.delete}}" id="mail-conv-delete-icon-{{$mail.id}}"><i class="fa fa-fw fa-trash-o"></i>&nbsp;{{$mail.delete}}</a>
- {{if $mail.can_recall}}
- <div class="dropdown-divider"></div>
- <a class="dropdown-item" href="dreport/mail/{{$mail.mid}}" title="{{$mail.dreport}}" id="mail-conv-dreport-icon-{{$mail.id}}">{{$mail.dreport}}</a>
- {{/if}}
- </div>
- </div>
- </div>
-</div>
diff --git a/view/tpl/mail_display.tpl b/view/tpl/mail_display.tpl
deleted file mode 100644
index 80ce40838..000000000
--- a/view/tpl/mail_display.tpl
+++ /dev/null
@@ -1,24 +0,0 @@
-<div class="generic-content-wrapper">
- <div class="section-title-wrapper">
- <div class="float-end">
- <button id="fullscreen-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen();"><i class="fa fa-expand"></i></button>
- <button id="inline-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen(false);"><i class="fa fa-compress"></i></button>
- {{if $mailbox == 'combined'}}
- <a class="btn btn-sm btn-danger" href="mail/{{$mailbox}}/dropconv/{{$thread_id}}" onclick="return confirmDelete();"><i class="fa fa-trash-o"></i> {{$delete}}</a>
- {{/if}}
- </div>
- <h2>{{$prvmsg_header}}</h2>
- <div class="clear"></div>
- </div>
- <div class="section-content-wrapper">
- {{foreach $mails as $mail}}
- {{include file="mail_conv.tpl"}}
- {{/foreach}}
-
- {{if $canreply}}
- {{include file="prv_message.tpl"}}
- {{else}}
- {{$unknown_text}}
- {{/if}}
- </div>
-</div>
diff --git a/view/tpl/mail_head.tpl b/view/tpl/mail_head.tpl
deleted file mode 100644
index aac592a5f..000000000
--- a/view/tpl/mail_head.tpl
+++ /dev/null
@@ -1,8 +0,0 @@
-<div class="widget">
- <h3>{{$header}}</h3>
- <ul class="nav nav-pills flex-column">
- {{foreach $messages as $message}}
- {{include file="mail_list.tpl"}}
- {{/foreach}}
- </ul>
-</div>
diff --git a/view/tpl/mail_list.tpl b/view/tpl/mail_list.tpl
deleted file mode 100644
index a1784e1e6..000000000
--- a/view/tpl/mail_list.tpl
+++ /dev/null
@@ -1,7 +0,0 @@
-<li class="nav-item">
- <a href="mail/{{$message.mailbox}}/{{$message.id}}" class="nav-link{{if $message.selected}} active{{/if}}">
- <span class="{{if ! $message.seen || $message.selected}}font-weight-bold{{/if}}">{{$message.subject}}</span><br>
- <span class="conv-participants">{{$message.from_name}} > {{$message.to_name}}</span><br>
- <span class="wall-item-ago autotime" title="{{$message.date}}"></span>
- </a>
-</li>
diff --git a/view/tpl/message_side.tpl b/view/tpl/message_side.tpl
deleted file mode 100644
index a45d1d177..000000000
--- a/view/tpl/message_side.tpl
+++ /dev/null
@@ -1,11 +0,0 @@
-<div class="widget">
- <h3>{{$title}}</h3>
- <ul class="nav nav-pills flex-column">
- <li class="nav-item"><a href="{{$combined.url}}" class="nav-link{{if $combined.sel}} active{{/if}}">{{$combined.label}}</a></li>
- <li class="nav-item"><a href="{{$inbox.url}}" class="nav-link{{if $inbox.sel}} active{{/if}}">{{$inbox.label}}</a></li>
- <li class="nav-item"><a href="{{$outbox.url}}" class="nav-link{{if $outbox.sel}} active{{/if}}">{{$outbox.label}}</a></li>
-{{**
- <li class="nav-item"><a href="{{$new.url}}" class="nav-link{{if $new.sel}} active{{/if}}">{{$new.label}}</a></li>
-**}}
- </ul>
-</div>
diff --git a/view/tpl/msg-header.tpl b/view/tpl/msg-header.tpl
deleted file mode 100644
index d49303453..000000000
--- a/view/tpl/msg-header.tpl
+++ /dev/null
@@ -1,82 +0,0 @@
-{{**
-<script src="vendor/blueimp/jquery-file-upload/js/vendor/jquery.ui.widget.js"></script>
-<script src="vendor/blueimp/jquery-file-upload/js/jquery.iframe-transport.js"></script>
-<script src="vendor/blueimp/jquery-file-upload/js/jquery.fileupload.js"></script>
-<script>
- $(document).ready(function() {
-
- $("#prvmail-text").editor_autocomplete(baseurl+"/acl");
-
- $('#invisible-wall-file-upload').fileupload({
- url: 'wall_attach/{{$nickname}}',
- dataType: 'json',
- dropZone: $('#prvmail-text'),
- maxChunkSize: 4 * 1024 * 1024,
- add: function(e,data) {
- $('#prvmail-rotator').show();
- data.submit();
- },
- done: function(e,data) {
- addmailtext(data.result.message);
- $('#jot-media').val($('#jot-media').val() + data.result.message);
- },
- stop: function(e,data) {
- preview_mail();
- $('#prvmail-rotator').hide();
- },
- });
-
- $('#prvmail-attach-wrapper').click(function(event) { event.preventDefault(); $('#invisible-wall-file-upload').trigger('click'); return false;});
- $('#prvmail-attach-sub').click(function(event) { event.preventDefault(); $('#invisible-wall-file-upload').trigger('click'); return false;});
-
-
- });
-
- function prvmailJotGetLink() {
- reply = prompt("{{$linkurl}}");
- if(reply && reply.length) {
- $('#prvmail-rotator').show();
- $.get('linkinfo?f=&url=' + reply, function(data) {
- addmailtext(data);
- preview_mail();
- $('#prvmail-rotator').hide();
- });
- }
- }
-
- function prvmailGetExpiry() {
- reply = prompt("{{$expireswhen}}", $('#inp-prvmail-expires').val());
- if(reply && reply.length) {
- $('#inp-prvmail-expires').val(reply);
- }
- }
-
- function linkdropper(event) {
- var linkFound = event.dataTransfer.types.contains("text/uri-list");
- if(linkFound)
- event.preventDefault();
- }
-
- function linkdrop(event) {
- var reply = event.dataTransfer.getData("text/uri-list");
- event.target.textContent = reply;
- event.preventDefault();
- if(reply && reply.length) {
- $('#prvmail-rotator').show();
- $.get('linkinfo?f=&url=' + reply, function(data) {
- addmailtext(data);
- preview_mail();
- $('#prvmail-rotator').hide();
- });
- }
- }
-
- function addmailtext(data) {
- var currentText = $("#prvmail-text").val();
- $("#prvmail-text").val(currentText + data);
- }
-
-
-
-</script>
-**}}
diff --git a/view/tpl/navbar_default.tpl b/view/tpl/navbar_default.tpl
index c0bcd02c2..ea8723e8b 100644
--- a/view/tpl/navbar_default.tpl
+++ b/view/tpl/navbar_default.tpl
@@ -187,7 +187,7 @@
{{if $name}}
<img src="{{$thumb}}" class="menu-img-3">
<div class="p-1">
- <div class="fn text-truncate">{{$name}}</div>
+ <div class="fw-bold text-truncate">{{$name}}</div>
<div class="text-muted text-truncate">{{$sitelocation}}</div>
</div>
{{/if}}
diff --git a/view/tpl/profile_vcard.tpl b/view/tpl/profile_vcard.tpl
index 6cf40bf79..37339a40a 100644
--- a/view/tpl/profile_vcard.tpl
+++ b/view/tpl/profile_vcard.tpl
@@ -48,10 +48,10 @@
{{/if}}
</div>
</div>
- {{if $details}}
- <div class="vcard ps-2 pe-2">
+ {{if $details && ($location || $hometown || $gender || $marital || $homepage)}}
+ <div class="vcard rounded ps-2 pe-2">
{{if $location}}
- <dl class="mb-0 pb-1">
+ <dl class="mb-0 pb-1 rounded">
<dt class="location-label">{{$location}}</dt>
<dd class="adr h-adr">
{{if $profile.address}}
@@ -71,30 +71,30 @@
</dl>
{{/if}}
{{if $hometown}}
- <dl class="mb-0 pb-1">
+ <dl class="mb-0 pb-1 rounded">
<dt class="hometown-label">{{$hometown}}</dt>
<dd class="p-hometown">{{$profile.hometown}}</dd>
</dl>
{{/if}}
{{if $gender}}
- <dl class="mb-0 pb-1">
+ <dl class="mb-0 pb-1 rounded">
<dt class="gender-label">{{$gender}}</dt>
<dd class="p-gender">{{if $profile.gender_icon}}<i class="fa fa-{{$profile.gender_icon}}"></i>&nbsp;{{/if}}{{$profile.gender}}</dd>
</dl>
{{/if}}
{{if $marital}}
- <dl class="mb-0 pb-1">
+ <dl class="mb-0 pb-1 rounded">
<dt class="marital-label"><span class="heart"><i class="fa fa-heart"></i>&nbsp;</span>{{$marital}}</dt>
<dd class="marital-text">{{$profile.marital}}</dd>
</dl>
{{/if}}
{{if $homepage}}
- <dl class="mb-0 pb-1">
+ <dl class="mb-0 pb-1 rounded">
<dt class="homepage-label">{{$homepage}}</dt>
<dd class="homepage-url u-url">{{$profile.homepage}}</dd>
</dl>
{{/if}}
- <div class="hcard-addon"></div>
+ <div class="hcard-addon rounded"></div>
</div>
{{/if}}
</div>
diff --git a/view/tpl/search_item.tpl b/view/tpl/search_item.tpl
index b2a99b64a..da5bac5dc 100644
--- a/view/tpl/search_item.tpl
+++ b/view/tpl/search_item.tpl
@@ -107,6 +107,10 @@
<div class="spinner s"></div>
</div>
</div>
+ {{if $item.mode === 'moderate'}}
+ <a href="moderate/{{$item.id}}/approve" class="btn btn-outline-success btn-sm">{{$item.approve}}</a>
+ <a href="moderate/{{$item.id}}/drop" class="btn btn-outline-danger btn-sm">{{$item.delete}}</a>
+ {{else}}
{{if $item.star || $item.thread_action_menu || $item.drop.dropping}}
<div class="btn-group">
<button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-bs-toggle="dropdown">
@@ -127,6 +131,7 @@
</div>
</div>
{{/if}}
+ {{/if}}
</div>
{{if $item.star && $item.star.isstarred}}
<div class="btn-group" id="star-button-{{$item.id}}">
@@ -139,14 +144,6 @@
<div class="dropdown-menu">{{$item.attachments}}</div>
</div>
{{/if}}
-
- <div class="wall-item-tools-left btn-group" id="wall-item-tools-left-{{$item.id}}">
- {{if $item.mode === 'moderate'}}
- <a href="moderate/{{$item.id}}/approve" class="btn btn-success btn-sm">{{$item.approve}}</a>
- <a href="moderate/{{$item.id}}/drop" class="btn btn-danger btn-sm">{{$item.delete}}</a>
- {{/if}}
- </div>
-
</div>
</div>
{{if $item.conv}}
diff --git a/view/tpl/settings_privacy.tpl b/view/tpl/settings_privacy.tpl
index 77d125e41..03224ae65 100644
--- a/view/tpl/settings_privacy.tpl
+++ b/view/tpl/settings_privacy.tpl
@@ -11,6 +11,8 @@
{{include file="field_checkbox.tpl" field=$index_opt_out}}
{{include file="field_checkbox.tpl" field=$autoperms}}
{{include file="field_checkbox.tpl" field=$permit_all_mentions}}
+ {{include file="field_checkbox.tpl" field=$moderate_unsolicited_comments}}
+ {{include file="field_checkbox.tpl" field=$ocap_enabled}}
{{if $sec_addon}}
{{$sec_addon}}