@kne-components/components-core 0.1.13 → 0.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/build/asset-manifest.json +146 -146
  2. package/build/index.html +1 -1
  3. package/build/remoteEntry.js +1 -1
  4. package/build/remoteEntry.js.map +1 -1
  5. package/build/static/css/1151.7685055d.chunk.css +2 -0
  6. package/build/static/css/{1151.ec1bbfc0.chunk.css.map → 1151.7685055d.chunk.css.map} +1 -1
  7. package/build/static/css/1153.5d7ebb6e.chunk.css +2 -0
  8. package/build/static/css/{1153.bd20b743.chunk.css.map → 1153.5d7ebb6e.chunk.css.map} +1 -1
  9. package/build/static/css/1454.58495e5b.chunk.css +2 -0
  10. package/build/static/css/{1454.c0a0991e.chunk.css.map → 1454.58495e5b.chunk.css.map} +1 -1
  11. package/build/static/css/1554.0d3e06d3.chunk.css +2 -0
  12. package/build/static/css/{1554.a585edf1.chunk.css.map → 1554.0d3e06d3.chunk.css.map} +1 -1
  13. package/build/static/css/192.d05ba773.chunk.css +2 -0
  14. package/build/static/css/{192.73637503.chunk.css.map → 192.d05ba773.chunk.css.map} +1 -1
  15. package/build/static/css/1932.294b9127.chunk.css +2 -0
  16. package/build/static/css/{1932.0bf35bc9.chunk.css.map → 1932.294b9127.chunk.css.map} +1 -1
  17. package/build/static/css/{2503.48eb44fa.chunk.css → 2503.9770bf73.chunk.css} +2 -2
  18. package/build/static/css/{2503.48eb44fa.chunk.css.map → 2503.9770bf73.chunk.css.map} +1 -1
  19. package/build/static/css/{2517.5b666562.chunk.css → 2517.fa9b1397.chunk.css} +2 -2
  20. package/build/static/css/{2517.5b666562.chunk.css.map → 2517.fa9b1397.chunk.css.map} +1 -1
  21. package/build/static/css/2637.9ad7cbc2.chunk.css +2 -0
  22. package/build/static/css/2637.9ad7cbc2.chunk.css.map +1 -0
  23. package/build/static/css/2716.1f3e3207.chunk.css +2 -0
  24. package/build/static/css/{2716.6f49ddb5.chunk.css.map → 2716.1f3e3207.chunk.css.map} +1 -1
  25. package/build/static/css/{2730.e0efe797.chunk.css → 2730.ef220620.chunk.css} +2 -2
  26. package/build/static/css/{2730.e0efe797.chunk.css.map → 2730.ef220620.chunk.css.map} +1 -1
  27. package/build/static/css/2921.45c14b75.chunk.css +2 -0
  28. package/build/static/css/2921.45c14b75.chunk.css.map +1 -0
  29. package/build/static/css/3333.77e4fcf9.chunk.css +2 -0
  30. package/build/static/css/{3333.7d0ae50b.chunk.css.map → 3333.77e4fcf9.chunk.css.map} +1 -1
  31. package/build/static/css/{3843.ea9110c1.chunk.css → 3843.6ce81d34.chunk.css} +2 -2
  32. package/build/static/css/{3843.ea9110c1.chunk.css.map → 3843.6ce81d34.chunk.css.map} +1 -1
  33. package/build/static/css/4666.586a9ec3.chunk.css +2 -0
  34. package/build/static/css/{4666.6b5dde12.chunk.css.map → 4666.586a9ec3.chunk.css.map} +1 -1
  35. package/build/static/css/5196.5d237736.chunk.css +2 -0
  36. package/build/static/css/{5196.29f6749e.chunk.css.map → 5196.5d237736.chunk.css.map} +1 -1
  37. package/build/static/css/5362.aa21dd87.chunk.css +2 -0
  38. package/build/static/css/{5362.db0ec87d.chunk.css.map → 5362.aa21dd87.chunk.css.map} +1 -1
  39. package/build/static/css/5600.2dcdbcf2.chunk.css +2 -0
  40. package/build/static/css/{5600.bc21bda7.chunk.css.map → 5600.2dcdbcf2.chunk.css.map} +1 -1
  41. package/build/static/css/5673.7ebd0210.chunk.css +2 -0
  42. package/build/static/css/{5673.79f68b31.chunk.css.map → 5673.7ebd0210.chunk.css.map} +1 -1
  43. package/build/static/css/5941.bdec1678.chunk.css +2 -0
  44. package/build/static/css/5941.bdec1678.chunk.css.map +1 -0
  45. package/build/static/css/{5996.a2ddbe9b.chunk.css → 5996.1b216b52.chunk.css} +2 -2
  46. package/build/static/css/{5996.a2ddbe9b.chunk.css.map → 5996.1b216b52.chunk.css.map} +1 -1
  47. package/build/static/css/7227.f9016cca.chunk.css +2 -0
  48. package/build/static/css/{7227.c8f5f467.chunk.css.map → 7227.f9016cca.chunk.css.map} +1 -1
  49. package/build/static/css/8148.a0719bd9.chunk.css +2 -0
  50. package/build/static/css/8148.a0719bd9.chunk.css.map +1 -0
  51. package/build/static/css/{8725.baf97c0e.chunk.css → 8725.f40145d8.chunk.css} +2 -2
  52. package/build/static/css/{8725.baf97c0e.chunk.css.map → 8725.f40145d8.chunk.css.map} +1 -1
  53. package/build/static/css/9053.7b37e027.chunk.css +2 -0
  54. package/build/static/css/{9053.6a1a6919.chunk.css.map → 9053.7b37e027.chunk.css.map} +1 -1
  55. package/build/static/css/931.91d9fab7.chunk.css +2 -0
  56. package/build/static/css/{931.7a220088.chunk.css.map → 931.91d9fab7.chunk.css.map} +1 -1
  57. package/build/static/css/9689.42a0661f.chunk.css +2 -0
  58. package/build/static/css/{9689.7397d527.chunk.css.map → 9689.42a0661f.chunk.css.map} +1 -1
  59. package/build/static/css/9911.2e27b159.chunk.css +2 -0
  60. package/build/static/css/{9911.75d3b627.chunk.css.map → 9911.2e27b159.chunk.css.map} +1 -1
  61. package/build/static/js/{1153.0d52625e.chunk.js → 1153.d7532da7.chunk.js} +3 -3
  62. package/build/static/js/{1153.0d52625e.chunk.js.map → 1153.d7532da7.chunk.js.map} +1 -1
  63. package/build/static/js/1454.664aac87.chunk.js +3 -0
  64. package/build/static/js/{1454.c087b2eb.chunk.js.map → 1454.664aac87.chunk.js.map} +1 -1
  65. package/build/static/js/1554.12b6d54b.chunk.js +3 -0
  66. package/build/static/js/{1554.2e647156.chunk.js.map → 1554.12b6d54b.chunk.js.map} +1 -1
  67. package/build/static/js/{1664.169d6c37.chunk.js → 1664.6b6f85c6.chunk.js} +2 -2
  68. package/build/static/js/{1664.169d6c37.chunk.js.map → 1664.6b6f85c6.chunk.js.map} +1 -1
  69. package/build/static/js/{192.db4b6754.chunk.js → 192.01a6f575.chunk.js} +2 -2
  70. package/build/static/js/{192.db4b6754.chunk.js.map → 192.01a6f575.chunk.js.map} +1 -1
  71. package/build/static/js/{1922.c52450c3.chunk.js → 1922.e69b6391.chunk.js} +2 -2
  72. package/build/static/js/1922.e69b6391.chunk.js.map +1 -0
  73. package/build/static/js/1932.9fd15c7e.chunk.js +2 -0
  74. package/build/static/js/{1932.a0e955f3.chunk.js.map → 1932.9fd15c7e.chunk.js.map} +1 -1
  75. package/build/static/js/2503.e749e723.chunk.js +2 -0
  76. package/build/static/js/2503.e749e723.chunk.js.map +1 -0
  77. package/build/static/js/2517.9555a943.chunk.js +2 -0
  78. package/build/static/js/{2517.bfbef0e3.chunk.js.map → 2517.9555a943.chunk.js.map} +1 -1
  79. package/build/static/js/{2637.4a57844b.chunk.js → 2637.14b830e7.chunk.js} +2 -2
  80. package/build/static/js/2637.14b830e7.chunk.js.map +1 -0
  81. package/build/static/js/2716.1d4a549a.chunk.js +3 -0
  82. package/build/static/js/{2716.303242fa.chunk.js.map → 2716.1d4a549a.chunk.js.map} +1 -1
  83. package/build/static/js/2730.fec3f6af.chunk.js +2 -0
  84. package/build/static/js/{2730.40a28c60.chunk.js.map → 2730.fec3f6af.chunk.js.map} +1 -1
  85. package/build/static/js/2921.81b04b80.chunk.js +2 -0
  86. package/build/static/js/2921.81b04b80.chunk.js.map +1 -0
  87. package/build/static/js/{2950.5e36a971.chunk.js → 2950.ba94676e.chunk.js} +2 -2
  88. package/build/static/js/{2950.5e36a971.chunk.js.map → 2950.ba94676e.chunk.js.map} +1 -1
  89. package/build/static/js/3245.e987bbef.chunk.js +3 -0
  90. package/build/static/js/{3245.3eeca0e4.chunk.js.LICENSE.txt → 3245.e987bbef.chunk.js.LICENSE.txt} +3 -3
  91. package/build/static/js/3245.e987bbef.chunk.js.map +1 -0
  92. package/build/static/js/{3333.40a6c257.chunk.js → 3333.74a81fea.chunk.js} +2 -2
  93. package/build/static/js/{3333.40a6c257.chunk.js.map → 3333.74a81fea.chunk.js.map} +1 -1
  94. package/build/static/js/3805.8b4f9a3a.chunk.js +2 -0
  95. package/build/static/js/3805.8b4f9a3a.chunk.js.map +1 -0
  96. package/build/static/js/{3843.a9b49a31.chunk.js → 3843.0a60bb49.chunk.js} +2 -2
  97. package/build/static/js/{3843.a9b49a31.chunk.js.map → 3843.0a60bb49.chunk.js.map} +1 -1
  98. package/build/static/js/4168.cb27218c.chunk.js +2 -0
  99. package/build/static/js/4168.cb27218c.chunk.js.map +1 -0
  100. package/build/static/js/4666.918bc59c.chunk.js +2 -0
  101. package/build/static/js/{4666.d14420a6.chunk.js.map → 4666.918bc59c.chunk.js.map} +1 -1
  102. package/build/static/js/5196.ea53bdcd.chunk.js +2 -0
  103. package/build/static/js/{5196.a2cba1ec.chunk.js.map → 5196.ea53bdcd.chunk.js.map} +1 -1
  104. package/build/static/js/5362.955d4a28.chunk.js +3 -0
  105. package/build/static/js/{5362.5fc27935.chunk.js.map → 5362.955d4a28.chunk.js.map} +1 -1
  106. package/build/static/js/5600.aaecbab3.chunk.js +2 -0
  107. package/build/static/js/{5600.85ba4bf2.chunk.js.map → 5600.aaecbab3.chunk.js.map} +1 -1
  108. package/build/static/js/{5673.1fab0476.chunk.js → 5673.2770297c.chunk.js} +2 -2
  109. package/build/static/js/{5673.1fab0476.chunk.js.map → 5673.2770297c.chunk.js.map} +1 -1
  110. package/build/static/js/5941.d4d1dad5.chunk.js +2 -0
  111. package/build/static/js/5941.d4d1dad5.chunk.js.map +1 -0
  112. package/build/static/js/5996.4870d600.chunk.js +2 -0
  113. package/build/static/js/{5996.71e827a6.chunk.js.map → 5996.4870d600.chunk.js.map} +1 -1
  114. package/build/static/js/6213.dd73c376.chunk.js +2 -0
  115. package/build/static/js/6213.dd73c376.chunk.js.map +1 -0
  116. package/build/static/js/6499.afdde7b5.chunk.js +2 -0
  117. package/build/static/js/6499.afdde7b5.chunk.js.map +1 -0
  118. package/build/static/js/6900.7c1ed7ed.chunk.js +2 -0
  119. package/build/static/js/6900.7c1ed7ed.chunk.js.map +1 -0
  120. package/build/static/js/7227.a49f4250.chunk.js +3 -0
  121. package/build/static/js/{7227.4db45669.chunk.js.map → 7227.a49f4250.chunk.js.map} +1 -1
  122. package/build/static/js/7285.58da05db.chunk.js +2 -0
  123. package/build/static/js/7285.58da05db.chunk.js.map +1 -0
  124. package/build/static/js/7777.0c5175a2.chunk.js +2 -0
  125. package/build/static/js/{7777.55b9c954.chunk.js.map → 7777.0c5175a2.chunk.js.map} +1 -1
  126. package/build/static/js/{8016.ffba9f87.chunk.js → 8016.402ea860.chunk.js} +2 -2
  127. package/build/static/js/{8016.ffba9f87.chunk.js.map → 8016.402ea860.chunk.js.map} +1 -1
  128. package/build/static/js/{8111.97de8531.chunk.js → 8111.d6e9abcd.chunk.js} +2 -2
  129. package/build/static/js/{8111.97de8531.chunk.js.map → 8111.d6e9abcd.chunk.js.map} +1 -1
  130. package/build/static/js/8148.8cdb53e4.chunk.js +3 -0
  131. package/build/static/js/8148.8cdb53e4.chunk.js.map +1 -0
  132. package/build/static/js/{8151.e9794f31.chunk.js → 8151.bc656841.chunk.js} +2 -2
  133. package/build/static/js/{8151.e9794f31.chunk.js.map → 8151.bc656841.chunk.js.map} +1 -1
  134. package/build/static/js/8267.7fe589b0.chunk.js +2 -0
  135. package/build/static/js/{8267.a19b2789.chunk.js.map → 8267.7fe589b0.chunk.js.map} +1 -1
  136. package/build/static/js/8564.8f01b47a.chunk.js +2 -0
  137. package/build/static/js/8564.8f01b47a.chunk.js.map +1 -0
  138. package/build/static/js/{8725.8c209220.chunk.js → 8725.6ae3fe5a.chunk.js} +2 -2
  139. package/build/static/js/{8725.8c209220.chunk.js.map → 8725.6ae3fe5a.chunk.js.map} +1 -1
  140. package/build/static/js/{9053.94b035ac.chunk.js → 9053.d313b308.chunk.js} +3 -3
  141. package/build/static/js/{9053.94b035ac.chunk.js.map → 9053.d313b308.chunk.js.map} +1 -1
  142. package/build/static/js/{931.75a9d316.chunk.js → 931.35bb15eb.chunk.js} +2 -2
  143. package/build/static/js/{931.75a9d316.chunk.js.map → 931.35bb15eb.chunk.js.map} +1 -1
  144. package/build/static/js/9666.6ab09d66.chunk.js +2 -0
  145. package/build/static/js/9666.6ab09d66.chunk.js.map +1 -0
  146. package/build/static/js/{9911.7aee726d.chunk.js → 9911.2d3e9bd1.chunk.js} +2 -2
  147. package/build/static/js/{9911.7aee726d.chunk.js.map → 9911.2d3e9bd1.chunk.js.map} +1 -1
  148. package/build/static/js/{main.d3a20250.js → main.5e3c5ac0.js} +2 -2
  149. package/build/static/js/main.5e3c5ac0.js.map +1 -0
  150. package/package.json +1 -1
  151. package/build/static/css/1151.ec1bbfc0.chunk.css +0 -2
  152. package/build/static/css/1153.bd20b743.chunk.css +0 -2
  153. package/build/static/css/1454.c0a0991e.chunk.css +0 -2
  154. package/build/static/css/1554.a585edf1.chunk.css +0 -2
  155. package/build/static/css/192.73637503.chunk.css +0 -2
  156. package/build/static/css/1932.0bf35bc9.chunk.css +0 -2
  157. package/build/static/css/2637.ae1f2887.chunk.css +0 -2
  158. package/build/static/css/2637.ae1f2887.chunk.css.map +0 -1
  159. package/build/static/css/2716.6f49ddb5.chunk.css +0 -2
  160. package/build/static/css/2921.935ed0ce.chunk.css +0 -2
  161. package/build/static/css/2921.935ed0ce.chunk.css.map +0 -1
  162. package/build/static/css/3333.7d0ae50b.chunk.css +0 -2
  163. package/build/static/css/4666.6b5dde12.chunk.css +0 -2
  164. package/build/static/css/5196.29f6749e.chunk.css +0 -2
  165. package/build/static/css/5362.db0ec87d.chunk.css +0 -2
  166. package/build/static/css/5600.bc21bda7.chunk.css +0 -2
  167. package/build/static/css/5673.79f68b31.chunk.css +0 -2
  168. package/build/static/css/5941.6743598e.chunk.css +0 -2
  169. package/build/static/css/5941.6743598e.chunk.css.map +0 -1
  170. package/build/static/css/7227.c8f5f467.chunk.css +0 -2
  171. package/build/static/css/8148.7a78b9f0.chunk.css +0 -2
  172. package/build/static/css/8148.7a78b9f0.chunk.css.map +0 -1
  173. package/build/static/css/9053.6a1a6919.chunk.css +0 -2
  174. package/build/static/css/931.7a220088.chunk.css +0 -2
  175. package/build/static/css/9689.7397d527.chunk.css +0 -2
  176. package/build/static/css/9911.75d3b627.chunk.css +0 -2
  177. package/build/static/js/1454.c087b2eb.chunk.js +0 -3
  178. package/build/static/js/1554.2e647156.chunk.js +0 -3
  179. package/build/static/js/1922.c52450c3.chunk.js.map +0 -1
  180. package/build/static/js/1932.a0e955f3.chunk.js +0 -2
  181. package/build/static/js/2503.e9de0bb4.chunk.js +0 -2
  182. package/build/static/js/2503.e9de0bb4.chunk.js.map +0 -1
  183. package/build/static/js/2517.bfbef0e3.chunk.js +0 -2
  184. package/build/static/js/2637.4a57844b.chunk.js.map +0 -1
  185. package/build/static/js/2716.303242fa.chunk.js +0 -3
  186. package/build/static/js/2730.40a28c60.chunk.js +0 -2
  187. package/build/static/js/2921.a64b88fb.chunk.js +0 -2
  188. package/build/static/js/2921.a64b88fb.chunk.js.map +0 -1
  189. package/build/static/js/3245.3eeca0e4.chunk.js +0 -3
  190. package/build/static/js/3245.3eeca0e4.chunk.js.map +0 -1
  191. package/build/static/js/3805.6149ae4b.chunk.js +0 -2
  192. package/build/static/js/3805.6149ae4b.chunk.js.map +0 -1
  193. package/build/static/js/4168.bc1cc45c.chunk.js +0 -2
  194. package/build/static/js/4168.bc1cc45c.chunk.js.map +0 -1
  195. package/build/static/js/4666.d14420a6.chunk.js +0 -2
  196. package/build/static/js/5196.a2cba1ec.chunk.js +0 -2
  197. package/build/static/js/5362.5fc27935.chunk.js +0 -3
  198. package/build/static/js/5600.85ba4bf2.chunk.js +0 -2
  199. package/build/static/js/5941.178c2afc.chunk.js +0 -2
  200. package/build/static/js/5941.178c2afc.chunk.js.map +0 -1
  201. package/build/static/js/5996.71e827a6.chunk.js +0 -2
  202. package/build/static/js/6213.8d51d652.chunk.js +0 -2
  203. package/build/static/js/6213.8d51d652.chunk.js.map +0 -1
  204. package/build/static/js/6499.3dcf0f88.chunk.js +0 -2
  205. package/build/static/js/6499.3dcf0f88.chunk.js.map +0 -1
  206. package/build/static/js/6900.67ca7456.chunk.js +0 -2
  207. package/build/static/js/6900.67ca7456.chunk.js.map +0 -1
  208. package/build/static/js/7227.4db45669.chunk.js +0 -3
  209. package/build/static/js/7285.e023f277.chunk.js +0 -2
  210. package/build/static/js/7285.e023f277.chunk.js.map +0 -1
  211. package/build/static/js/7777.55b9c954.chunk.js +0 -2
  212. package/build/static/js/8148.71868223.chunk.js +0 -3
  213. package/build/static/js/8148.71868223.chunk.js.map +0 -1
  214. package/build/static/js/8267.a19b2789.chunk.js +0 -2
  215. package/build/static/js/8564.c755faf3.chunk.js +0 -2
  216. package/build/static/js/8564.c755faf3.chunk.js.map +0 -1
  217. package/build/static/js/9666.7b24426a.chunk.js +0 -2
  218. package/build/static/js/9666.7b24426a.chunk.js.map +0 -1
  219. package/build/static/js/main.d3a20250.js.map +0 -1
  220. /package/build/static/js/{1153.0d52625e.chunk.js.LICENSE.txt → 1153.d7532da7.chunk.js.LICENSE.txt} +0 -0
  221. /package/build/static/js/{1454.c087b2eb.chunk.js.LICENSE.txt → 1454.664aac87.chunk.js.LICENSE.txt} +0 -0
  222. /package/build/static/js/{1554.2e647156.chunk.js.LICENSE.txt → 1554.12b6d54b.chunk.js.LICENSE.txt} +0 -0
  223. /package/build/static/js/{2716.303242fa.chunk.js.LICENSE.txt → 2716.1d4a549a.chunk.js.LICENSE.txt} +0 -0
  224. /package/build/static/js/{5362.5fc27935.chunk.js.LICENSE.txt → 5362.955d4a28.chunk.js.LICENSE.txt} +0 -0
  225. /package/build/static/js/{7227.4db45669.chunk.js.LICENSE.txt → 7227.a49f4250.chunk.js.LICENSE.txt} +0 -0
  226. /package/build/static/js/{8148.71868223.chunk.js.LICENSE.txt → 8148.8cdb53e4.chunk.js.LICENSE.txt} +0 -0
  227. /package/build/static/js/{9053.94b035ac.chunk.js.LICENSE.txt → 9053.d313b308.chunk.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_kne_components_components_core=self.webpackChunk_kne_components_components_core||[]).push([[1922],{51922:(e,t,n)=>{n.r(t),n.d(t,{Calendar:()=>oe,JsonRequestError:()=>r.ag,createPlugin:()=>d,formatDate:()=>le,formatRange:()=>ce,globalLocales:()=>s,globalPlugins:()=>z,sliceEvents:()=>de,version:()=>pe});var r=n(96499),i=n(26803);n(17906);const s=[],a={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"},o=Object.assign(Object.assign({},a),{buttonHints:{prev:"Previous $0",next:"Next $0",today:(e,t)=>"day"===t?"Today":"This ".concat(e)},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:e=>"Show ".concat(e," more event").concat(1===e?"":"s")});function l(e){let t=e.length>0?e[0].code:"en",n=s.concat(e),r={en:o};for(let i of n)r[i.code]=i;return{map:r,defaultCode:t}}function c(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)||o;return u(e,n,r)}(e,t):u(e.code,[e.code],e)}function u(e,t,n){let i=(0,r.m)([a,n],["buttonText"]);delete i.code;let{week:s}=i;return delete i.week,{codeArg:e,codes:t,week:s,simpleNumberFormat:new Intl.NumberFormat(e),options:i}}function d(e){return{id:(0,r.g)(),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 p(){let e,t=[],n=[];return(i,s)=>(e&&(0,r.i)(i,t)&&(0,r.i)(s,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 a of e){const e=a.name,o=n[e];void 0===o?(n[e]=a.id,i(a.deps),s=a,r={premiumReleaseDate:h((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)}):o!==a.id&&console.warn("Duplicate plugin '".concat(e,"'"))}var t,s}return e&&i(e),i(t),r}(i,s)),t=i,n=s,e)}function h(e,t){return void 0===e?t:void 0===t?e:new Date(Math.max(e.valueOf(),t.valueOf()))}class f extends r.T{}function v(e,t,n,r){if(t[e])return t[e];let i=function(e,t,n,r){let i=n[e],s=r[e],a=e=>i&&null!==i[e]?i[e]:s&&null!==s[e]?s[e]:null,o=a("component"),l=a("superType"),c=null;if(l){if(l===e)throw new Error("Can't have a custom view type that references itself");c=v(l,t,n,r)}!o&&c&&(o=c.component);if(!o)return null;return{type:e,component:o,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 g(e){return(0,r.a)(e,m)}function m(e){let t="function"===typeof e?{component:e}:e,{component:n}=t;return t.content?n=b(t):!n||n.prototype instanceof r.B||(n=b(Object.assign(Object.assign({},t),{content:n}))),{superType:t.type,component:n,rawOptions:t}}function b(e){return t=>(0,i.n)(r.V.Consumer,null,(n=>(0,i.n)(r.C,{elTag:"div",elClasses:(0,r.b)(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 R(e,t,n,i){let s=g(e),a=g(t.views),o=function(e,t){let n,r={};for(n in e)v(n,r,e,t);for(n in t)v(n,r,e,t);return r}(s,a);return(0,r.a)(o,(e=>function(e,t,n,i,s){let a=e.overrides.duration||e.defaults.duration||i.duration||n.duration,o=null,l="",c="",u={};if(a&&(o=function(e){let t=JSON.stringify(e),n=E[t];void 0===n&&(n=(0,r.d)(e),E[t]=n);return n}(a),o)){let e=(0,r.c)(o);l=e.unit,1===e.value&&(c=l,u=t[l]?t[l].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[c]?n[c]:null},p=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[c]?n[c]:null};return{type:e.type,component:e.component,duration:o,durationUnit:l,singleUnit:c,optionDefaults:e.defaults,optionOverrides:Object.assign(Object.assign({},u),e.overrides),buttonTextOverride:d(i)||d(n)||e.overrides.buttonText,buttonTextDefault:d(s)||e.defaults.buttonText||d(r.e)||e.type,buttonTitleOverride:p(i)||p(n)||e.overrides.buttonHint,buttonTitleDefault:p(s)||e.defaults.buttonHint||p(r.e)}}(e,a,t,n,i)))}f.prototype.classes={root:"fc-theme-standard",tableCellShaded:"fc-cell-shaded",buttonGroup:"fc-button-group",button:"fc-button fc-button-primary",buttonActive:"fc-button-active"},f.prototype.baseIconClass="fc-icon",f.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"},f.prototype.rtlIconClasses={prev:"fc-icon-chevron-right",next:"fc-icon-chevron-left",prevYear:"fc-icon-chevrons-right",nextYear:"fc-icon-chevrons-left"},f.prototype.iconOverrideOption="buttonIcons",f.prototype.iconOverrideCustomButtonOption="icon",f.prototype.iconOverridePrefix="fc-icon-";let E={};function O(e,t,n){let i=t?t.activeRange:null;return D({},function(e,t){let n=(0,r.j)(t),i=[].concat(e.eventSources||[]),s=[];e.initialEvents&&i.unshift(e.initialEvents);e.events&&i.unshift(e.events);for(let a of i){let e=(0,r.p)(a,t,n);e&&s.push(e)}return s}(e,n),i,n)}function w(e,t,n,i){let s=n?n.activeRange:null;switch(t.type){case"ADD_EVENT_SOURCES":return D(e,t.sources,s,i);case"REMOVE_EVENT_SOURCE":return a=e,o=t.sourceId,(0,r.h)(a,(e=>e.sourceId!==o));case"PREV":case"NEXT":case"CHANGE_DATE":case"CHANGE_VIEW_TYPE":return n?S(e,s,i):e;case"FETCH_EVENT_SOURCES":return C(e,t.sourceIds?(0,r.f)(t.sourceIds):I(e,i),s,t.isRefetch||!1,i);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 a,o}function T(e){for(let t in e)if(e[t].isFetching)return!0;return!1}function D(e,t,n,r){let i={};for(let s of t)i[s.sourceId]=s;return n&&(i=S(i,n,r)),Object.assign(Object.assign({},e),i)}function S(e,t,n){return C(e,(0,r.h)(e,(e=>function(e,t,n){if(!x(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 C(e,t,n,r,i){let s={};for(let a in e){let o=e[a];t[a]?s[a]=y(o,n,r,i):s[a]=o}return s}function y(e,t,n,i){let{options:s,calendarApi:a}=i,o=i.pluginHooks.eventSourceDefs[e.sourceDefId],l=(0,r.g)();return o.fetch({eventSource:e,range:t,isRefetch:n,context:i},(n=>{let{rawEvents:r}=n;s.eventSourceSuccess&&(r=s.eventSourceSuccess.call(a,r,n.response)||r),e.success&&(r=e.success.call(a,r,n.response)||r),i.dispatch({type:"RECEIVE_EVENTS",sourceId:e.sourceId,fetchId:l,fetchRange:t,rawEvents:r})}),(n=>{let r=!1;s.eventSourceFailure&&(s.eventSourceFailure.call(a,n),r=!0),e.failure&&(e.failure(n),r=!0),r||console.warn(n.message,n),i.dispatch({type:"RECEIVE_EVENT_ERROR",sourceId:e.sourceId,fetchId:l,fetchRange:t,error:n})})),Object.assign(Object.assign({},e),{isFetching:!0,latestFetchId:l})}function I(e,t){return(0,r.h)(e,(e=>x(e,t)))}function x(e,t){return!t.pluginHooks.eventSourceDefs[e.sourceDefId].ignoreRange}function P(e,t){switch(t.type){case"UNSELECT_DATES":return null;case"SELECT_DATES":return t.selection;default:return e}}function A(e,t){switch(t.type){case"UNSELECT_EVENT":return"";case"SELECT_EVENT":return t.eventInstanceId;default:return e}}function H(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 k(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 V(e,t,n,r,i){return{header:e.headerToolbar?j(e.headerToolbar,e,t,n,r,i):null,footer:e.footerToolbar?j(e.footerToolbar,e,t,n,r,i):null}}function j(e,t,n,r,i,s){let a={},o=[],l=!1;for(let c in e){let u=N(e[c],t,n,r,i,s);a[c]=u.widgets,o.push(...u.viewsWithButtons),l=l||u.hasTitle}return{sectionWidgets:a,viewsWithButtons:o,hasTitle:l}}function N(e,t,n,i,s,a){let o="rtl"===t.direction,l=t.customButtons||{},c=n.buttonText||{},u=t.buttonText||{},d=n.buttonHints||{},p=t.buttonHints||{},h=e?e.split(" "):[],f=[],v=!1;return{widgets:h.map((e=>e.split(",").map((e=>{if("title"===e)return v=!0,{buttonName:e};let n,h,g,m,b,R;if(n=l[e])g=e=>{n.click&&n.click.call(e.target,e,e.target)},(m=i.getCustomButtonIconClass(n))||(m=i.getIconClass(e,o))||(b=n.text),R=n.hint||n.text;else if(h=s[e]){f.push(e),g=()=>{a.changeView(e)},(b=h.buttonTextOverride)||(m=i.getIconClass(e,o))||(b=h.buttonTextDefault);let n=h.buttonTextOverride||h.buttonTextDefault;R=(0,r.k)(h.buttonTitleOverride||h.buttonTitleDefault||t.viewHint,[n,e],n)}else if(a[e])if(g=()=>{a[e]()},(b=c[e])||(m=i.getIconClass(e,o))||(b=u[e]),"prevYear"===e||"nextYear"===e){let t="prevYear"===e?"prev":"next";R=(0,r.k)(d[t]||p[t],[u.year||"year","year"],u[e])}else R=t=>(0,r.k)(d[e]||p[e],[u[t]||t,t],u[e]);return{buttonName:e,buttonClick:g,buttonIcon:m,buttonText:b,buttonHint:R}})))),viewsWithButtons:f,hasTitle:v}}class _{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 M(e,t){let n=(0,r.v)(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 i=[];for(let r of e){let e=!1;for(let t=0;t<n.length;t+=1)if(n[t]._raw===r){n.splice(t,1),e=!0;break}e||i.push(r)}for(let r of n)t.dispatch({type:"REMOVE_EVENT_SOURCE",sourceId:r.sourceId});for(let r of i)t.calendarApi.addEventSource(r)}const z=[d({name:"array-event-source",eventSourceDefs:[{ignoreRange:!0,parseMeta:e=>Array.isArray(e.events)?e.events:null,fetch(e,t){t({rawEvents:e.eventSource.meta})}}]}),d({name:"func-event-source",eventSourceDefs:[{parseMeta:e=>"function"===typeof e.events?e.events:null,fetch(e,t,n){const{dateEnv:i}=e.context,s=e.eventSource.meta;(0,r.u)(s.bind(null,(0,r.l)(e.range,i)),(e=>t({rawEvents:e})),n)}}]}),d({name:"json-event-source",eventSourceRefiners:{method:String,extraParams:r.n,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:i}=e.eventSource,s=function(e,t,n){let r,i,s,a,{dateEnv:o,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);a="function"===typeof e.extraParams?e.extraParams():e.extraParams||{};Object.assign(c,a),c[r]=o.formatIso(t.start),c[i]=o.formatIso(t.end),"local"!==o.timeZone&&(c[s]=o.timeZone);return c}(i,e.range,e.context);(0,r.r)(i.method,i.url,s).then((e=>{let[n,r]=e;t({rawEvents:n,response:r})}),n)}}]}),d({name:"simple-recurring-event",recurringTypes:[{parse(e,t){if(e.daysOfWeek||e.startTime||e.endTime||e.startRecur||e.endRecur){let n,i={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&&(n=e.duration),!n&&e.startTime&&e.endTime&&(n=(0,r.s)(e.endTime,e.startTime)),{allDayGuess:Boolean(!e.startTime&&!e.endTime),duration:n,typeData:i}}return null},expand(e,t,n){let i=(0,r.o)(t,{start:e.startRecur,end:e.endRecur});return i?function(e,t,n,i){let s=e?(0,r.f)(e):null,a=(0,r.q)(n.start),o=n.end,l=[];for(;a<o;){let e;s&&!s[a.getUTCDay()]||(e=t?i.add(a,t):a,l.push(e)),a=(0,r.t)(a,1)}return l}(e.daysOfWeek,e.startTime,i,n):[]}}],eventRefiners:{daysOfWeek:r.n,startTime:r.d,endTime:r.d,duration:r.d,startRecur:r.n,endRecur:r.n}}),d({name:"change-handler",optionChangeHandlers:{events(e,t){M([e],t)},eventSources:M}}),d({name:"misc",isLoadingFuncs:[e=>T(e.eventSources)],propSetHandlers:{dateProfile:function(e,t){t.emitter.trigger("datesSet",Object.assign(Object.assign({},(0,r.l)(e.activeRange,t.dateEnv)),{view:t.viewApi}))},eventStore:function(e,t){let{emitter:n}=t;n.hasHandlers("eventsSet")&&n.trigger("eventsSet",(0,r.w)(e,t))}}})];class U{constructor(e,t){this.runTaskOption=e,this.drainedOption=t,this.queue=[],this.delayedRunner=new r.D(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 F(e,t,n){let i;return i=/^(year|month)$/.test(e.currentRangeUnit)?e.currentRange:e.activeRange,n.formatRange(i.start,i.end,(0,r.x)(t.titleFormat||function(e){let{currentRangeUnit:t}=e;if("year"===t)return{year:"numeric"};if("month"===t)return{year:"numeric",month:"long"};let n=(0,r.y)(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 L{constructor(e){this.computeCurrentViewData=(0,r.z)(this._computeCurrentViewData),this.organizeRawLocales=(0,r.z)(l),this.buildLocale=(0,r.z)(c),this.buildPluginHooks=p(),this.buildDateEnv=(0,r.z)(G),this.buildTheme=(0,r.z)(W),this.parseToolbars=(0,r.z)(V),this.buildViewSpecs=(0,r.z)(R),this.buildDateProfileGenerator=(0,r.A)(B),this.buildViewApi=(0,r.z)(Z),this.buildViewUiProps=(0,r.A)(X),this.buildEventUiBySource=(0,r.z)(q,r.E),this.buildEventUiBases=(0,r.z)(Y),this.parseContextBusinessHours=(0,r.A)($),this.buildTitle=(0,r.z)(F),this.emitter=new r.F,this.actionRunner=new U(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),i=n.calendarOptions.initialView||n.pluginHooks.initialView,s=this.computeCurrentViewData(i,n,e.optionOverrides,t);e.calendarApi.currentDataManager=this,this.emitter.setThisContext(e.calendarApi),this.emitter.setOptions(s.options);let a=(0,r.G)(n.calendarOptions,n.dateEnv),o=s.dateProfileGenerator.build(a);(0,r.H)(o.activeRange,a)||(a=o.currentRange.start);let u={dateEnv:n.dateEnv,options:n.calendarOptions,pluginHooks:n.pluginHooks,calendarApi:e.calendarApi,dispatch:this.dispatch,emitter:this.emitter,getCurrentData:this.getCurrentData};for(let r of n.pluginHooks.contextInit)r(u);let d=O(n.calendarOptions,o,u),h={dynamicOptionOverrides:t,currentViewType:i,currentDate:a,dateProfile:o,businessHours:this.parseContextBusinessHours(u),eventSources:d,eventUiBases:{},eventStore:(0,r.I)(),renderableEventStore:(0,r.I)(),dateSelection:null,eventSelection:"",eventDrag:null,eventResize:null,selectionConfig:this.buildViewUiProps(u).selectionConfig},f=Object.assign(Object.assign({},u),h);for(let r of n.pluginHooks.reducers)Object.assign(h,r(null,null,f));Q(h,u)&&this.emitter.trigger("loading",!0),this.state=h,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:i}=this,s=function(e,t){return"SET_OPTION"===t.type?Object.assign(Object.assign({},e),{[t.optionName]:t.rawOptionValue}):e}(n.dynamicOptionOverrides,e),a=this.computeOptionsData(t.optionOverrides,s,t.calendarApi),o=function(e,t){"CHANGE_VIEW_TYPE"===t.type&&(e=t.viewType);return e}(n.currentViewType,e),l=this.computeCurrentViewData(o,a,t.optionOverrides,s);t.calendarApi.currentDataManager=this,i.setThisContext(t.calendarApi),i.setOptions(l.options);let c={dateEnv:a.dateEnv,options:a.calendarOptions,pluginHooks:a.pluginHooks,calendarApi:t.calendarApi,dispatch:this.dispatch,emitter:i,getCurrentData:this.getCurrentData},{currentDate:u,dateProfile:d}=n;this.data&&this.data.dateProfileGenerator!==l.dateProfileGenerator&&(d=l.dateProfileGenerator.build(u)),u=(0,r.J)(u,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,u,l.dateProfileGenerator),"PREV"!==e.type&&"NEXT"!==e.type&&(0,r.H)(d.currentRange,u)||(u=d.currentRange.start);let p=w(n.eventSources,e,d,c),h=(0,r.K)(n.eventStore,e,p,d,c),f=T(p)&&!l.options.progressiveEventRendering&&n.renderableEventStore||h,{eventUiSingleBase:v,selectionConfig:g}=this.buildViewUiProps(c),m=this.buildEventUiBySource(p),b={dynamicOptionOverrides:s,currentViewType:o,currentDate:u,dateProfile:d,eventSources:p,eventStore:h,renderableEventStore:f,selectionConfig:g,eventUiBases:this.buildEventUiBases(f.defs,v,m),businessHours:this.parseContextBusinessHours(c),dateSelection:P(n.dateSelection,e),eventSelection:A(n.eventSelection,e),eventDrag:H(n.eventDrag,e),eventResize:k(n.eventResize,e)},R=Object.assign(Object.assign({},c),b);for(let r of a.pluginHooks.reducers)Object.assign(b,r(n,e,R));let E=Q(n,c),O=Q(b,c);!E&&O?i.trigger("loading",!0):E&&!O&&i.trigger("loading",!1),this.state=b,t.onAction&&t.onAction(e)}updateData(){let{props:e,state:t}=this,n=this.data,i=this.computeOptionsData(e.optionOverrides,t.dynamicOptionOverrides,e.calendarApi),s=this.computeCurrentViewData(t.currentViewType,i,e.optionOverrides,t.dynamicOptionOverrides),a=this.data=Object.assign(Object.assign(Object.assign({viewTitle:this.buildTitle(t.dateProfile,s.options,i.dateEnv),calendarApi:e.calendarApi,dispatch:this.dispatch,emitter:this.emitter,getCurrentData:this.getCurrentData},i),s),t),o=i.pluginHooks.optionChangeHandlers,l=n&&n.calendarOptions,c=i.calendarOptions;if(l&&l!==c){l.timeZone!==c.timeZone&&(t.eventSources=a.eventSources=function(e,t,n){let r=t?t.activeRange:null;return C(e,I(e,n),r,!0,n)}(a.eventSources,t.dateProfile,a),t.eventStore=a.eventStore=(0,r.L)(a.eventStore,n.dateEnv,a.dateEnv),t.renderableEventStore=a.renderableEventStore=(0,r.L)(a.renderableEventStore,n.dateEnv,a.dateEnv));for(let e in o)-1===this.optionsForHandling.indexOf(e)&&l[e]===c[e]||o[e](c[e],a)}this.optionsForHandling=[],e.onData&&e.onData(a)}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:a,extra:o}=this.processRawCalendarOptions(e,t);K(o);let l=this.buildDateEnv(r.timeZone,r.locale,r.weekNumberCalculation,r.firstDay,r.weekText,i,a,r.defaultRangeSeparator),c=this.buildViewSpecs(i.views,this.stableOptionOverrides,this.stableDynamicOptionOverrides,s),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:s,availableRawLocales:a.map}}processRawCalendarOptions(e,t){let{locales:n,locale:i}=(0,r.M)([r.e,e,t]),s=this.organizeRawLocales(n),a=s.map,o=this.buildLocale(i||s.defaultCode,a).options,l=this.buildPluginHooks(e.plugins||[],z),c=this.currentCalendarOptionsRefiners=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},r.N),r.O),r.P),l.listenerRefiners),l.optionRefiners),u={},d=(0,r.M)([r.e,o,e,t]),p={},h=this.currentCalendarOptionsInput,f=this.currentCalendarOptionsRefined,v=!1;for(let g in d)-1===this.optionsForRefining.indexOf(g)&&(d[g]===h[g]||r.Q[g]&&g in h&&r.Q[g](h[g],d[g]))?p[g]=f[g]:c[g]?(p[g]=c[g](d[g]),v=!0):u[g]=h[g];return v&&(this.currentCalendarOptionsInput=d,this.currentCalendarOptionsRefined=p,this.stableOptionOverrides=e,this.stableDynamicOptionOverrides=t),this.optionsForHandling.push(...this.optionsForRefining),this.optionsForRefining=[],{rawOptions:this.currentCalendarOptionsInput,refinedOptions:this.currentCalendarOptionsRefined,pluginHooks:l,availableLocaleData:s,localeDefaults:o,extra:u}}_computeCurrentViewData(e,t,n,r){let i=t.viewSpecs[e];if(!i)throw new Error('viewType "'.concat(e,"\" is not available. Please make sure you've loaded all neccessary plugins"));let{refinedOptions:s,extra:a}=this.processRawViewOptions(i,t.pluginHooks,t.localeDefaults,n,r);return K(a),{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,i,s){let a=(0,r.M)([r.e,e.optionDefaults,n,i,e.optionOverrides,s]),o=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},r.N),r.O),r.P),r.R),t.listenerRefiners),t.optionRefiners),l={},c=this.currentViewOptionsInput,u=this.currentViewOptionsRefined,d=!1,p={};for(let h in a)a[h]===c[h]||r.Q[h]&&r.Q[h](a[h],c[h])?l[h]=u[h]:(a[h]===this.currentCalendarOptionsInput[h]||r.Q[h]&&r.Q[h](a[h],this.currentCalendarOptionsInput[h])?h in this.currentCalendarOptionsRefined&&(l[h]=this.currentCalendarOptionsRefined[h]):o[h]?l[h]=o[h](a[h]):p[h]=a[h],d=!0);return d&&(this.currentViewOptionsInput=a,this.currentViewOptionsRefined=l),{rawOptions:this.currentViewOptionsInput,refinedOptions:this.currentViewOptionsRefined,extra:p}}}function G(e,t,n,i,s,a,o,l){let u=c(t||o.defaultCode,o.map);return new r.S({calendarSystem:"gregory",timeZone:e,namedTimeZoneImpl:a.namedTimeZonedImpl,locale:u,weekNumberCalculation:n,firstDay:i,weekText:s,cmdFormatter:a.cmdFormatter,defaultSeparator:l})}function W(e,t){return new(t.themeClasses[e.themeSystem]||f)(e)}function B(e){return new(e.dateProfileGeneratorClass||r.U)(e)}function Z(e,t,n){return new _(e,t,n)}function q(e){return(0,r.a)(e,(e=>e.ui))}function Y(e,t,n){let r={"":t};for(let i in e){let t=e[i];t.sourceId&&n[t.sourceId]&&(r[i]=n[t.sourceId])}return r}function X(e){let{options:t}=e;return{eventUiSingleBase:(0,r.W)({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:(0,r.W)({constraint:t.selectConstraint,overlap:"boolean"===typeof t.selectOverlap?t.selectOverlap:void 0,allow:t.selectAllow},e)}}function Q(e,t){for(let n of t.pluginHooks.isLoadingFuncs)if(n(e))return!0;return!1}function $(e){return(0,r.X)(e.options.businessHours,e)}function K(e,t){for(let n in e)console.warn("Unknown option '".concat(n,"'")+(t?" for view '".concat(t,"'"):""))}class J extends r.B{render(){let e=this.props.widgetGroups.map((e=>this.renderWidgetGroup(e)));return(0,i.n)("div",{className:"fc-toolbar-chunk"},...e)}renderWidgetGroup(e){let{props:t}=this,{theme:n}=this.context,r=[],s=!0;for(let a of e){let{buttonName:e,buttonClick:o,buttonText:l,buttonIcon:c,buttonHint:u}=a;if("title"===e)s=!1,r.push((0,i.n)("h2",{className:"fc-toolbar-title",id:t.titleId},t.title));else{let s=e===t.activeButton,a=!t.isTodayEnabled&&"today"===e||!t.isPrevEnabled&&"prev"===e||!t.isNextEnabled&&"next"===e,d=["fc-".concat(e,"-button"),n.getClass("button")];s&&d.push(n.getClass("buttonActive")),r.push((0,i.n)("button",{type:"button",title:"function"===typeof u?u(t.navUnit):u,disabled:a,"aria-pressed":s,className:d.join(" "),onClick:o},l||(c?(0,i.n)("span",{className:c,role:"img"}):"")))}}if(r.length>1){let e=s&&n.getClass("buttonGroup")||"";return(0,i.n)("div",{className:e},...r)}return r[0]}}class ee extends r.B{render(){let e,t,{model:n,extraClassName:r}=this.props,s=!1,a=n.sectionWidgets,o=a.center;a.left?(s=!0,e=a.left):e=a.start,a.right?(s=!0,t=a.right):t=a.end;let l=[r||"","fc-toolbar",s?"fc-toolbar-ltr":""];return(0,i.n)("div",{className:l.join(" ")},this.renderSection("start",e||[]),this.renderSection("center",o||[]),this.renderSection("end",t||[]))}renderSection(e,t){let{props:n}=this;return(0,i.n)(J,{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 te extends r.B{constructor(){super(...arguments),this.state={availableWidth:null},this.handleEl=e=>{this.el=e,(0,r.Y)(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"],s="",a="";return n?null!==t.availableWidth?s=t.availableWidth/n:a="".concat(1/n*100,"%"):s=e.height||"",(0,i.n)("div",{"aria-labelledby":e.labeledById,ref:this.handleEl,className:r.join(" "),style:{height:s,paddingBottom:a}},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 ne extends r.Z{constructor(e){super(e),this.handleSegClick=(e,t)=>{let{component:n}=this,{context:i}=n,s=(0,r._)(t);if(s&&n.isValidSegDownEl(e.target)){let a=(0,r.$)(e.target,".fc-event-forced-url"),o=a?a.querySelector("a[href]").href:"";i.emitter.trigger("eventClick",{el:t,event:new r.a0(n.context,s.eventRange.def,s.eventRange.instance),jsEvent:e,view:i.viewApi}),o&&!e.defaultPrevented&&(window.location.href=o)}},this.destroy=(0,r.a1)(e.el,"click",".fc-event",this.handleSegClick)}}class re extends r.Z{constructor(e){super(e),this.handleEventElRemove=e=>{e===this.currentSegEl&&this.handleSegLeave(null,this.currentSegEl)},this.handleSegEnter=(e,t)=>{(0,r._)(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=(0,r.a2)(e.el,".fc-event",this.handleSegEnter,this.handleSegLeave)}destroy(){this.removeHoverListeners()}triggerEvent(e,t,n){let{component:i}=this,{context:s}=i,a=(0,r._)(n);t&&!i.isValidSegDownEl(t.target)||s.emitter.trigger(e,{el:n,event:new r.a0(s,a.eventRange.def,a.eventRange.instance),jsEvent:t,view:s.viewApi})}}class ie extends r.a3{constructor(){super(...arguments),this.buildViewContext=(0,r.z)(r.a4),this.buildViewPropTransformers=(0,r.z)(ae),this.buildToolbarProps=(0,r.z)(se),this.headerRef=(0,i._3)(),this.footerRef=(0,i._3)(),this.interactionsStore={},this.state={viewLabelId:(0,r.a5)()},this.registerInteractiveComponent=(e,t)=>{let n=(0,r.a6)(e,t),i=[ne,re].concat(this.props.pluginHooks.componentInteractions).map((e=>new e(n)));this.interactionsStore[e.uid]=i,r.a7[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 r.a7[e.uid]},this.resizeRunner=new r.D((()=>{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:s}=t,a=this.buildToolbarProps(t.viewSpec,t.dateProfile,t.dateProfileGenerator,t.currentDate,(0,r.a8)(t.options.now,t.dateEnv),t.viewTitle),o=!1,l="";t.isHeightAuto||t.forPrint?l="":null!=s.height?o=!0:null!=s.contentHeight?l=s.contentHeight:e=Math.max(s.aspectRatio,.5);let c=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),u=n.header&&n.header.hasTitle?this.state.viewLabelId:"";return(0,i.n)(r.V.Provider,{value:c},n.header&&(0,i.n)(ee,Object.assign({ref:this.headerRef,extraClassName:"fc-header-toolbar",model:n.header,titleId:u},a)),(0,i.n)(te,{liquid:o,height:l,aspectRatio:e,labeledById:u},this.renderView(t),this.buildAppendContent()),n.footer&&(0,i.n)(ee,Object.assign({ref:this.footerRef,extraClassName:"fc-footer-toolbar",model:n.footer,titleId:""},a)))}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,t=e.pluginHooks.viewContainerAppends.map((t=>t(e)));return(0,i.n)(i.FK,{},...t)}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},s=this.buildViewPropTransformers(t.viewPropsTransformers);for(let i of s)Object.assign(r,i.transform(r,e));let a=n.component;return(0,i.n)(a,Object.assign({},r))}}function se(e,t,n,i,s,a){let o=n.build(s,void 0,!1),l=n.buildPrev(t,i,!1),c=n.buildNext(t,i,!1);return{title:a,activeButton:e.type,navUnit:e.singleUnit,isTodayEnabled:o.isValid&&!(0,r.H)(t.currentRange,s),isPrevEnabled:l.isValid,isNextEnabled:c.isValid}}function ae(e){return e.map((e=>new e))}class oe extends r.a9{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};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;(0,r.aa)((()=>{(0,i.XX)((0,i.n)(r.ab,{options:e.calendarOptions,theme:e.theme,emitter:e.emitter},((t,n,s,a)=>(this.setClassNames(t),this.setHeight(n),(0,i.n)(r.ac.Provider,{value:this.customContentRenderId},(0,i.n)(ie,Object.assign({isHeightAuto:s,forPrint:a},e)))))),this.el)}))}else this.isRendered&&(this.isRendered=!1,(0,i.XX)(null,this.el),this.setClassNames([]),this.setHeight(""))},(0,r.ad)(e),this.el=e,this.renderRunner=new r.D(this.handleRenderRequest),new L({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(){(0,r.aa)((()=>{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(!(0,r.i)(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){(0,r.ae)(this.el,"height",e)}}function le(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=ue(t),i=(0,r.x)(t),s=n.createMarkerMeta(e);return s?n.format(s.marker,i,{forcedTzo:s.forcedTzo}):""}function ce(e,t,n){let i=ue("object"===typeof n&&n?n:{}),s=(0,r.x)(n),a=i.createMarkerMeta(e),o=i.createMarkerMeta(t);return a&&o?i.formatRange(a.marker,o.marker,s,{forcedStartTzo:a.forcedTzo,forcedEndTzo:o.forcedTzo,isEndExclusive:n.isEndExclusive,defaultSeparator:r.e.defaultRangeSeparator}):""}function ue(e){let t=c(e.locale||"en",l([]).map);return new r.S(Object.assign(Object.assign({timeZone:r.e.timeZone,calendarSystem:"gregory"},e),{locale:t}))}function de(e,t){return(0,r.af)(e.eventStore,e.eventUiBases,e.dateProfile.activeRange,t?e.nextDayThreshold:null).fg}const pe="6.1.10"}}]);
2
- //# sourceMappingURL=1922.c52450c3.chunk.js.map
1
+ "use strict";(self.webpackChunk_kne_components_components_core=self.webpackChunk_kne_components_components_core||[]).push([[1922],{51922:(e,t,n)=>{n.r(t),n.d(t,{Calendar:()=>oe,JsonRequestError:()=>r.ag,createPlugin:()=>d,formatDate:()=>le,formatRange:()=>ce,globalLocales:()=>s,globalPlugins:()=>z,sliceEvents:()=>de,version:()=>pe});var r=n(96499),i=n(26803);n(17906);const s=[],a={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"},o=Object.assign(Object.assign({},a),{buttonHints:{prev:"Previous $0",next:"Next $0",today:(e,t)=>"day"===t?"Today":"This ".concat(e)},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:e=>"Show ".concat(e," more event").concat(1===e?"":"s")});function l(e){let t=e.length>0?e[0].code:"en",n=s.concat(e),r={en:o};for(let i of n)r[i.code]=i;return{map:r,defaultCode:t}}function c(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)||o;return u(e,n,r)}(e,t):u(e.code,[e.code],e)}function u(e,t,n){let i=(0,r.m)([a,n],["buttonText"]);delete i.code;let{week:s}=i;return delete i.week,{codeArg:e,codes:t,week:s,simpleNumberFormat:new Intl.NumberFormat(e),options:i}}function d(e){return{id:(0,r.g)(),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 p(){let e,t=[],n=[];return(i,s)=>(e&&(0,r.i)(i,t)&&(0,r.i)(s,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 a of e){const e=a.name,o=n[e];void 0===o?(n[e]=a.id,i(a.deps),s=a,r={premiumReleaseDate:h((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)}):o!==a.id&&console.warn("Duplicate plugin '".concat(e,"'"))}var t,s}return e&&i(e),i(t),r}(i,s)),t=i,n=s,e)}function h(e,t){return void 0===e?t:void 0===t?e:new Date(Math.max(e.valueOf(),t.valueOf()))}class f extends r.T{}function v(e,t,n,r){if(t[e])return t[e];let i=function(e,t,n,r){let i=n[e],s=r[e],a=e=>i&&null!==i[e]?i[e]:s&&null!==s[e]?s[e]:null,o=a("component"),l=a("superType"),c=null;if(l){if(l===e)throw new Error("Can't have a custom view type that references itself");c=v(l,t,n,r)}!o&&c&&(o=c.component);if(!o)return null;return{type:e,component:o,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 g(e){return(0,r.a)(e,m)}function m(e){let t="function"===typeof e?{component:e}:e,{component:n}=t;return t.content?n=b(t):!n||n.prototype instanceof r.B||(n=b(Object.assign(Object.assign({},t),{content:n}))),{superType:t.type,component:n,rawOptions:t}}function b(e){return t=>(0,i.n)(r.V.Consumer,null,(n=>(0,i.n)(r.C,{elTag:"div",elClasses:(0,r.b)(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 R(e,t,n,i){let s=g(e),a=g(t.views),o=function(e,t){let n,r={};for(n in e)v(n,r,e,t);for(n in t)v(n,r,e,t);return r}(s,a);return(0,r.a)(o,(e=>function(e,t,n,i,s){let a=e.overrides.duration||e.defaults.duration||i.duration||n.duration,o=null,l="",c="",u={};if(a&&(o=function(e){let t=JSON.stringify(e),n=E[t];void 0===n&&(n=(0,r.d)(e),E[t]=n);return n}(a),o)){let e=(0,r.c)(o);l=e.unit,1===e.value&&(c=l,u=t[l]?t[l].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[c]?n[c]:null},p=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[c]?n[c]:null};return{type:e.type,component:e.component,duration:o,durationUnit:l,singleUnit:c,optionDefaults:e.defaults,optionOverrides:Object.assign(Object.assign({},u),e.overrides),buttonTextOverride:d(i)||d(n)||e.overrides.buttonText,buttonTextDefault:d(s)||e.defaults.buttonText||d(r.e)||e.type,buttonTitleOverride:p(i)||p(n)||e.overrides.buttonHint,buttonTitleDefault:p(s)||e.defaults.buttonHint||p(r.e)}}(e,a,t,n,i)))}f.prototype.classes={root:"fc-theme-standard",tableCellShaded:"fc-cell-shaded",buttonGroup:"fc-button-group",button:"fc-button fc-button-primary",buttonActive:"fc-button-active"},f.prototype.baseIconClass="fc-icon",f.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"},f.prototype.rtlIconClasses={prev:"fc-icon-chevron-right",next:"fc-icon-chevron-left",prevYear:"fc-icon-chevrons-right",nextYear:"fc-icon-chevrons-left"},f.prototype.iconOverrideOption="buttonIcons",f.prototype.iconOverrideCustomButtonOption="icon",f.prototype.iconOverridePrefix="fc-icon-";let E={};function O(e,t,n){let i=t?t.activeRange:null;return D({},function(e,t){let n=(0,r.j)(t),i=[].concat(e.eventSources||[]),s=[];e.initialEvents&&i.unshift(e.initialEvents);e.events&&i.unshift(e.events);for(let a of i){let e=(0,r.p)(a,t,n);e&&s.push(e)}return s}(e,n),i,n)}function w(e,t,n,i){let s=n?n.activeRange:null;switch(t.type){case"ADD_EVENT_SOURCES":return D(e,t.sources,s,i);case"REMOVE_EVENT_SOURCE":return a=e,o=t.sourceId,(0,r.h)(a,(e=>e.sourceId!==o));case"PREV":case"NEXT":case"CHANGE_DATE":case"CHANGE_VIEW_TYPE":return n?S(e,s,i):e;case"FETCH_EVENT_SOURCES":return C(e,t.sourceIds?(0,r.f)(t.sourceIds):I(e,i),s,t.isRefetch||!1,i);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 a,o}function T(e){for(let t in e)if(e[t].isFetching)return!0;return!1}function D(e,t,n,r){let i={};for(let s of t)i[s.sourceId]=s;return n&&(i=S(i,n,r)),Object.assign(Object.assign({},e),i)}function S(e,t,n){return C(e,(0,r.h)(e,(e=>function(e,t,n){if(!x(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 C(e,t,n,r,i){let s={};for(let a in e){let o=e[a];t[a]?s[a]=y(o,n,r,i):s[a]=o}return s}function y(e,t,n,i){let{options:s,calendarApi:a}=i,o=i.pluginHooks.eventSourceDefs[e.sourceDefId],l=(0,r.g)();return o.fetch({eventSource:e,range:t,isRefetch:n,context:i},(n=>{let{rawEvents:r}=n;s.eventSourceSuccess&&(r=s.eventSourceSuccess.call(a,r,n.response)||r),e.success&&(r=e.success.call(a,r,n.response)||r),i.dispatch({type:"RECEIVE_EVENTS",sourceId:e.sourceId,fetchId:l,fetchRange:t,rawEvents:r})}),(n=>{let r=!1;s.eventSourceFailure&&(s.eventSourceFailure.call(a,n),r=!0),e.failure&&(e.failure(n),r=!0),r||console.warn(n.message,n),i.dispatch({type:"RECEIVE_EVENT_ERROR",sourceId:e.sourceId,fetchId:l,fetchRange:t,error:n})})),Object.assign(Object.assign({},e),{isFetching:!0,latestFetchId:l})}function I(e,t){return(0,r.h)(e,(e=>x(e,t)))}function x(e,t){return!t.pluginHooks.eventSourceDefs[e.sourceDefId].ignoreRange}function P(e,t){switch(t.type){case"UNSELECT_DATES":return null;case"SELECT_DATES":return t.selection;default:return e}}function A(e,t){switch(t.type){case"UNSELECT_EVENT":return"";case"SELECT_EVENT":return t.eventInstanceId;default:return e}}function H(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 k(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 V(e,t,n,r,i){return{header:e.headerToolbar?j(e.headerToolbar,e,t,n,r,i):null,footer:e.footerToolbar?j(e.footerToolbar,e,t,n,r,i):null}}function j(e,t,n,r,i,s){let a={},o=[],l=!1;for(let c in e){let u=N(e[c],t,n,r,i,s);a[c]=u.widgets,o.push(...u.viewsWithButtons),l=l||u.hasTitle}return{sectionWidgets:a,viewsWithButtons:o,hasTitle:l}}function N(e,t,n,i,s,a){let o="rtl"===t.direction,l=t.customButtons||{},c=n.buttonText||{},u=t.buttonText||{},d=n.buttonHints||{},p=t.buttonHints||{},h=e?e.split(" "):[],f=[],v=!1;return{widgets:h.map((e=>e.split(",").map((e=>{if("title"===e)return v=!0,{buttonName:e};let n,h,g,m,b,R;if(n=l[e])g=e=>{n.click&&n.click.call(e.target,e,e.target)},(m=i.getCustomButtonIconClass(n))||(m=i.getIconClass(e,o))||(b=n.text),R=n.hint||n.text;else if(h=s[e]){f.push(e),g=()=>{a.changeView(e)},(b=h.buttonTextOverride)||(m=i.getIconClass(e,o))||(b=h.buttonTextDefault);let n=h.buttonTextOverride||h.buttonTextDefault;R=(0,r.k)(h.buttonTitleOverride||h.buttonTitleDefault||t.viewHint,[n,e],n)}else if(a[e])if(g=()=>{a[e]()},(b=c[e])||(m=i.getIconClass(e,o))||(b=u[e]),"prevYear"===e||"nextYear"===e){let t="prevYear"===e?"prev":"next";R=(0,r.k)(d[t]||p[t],[u.year||"year","year"],u[e])}else R=t=>(0,r.k)(d[e]||p[e],[u[t]||t,t],u[e]);return{buttonName:e,buttonClick:g,buttonIcon:m,buttonText:b,buttonHint:R}})))),viewsWithButtons:f,hasTitle:v}}class _{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 M(e,t){let n=(0,r.v)(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 i=[];for(let r of e){let e=!1;for(let t=0;t<n.length;t+=1)if(n[t]._raw===r){n.splice(t,1),e=!0;break}e||i.push(r)}for(let r of n)t.dispatch({type:"REMOVE_EVENT_SOURCE",sourceId:r.sourceId});for(let r of i)t.calendarApi.addEventSource(r)}const z=[d({name:"array-event-source",eventSourceDefs:[{ignoreRange:!0,parseMeta:e=>Array.isArray(e.events)?e.events:null,fetch(e,t){t({rawEvents:e.eventSource.meta})}}]}),d({name:"func-event-source",eventSourceDefs:[{parseMeta:e=>"function"===typeof e.events?e.events:null,fetch(e,t,n){const{dateEnv:i}=e.context,s=e.eventSource.meta;(0,r.u)(s.bind(null,(0,r.l)(e.range,i)),(e=>t({rawEvents:e})),n)}}]}),d({name:"json-event-source",eventSourceRefiners:{method:String,extraParams:r.n,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:i}=e.eventSource,s=function(e,t,n){let r,i,s,a,{dateEnv:o,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);a="function"===typeof e.extraParams?e.extraParams():e.extraParams||{};Object.assign(c,a),c[r]=o.formatIso(t.start),c[i]=o.formatIso(t.end),"local"!==o.timeZone&&(c[s]=o.timeZone);return c}(i,e.range,e.context);(0,r.r)(i.method,i.url,s).then((e=>{let[n,r]=e;t({rawEvents:n,response:r})}),n)}}]}),d({name:"simple-recurring-event",recurringTypes:[{parse(e,t){if(e.daysOfWeek||e.startTime||e.endTime||e.startRecur||e.endRecur){let n,i={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&&(n=e.duration),!n&&e.startTime&&e.endTime&&(n=(0,r.s)(e.endTime,e.startTime)),{allDayGuess:Boolean(!e.startTime&&!e.endTime),duration:n,typeData:i}}return null},expand(e,t,n){let i=(0,r.o)(t,{start:e.startRecur,end:e.endRecur});return i?function(e,t,n,i){let s=e?(0,r.f)(e):null,a=(0,r.q)(n.start),o=n.end,l=[];for(;a<o;){let e;s&&!s[a.getUTCDay()]||(e=t?i.add(a,t):a,l.push(e)),a=(0,r.t)(a,1)}return l}(e.daysOfWeek,e.startTime,i,n):[]}}],eventRefiners:{daysOfWeek:r.n,startTime:r.d,endTime:r.d,duration:r.d,startRecur:r.n,endRecur:r.n}}),d({name:"change-handler",optionChangeHandlers:{events(e,t){M([e],t)},eventSources:M}}),d({name:"misc",isLoadingFuncs:[e=>T(e.eventSources)],propSetHandlers:{dateProfile:function(e,t){t.emitter.trigger("datesSet",Object.assign(Object.assign({},(0,r.l)(e.activeRange,t.dateEnv)),{view:t.viewApi}))},eventStore:function(e,t){let{emitter:n}=t;n.hasHandlers("eventsSet")&&n.trigger("eventsSet",(0,r.w)(e,t))}}})];class U{constructor(e,t){this.runTaskOption=e,this.drainedOption=t,this.queue=[],this.delayedRunner=new r.D(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 F(e,t,n){let i;return i=/^(year|month)$/.test(e.currentRangeUnit)?e.currentRange:e.activeRange,n.formatRange(i.start,i.end,(0,r.x)(t.titleFormat||function(e){let{currentRangeUnit:t}=e;if("year"===t)return{year:"numeric"};if("month"===t)return{year:"numeric",month:"long"};let n=(0,r.y)(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 L{constructor(e){this.computeCurrentViewData=(0,r.z)(this._computeCurrentViewData),this.organizeRawLocales=(0,r.z)(l),this.buildLocale=(0,r.z)(c),this.buildPluginHooks=p(),this.buildDateEnv=(0,r.z)(G),this.buildTheme=(0,r.z)(W),this.parseToolbars=(0,r.z)(V),this.buildViewSpecs=(0,r.z)(R),this.buildDateProfileGenerator=(0,r.A)(B),this.buildViewApi=(0,r.z)(Z),this.buildViewUiProps=(0,r.A)(X),this.buildEventUiBySource=(0,r.z)(q,r.E),this.buildEventUiBases=(0,r.z)(Y),this.parseContextBusinessHours=(0,r.A)($),this.buildTitle=(0,r.z)(F),this.emitter=new r.F,this.actionRunner=new U(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),i=n.calendarOptions.initialView||n.pluginHooks.initialView,s=this.computeCurrentViewData(i,n,e.optionOverrides,t);e.calendarApi.currentDataManager=this,this.emitter.setThisContext(e.calendarApi),this.emitter.setOptions(s.options);let a=(0,r.G)(n.calendarOptions,n.dateEnv),o=s.dateProfileGenerator.build(a);(0,r.H)(o.activeRange,a)||(a=o.currentRange.start);let u={dateEnv:n.dateEnv,options:n.calendarOptions,pluginHooks:n.pluginHooks,calendarApi:e.calendarApi,dispatch:this.dispatch,emitter:this.emitter,getCurrentData:this.getCurrentData};for(let r of n.pluginHooks.contextInit)r(u);let d=O(n.calendarOptions,o,u),h={dynamicOptionOverrides:t,currentViewType:i,currentDate:a,dateProfile:o,businessHours:this.parseContextBusinessHours(u),eventSources:d,eventUiBases:{},eventStore:(0,r.I)(),renderableEventStore:(0,r.I)(),dateSelection:null,eventSelection:"",eventDrag:null,eventResize:null,selectionConfig:this.buildViewUiProps(u).selectionConfig},f=Object.assign(Object.assign({},u),h);for(let r of n.pluginHooks.reducers)Object.assign(h,r(null,null,f));Q(h,u)&&this.emitter.trigger("loading",!0),this.state=h,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:i}=this,s=function(e,t){return"SET_OPTION"===t.type?Object.assign(Object.assign({},e),{[t.optionName]:t.rawOptionValue}):e}(n.dynamicOptionOverrides,e),a=this.computeOptionsData(t.optionOverrides,s,t.calendarApi),o=function(e,t){"CHANGE_VIEW_TYPE"===t.type&&(e=t.viewType);return e}(n.currentViewType,e),l=this.computeCurrentViewData(o,a,t.optionOverrides,s);t.calendarApi.currentDataManager=this,i.setThisContext(t.calendarApi),i.setOptions(l.options);let c={dateEnv:a.dateEnv,options:a.calendarOptions,pluginHooks:a.pluginHooks,calendarApi:t.calendarApi,dispatch:this.dispatch,emitter:i,getCurrentData:this.getCurrentData},{currentDate:u,dateProfile:d}=n;this.data&&this.data.dateProfileGenerator!==l.dateProfileGenerator&&(d=l.dateProfileGenerator.build(u)),u=(0,r.J)(u,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,u,l.dateProfileGenerator),"PREV"!==e.type&&"NEXT"!==e.type&&(0,r.H)(d.currentRange,u)||(u=d.currentRange.start);let p=w(n.eventSources,e,d,c),h=(0,r.K)(n.eventStore,e,p,d,c),f=T(p)&&!l.options.progressiveEventRendering&&n.renderableEventStore||h,{eventUiSingleBase:v,selectionConfig:g}=this.buildViewUiProps(c),m=this.buildEventUiBySource(p),b={dynamicOptionOverrides:s,currentViewType:o,currentDate:u,dateProfile:d,eventSources:p,eventStore:h,renderableEventStore:f,selectionConfig:g,eventUiBases:this.buildEventUiBases(f.defs,v,m),businessHours:this.parseContextBusinessHours(c),dateSelection:P(n.dateSelection,e),eventSelection:A(n.eventSelection,e),eventDrag:H(n.eventDrag,e),eventResize:k(n.eventResize,e)},R=Object.assign(Object.assign({},c),b);for(let r of a.pluginHooks.reducers)Object.assign(b,r(n,e,R));let E=Q(n,c),O=Q(b,c);!E&&O?i.trigger("loading",!0):E&&!O&&i.trigger("loading",!1),this.state=b,t.onAction&&t.onAction(e)}updateData(){let{props:e,state:t}=this,n=this.data,i=this.computeOptionsData(e.optionOverrides,t.dynamicOptionOverrides,e.calendarApi),s=this.computeCurrentViewData(t.currentViewType,i,e.optionOverrides,t.dynamicOptionOverrides),a=this.data=Object.assign(Object.assign(Object.assign({viewTitle:this.buildTitle(t.dateProfile,s.options,i.dateEnv),calendarApi:e.calendarApi,dispatch:this.dispatch,emitter:this.emitter,getCurrentData:this.getCurrentData},i),s),t),o=i.pluginHooks.optionChangeHandlers,l=n&&n.calendarOptions,c=i.calendarOptions;if(l&&l!==c){l.timeZone!==c.timeZone&&(t.eventSources=a.eventSources=function(e,t,n){let r=t?t.activeRange:null;return C(e,I(e,n),r,!0,n)}(a.eventSources,t.dateProfile,a),t.eventStore=a.eventStore=(0,r.L)(a.eventStore,n.dateEnv,a.dateEnv),t.renderableEventStore=a.renderableEventStore=(0,r.L)(a.renderableEventStore,n.dateEnv,a.dateEnv));for(let e in o)-1===this.optionsForHandling.indexOf(e)&&l[e]===c[e]||o[e](c[e],a)}this.optionsForHandling=[],e.onData&&e.onData(a)}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:a,extra:o}=this.processRawCalendarOptions(e,t);K(o);let l=this.buildDateEnv(r.timeZone,r.locale,r.weekNumberCalculation,r.firstDay,r.weekText,i,a,r.defaultRangeSeparator),c=this.buildViewSpecs(i.views,this.stableOptionOverrides,this.stableDynamicOptionOverrides,s),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:s,availableRawLocales:a.map}}processRawCalendarOptions(e,t){let{locales:n,locale:i}=(0,r.M)([r.e,e,t]),s=this.organizeRawLocales(n),a=s.map,o=this.buildLocale(i||s.defaultCode,a).options,l=this.buildPluginHooks(e.plugins||[],z),c=this.currentCalendarOptionsRefiners=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},r.N),r.O),r.P),l.listenerRefiners),l.optionRefiners),u={},d=(0,r.M)([r.e,o,e,t]),p={},h=this.currentCalendarOptionsInput,f=this.currentCalendarOptionsRefined,v=!1;for(let g in d)-1===this.optionsForRefining.indexOf(g)&&(d[g]===h[g]||r.Q[g]&&g in h&&r.Q[g](h[g],d[g]))?p[g]=f[g]:c[g]?(p[g]=c[g](d[g]),v=!0):u[g]=h[g];return v&&(this.currentCalendarOptionsInput=d,this.currentCalendarOptionsRefined=p,this.stableOptionOverrides=e,this.stableDynamicOptionOverrides=t),this.optionsForHandling.push(...this.optionsForRefining),this.optionsForRefining=[],{rawOptions:this.currentCalendarOptionsInput,refinedOptions:this.currentCalendarOptionsRefined,pluginHooks:l,availableLocaleData:s,localeDefaults:o,extra:u}}_computeCurrentViewData(e,t,n,r){let i=t.viewSpecs[e];if(!i)throw new Error('viewType "'.concat(e,"\" is not available. Please make sure you've loaded all neccessary plugins"));let{refinedOptions:s,extra:a}=this.processRawViewOptions(i,t.pluginHooks,t.localeDefaults,n,r);return K(a),{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,i,s){let a=(0,r.M)([r.e,e.optionDefaults,n,i,e.optionOverrides,s]),o=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},r.N),r.O),r.P),r.R),t.listenerRefiners),t.optionRefiners),l={},c=this.currentViewOptionsInput,u=this.currentViewOptionsRefined,d=!1,p={};for(let h in a)a[h]===c[h]||r.Q[h]&&r.Q[h](a[h],c[h])?l[h]=u[h]:(a[h]===this.currentCalendarOptionsInput[h]||r.Q[h]&&r.Q[h](a[h],this.currentCalendarOptionsInput[h])?h in this.currentCalendarOptionsRefined&&(l[h]=this.currentCalendarOptionsRefined[h]):o[h]?l[h]=o[h](a[h]):p[h]=a[h],d=!0);return d&&(this.currentViewOptionsInput=a,this.currentViewOptionsRefined=l),{rawOptions:this.currentViewOptionsInput,refinedOptions:this.currentViewOptionsRefined,extra:p}}}function G(e,t,n,i,s,a,o,l){let u=c(t||o.defaultCode,o.map);return new r.S({calendarSystem:"gregory",timeZone:e,namedTimeZoneImpl:a.namedTimeZonedImpl,locale:u,weekNumberCalculation:n,firstDay:i,weekText:s,cmdFormatter:a.cmdFormatter,defaultSeparator:l})}function W(e,t){return new(t.themeClasses[e.themeSystem]||f)(e)}function B(e){return new(e.dateProfileGeneratorClass||r.U)(e)}function Z(e,t,n){return new _(e,t,n)}function q(e){return(0,r.a)(e,(e=>e.ui))}function Y(e,t,n){let r={"":t};for(let i in e){let t=e[i];t.sourceId&&n[t.sourceId]&&(r[i]=n[t.sourceId])}return r}function X(e){let{options:t}=e;return{eventUiSingleBase:(0,r.W)({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:(0,r.W)({constraint:t.selectConstraint,overlap:"boolean"===typeof t.selectOverlap?t.selectOverlap:void 0,allow:t.selectAllow},e)}}function Q(e,t){for(let n of t.pluginHooks.isLoadingFuncs)if(n(e))return!0;return!1}function $(e){return(0,r.X)(e.options.businessHours,e)}function K(e,t){for(let n in e)console.warn("Unknown option '".concat(n,"'")+(t?" for view '".concat(t,"'"):""))}class J extends r.B{render(){let e=this.props.widgetGroups.map((e=>this.renderWidgetGroup(e)));return(0,i.n)("div",{className:"fc-toolbar-chunk"},...e)}renderWidgetGroup(e){let{props:t}=this,{theme:n}=this.context,r=[],s=!0;for(let a of e){let{buttonName:e,buttonClick:o,buttonText:l,buttonIcon:c,buttonHint:u}=a;if("title"===e)s=!1,r.push((0,i.n)("h2",{className:"fc-toolbar-title",id:t.titleId},t.title));else{let s=e===t.activeButton,a=!t.isTodayEnabled&&"today"===e||!t.isPrevEnabled&&"prev"===e||!t.isNextEnabled&&"next"===e,d=["fc-".concat(e,"-button"),n.getClass("button")];s&&d.push(n.getClass("buttonActive")),r.push((0,i.n)("button",{type:"button",title:"function"===typeof u?u(t.navUnit):u,disabled:a,"aria-pressed":s,className:d.join(" "),onClick:o},l||(c?(0,i.n)("span",{className:c,role:"img"}):"")))}}if(r.length>1){let e=s&&n.getClass("buttonGroup")||"";return(0,i.n)("div",{className:e},...r)}return r[0]}}class ee extends r.B{render(){let e,t,{model:n,extraClassName:r}=this.props,s=!1,a=n.sectionWidgets,o=a.center;a.left?(s=!0,e=a.left):e=a.start,a.right?(s=!0,t=a.right):t=a.end;let l=[r||"","fc-toolbar",s?"fc-toolbar-ltr":""];return(0,i.n)("div",{className:l.join(" ")},this.renderSection("start",e||[]),this.renderSection("center",o||[]),this.renderSection("end",t||[]))}renderSection(e,t){let{props:n}=this;return(0,i.n)(J,{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 te extends r.B{constructor(){super(...arguments),this.state={availableWidth:null},this.handleEl=e=>{this.el=e,(0,r.Y)(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"],s="",a="";return n?null!==t.availableWidth?s=t.availableWidth/n:a="".concat(1/n*100,"%"):s=e.height||"",(0,i.n)("div",{"aria-labelledby":e.labeledById,ref:this.handleEl,className:r.join(" "),style:{height:s,paddingBottom:a}},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 ne extends r.Z{constructor(e){super(e),this.handleSegClick=(e,t)=>{let{component:n}=this,{context:i}=n,s=(0,r._)(t);if(s&&n.isValidSegDownEl(e.target)){let a=(0,r.$)(e.target,".fc-event-forced-url"),o=a?a.querySelector("a[href]").href:"";i.emitter.trigger("eventClick",{el:t,event:new r.a0(n.context,s.eventRange.def,s.eventRange.instance),jsEvent:e,view:i.viewApi}),o&&!e.defaultPrevented&&(window.location.href=o)}},this.destroy=(0,r.a1)(e.el,"click",".fc-event",this.handleSegClick)}}class re extends r.Z{constructor(e){super(e),this.handleEventElRemove=e=>{e===this.currentSegEl&&this.handleSegLeave(null,this.currentSegEl)},this.handleSegEnter=(e,t)=>{(0,r._)(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=(0,r.a2)(e.el,".fc-event",this.handleSegEnter,this.handleSegLeave)}destroy(){this.removeHoverListeners()}triggerEvent(e,t,n){let{component:i}=this,{context:s}=i,a=(0,r._)(n);t&&!i.isValidSegDownEl(t.target)||s.emitter.trigger(e,{el:n,event:new r.a0(s,a.eventRange.def,a.eventRange.instance),jsEvent:t,view:s.viewApi})}}class ie extends r.a3{constructor(){super(...arguments),this.buildViewContext=(0,r.z)(r.a4),this.buildViewPropTransformers=(0,r.z)(ae),this.buildToolbarProps=(0,r.z)(se),this.headerRef=(0,i._3)(),this.footerRef=(0,i._3)(),this.interactionsStore={},this.state={viewLabelId:(0,r.a5)()},this.registerInteractiveComponent=(e,t)=>{let n=(0,r.a6)(e,t),i=[ne,re].concat(this.props.pluginHooks.componentInteractions).map((e=>new e(n)));this.interactionsStore[e.uid]=i,r.a7[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 r.a7[e.uid]},this.resizeRunner=new r.D((()=>{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:s}=t,a=this.buildToolbarProps(t.viewSpec,t.dateProfile,t.dateProfileGenerator,t.currentDate,(0,r.a8)(t.options.now,t.dateEnv),t.viewTitle),o=!1,l="";t.isHeightAuto||t.forPrint?l="":null!=s.height?o=!0:null!=s.contentHeight?l=s.contentHeight:e=Math.max(s.aspectRatio,.5);let c=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),u=n.header&&n.header.hasTitle?this.state.viewLabelId:void 0;return(0,i.n)(r.V.Provider,{value:c},n.header&&(0,i.n)(ee,Object.assign({ref:this.headerRef,extraClassName:"fc-header-toolbar",model:n.header,titleId:u},a)),(0,i.n)(te,{liquid:o,height:l,aspectRatio:e,labeledById:u},this.renderView(t),this.buildAppendContent()),n.footer&&(0,i.n)(ee,Object.assign({ref:this.footerRef,extraClassName:"fc-footer-toolbar",model:n.footer,titleId:""},a)))}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,t=e.pluginHooks.viewContainerAppends.map((t=>t(e)));return(0,i.n)(i.FK,{},...t)}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},s=this.buildViewPropTransformers(t.viewPropsTransformers);for(let i of s)Object.assign(r,i.transform(r,e));let a=n.component;return(0,i.n)(a,Object.assign({},r))}}function se(e,t,n,i,s,a){let o=n.build(s,void 0,!1),l=n.buildPrev(t,i,!1),c=n.buildNext(t,i,!1);return{title:a,activeButton:e.type,navUnit:e.singleUnit,isTodayEnabled:o.isValid&&!(0,r.H)(t.currentRange,s),isPrevEnabled:l.isValid,isNextEnabled:c.isValid}}function ae(e){return e.map((e=>new e))}class oe extends r.a9{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};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;(0,r.aa)((()=>{(0,i.XX)((0,i.n)(r.ab,{options:e.calendarOptions,theme:e.theme,emitter:e.emitter},((t,n,s,a)=>(this.setClassNames(t),this.setHeight(n),(0,i.n)(r.ac.Provider,{value:this.customContentRenderId},(0,i.n)(ie,Object.assign({isHeightAuto:s,forPrint:a},e)))))),this.el)}))}else this.isRendered&&(this.isRendered=!1,(0,i.XX)(null,this.el),this.setClassNames([]),this.setHeight(""))},(0,r.ad)(e),this.el=e,this.renderRunner=new r.D(this.handleRenderRequest),new L({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(){(0,r.aa)((()=>{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(!(0,r.i)(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){(0,r.ae)(this.el,"height",e)}}function le(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=ue(t),i=(0,r.x)(t),s=n.createMarkerMeta(e);return s?n.format(s.marker,i,{forcedTzo:s.forcedTzo}):""}function ce(e,t,n){let i=ue("object"===typeof n&&n?n:{}),s=(0,r.x)(n),a=i.createMarkerMeta(e),o=i.createMarkerMeta(t);return a&&o?i.formatRange(a.marker,o.marker,s,{forcedStartTzo:a.forcedTzo,forcedEndTzo:o.forcedTzo,isEndExclusive:n.isEndExclusive,defaultSeparator:r.e.defaultRangeSeparator}):""}function ue(e){let t=c(e.locale||"en",l([]).map);return new r.S(Object.assign(Object.assign({timeZone:r.e.timeZone,calendarSystem:"gregory"},e),{locale:t}))}function de(e,t){return(0,r.af)(e.eventStore,e.eventUiBases,e.dateProfile.activeRange,t?e.nextDayThreshold:null).fg}const pe="6.1.11"}}]);
2
+ //# sourceMappingURL=1922.e69b6391.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/js/1922.e69b6391.chunk.js","mappings":"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","sources":["../node_modules/@fullcalendar/core/index.js"],"sourcesContent":["import { m as mergeProps, g as guid, i as isArraysEqual, T as Theme, a as mapHash, B as BaseComponent, V as ViewContextType, C as ContentContainer, b as buildViewClassNames, c as greatestDurationDenominator, d as createDuration, e as BASE_OPTION_DEFAULTS, f as arrayToHash, h as filterHash, j as buildEventSourceRefiners, p as parseEventSource, k as formatWithOrdinals, u as unpromisify, l as buildRangeApiWithTimeZone, n as identity, r as requestJson, s as subtractDurations, o as intersectRanges, q as startOfDay, t as addDays, v as hashValuesToArray, w as buildEventApis, D as DelayedRunner, x as createFormatter, y as diffWholeDays, z as memoize, A as memoizeObjArg, E as isPropsEqual, F as Emitter, G as getInitialDate, H as rangeContainsMarker, I as createEmptyEventStore, J as reduceCurrentDate, K as reduceEventStore, L as rezoneEventStoreDates, M as mergeRawOptions, N as BASE_OPTION_REFINERS, O as CALENDAR_LISTENER_REFINERS, P as CALENDAR_OPTION_REFINERS, Q as COMPLEX_OPTION_COMPARATORS, R as VIEW_OPTION_REFINERS, S as DateEnv, U as DateProfileGenerator, W as createEventUi, X as parseBusinessHours, Y as setRef, Z as Interaction, _ as getElSeg, $ as elementClosest, a0 as EventImpl, a1 as listenBySelector, a2 as listenToHoverBySelector, a3 as PureComponent, a4 as buildViewContext, a5 as getUniqueDomId, a6 as parseInteractionSettings, a7 as interactionSettingsStore, a8 as getNow, a9 as CalendarImpl, aa as flushSync, ab as CalendarRoot, ac as RenderId, ad as ensureElHasStyles, ae as applyStyleProp, af as sliceEventStore } from './internal-common.js';\nexport { ag as JsonRequestError } from './internal-common.js';\nimport { createElement, createRef, Fragment, render } from 'preact';\nimport 'preact/compat';\n\nconst globalLocales = [];\n\nconst MINIMAL_RAW_EN_LOCALE = {\n code: 'en',\n week: {\n dow: 0,\n doy: 4, // 4 days need to be within the year to be considered the first week\n },\n direction: 'ltr',\n buttonText: {\n prev: 'prev',\n next: 'next',\n prevYear: 'prev year',\n nextYear: 'next year',\n year: 'year',\n today: 'today',\n month: 'month',\n week: 'week',\n day: 'day',\n list: 'list',\n },\n weekText: 'W',\n weekTextLong: 'Week',\n closeHint: 'Close',\n timeHint: 'Time',\n eventHint: 'Event',\n allDayText: 'all-day',\n moreLinkText: 'more',\n noEventsText: 'No events to display',\n};\nconst RAW_EN_LOCALE = Object.assign(Object.assign({}, MINIMAL_RAW_EN_LOCALE), { \n // Includes things we don't want other locales to inherit,\n // things that derive from other translatable strings.\n buttonHints: {\n prev: 'Previous $0',\n next: 'Next $0',\n today(buttonText, unit) {\n return (unit === 'day')\n ? 'Today'\n : `This ${buttonText}`;\n },\n }, viewHint: '$0 view', navLinkHint: 'Go to $0', moreLinkHint(eventCnt) {\n return `Show ${eventCnt} more event${eventCnt === 1 ? '' : 's'}`;\n } });\nfunction organizeRawLocales(explicitRawLocales) {\n let defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en';\n let allRawLocales = globalLocales.concat(explicitRawLocales);\n let rawLocaleMap = {\n en: RAW_EN_LOCALE,\n };\n for (let rawLocale of allRawLocales) {\n rawLocaleMap[rawLocale.code] = rawLocale;\n }\n return {\n map: rawLocaleMap,\n defaultCode,\n };\n}\nfunction buildLocale(inputSingular, available) {\n if (typeof inputSingular === 'object' && !Array.isArray(inputSingular)) {\n return parseLocale(inputSingular.code, [inputSingular.code], inputSingular);\n }\n return queryLocale(inputSingular, available);\n}\nfunction queryLocale(codeArg, available) {\n let codes = [].concat(codeArg || []); // will convert to array\n let raw = queryRawLocale(codes, available) || RAW_EN_LOCALE;\n return parseLocale(codeArg, codes, raw);\n}\nfunction queryRawLocale(codes, available) {\n for (let i = 0; i < codes.length; i += 1) {\n let parts = codes[i].toLocaleLowerCase().split('-');\n for (let j = parts.length; j > 0; j -= 1) {\n let simpleId = parts.slice(0, j).join('-');\n if (available[simpleId]) {\n return available[simpleId];\n }\n }\n }\n return null;\n}\nfunction parseLocale(codeArg, codes, raw) {\n let merged = mergeProps([MINIMAL_RAW_EN_LOCALE, raw], ['buttonText']);\n delete merged.code; // don't want this part of the options\n let { week } = merged;\n delete merged.week;\n return {\n codeArg,\n codes,\n week,\n simpleNumberFormat: new Intl.NumberFormat(codeArg),\n options: merged,\n };\n}\n\n// TODO: easier way to add new hooks? need to update a million things\nfunction createPlugin(input) {\n return {\n id: guid(),\n name: input.name,\n premiumReleaseDate: input.premiumReleaseDate ? new Date(input.premiumReleaseDate) : undefined,\n deps: input.deps || [],\n reducers: input.reducers || [],\n isLoadingFuncs: input.isLoadingFuncs || [],\n contextInit: [].concat(input.contextInit || []),\n eventRefiners: input.eventRefiners || {},\n eventDefMemberAdders: input.eventDefMemberAdders || [],\n eventSourceRefiners: input.eventSourceRefiners || {},\n isDraggableTransformers: input.isDraggableTransformers || [],\n eventDragMutationMassagers: input.eventDragMutationMassagers || [],\n eventDefMutationAppliers: input.eventDefMutationAppliers || [],\n dateSelectionTransformers: input.dateSelectionTransformers || [],\n datePointTransforms: input.datePointTransforms || [],\n dateSpanTransforms: input.dateSpanTransforms || [],\n views: input.views || {},\n viewPropsTransformers: input.viewPropsTransformers || [],\n isPropsValid: input.isPropsValid || null,\n externalDefTransforms: input.externalDefTransforms || [],\n viewContainerAppends: input.viewContainerAppends || [],\n eventDropTransformers: input.eventDropTransformers || [],\n componentInteractions: input.componentInteractions || [],\n calendarInteractions: input.calendarInteractions || [],\n themeClasses: input.themeClasses || {},\n eventSourceDefs: input.eventSourceDefs || [],\n cmdFormatter: input.cmdFormatter,\n recurringTypes: input.recurringTypes || [],\n namedTimeZonedImpl: input.namedTimeZonedImpl,\n initialView: input.initialView || '',\n elementDraggingImpl: input.elementDraggingImpl,\n optionChangeHandlers: input.optionChangeHandlers || {},\n scrollGridImpl: input.scrollGridImpl || null,\n listenerRefiners: input.listenerRefiners || {},\n optionRefiners: input.optionRefiners || {},\n propSetHandlers: input.propSetHandlers || {},\n };\n}\nfunction buildPluginHooks(pluginDefs, globalDefs) {\n let currentPluginIds = {};\n let hooks = {\n premiumReleaseDate: undefined,\n reducers: [],\n isLoadingFuncs: [],\n contextInit: [],\n eventRefiners: {},\n eventDefMemberAdders: [],\n eventSourceRefiners: {},\n isDraggableTransformers: [],\n eventDragMutationMassagers: [],\n eventDefMutationAppliers: [],\n dateSelectionTransformers: [],\n datePointTransforms: [],\n dateSpanTransforms: [],\n views: {},\n viewPropsTransformers: [],\n isPropsValid: null,\n externalDefTransforms: [],\n viewContainerAppends: [],\n eventDropTransformers: [],\n componentInteractions: [],\n calendarInteractions: [],\n themeClasses: {},\n eventSourceDefs: [],\n cmdFormatter: null,\n recurringTypes: [],\n namedTimeZonedImpl: null,\n initialView: '',\n elementDraggingImpl: null,\n optionChangeHandlers: {},\n scrollGridImpl: null,\n listenerRefiners: {},\n optionRefiners: {},\n propSetHandlers: {},\n };\n function addDefs(defs) {\n for (let def of defs) {\n const pluginName = def.name;\n const currentId = currentPluginIds[pluginName];\n if (currentId === undefined) {\n currentPluginIds[pluginName] = def.id;\n addDefs(def.deps);\n hooks = combineHooks(hooks, def);\n }\n else if (currentId !== def.id) {\n // different ID than the one already added\n console.warn(`Duplicate plugin '${pluginName}'`);\n }\n }\n }\n if (pluginDefs) {\n addDefs(pluginDefs);\n }\n addDefs(globalDefs);\n return hooks;\n}\nfunction buildBuildPluginHooks() {\n let currentOverrideDefs = [];\n let currentGlobalDefs = [];\n let currentHooks;\n return (overrideDefs, globalDefs) => {\n if (!currentHooks || !isArraysEqual(overrideDefs, currentOverrideDefs) || !isArraysEqual(globalDefs, currentGlobalDefs)) {\n currentHooks = buildPluginHooks(overrideDefs, globalDefs);\n }\n currentOverrideDefs = overrideDefs;\n currentGlobalDefs = globalDefs;\n return currentHooks;\n };\n}\nfunction combineHooks(hooks0, hooks1) {\n return {\n premiumReleaseDate: compareOptionalDates(hooks0.premiumReleaseDate, hooks1.premiumReleaseDate),\n reducers: hooks0.reducers.concat(hooks1.reducers),\n isLoadingFuncs: hooks0.isLoadingFuncs.concat(hooks1.isLoadingFuncs),\n contextInit: hooks0.contextInit.concat(hooks1.contextInit),\n eventRefiners: Object.assign(Object.assign({}, hooks0.eventRefiners), hooks1.eventRefiners),\n eventDefMemberAdders: hooks0.eventDefMemberAdders.concat(hooks1.eventDefMemberAdders),\n eventSourceRefiners: Object.assign(Object.assign({}, hooks0.eventSourceRefiners), hooks1.eventSourceRefiners),\n isDraggableTransformers: hooks0.isDraggableTransformers.concat(hooks1.isDraggableTransformers),\n eventDragMutationMassagers: hooks0.eventDragMutationMassagers.concat(hooks1.eventDragMutationMassagers),\n eventDefMutationAppliers: hooks0.eventDefMutationAppliers.concat(hooks1.eventDefMutationAppliers),\n dateSelectionTransformers: hooks0.dateSelectionTransformers.concat(hooks1.dateSelectionTransformers),\n datePointTransforms: hooks0.datePointTransforms.concat(hooks1.datePointTransforms),\n dateSpanTransforms: hooks0.dateSpanTransforms.concat(hooks1.dateSpanTransforms),\n views: Object.assign(Object.assign({}, hooks0.views), hooks1.views),\n viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers),\n isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid,\n externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms),\n viewContainerAppends: hooks0.viewContainerAppends.concat(hooks1.viewContainerAppends),\n eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers),\n calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions),\n componentInteractions: hooks0.componentInteractions.concat(hooks1.componentInteractions),\n themeClasses: Object.assign(Object.assign({}, hooks0.themeClasses), hooks1.themeClasses),\n eventSourceDefs: hooks0.eventSourceDefs.concat(hooks1.eventSourceDefs),\n cmdFormatter: hooks1.cmdFormatter || hooks0.cmdFormatter,\n recurringTypes: hooks0.recurringTypes.concat(hooks1.recurringTypes),\n namedTimeZonedImpl: hooks1.namedTimeZonedImpl || hooks0.namedTimeZonedImpl,\n initialView: hooks0.initialView || hooks1.initialView,\n elementDraggingImpl: hooks0.elementDraggingImpl || hooks1.elementDraggingImpl,\n optionChangeHandlers: Object.assign(Object.assign({}, hooks0.optionChangeHandlers), hooks1.optionChangeHandlers),\n scrollGridImpl: hooks1.scrollGridImpl || hooks0.scrollGridImpl,\n listenerRefiners: Object.assign(Object.assign({}, hooks0.listenerRefiners), hooks1.listenerRefiners),\n optionRefiners: Object.assign(Object.assign({}, hooks0.optionRefiners), hooks1.optionRefiners),\n propSetHandlers: Object.assign(Object.assign({}, hooks0.propSetHandlers), hooks1.propSetHandlers),\n };\n}\nfunction compareOptionalDates(date0, date1) {\n if (date0 === undefined) {\n return date1;\n }\n if (date1 === undefined) {\n return date0;\n }\n return new Date(Math.max(date0.valueOf(), date1.valueOf()));\n}\n\nclass StandardTheme extends Theme {\n}\nStandardTheme.prototype.classes = {\n root: 'fc-theme-standard',\n tableCellShaded: 'fc-cell-shaded',\n buttonGroup: 'fc-button-group',\n button: 'fc-button fc-button-primary',\n buttonActive: 'fc-button-active',\n};\nStandardTheme.prototype.baseIconClass = 'fc-icon';\nStandardTheme.prototype.iconClasses = {\n close: 'fc-icon-x',\n prev: 'fc-icon-chevron-left',\n next: 'fc-icon-chevron-right',\n prevYear: 'fc-icon-chevrons-left',\n nextYear: 'fc-icon-chevrons-right',\n};\nStandardTheme.prototype.rtlIconClasses = {\n prev: 'fc-icon-chevron-right',\n next: 'fc-icon-chevron-left',\n prevYear: 'fc-icon-chevrons-right',\n nextYear: 'fc-icon-chevrons-left',\n};\nStandardTheme.prototype.iconOverrideOption = 'buttonIcons'; // TODO: make TS-friendly\nStandardTheme.prototype.iconOverrideCustomButtonOption = 'icon';\nStandardTheme.prototype.iconOverridePrefix = 'fc-icon-';\n\nfunction compileViewDefs(defaultConfigs, overrideConfigs) {\n let hash = {};\n let viewType;\n for (viewType in defaultConfigs) {\n ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n }\n for (viewType in overrideConfigs) {\n ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n }\n return hash;\n}\nfunction ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n if (hash[viewType]) {\n return hash[viewType];\n }\n let viewDef = buildViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n if (viewDef) {\n hash[viewType] = viewDef;\n }\n return viewDef;\n}\nfunction buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n let defaultConfig = defaultConfigs[viewType];\n let overrideConfig = overrideConfigs[viewType];\n let queryProp = (name) => ((defaultConfig && defaultConfig[name] !== null) ? defaultConfig[name] :\n ((overrideConfig && overrideConfig[name] !== null) ? overrideConfig[name] : null));\n let theComponent = queryProp('component');\n let superType = queryProp('superType');\n let superDef = null;\n if (superType) {\n if (superType === viewType) {\n throw new Error('Can\\'t have a custom view type that references itself');\n }\n superDef = ensureViewDef(superType, hash, defaultConfigs, overrideConfigs);\n }\n if (!theComponent && superDef) {\n theComponent = superDef.component;\n }\n if (!theComponent) {\n return null; // don't throw a warning, might be settings for a single-unit view\n }\n return {\n type: viewType,\n component: theComponent,\n defaults: Object.assign(Object.assign({}, (superDef ? superDef.defaults : {})), (defaultConfig ? defaultConfig.rawOptions : {})),\n overrides: Object.assign(Object.assign({}, (superDef ? superDef.overrides : {})), (overrideConfig ? overrideConfig.rawOptions : {})),\n };\n}\n\nfunction parseViewConfigs(inputs) {\n return mapHash(inputs, parseViewConfig);\n}\nfunction parseViewConfig(input) {\n let rawOptions = typeof input === 'function' ?\n { component: input } :\n input;\n let { component } = rawOptions;\n if (rawOptions.content) {\n // TODO: remove content/classNames/didMount/etc from options?\n component = createViewHookComponent(rawOptions);\n }\n else if (component && !(component.prototype instanceof BaseComponent)) {\n // WHY?: people were using `component` property for `content`\n // TODO: converge on one setting name\n component = createViewHookComponent(Object.assign(Object.assign({}, rawOptions), { content: component }));\n }\n return {\n superType: rawOptions.type,\n component: component,\n rawOptions, // includes type and component too :(\n };\n}\nfunction createViewHookComponent(options) {\n return (viewProps) => (createElement(ViewContextType.Consumer, null, (context) => (createElement(ContentContainer, { elTag: \"div\", elClasses: buildViewClassNames(context.viewSpec), renderProps: Object.assign(Object.assign({}, viewProps), { nextDayThreshold: context.options.nextDayThreshold }), generatorName: undefined, customGenerator: options.content, classNameGenerator: options.classNames, didMount: options.didMount, willUnmount: options.willUnmount }))));\n}\n\nfunction buildViewSpecs(defaultInputs, optionOverrides, dynamicOptionOverrides, localeDefaults) {\n let defaultConfigs = parseViewConfigs(defaultInputs);\n let overrideConfigs = parseViewConfigs(optionOverrides.views);\n let viewDefs = compileViewDefs(defaultConfigs, overrideConfigs);\n return mapHash(viewDefs, (viewDef) => buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults));\n}\nfunction buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults) {\n let durationInput = viewDef.overrides.duration ||\n viewDef.defaults.duration ||\n dynamicOptionOverrides.duration ||\n optionOverrides.duration;\n let duration = null;\n let durationUnit = '';\n let singleUnit = '';\n let singleUnitOverrides = {};\n if (durationInput) {\n duration = createDurationCached(durationInput);\n if (duration) { // valid?\n let denom = greatestDurationDenominator(duration);\n durationUnit = denom.unit;\n if (denom.value === 1) {\n singleUnit = durationUnit;\n singleUnitOverrides = overrideConfigs[durationUnit] ? overrideConfigs[durationUnit].rawOptions : {};\n }\n }\n }\n let queryButtonText = (optionsSubset) => {\n let buttonTextMap = optionsSubset.buttonText || {};\n let buttonTextKey = viewDef.defaults.buttonTextKey;\n if (buttonTextKey != null && buttonTextMap[buttonTextKey] != null) {\n return buttonTextMap[buttonTextKey];\n }\n if (buttonTextMap[viewDef.type] != null) {\n return buttonTextMap[viewDef.type];\n }\n if (buttonTextMap[singleUnit] != null) {\n return buttonTextMap[singleUnit];\n }\n return null;\n };\n let queryButtonTitle = (optionsSubset) => {\n let buttonHints = optionsSubset.buttonHints || {};\n let buttonKey = viewDef.defaults.buttonTextKey; // use same key as text\n if (buttonKey != null && buttonHints[buttonKey] != null) {\n return buttonHints[buttonKey];\n }\n if (buttonHints[viewDef.type] != null) {\n return buttonHints[viewDef.type];\n }\n if (buttonHints[singleUnit] != null) {\n return buttonHints[singleUnit];\n }\n return null;\n };\n return {\n type: viewDef.type,\n component: viewDef.component,\n duration,\n durationUnit,\n singleUnit,\n optionDefaults: viewDef.defaults,\n optionOverrides: Object.assign(Object.assign({}, singleUnitOverrides), viewDef.overrides),\n buttonTextOverride: queryButtonText(dynamicOptionOverrides) ||\n queryButtonText(optionOverrides) || // constructor-specified buttonText lookup hash takes precedence\n viewDef.overrides.buttonText,\n buttonTextDefault: queryButtonText(localeDefaults) ||\n viewDef.defaults.buttonText ||\n queryButtonText(BASE_OPTION_DEFAULTS) ||\n viewDef.type,\n // not DRY\n buttonTitleOverride: queryButtonTitle(dynamicOptionOverrides) ||\n queryButtonTitle(optionOverrides) ||\n viewDef.overrides.buttonHint,\n buttonTitleDefault: queryButtonTitle(localeDefaults) ||\n viewDef.defaults.buttonHint ||\n queryButtonTitle(BASE_OPTION_DEFAULTS),\n // will eventually fall back to buttonText\n };\n}\n// hack to get memoization working\nlet durationInputMap = {};\nfunction createDurationCached(durationInput) {\n let json = JSON.stringify(durationInput);\n let res = durationInputMap[json];\n if (res === undefined) {\n res = createDuration(durationInput);\n durationInputMap[json] = res;\n }\n return res;\n}\n\nfunction reduceViewType(viewType, action) {\n switch (action.type) {\n case 'CHANGE_VIEW_TYPE':\n viewType = action.viewType;\n }\n return viewType;\n}\n\nfunction reduceDynamicOptionOverrides(dynamicOptionOverrides, action) {\n switch (action.type) {\n case 'SET_OPTION':\n return Object.assign(Object.assign({}, dynamicOptionOverrides), { [action.optionName]: action.rawOptionValue });\n default:\n return dynamicOptionOverrides;\n }\n}\n\nfunction reduceDateProfile(currentDateProfile, action, currentDate, dateProfileGenerator) {\n let dp;\n switch (action.type) {\n case 'CHANGE_VIEW_TYPE':\n return dateProfileGenerator.build(action.dateMarker || currentDate);\n case 'CHANGE_DATE':\n return dateProfileGenerator.build(action.dateMarker);\n case 'PREV':\n dp = dateProfileGenerator.buildPrev(currentDateProfile, currentDate);\n if (dp.isValid) {\n return dp;\n }\n break;\n case 'NEXT':\n dp = dateProfileGenerator.buildNext(currentDateProfile, currentDate);\n if (dp.isValid) {\n return dp;\n }\n break;\n }\n return currentDateProfile;\n}\n\nfunction initEventSources(calendarOptions, dateProfile, context) {\n let activeRange = dateProfile ? dateProfile.activeRange : null;\n return addSources({}, parseInitialSources(calendarOptions, context), activeRange, context);\n}\nfunction reduceEventSources(eventSources, action, dateProfile, context) {\n let activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?\n switch (action.type) {\n case 'ADD_EVENT_SOURCES': // already parsed\n return addSources(eventSources, action.sources, activeRange, context);\n case 'REMOVE_EVENT_SOURCE':\n return removeSource(eventSources, action.sourceId);\n case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n case 'NEXT':\n case 'CHANGE_DATE':\n case 'CHANGE_VIEW_TYPE':\n if (dateProfile) {\n return fetchDirtySources(eventSources, activeRange, context);\n }\n return eventSources;\n case 'FETCH_EVENT_SOURCES':\n return fetchSourcesByIds(eventSources, action.sourceIds ? // why no type?\n arrayToHash(action.sourceIds) :\n excludeStaticSources(eventSources, context), activeRange, action.isRefetch || false, context);\n case 'RECEIVE_EVENTS':\n case 'RECEIVE_EVENT_ERROR':\n return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange);\n case 'REMOVE_ALL_EVENT_SOURCES':\n return {};\n default:\n return eventSources;\n }\n}\nfunction reduceEventSourcesNewTimeZone(eventSources, dateProfile, context) {\n let activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?\n return fetchSourcesByIds(eventSources, excludeStaticSources(eventSources, context), activeRange, true, context);\n}\nfunction computeEventSourcesLoading(eventSources) {\n for (let sourceId in eventSources) {\n if (eventSources[sourceId].isFetching) {\n return true;\n }\n }\n return false;\n}\nfunction addSources(eventSourceHash, sources, fetchRange, context) {\n let hash = {};\n for (let source of sources) {\n hash[source.sourceId] = source;\n }\n if (fetchRange) {\n hash = fetchDirtySources(hash, fetchRange, context);\n }\n return Object.assign(Object.assign({}, eventSourceHash), hash);\n}\nfunction removeSource(eventSourceHash, sourceId) {\n return filterHash(eventSourceHash, (eventSource) => eventSource.sourceId !== sourceId);\n}\nfunction fetchDirtySources(sourceHash, fetchRange, context) {\n return fetchSourcesByIds(sourceHash, filterHash(sourceHash, (eventSource) => isSourceDirty(eventSource, fetchRange, context)), fetchRange, false, context);\n}\nfunction isSourceDirty(eventSource, fetchRange, context) {\n if (!doesSourceNeedRange(eventSource, context)) {\n return !eventSource.latestFetchId;\n }\n return !context.options.lazyFetching ||\n !eventSource.fetchRange ||\n eventSource.isFetching || // always cancel outdated in-progress fetches\n fetchRange.start < eventSource.fetchRange.start ||\n fetchRange.end > eventSource.fetchRange.end;\n}\nfunction fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, isRefetch, context) {\n let nextSources = {};\n for (let sourceId in prevSources) {\n let source = prevSources[sourceId];\n if (sourceIdHash[sourceId]) {\n nextSources[sourceId] = fetchSource(source, fetchRange, isRefetch, context);\n }\n else {\n nextSources[sourceId] = source;\n }\n }\n return nextSources;\n}\nfunction fetchSource(eventSource, fetchRange, isRefetch, context) {\n let { options, calendarApi } = context;\n let sourceDef = context.pluginHooks.eventSourceDefs[eventSource.sourceDefId];\n let fetchId = guid();\n sourceDef.fetch({\n eventSource,\n range: fetchRange,\n isRefetch,\n context,\n }, (res) => {\n let { rawEvents } = res;\n if (options.eventSourceSuccess) {\n rawEvents = options.eventSourceSuccess.call(calendarApi, rawEvents, res.response) || rawEvents;\n }\n if (eventSource.success) {\n rawEvents = eventSource.success.call(calendarApi, rawEvents, res.response) || rawEvents;\n }\n context.dispatch({\n type: 'RECEIVE_EVENTS',\n sourceId: eventSource.sourceId,\n fetchId,\n fetchRange,\n rawEvents,\n });\n }, (error) => {\n let errorHandled = false;\n if (options.eventSourceFailure) {\n options.eventSourceFailure.call(calendarApi, error);\n errorHandled = true;\n }\n if (eventSource.failure) {\n eventSource.failure(error);\n errorHandled = true;\n }\n if (!errorHandled) {\n console.warn(error.message, error);\n }\n context.dispatch({\n type: 'RECEIVE_EVENT_ERROR',\n sourceId: eventSource.sourceId,\n fetchId,\n fetchRange,\n error,\n });\n });\n return Object.assign(Object.assign({}, eventSource), { isFetching: true, latestFetchId: fetchId });\n}\nfunction receiveResponse(sourceHash, sourceId, fetchId, fetchRange) {\n let eventSource = sourceHash[sourceId];\n if (eventSource && // not already removed\n fetchId === eventSource.latestFetchId) {\n return Object.assign(Object.assign({}, sourceHash), { [sourceId]: Object.assign(Object.assign({}, eventSource), { isFetching: false, fetchRange }) });\n }\n return sourceHash;\n}\nfunction excludeStaticSources(eventSources, context) {\n return filterHash(eventSources, (eventSource) => doesSourceNeedRange(eventSource, context));\n}\nfunction parseInitialSources(rawOptions, context) {\n let refiners = buildEventSourceRefiners(context);\n let rawSources = [].concat(rawOptions.eventSources || []);\n let sources = []; // parsed\n if (rawOptions.initialEvents) {\n rawSources.unshift(rawOptions.initialEvents);\n }\n if (rawOptions.events) {\n rawSources.unshift(rawOptions.events);\n }\n for (let rawSource of rawSources) {\n let source = parseEventSource(rawSource, context, refiners);\n if (source) {\n sources.push(source);\n }\n }\n return sources;\n}\nfunction doesSourceNeedRange(eventSource, context) {\n let defs = context.pluginHooks.eventSourceDefs;\n return !defs[eventSource.sourceDefId].ignoreRange;\n}\n\nfunction reduceDateSelection(currentSelection, action) {\n switch (action.type) {\n case 'UNSELECT_DATES':\n return null;\n case 'SELECT_DATES':\n return action.selection;\n default:\n return currentSelection;\n }\n}\n\nfunction reduceSelectedEvent(currentInstanceId, action) {\n switch (action.type) {\n case 'UNSELECT_EVENT':\n return '';\n case 'SELECT_EVENT':\n return action.eventInstanceId;\n default:\n return currentInstanceId;\n }\n}\n\nfunction reduceEventDrag(currentDrag, action) {\n let newDrag;\n switch (action.type) {\n case 'UNSET_EVENT_DRAG':\n return null;\n case 'SET_EVENT_DRAG':\n newDrag = action.state;\n return {\n affectedEvents: newDrag.affectedEvents,\n mutatedEvents: newDrag.mutatedEvents,\n isEvent: newDrag.isEvent,\n };\n default:\n return currentDrag;\n }\n}\n\nfunction reduceEventResize(currentResize, action) {\n let newResize;\n switch (action.type) {\n case 'UNSET_EVENT_RESIZE':\n return null;\n case 'SET_EVENT_RESIZE':\n newResize = action.state;\n return {\n affectedEvents: newResize.affectedEvents,\n mutatedEvents: newResize.mutatedEvents,\n isEvent: newResize.isEvent,\n };\n default:\n return currentResize;\n }\n}\n\nfunction parseToolbars(calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {\n let header = calendarOptions.headerToolbar ? parseToolbar(calendarOptions.headerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;\n let footer = calendarOptions.footerToolbar ? parseToolbar(calendarOptions.footerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;\n return { header, footer };\n}\nfunction parseToolbar(sectionStrHash, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {\n let sectionWidgets = {};\n let viewsWithButtons = [];\n let hasTitle = false;\n for (let sectionName in sectionStrHash) {\n let sectionStr = sectionStrHash[sectionName];\n let sectionRes = parseSection(sectionStr, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi);\n sectionWidgets[sectionName] = sectionRes.widgets;\n viewsWithButtons.push(...sectionRes.viewsWithButtons);\n hasTitle = hasTitle || sectionRes.hasTitle;\n }\n return { sectionWidgets, viewsWithButtons, hasTitle };\n}\n/*\nBAD: querying icons and text here. should be done at render time\n*/\nfunction parseSection(sectionStr, calendarOptions, // defaults+overrides, then refined\ncalendarOptionOverrides, // overrides only!, unrefined :(\ntheme, viewSpecs, calendarApi) {\n let isRtl = calendarOptions.direction === 'rtl';\n let calendarCustomButtons = calendarOptions.customButtons || {};\n let calendarButtonTextOverrides = calendarOptionOverrides.buttonText || {};\n let calendarButtonText = calendarOptions.buttonText || {};\n let calendarButtonHintOverrides = calendarOptionOverrides.buttonHints || {};\n let calendarButtonHints = calendarOptions.buttonHints || {};\n let sectionSubstrs = sectionStr ? sectionStr.split(' ') : [];\n let viewsWithButtons = [];\n let hasTitle = false;\n let widgets = sectionSubstrs.map((buttonGroupStr) => (buttonGroupStr.split(',').map((buttonName) => {\n if (buttonName === 'title') {\n hasTitle = true;\n return { buttonName };\n }\n let customButtonProps;\n let viewSpec;\n let buttonClick;\n let buttonIcon; // only one of these will be set\n let buttonText; // \"\n let buttonHint;\n // ^ for the title=\"\" attribute, for accessibility\n if ((customButtonProps = calendarCustomButtons[buttonName])) {\n buttonClick = (ev) => {\n if (customButtonProps.click) {\n customButtonProps.click.call(ev.target, ev, ev.target); // TODO: use Calendar this context?\n }\n };\n (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) ||\n (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||\n (buttonText = customButtonProps.text);\n buttonHint = customButtonProps.hint || customButtonProps.text;\n }\n else if ((viewSpec = viewSpecs[buttonName])) {\n viewsWithButtons.push(buttonName);\n buttonClick = () => {\n calendarApi.changeView(buttonName);\n };\n (buttonText = viewSpec.buttonTextOverride) ||\n (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||\n (buttonText = viewSpec.buttonTextDefault);\n let textFallback = viewSpec.buttonTextOverride ||\n viewSpec.buttonTextDefault;\n buttonHint = formatWithOrdinals(viewSpec.buttonTitleOverride ||\n viewSpec.buttonTitleDefault ||\n calendarOptions.viewHint, [textFallback, buttonName], // view-name = buttonName\n textFallback);\n }\n else if (calendarApi[buttonName]) { // a calendarApi method\n buttonClick = () => {\n calendarApi[buttonName]();\n };\n (buttonText = calendarButtonTextOverrides[buttonName]) ||\n (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||\n (buttonText = calendarButtonText[buttonName]); // everything else is considered default\n if (buttonName === 'prevYear' || buttonName === 'nextYear') {\n let prevOrNext = buttonName === 'prevYear' ? 'prev' : 'next';\n buttonHint = formatWithOrdinals(calendarButtonHintOverrides[prevOrNext] ||\n calendarButtonHints[prevOrNext], [\n calendarButtonText.year || 'year',\n 'year',\n ], calendarButtonText[buttonName]);\n }\n else {\n buttonHint = (navUnit) => formatWithOrdinals(calendarButtonHintOverrides[buttonName] ||\n calendarButtonHints[buttonName], [\n calendarButtonText[navUnit] || navUnit,\n navUnit,\n ], calendarButtonText[buttonName]);\n }\n }\n return { buttonName, buttonClick, buttonIcon, buttonText, buttonHint };\n })));\n return { widgets, viewsWithButtons, hasTitle };\n}\n\n// always represents the current view. otherwise, it'd need to change value every time date changes\nclass ViewImpl {\n constructor(type, getCurrentData, dateEnv) {\n this.type = type;\n this.getCurrentData = getCurrentData;\n this.dateEnv = dateEnv;\n }\n get calendar() {\n return this.getCurrentData().calendarApi;\n }\n get title() {\n return this.getCurrentData().viewTitle;\n }\n get activeStart() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.start);\n }\n get activeEnd() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.end);\n }\n get currentStart() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.start);\n }\n get currentEnd() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.end);\n }\n getOption(name) {\n return this.getCurrentData().options[name]; // are the view-specific options\n }\n}\n\nlet eventSourceDef$2 = {\n ignoreRange: true,\n parseMeta(refined) {\n if (Array.isArray(refined.events)) {\n return refined.events;\n }\n return null;\n },\n fetch(arg, successCallback) {\n successCallback({\n rawEvents: arg.eventSource.meta,\n });\n },\n};\nconst arrayEventSourcePlugin = createPlugin({\n name: 'array-event-source',\n eventSourceDefs: [eventSourceDef$2],\n});\n\nlet eventSourceDef$1 = {\n parseMeta(refined) {\n if (typeof refined.events === 'function') {\n return refined.events;\n }\n return null;\n },\n fetch(arg, successCallback, errorCallback) {\n const { dateEnv } = arg.context;\n const func = arg.eventSource.meta;\n unpromisify(func.bind(null, buildRangeApiWithTimeZone(arg.range, dateEnv)), (rawEvents) => successCallback({ rawEvents }), errorCallback);\n },\n};\nconst funcEventSourcePlugin = createPlugin({\n name: 'func-event-source',\n eventSourceDefs: [eventSourceDef$1],\n});\n\nconst JSON_FEED_EVENT_SOURCE_REFINERS = {\n method: String,\n extraParams: identity,\n startParam: String,\n endParam: String,\n timeZoneParam: String,\n};\n\nlet eventSourceDef = {\n parseMeta(refined) {\n if (refined.url && (refined.format === 'json' || !refined.format)) {\n return {\n url: refined.url,\n format: 'json',\n method: (refined.method || 'GET').toUpperCase(),\n extraParams: refined.extraParams,\n startParam: refined.startParam,\n endParam: refined.endParam,\n timeZoneParam: refined.timeZoneParam,\n };\n }\n return null;\n },\n fetch(arg, successCallback, errorCallback) {\n const { meta } = arg.eventSource;\n const requestParams = buildRequestParams(meta, arg.range, arg.context);\n requestJson(meta.method, meta.url, requestParams).then(([rawEvents, response]) => {\n successCallback({ rawEvents, response });\n }, errorCallback);\n },\n};\nconst jsonFeedEventSourcePlugin = createPlugin({\n name: 'json-event-source',\n eventSourceRefiners: JSON_FEED_EVENT_SOURCE_REFINERS,\n eventSourceDefs: [eventSourceDef],\n});\nfunction buildRequestParams(meta, range, context) {\n let { dateEnv, options } = context;\n let startParam;\n let endParam;\n let timeZoneParam;\n let customRequestParams;\n let params = {};\n startParam = meta.startParam;\n if (startParam == null) {\n startParam = options.startParam;\n }\n endParam = meta.endParam;\n if (endParam == null) {\n endParam = options.endParam;\n }\n timeZoneParam = meta.timeZoneParam;\n if (timeZoneParam == null) {\n timeZoneParam = options.timeZoneParam;\n }\n // retrieve any outbound GET/POST data from the options\n if (typeof meta.extraParams === 'function') {\n // supplied as a function that returns a key/value object\n customRequestParams = meta.extraParams();\n }\n else {\n // probably supplied as a straight key/value object\n customRequestParams = meta.extraParams || {};\n }\n Object.assign(params, customRequestParams);\n params[startParam] = dateEnv.formatIso(range.start);\n params[endParam] = dateEnv.formatIso(range.end);\n if (dateEnv.timeZone !== 'local') {\n params[timeZoneParam] = dateEnv.timeZone;\n }\n return params;\n}\n\nconst SIMPLE_RECURRING_REFINERS = {\n daysOfWeek: identity,\n startTime: createDuration,\n endTime: createDuration,\n duration: createDuration,\n startRecur: identity,\n endRecur: identity,\n};\n\nlet recurring = {\n parse(refined, dateEnv) {\n if (refined.daysOfWeek || refined.startTime || refined.endTime || refined.startRecur || refined.endRecur) {\n let recurringData = {\n daysOfWeek: refined.daysOfWeek || null,\n startTime: refined.startTime || null,\n endTime: refined.endTime || null,\n startRecur: refined.startRecur ? dateEnv.createMarker(refined.startRecur) : null,\n endRecur: refined.endRecur ? dateEnv.createMarker(refined.endRecur) : null,\n };\n let duration;\n if (refined.duration) {\n duration = refined.duration;\n }\n if (!duration && refined.startTime && refined.endTime) {\n duration = subtractDurations(refined.endTime, refined.startTime);\n }\n return {\n allDayGuess: Boolean(!refined.startTime && !refined.endTime),\n duration,\n typeData: recurringData, // doesn't need endTime anymore but oh well\n };\n }\n return null;\n },\n expand(typeData, framingRange, dateEnv) {\n let clippedFramingRange = intersectRanges(framingRange, { start: typeData.startRecur, end: typeData.endRecur });\n if (clippedFramingRange) {\n return expandRanges(typeData.daysOfWeek, typeData.startTime, clippedFramingRange, dateEnv);\n }\n return [];\n },\n};\nconst simpleRecurringEventsPlugin = createPlugin({\n name: 'simple-recurring-event',\n recurringTypes: [recurring],\n eventRefiners: SIMPLE_RECURRING_REFINERS,\n});\nfunction expandRanges(daysOfWeek, startTime, framingRange, dateEnv) {\n let dowHash = daysOfWeek ? arrayToHash(daysOfWeek) : null;\n let dayMarker = startOfDay(framingRange.start);\n let endMarker = framingRange.end;\n let instanceStarts = [];\n while (dayMarker < endMarker) {\n let instanceStart;\n // if everyday, or this particular day-of-week\n if (!dowHash || dowHash[dayMarker.getUTCDay()]) {\n if (startTime) {\n instanceStart = dateEnv.add(dayMarker, startTime);\n }\n else {\n instanceStart = dayMarker;\n }\n instanceStarts.push(instanceStart);\n }\n dayMarker = addDays(dayMarker, 1);\n }\n return instanceStarts;\n}\n\nconst changeHandlerPlugin = createPlugin({\n name: 'change-handler',\n optionChangeHandlers: {\n events(events, context) {\n handleEventSources([events], context);\n },\n eventSources: handleEventSources,\n },\n});\n/*\nBUG: if `event` was supplied, all previously-given `eventSources` will be wiped out\n*/\nfunction handleEventSources(inputs, context) {\n let unfoundSources = hashValuesToArray(context.getCurrentData().eventSources);\n if (unfoundSources.length === 1 &&\n inputs.length === 1 &&\n Array.isArray(unfoundSources[0]._raw) &&\n Array.isArray(inputs[0])) {\n context.dispatch({\n type: 'RESET_RAW_EVENTS',\n sourceId: unfoundSources[0].sourceId,\n rawEvents: inputs[0],\n });\n return;\n }\n let newInputs = [];\n for (let input of inputs) {\n let inputFound = false;\n for (let i = 0; i < unfoundSources.length; i += 1) {\n if (unfoundSources[i]._raw === input) {\n unfoundSources.splice(i, 1); // delete\n inputFound = true;\n break;\n }\n }\n if (!inputFound) {\n newInputs.push(input);\n }\n }\n for (let unfoundSource of unfoundSources) {\n context.dispatch({\n type: 'REMOVE_EVENT_SOURCE',\n sourceId: unfoundSource.sourceId,\n });\n }\n for (let newInput of newInputs) {\n context.calendarApi.addEventSource(newInput);\n }\n}\n\nfunction handleDateProfile(dateProfile, context) {\n context.emitter.trigger('datesSet', Object.assign(Object.assign({}, buildRangeApiWithTimeZone(dateProfile.activeRange, context.dateEnv)), { view: context.viewApi }));\n}\n\nfunction handleEventStore(eventStore, context) {\n let { emitter } = context;\n if (emitter.hasHandlers('eventsSet')) {\n emitter.trigger('eventsSet', buildEventApis(eventStore, context));\n }\n}\n\n/*\nthis array is exposed on the root namespace so that UMD plugins can add to it.\nsee the rollup-bundles script.\n*/\nconst globalPlugins = [\n arrayEventSourcePlugin,\n funcEventSourcePlugin,\n jsonFeedEventSourcePlugin,\n simpleRecurringEventsPlugin,\n changeHandlerPlugin,\n createPlugin({\n name: 'misc',\n isLoadingFuncs: [\n (state) => computeEventSourcesLoading(state.eventSources),\n ],\n propSetHandlers: {\n dateProfile: handleDateProfile,\n eventStore: handleEventStore,\n },\n }),\n];\n\nclass TaskRunner {\n constructor(runTaskOption, drainedOption) {\n this.runTaskOption = runTaskOption;\n this.drainedOption = drainedOption;\n this.queue = [];\n this.delayedRunner = new DelayedRunner(this.drain.bind(this));\n }\n request(task, delay) {\n this.queue.push(task);\n this.delayedRunner.request(delay);\n }\n pause(scope) {\n this.delayedRunner.pause(scope);\n }\n resume(scope, force) {\n this.delayedRunner.resume(scope, force);\n }\n drain() {\n let { queue } = this;\n while (queue.length) {\n let completedTasks = [];\n let task;\n while ((task = queue.shift())) {\n this.runTask(task);\n completedTasks.push(task);\n }\n this.drained(completedTasks);\n } // keep going, in case new tasks were added in the drained handler\n }\n runTask(task) {\n if (this.runTaskOption) {\n this.runTaskOption(task);\n }\n }\n drained(completedTasks) {\n if (this.drainedOption) {\n this.drainedOption(completedTasks);\n }\n }\n}\n\n// Computes what the title at the top of the calendarApi should be for this view\nfunction buildTitle(dateProfile, viewOptions, dateEnv) {\n let range;\n // for views that span a large unit of time, show the proper interval, ignoring stray days before and after\n if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) {\n range = dateProfile.currentRange;\n }\n else { // for day units or smaller, use the actual day range\n range = dateProfile.activeRange;\n }\n return dateEnv.formatRange(range.start, range.end, createFormatter(viewOptions.titleFormat || buildTitleFormat(dateProfile)), {\n isEndExclusive: dateProfile.isRangeAllDay,\n defaultSeparator: viewOptions.titleRangeSeparator,\n });\n}\n// Generates the format string that should be used to generate the title for the current date range.\n// Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`.\nfunction buildTitleFormat(dateProfile) {\n let { currentRangeUnit } = dateProfile;\n if (currentRangeUnit === 'year') {\n return { year: 'numeric' };\n }\n if (currentRangeUnit === 'month') {\n return { year: 'numeric', month: 'long' }; // like \"September 2014\"\n }\n let days = diffWholeDays(dateProfile.currentRange.start, dateProfile.currentRange.end);\n if (days !== null && days > 1) {\n // multi-day range. shorter, like \"Sep 9 - 10 2014\"\n return { year: 'numeric', month: 'short', day: 'numeric' };\n }\n // one day. longer, like \"September 9 2014\"\n return { year: 'numeric', month: 'long', day: 'numeric' };\n}\n\n// in future refactor, do the redux-style function(state=initial) for initial-state\n// also, whatever is happening in constructor, have it happen in action queue too\nclass CalendarDataManager {\n constructor(props) {\n this.computeCurrentViewData = memoize(this._computeCurrentViewData);\n this.organizeRawLocales = memoize(organizeRawLocales);\n this.buildLocale = memoize(buildLocale);\n this.buildPluginHooks = buildBuildPluginHooks();\n this.buildDateEnv = memoize(buildDateEnv$1);\n this.buildTheme = memoize(buildTheme);\n this.parseToolbars = memoize(parseToolbars);\n this.buildViewSpecs = memoize(buildViewSpecs);\n this.buildDateProfileGenerator = memoizeObjArg(buildDateProfileGenerator);\n this.buildViewApi = memoize(buildViewApi);\n this.buildViewUiProps = memoizeObjArg(buildViewUiProps);\n this.buildEventUiBySource = memoize(buildEventUiBySource, isPropsEqual);\n this.buildEventUiBases = memoize(buildEventUiBases);\n this.parseContextBusinessHours = memoizeObjArg(parseContextBusinessHours);\n this.buildTitle = memoize(buildTitle);\n this.emitter = new Emitter();\n this.actionRunner = new TaskRunner(this._handleAction.bind(this), this.updateData.bind(this));\n this.currentCalendarOptionsInput = {};\n this.currentCalendarOptionsRefined = {};\n this.currentViewOptionsInput = {};\n this.currentViewOptionsRefined = {};\n this.currentCalendarOptionsRefiners = {};\n this.optionsForRefining = [];\n this.optionsForHandling = [];\n this.getCurrentData = () => this.data;\n this.dispatch = (action) => {\n this.actionRunner.request(action); // protects against recursive calls to _handleAction\n };\n this.props = props;\n this.actionRunner.pause();\n let dynamicOptionOverrides = {};\n let optionsData = this.computeOptionsData(props.optionOverrides, dynamicOptionOverrides, props.calendarApi);\n let currentViewType = optionsData.calendarOptions.initialView || optionsData.pluginHooks.initialView;\n let currentViewData = this.computeCurrentViewData(currentViewType, optionsData, props.optionOverrides, dynamicOptionOverrides);\n // wire things up\n // TODO: not DRY\n props.calendarApi.currentDataManager = this;\n this.emitter.setThisContext(props.calendarApi);\n this.emitter.setOptions(currentViewData.options);\n let currentDate = getInitialDate(optionsData.calendarOptions, optionsData.dateEnv);\n let dateProfile = currentViewData.dateProfileGenerator.build(currentDate);\n if (!rangeContainsMarker(dateProfile.activeRange, currentDate)) {\n currentDate = dateProfile.currentRange.start;\n }\n let calendarContext = {\n dateEnv: optionsData.dateEnv,\n options: optionsData.calendarOptions,\n pluginHooks: optionsData.pluginHooks,\n calendarApi: props.calendarApi,\n dispatch: this.dispatch,\n emitter: this.emitter,\n getCurrentData: this.getCurrentData,\n };\n // needs to be after setThisContext\n for (let callback of optionsData.pluginHooks.contextInit) {\n callback(calendarContext);\n }\n // NOT DRY\n let eventSources = initEventSources(optionsData.calendarOptions, dateProfile, calendarContext);\n let initialState = {\n dynamicOptionOverrides,\n currentViewType,\n currentDate,\n dateProfile,\n businessHours: this.parseContextBusinessHours(calendarContext),\n eventSources,\n eventUiBases: {},\n eventStore: createEmptyEventStore(),\n renderableEventStore: createEmptyEventStore(),\n dateSelection: null,\n eventSelection: '',\n eventDrag: null,\n eventResize: null,\n selectionConfig: this.buildViewUiProps(calendarContext).selectionConfig,\n };\n let contextAndState = Object.assign(Object.assign({}, calendarContext), initialState);\n for (let reducer of optionsData.pluginHooks.reducers) {\n Object.assign(initialState, reducer(null, null, contextAndState));\n }\n if (computeIsLoading(initialState, calendarContext)) {\n this.emitter.trigger('loading', true); // NOT DRY\n }\n this.state = initialState;\n this.updateData();\n this.actionRunner.resume();\n }\n resetOptions(optionOverrides, changedOptionNames) {\n let { props } = this;\n if (changedOptionNames === undefined) {\n props.optionOverrides = optionOverrides;\n }\n else {\n props.optionOverrides = Object.assign(Object.assign({}, (props.optionOverrides || {})), optionOverrides);\n this.optionsForRefining.push(...changedOptionNames);\n }\n if (changedOptionNames === undefined || changedOptionNames.length) {\n this.actionRunner.request({\n type: 'NOTHING',\n });\n }\n }\n _handleAction(action) {\n let { props, state, emitter } = this;\n let dynamicOptionOverrides = reduceDynamicOptionOverrides(state.dynamicOptionOverrides, action);\n let optionsData = this.computeOptionsData(props.optionOverrides, dynamicOptionOverrides, props.calendarApi);\n let currentViewType = reduceViewType(state.currentViewType, action);\n let currentViewData = this.computeCurrentViewData(currentViewType, optionsData, props.optionOverrides, dynamicOptionOverrides);\n // wire things up\n // TODO: not DRY\n props.calendarApi.currentDataManager = this;\n emitter.setThisContext(props.calendarApi);\n emitter.setOptions(currentViewData.options);\n let calendarContext = {\n dateEnv: optionsData.dateEnv,\n options: optionsData.calendarOptions,\n pluginHooks: optionsData.pluginHooks,\n calendarApi: props.calendarApi,\n dispatch: this.dispatch,\n emitter,\n getCurrentData: this.getCurrentData,\n };\n let { currentDate, dateProfile } = state;\n if (this.data && this.data.dateProfileGenerator !== currentViewData.dateProfileGenerator) { // hack\n dateProfile = currentViewData.dateProfileGenerator.build(currentDate);\n }\n currentDate = reduceCurrentDate(currentDate, action);\n dateProfile = reduceDateProfile(dateProfile, action, currentDate, currentViewData.dateProfileGenerator);\n if (action.type === 'PREV' || // TODO: move this logic into DateProfileGenerator\n action.type === 'NEXT' || // \"\n !rangeContainsMarker(dateProfile.currentRange, currentDate)) {\n currentDate = dateProfile.currentRange.start;\n }\n let eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendarContext);\n let eventStore = reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendarContext);\n let isEventsLoading = computeEventSourcesLoading(eventSources); // BAD. also called in this func in computeIsLoading\n let renderableEventStore = (isEventsLoading && !currentViewData.options.progressiveEventRendering) ?\n (state.renderableEventStore || eventStore) : // try from previous state\n eventStore;\n let { eventUiSingleBase, selectionConfig } = this.buildViewUiProps(calendarContext); // will memoize obj\n let eventUiBySource = this.buildEventUiBySource(eventSources);\n let eventUiBases = this.buildEventUiBases(renderableEventStore.defs, eventUiSingleBase, eventUiBySource);\n let newState = {\n dynamicOptionOverrides,\n currentViewType,\n currentDate,\n dateProfile,\n eventSources,\n eventStore,\n renderableEventStore,\n selectionConfig,\n eventUiBases,\n businessHours: this.parseContextBusinessHours(calendarContext),\n dateSelection: reduceDateSelection(state.dateSelection, action),\n eventSelection: reduceSelectedEvent(state.eventSelection, action),\n eventDrag: reduceEventDrag(state.eventDrag, action),\n eventResize: reduceEventResize(state.eventResize, action),\n };\n let contextAndState = Object.assign(Object.assign({}, calendarContext), newState);\n for (let reducer of optionsData.pluginHooks.reducers) {\n Object.assign(newState, reducer(state, action, contextAndState)); // give the OLD state, for old value\n }\n let wasLoading = computeIsLoading(state, calendarContext);\n let isLoading = computeIsLoading(newState, calendarContext);\n // TODO: use propSetHandlers in plugin system\n if (!wasLoading && isLoading) {\n emitter.trigger('loading', true);\n }\n else if (wasLoading && !isLoading) {\n emitter.trigger('loading', false);\n }\n this.state = newState;\n if (props.onAction) {\n props.onAction(action);\n }\n }\n updateData() {\n let { props, state } = this;\n let oldData = this.data;\n let optionsData = this.computeOptionsData(props.optionOverrides, state.dynamicOptionOverrides, props.calendarApi);\n let currentViewData = this.computeCurrentViewData(state.currentViewType, optionsData, props.optionOverrides, state.dynamicOptionOverrides);\n let data = this.data = Object.assign(Object.assign(Object.assign({ viewTitle: this.buildTitle(state.dateProfile, currentViewData.options, optionsData.dateEnv), calendarApi: props.calendarApi, dispatch: this.dispatch, emitter: this.emitter, getCurrentData: this.getCurrentData }, optionsData), currentViewData), state);\n let changeHandlers = optionsData.pluginHooks.optionChangeHandlers;\n let oldCalendarOptions = oldData && oldData.calendarOptions;\n let newCalendarOptions = optionsData.calendarOptions;\n if (oldCalendarOptions && oldCalendarOptions !== newCalendarOptions) {\n if (oldCalendarOptions.timeZone !== newCalendarOptions.timeZone) {\n // hack\n state.eventSources = data.eventSources = reduceEventSourcesNewTimeZone(data.eventSources, state.dateProfile, data);\n state.eventStore = data.eventStore = rezoneEventStoreDates(data.eventStore, oldData.dateEnv, data.dateEnv);\n state.renderableEventStore = data.renderableEventStore = rezoneEventStoreDates(data.renderableEventStore, oldData.dateEnv, data.dateEnv);\n }\n for (let optionName in changeHandlers) {\n if (this.optionsForHandling.indexOf(optionName) !== -1 ||\n oldCalendarOptions[optionName] !== newCalendarOptions[optionName]) {\n changeHandlers[optionName](newCalendarOptions[optionName], data);\n }\n }\n }\n this.optionsForHandling = [];\n if (props.onData) {\n props.onData(data);\n }\n }\n computeOptionsData(optionOverrides, dynamicOptionOverrides, calendarApi) {\n // TODO: blacklist options that are handled by optionChangeHandlers\n if (!this.optionsForRefining.length &&\n optionOverrides === this.stableOptionOverrides &&\n dynamicOptionOverrides === this.stableDynamicOptionOverrides) {\n return this.stableCalendarOptionsData;\n }\n let { refinedOptions, pluginHooks, localeDefaults, availableLocaleData, extra, } = this.processRawCalendarOptions(optionOverrides, dynamicOptionOverrides);\n warnUnknownOptions(extra);\n let dateEnv = this.buildDateEnv(refinedOptions.timeZone, refinedOptions.locale, refinedOptions.weekNumberCalculation, refinedOptions.firstDay, refinedOptions.weekText, pluginHooks, availableLocaleData, refinedOptions.defaultRangeSeparator);\n let viewSpecs = this.buildViewSpecs(pluginHooks.views, this.stableOptionOverrides, this.stableDynamicOptionOverrides, localeDefaults);\n let theme = this.buildTheme(refinedOptions, pluginHooks);\n let toolbarConfig = this.parseToolbars(refinedOptions, this.stableOptionOverrides, theme, viewSpecs, calendarApi);\n return this.stableCalendarOptionsData = {\n calendarOptions: refinedOptions,\n pluginHooks,\n dateEnv,\n viewSpecs,\n theme,\n toolbarConfig,\n localeDefaults,\n availableRawLocales: availableLocaleData.map,\n };\n }\n // always called from behind a memoizer\n processRawCalendarOptions(optionOverrides, dynamicOptionOverrides) {\n let { locales, locale } = mergeRawOptions([\n BASE_OPTION_DEFAULTS,\n optionOverrides,\n dynamicOptionOverrides,\n ]);\n let availableLocaleData = this.organizeRawLocales(locales);\n let availableRawLocales = availableLocaleData.map;\n let localeDefaults = this.buildLocale(locale || availableLocaleData.defaultCode, availableRawLocales).options;\n let pluginHooks = this.buildPluginHooks(optionOverrides.plugins || [], globalPlugins);\n let refiners = this.currentCalendarOptionsRefiners = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, BASE_OPTION_REFINERS), CALENDAR_LISTENER_REFINERS), CALENDAR_OPTION_REFINERS), pluginHooks.listenerRefiners), pluginHooks.optionRefiners);\n let extra = {};\n let raw = mergeRawOptions([\n BASE_OPTION_DEFAULTS,\n localeDefaults,\n optionOverrides,\n dynamicOptionOverrides,\n ]);\n let refined = {};\n let currentRaw = this.currentCalendarOptionsInput;\n let currentRefined = this.currentCalendarOptionsRefined;\n let anyChanges = false;\n for (let optionName in raw) {\n if (this.optionsForRefining.indexOf(optionName) === -1 && (raw[optionName] === currentRaw[optionName] || (COMPLEX_OPTION_COMPARATORS[optionName] &&\n (optionName in currentRaw) &&\n COMPLEX_OPTION_COMPARATORS[optionName](currentRaw[optionName], raw[optionName])))) {\n refined[optionName] = currentRefined[optionName];\n }\n else if (refiners[optionName]) {\n refined[optionName] = refiners[optionName](raw[optionName]);\n anyChanges = true;\n }\n else {\n extra[optionName] = currentRaw[optionName];\n }\n }\n if (anyChanges) {\n this.currentCalendarOptionsInput = raw;\n this.currentCalendarOptionsRefined = refined;\n this.stableOptionOverrides = optionOverrides;\n this.stableDynamicOptionOverrides = dynamicOptionOverrides;\n }\n this.optionsForHandling.push(...this.optionsForRefining);\n this.optionsForRefining = [];\n return {\n rawOptions: this.currentCalendarOptionsInput,\n refinedOptions: this.currentCalendarOptionsRefined,\n pluginHooks,\n availableLocaleData,\n localeDefaults,\n extra,\n };\n }\n _computeCurrentViewData(viewType, optionsData, optionOverrides, dynamicOptionOverrides) {\n let viewSpec = optionsData.viewSpecs[viewType];\n if (!viewSpec) {\n throw new Error(`viewType \"${viewType}\" is not available. Please make sure you've loaded all neccessary plugins`);\n }\n let { refinedOptions, extra } = this.processRawViewOptions(viewSpec, optionsData.pluginHooks, optionsData.localeDefaults, optionOverrides, dynamicOptionOverrides);\n warnUnknownOptions(extra);\n let dateProfileGenerator = this.buildDateProfileGenerator({\n dateProfileGeneratorClass: viewSpec.optionDefaults.dateProfileGeneratorClass,\n duration: viewSpec.duration,\n durationUnit: viewSpec.durationUnit,\n usesMinMaxTime: viewSpec.optionDefaults.usesMinMaxTime,\n dateEnv: optionsData.dateEnv,\n calendarApi: this.props.calendarApi,\n slotMinTime: refinedOptions.slotMinTime,\n slotMaxTime: refinedOptions.slotMaxTime,\n showNonCurrentDates: refinedOptions.showNonCurrentDates,\n dayCount: refinedOptions.dayCount,\n dateAlignment: refinedOptions.dateAlignment,\n dateIncrement: refinedOptions.dateIncrement,\n hiddenDays: refinedOptions.hiddenDays,\n weekends: refinedOptions.weekends,\n nowInput: refinedOptions.now,\n validRangeInput: refinedOptions.validRange,\n visibleRangeInput: refinedOptions.visibleRange,\n fixedWeekCount: refinedOptions.fixedWeekCount,\n });\n let viewApi = this.buildViewApi(viewType, this.getCurrentData, optionsData.dateEnv);\n return { viewSpec, options: refinedOptions, dateProfileGenerator, viewApi };\n }\n processRawViewOptions(viewSpec, pluginHooks, localeDefaults, optionOverrides, dynamicOptionOverrides) {\n let raw = mergeRawOptions([\n BASE_OPTION_DEFAULTS,\n viewSpec.optionDefaults,\n localeDefaults,\n optionOverrides,\n viewSpec.optionOverrides,\n dynamicOptionOverrides,\n ]);\n let refiners = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, BASE_OPTION_REFINERS), CALENDAR_LISTENER_REFINERS), CALENDAR_OPTION_REFINERS), VIEW_OPTION_REFINERS), pluginHooks.listenerRefiners), pluginHooks.optionRefiners);\n let refined = {};\n let currentRaw = this.currentViewOptionsInput;\n let currentRefined = this.currentViewOptionsRefined;\n let anyChanges = false;\n let extra = {};\n for (let optionName in raw) {\n if (raw[optionName] === currentRaw[optionName] ||\n (COMPLEX_OPTION_COMPARATORS[optionName] &&\n COMPLEX_OPTION_COMPARATORS[optionName](raw[optionName], currentRaw[optionName]))) {\n refined[optionName] = currentRefined[optionName];\n }\n else {\n if (raw[optionName] === this.currentCalendarOptionsInput[optionName] ||\n (COMPLEX_OPTION_COMPARATORS[optionName] &&\n COMPLEX_OPTION_COMPARATORS[optionName](raw[optionName], this.currentCalendarOptionsInput[optionName]))) {\n if (optionName in this.currentCalendarOptionsRefined) { // might be an \"extra\" prop\n refined[optionName] = this.currentCalendarOptionsRefined[optionName];\n }\n }\n else if (refiners[optionName]) {\n refined[optionName] = refiners[optionName](raw[optionName]);\n }\n else {\n extra[optionName] = raw[optionName];\n }\n anyChanges = true;\n }\n }\n if (anyChanges) {\n this.currentViewOptionsInput = raw;\n this.currentViewOptionsRefined = refined;\n }\n return {\n rawOptions: this.currentViewOptionsInput,\n refinedOptions: this.currentViewOptionsRefined,\n extra,\n };\n }\n}\nfunction buildDateEnv$1(timeZone, explicitLocale, weekNumberCalculation, firstDay, weekText, pluginHooks, availableLocaleData, defaultSeparator) {\n let locale = buildLocale(explicitLocale || availableLocaleData.defaultCode, availableLocaleData.map);\n return new DateEnv({\n calendarSystem: 'gregory',\n timeZone,\n namedTimeZoneImpl: pluginHooks.namedTimeZonedImpl,\n locale,\n weekNumberCalculation,\n firstDay,\n weekText,\n cmdFormatter: pluginHooks.cmdFormatter,\n defaultSeparator,\n });\n}\nfunction buildTheme(options, pluginHooks) {\n let ThemeClass = pluginHooks.themeClasses[options.themeSystem] || StandardTheme;\n return new ThemeClass(options);\n}\nfunction buildDateProfileGenerator(props) {\n let DateProfileGeneratorClass = props.dateProfileGeneratorClass || DateProfileGenerator;\n return new DateProfileGeneratorClass(props);\n}\nfunction buildViewApi(type, getCurrentData, dateEnv) {\n return new ViewImpl(type, getCurrentData, dateEnv);\n}\nfunction buildEventUiBySource(eventSources) {\n return mapHash(eventSources, (eventSource) => eventSource.ui);\n}\nfunction buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) {\n let eventUiBases = { '': eventUiSingleBase };\n for (let defId in eventDefs) {\n let def = eventDefs[defId];\n if (def.sourceId && eventUiBySource[def.sourceId]) {\n eventUiBases[defId] = eventUiBySource[def.sourceId];\n }\n }\n return eventUiBases;\n}\nfunction buildViewUiProps(calendarContext) {\n let { options } = calendarContext;\n return {\n eventUiSingleBase: createEventUi({\n display: options.eventDisplay,\n editable: options.editable,\n startEditable: options.eventStartEditable,\n durationEditable: options.eventDurationEditable,\n constraint: options.eventConstraint,\n overlap: typeof options.eventOverlap === 'boolean' ? options.eventOverlap : undefined,\n allow: options.eventAllow,\n backgroundColor: options.eventBackgroundColor,\n borderColor: options.eventBorderColor,\n textColor: options.eventTextColor,\n color: options.eventColor,\n // classNames: options.eventClassNames // render hook will handle this\n }, calendarContext),\n selectionConfig: createEventUi({\n constraint: options.selectConstraint,\n overlap: typeof options.selectOverlap === 'boolean' ? options.selectOverlap : undefined,\n allow: options.selectAllow,\n }, calendarContext),\n };\n}\nfunction computeIsLoading(state, context) {\n for (let isLoadingFunc of context.pluginHooks.isLoadingFuncs) {\n if (isLoadingFunc(state)) {\n return true;\n }\n }\n return false;\n}\nfunction parseContextBusinessHours(calendarContext) {\n return parseBusinessHours(calendarContext.options.businessHours, calendarContext);\n}\nfunction warnUnknownOptions(options, viewName) {\n for (let optionName in options) {\n console.warn(`Unknown option '${optionName}'` +\n (viewName ? ` for view '${viewName}'` : ''));\n }\n}\n\nclass ToolbarSection extends BaseComponent {\n render() {\n let children = this.props.widgetGroups.map((widgetGroup) => this.renderWidgetGroup(widgetGroup));\n return createElement('div', { className: 'fc-toolbar-chunk' }, ...children);\n }\n renderWidgetGroup(widgetGroup) {\n let { props } = this;\n let { theme } = this.context;\n let children = [];\n let isOnlyButtons = true;\n for (let widget of widgetGroup) {\n let { buttonName, buttonClick, buttonText, buttonIcon, buttonHint } = widget;\n if (buttonName === 'title') {\n isOnlyButtons = false;\n children.push(createElement(\"h2\", { className: \"fc-toolbar-title\", id: props.titleId }, props.title));\n }\n else {\n let isPressed = buttonName === props.activeButton;\n let isDisabled = (!props.isTodayEnabled && buttonName === 'today') ||\n (!props.isPrevEnabled && buttonName === 'prev') ||\n (!props.isNextEnabled && buttonName === 'next');\n let buttonClasses = [`fc-${buttonName}-button`, theme.getClass('button')];\n if (isPressed) {\n buttonClasses.push(theme.getClass('buttonActive'));\n }\n children.push(createElement(\"button\", { type: \"button\", title: typeof buttonHint === 'function' ? buttonHint(props.navUnit) : buttonHint, disabled: isDisabled, \"aria-pressed\": isPressed, className: buttonClasses.join(' '), onClick: buttonClick }, buttonText || (buttonIcon ? createElement(\"span\", { className: buttonIcon, role: \"img\" }) : '')));\n }\n }\n if (children.length > 1) {\n let groupClassName = (isOnlyButtons && theme.getClass('buttonGroup')) || '';\n return createElement('div', { className: groupClassName }, ...children);\n }\n return children[0];\n }\n}\n\nclass Toolbar extends BaseComponent {\n render() {\n let { model, extraClassName } = this.props;\n let forceLtr = false;\n let startContent;\n let endContent;\n let sectionWidgets = model.sectionWidgets;\n let centerContent = sectionWidgets.center;\n if (sectionWidgets.left) {\n forceLtr = true;\n startContent = sectionWidgets.left;\n }\n else {\n startContent = sectionWidgets.start;\n }\n if (sectionWidgets.right) {\n forceLtr = true;\n endContent = sectionWidgets.right;\n }\n else {\n endContent = sectionWidgets.end;\n }\n let classNames = [\n extraClassName || '',\n 'fc-toolbar',\n forceLtr ? 'fc-toolbar-ltr' : '',\n ];\n return (createElement(\"div\", { className: classNames.join(' ') },\n this.renderSection('start', startContent || []),\n this.renderSection('center', centerContent || []),\n this.renderSection('end', endContent || [])));\n }\n renderSection(key, widgetGroups) {\n let { props } = this;\n return (createElement(ToolbarSection, { key: key, widgetGroups: widgetGroups, title: props.title, navUnit: props.navUnit, activeButton: props.activeButton, isTodayEnabled: props.isTodayEnabled, isPrevEnabled: props.isPrevEnabled, isNextEnabled: props.isNextEnabled, titleId: props.titleId }));\n }\n}\n\nclass ViewHarness extends BaseComponent {\n constructor() {\n super(...arguments);\n this.state = {\n availableWidth: null,\n };\n this.handleEl = (el) => {\n this.el = el;\n setRef(this.props.elRef, el);\n this.updateAvailableWidth();\n };\n this.handleResize = () => {\n this.updateAvailableWidth();\n };\n }\n render() {\n let { props, state } = this;\n let { aspectRatio } = props;\n let classNames = [\n 'fc-view-harness',\n (aspectRatio || props.liquid || props.height)\n ? 'fc-view-harness-active' // harness controls the height\n : 'fc-view-harness-passive', // let the view do the height\n ];\n let height = '';\n let paddingBottom = '';\n if (aspectRatio) {\n if (state.availableWidth !== null) {\n height = state.availableWidth / aspectRatio;\n }\n else {\n // while waiting to know availableWidth, we can't set height to *zero*\n // because will cause lots of unnecessary scrollbars within scrollgrid.\n // BETTER: don't start rendering ANYTHING yet until we know container width\n // NOTE: why not always use paddingBottom? Causes height oscillation (issue 5606)\n paddingBottom = `${(1 / aspectRatio) * 100}%`;\n }\n }\n else {\n height = props.height || '';\n }\n return (createElement(\"div\", { \"aria-labelledby\": props.labeledById, ref: this.handleEl, className: classNames.join(' '), style: { height, paddingBottom } }, props.children));\n }\n componentDidMount() {\n this.context.addResizeHandler(this.handleResize);\n }\n componentWillUnmount() {\n this.context.removeResizeHandler(this.handleResize);\n }\n updateAvailableWidth() {\n if (this.el && // needed. but why?\n this.props.aspectRatio // aspectRatio is the only height setting that needs availableWidth\n ) {\n this.setState({ availableWidth: this.el.offsetWidth });\n }\n }\n}\n\n/*\nDetects when the user clicks on an event within a DateComponent\n*/\nclass EventClicking extends Interaction {\n constructor(settings) {\n super(settings);\n this.handleSegClick = (ev, segEl) => {\n let { component } = this;\n let { context } = component;\n let seg = getElSeg(segEl);\n if (seg && // might be the <div> surrounding the more link\n component.isValidSegDownEl(ev.target)) {\n // our way to simulate a link click for elements that can't be <a> tags\n // grab before trigger fired in case trigger trashes DOM thru rerendering\n let hasUrlContainer = elementClosest(ev.target, '.fc-event-forced-url');\n let url = hasUrlContainer ? hasUrlContainer.querySelector('a[href]').href : '';\n context.emitter.trigger('eventClick', {\n el: segEl,\n event: new EventImpl(component.context, seg.eventRange.def, seg.eventRange.instance),\n jsEvent: ev,\n view: context.viewApi,\n });\n if (url && !ev.defaultPrevented) {\n window.location.href = url;\n }\n }\n };\n this.destroy = listenBySelector(settings.el, 'click', '.fc-event', // on both fg and bg events\n this.handleSegClick);\n }\n}\n\n/*\nTriggers events and adds/removes core classNames when the user's pointer\nenters/leaves event-elements of a component.\n*/\nclass EventHovering extends Interaction {\n constructor(settings) {\n super(settings);\n // for simulating an eventMouseLeave when the event el is destroyed while mouse is over it\n this.handleEventElRemove = (el) => {\n if (el === this.currentSegEl) {\n this.handleSegLeave(null, this.currentSegEl);\n }\n };\n this.handleSegEnter = (ev, segEl) => {\n if (getElSeg(segEl)) { // TODO: better way to make sure not hovering over more+ link or its wrapper\n this.currentSegEl = segEl;\n this.triggerEvent('eventMouseEnter', ev, segEl);\n }\n };\n this.handleSegLeave = (ev, segEl) => {\n if (this.currentSegEl) {\n this.currentSegEl = null;\n this.triggerEvent('eventMouseLeave', ev, segEl);\n }\n };\n this.removeHoverListeners = listenToHoverBySelector(settings.el, '.fc-event', // on both fg and bg events\n this.handleSegEnter, this.handleSegLeave);\n }\n destroy() {\n this.removeHoverListeners();\n }\n triggerEvent(publicEvName, ev, segEl) {\n let { component } = this;\n let { context } = component;\n let seg = getElSeg(segEl);\n if (!ev || component.isValidSegDownEl(ev.target)) {\n context.emitter.trigger(publicEvName, {\n el: segEl,\n event: new EventImpl(context, seg.eventRange.def, seg.eventRange.instance),\n jsEvent: ev,\n view: context.viewApi,\n });\n }\n }\n}\n\nclass CalendarContent extends PureComponent {\n constructor() {\n super(...arguments);\n this.buildViewContext = memoize(buildViewContext);\n this.buildViewPropTransformers = memoize(buildViewPropTransformers);\n this.buildToolbarProps = memoize(buildToolbarProps);\n this.headerRef = createRef();\n this.footerRef = createRef();\n this.interactionsStore = {};\n // eslint-disable-next-line\n this.state = {\n viewLabelId: getUniqueDomId(),\n };\n // Component Registration\n // -----------------------------------------------------------------------------------------------------------------\n this.registerInteractiveComponent = (component, settingsInput) => {\n let settings = parseInteractionSettings(component, settingsInput);\n let DEFAULT_INTERACTIONS = [\n EventClicking,\n EventHovering,\n ];\n let interactionClasses = DEFAULT_INTERACTIONS.concat(this.props.pluginHooks.componentInteractions);\n let interactions = interactionClasses.map((TheInteractionClass) => new TheInteractionClass(settings));\n this.interactionsStore[component.uid] = interactions;\n interactionSettingsStore[component.uid] = settings;\n };\n this.unregisterInteractiveComponent = (component) => {\n let listeners = this.interactionsStore[component.uid];\n if (listeners) {\n for (let listener of listeners) {\n listener.destroy();\n }\n delete this.interactionsStore[component.uid];\n }\n delete interactionSettingsStore[component.uid];\n };\n // Resizing\n // -----------------------------------------------------------------------------------------------------------------\n this.resizeRunner = new DelayedRunner(() => {\n this.props.emitter.trigger('_resize', true); // should window resizes be considered \"forced\" ?\n this.props.emitter.trigger('windowResize', { view: this.props.viewApi });\n });\n this.handleWindowResize = (ev) => {\n let { options } = this.props;\n if (options.handleWindowResize &&\n ev.target === window // avoid jqui events\n ) {\n this.resizeRunner.request(options.windowResizeDelay);\n }\n };\n }\n /*\n renders INSIDE of an outer div\n */\n render() {\n let { props } = this;\n let { toolbarConfig, options } = props;\n let toolbarProps = this.buildToolbarProps(props.viewSpec, props.dateProfile, props.dateProfileGenerator, props.currentDate, getNow(props.options.now, props.dateEnv), // TODO: use NowTimer????\n props.viewTitle);\n let viewVGrow = false;\n let viewHeight = '';\n let viewAspectRatio;\n if (props.isHeightAuto || props.forPrint) {\n viewHeight = '';\n }\n else if (options.height != null) {\n viewVGrow = true;\n }\n else if (options.contentHeight != null) {\n viewHeight = options.contentHeight;\n }\n else {\n viewAspectRatio = Math.max(options.aspectRatio, 0.5); // prevent from getting too tall\n }\n let viewContext = this.buildViewContext(props.viewSpec, props.viewApi, props.options, props.dateProfileGenerator, props.dateEnv, props.theme, props.pluginHooks, props.dispatch, props.getCurrentData, props.emitter, props.calendarApi, this.registerInteractiveComponent, this.unregisterInteractiveComponent);\n let viewLabelId = (toolbarConfig.header && toolbarConfig.header.hasTitle)\n ? this.state.viewLabelId\n : undefined;\n return (createElement(ViewContextType.Provider, { value: viewContext },\n toolbarConfig.header && (createElement(Toolbar, Object.assign({ ref: this.headerRef, extraClassName: \"fc-header-toolbar\", model: toolbarConfig.header, titleId: viewLabelId }, toolbarProps))),\n createElement(ViewHarness, { liquid: viewVGrow, height: viewHeight, aspectRatio: viewAspectRatio, labeledById: viewLabelId },\n this.renderView(props),\n this.buildAppendContent()),\n toolbarConfig.footer && (createElement(Toolbar, Object.assign({ ref: this.footerRef, extraClassName: \"fc-footer-toolbar\", model: toolbarConfig.footer, titleId: \"\" }, toolbarProps)))));\n }\n componentDidMount() {\n let { props } = this;\n this.calendarInteractions = props.pluginHooks.calendarInteractions\n .map((CalendarInteractionClass) => new CalendarInteractionClass(props));\n window.addEventListener('resize', this.handleWindowResize);\n let { propSetHandlers } = props.pluginHooks;\n for (let propName in propSetHandlers) {\n propSetHandlers[propName](props[propName], props);\n }\n }\n componentDidUpdate(prevProps) {\n let { props } = this;\n let { propSetHandlers } = props.pluginHooks;\n for (let propName in propSetHandlers) {\n if (props[propName] !== prevProps[propName]) {\n propSetHandlers[propName](props[propName], props);\n }\n }\n }\n componentWillUnmount() {\n window.removeEventListener('resize', this.handleWindowResize);\n this.resizeRunner.clear();\n for (let interaction of this.calendarInteractions) {\n interaction.destroy();\n }\n this.props.emitter.trigger('_unmount');\n }\n buildAppendContent() {\n let { props } = this;\n let children = props.pluginHooks.viewContainerAppends.map((buildAppendContent) => buildAppendContent(props));\n return createElement(Fragment, {}, ...children);\n }\n renderView(props) {\n let { pluginHooks } = props;\n let { viewSpec } = props;\n let viewProps = {\n dateProfile: props.dateProfile,\n businessHours: props.businessHours,\n eventStore: props.renderableEventStore,\n eventUiBases: props.eventUiBases,\n dateSelection: props.dateSelection,\n eventSelection: props.eventSelection,\n eventDrag: props.eventDrag,\n eventResize: props.eventResize,\n isHeightAuto: props.isHeightAuto,\n forPrint: props.forPrint,\n };\n let transformers = this.buildViewPropTransformers(pluginHooks.viewPropsTransformers);\n for (let transformer of transformers) {\n Object.assign(viewProps, transformer.transform(viewProps, props));\n }\n let ViewComponent = viewSpec.component;\n return (createElement(ViewComponent, Object.assign({}, viewProps)));\n }\n}\nfunction buildToolbarProps(viewSpec, dateProfile, dateProfileGenerator, currentDate, now, title) {\n // don't force any date-profiles to valid date profiles (the `false`) so that we can tell if it's invalid\n let todayInfo = dateProfileGenerator.build(now, undefined, false); // TODO: need `undefined` or else INFINITE LOOP for some reason\n let prevInfo = dateProfileGenerator.buildPrev(dateProfile, currentDate, false);\n let nextInfo = dateProfileGenerator.buildNext(dateProfile, currentDate, false);\n return {\n title,\n activeButton: viewSpec.type,\n navUnit: viewSpec.singleUnit,\n isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now),\n isPrevEnabled: prevInfo.isValid,\n isNextEnabled: nextInfo.isValid,\n };\n}\n// Plugin\n// -----------------------------------------------------------------------------------------------------------------\nfunction buildViewPropTransformers(theClasses) {\n return theClasses.map((TheClass) => new TheClass());\n}\n\nclass Calendar extends CalendarImpl {\n constructor(el, optionOverrides = {}) {\n super();\n this.isRendering = false;\n this.isRendered = false;\n this.currentClassNames = [];\n this.customContentRenderId = 0;\n this.handleAction = (action) => {\n // actions we know we want to render immediately\n switch (action.type) {\n case 'SET_EVENT_DRAG':\n case 'SET_EVENT_RESIZE':\n this.renderRunner.tryDrain();\n }\n };\n this.handleData = (data) => {\n this.currentData = data;\n this.renderRunner.request(data.calendarOptions.rerenderDelay);\n };\n this.handleRenderRequest = () => {\n if (this.isRendering) {\n this.isRendered = true;\n let { currentData } = this;\n flushSync(() => {\n render(createElement(CalendarRoot, { options: currentData.calendarOptions, theme: currentData.theme, emitter: currentData.emitter }, (classNames, height, isHeightAuto, forPrint) => {\n this.setClassNames(classNames);\n this.setHeight(height);\n return (createElement(RenderId.Provider, { value: this.customContentRenderId },\n createElement(CalendarContent, Object.assign({ isHeightAuto: isHeightAuto, forPrint: forPrint }, currentData))));\n }), this.el);\n });\n }\n else if (this.isRendered) {\n this.isRendered = false;\n render(null, this.el);\n this.setClassNames([]);\n this.setHeight('');\n }\n };\n ensureElHasStyles(el);\n this.el = el;\n this.renderRunner = new DelayedRunner(this.handleRenderRequest);\n new CalendarDataManager({\n optionOverrides,\n calendarApi: this,\n onAction: this.handleAction,\n onData: this.handleData,\n });\n }\n render() {\n let wasRendering = this.isRendering;\n if (!wasRendering) {\n this.isRendering = true;\n }\n else {\n this.customContentRenderId += 1;\n }\n this.renderRunner.request();\n if (wasRendering) {\n this.updateSize();\n }\n }\n destroy() {\n if (this.isRendering) {\n this.isRendering = false;\n this.renderRunner.request();\n }\n }\n updateSize() {\n flushSync(() => {\n super.updateSize();\n });\n }\n batchRendering(func) {\n this.renderRunner.pause('batchRendering');\n func();\n this.renderRunner.resume('batchRendering');\n }\n pauseRendering() {\n this.renderRunner.pause('pauseRendering');\n }\n resumeRendering() {\n this.renderRunner.resume('pauseRendering', true);\n }\n resetOptions(optionOverrides, changedOptionNames) {\n this.currentDataManager.resetOptions(optionOverrides, changedOptionNames);\n }\n setClassNames(classNames) {\n if (!isArraysEqual(classNames, this.currentClassNames)) {\n let { classList } = this.el;\n for (let className of this.currentClassNames) {\n classList.remove(className);\n }\n for (let className of classNames) {\n classList.add(className);\n }\n this.currentClassNames = classNames;\n }\n }\n setHeight(height) {\n applyStyleProp(this.el, 'height', height);\n }\n}\n\nfunction formatDate(dateInput, options = {}) {\n let dateEnv = buildDateEnv(options);\n let formatter = createFormatter(options);\n let dateMeta = dateEnv.createMarkerMeta(dateInput);\n if (!dateMeta) { // TODO: warning?\n return '';\n }\n return dateEnv.format(dateMeta.marker, formatter, {\n forcedTzo: dateMeta.forcedTzo,\n });\n}\nfunction formatRange(startInput, endInput, options) {\n let dateEnv = buildDateEnv(typeof options === 'object' && options ? options : {}); // pass in if non-null object\n let formatter = createFormatter(options);\n let startMeta = dateEnv.createMarkerMeta(startInput);\n let endMeta = dateEnv.createMarkerMeta(endInput);\n if (!startMeta || !endMeta) { // TODO: warning?\n return '';\n }\n return dateEnv.formatRange(startMeta.marker, endMeta.marker, formatter, {\n forcedStartTzo: startMeta.forcedTzo,\n forcedEndTzo: endMeta.forcedTzo,\n isEndExclusive: options.isEndExclusive,\n defaultSeparator: BASE_OPTION_DEFAULTS.defaultRangeSeparator,\n });\n}\n// TODO: more DRY and optimized\nfunction buildDateEnv(settings) {\n let locale = buildLocale(settings.locale || 'en', organizeRawLocales([]).map); // TODO: don't hardcode 'en' everywhere\n return new DateEnv(Object.assign(Object.assign({ timeZone: BASE_OPTION_DEFAULTS.timeZone, calendarSystem: 'gregory' }, settings), { locale }));\n}\n\n// HELPERS\n/*\nif nextDayThreshold is specified, slicing is done in an all-day fashion.\nyou can get nextDayThreshold from context.nextDayThreshold\n*/\nfunction sliceEvents(props, allDay) {\n return sliceEventStore(props.eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? props.nextDayThreshold : null).fg;\n}\n\nconst version = '6.1.11';\n\nexport { Calendar, createPlugin, formatDate, formatRange, globalLocales, globalPlugins, sliceEvents, version };\n"],"names":["globalLocales","MINIMAL_RAW_EN_LOCALE","code","week","dow","doy","direction","buttonText","prev","next","prevYear","nextYear","year","today","month","day","list","weekText","weekTextLong","closeHint","timeHint","eventHint","allDayText","moreLinkText","noEventsText","RAW_EN_LOCALE","Object","assign","buttonHints","unit","concat","viewHint","navLinkHint","moreLinkHint","eventCnt","organizeRawLocales","explicitRawLocales","defaultCode","length","allRawLocales","rawLocaleMap","en","rawLocale","map","buildLocale","inputSingular","available","Array","isArray","codeArg","codes","raw","i","parts","toLocaleLowerCase","split","j","simpleId","slice","join","queryRawLocale","parseLocale","queryLocale","merged","mergeProps","simpleNumberFormat","Intl","NumberFormat","options","createPlugin","input","id","guid","name","premiumReleaseDate","Date","undefined","deps","reducers","isLoadingFuncs","contextInit","eventRefiners","eventDefMemberAdders","eventSourceRefiners","isDraggableTransformers","eventDragMutationMassagers","eventDefMutationAppliers","dateSelectionTransformers","datePointTransforms","dateSpanTransforms","views","viewPropsTransformers","isPropsValid","externalDefTransforms","viewContainerAppends","eventDropTransformers","componentInteractions","calendarInteractions","themeClasses","eventSourceDefs","cmdFormatter","recurringTypes","namedTimeZonedImpl","initialView","elementDraggingImpl","optionChangeHandlers","scrollGridImpl","listenerRefiners","optionRefiners","propSetHandlers","buildBuildPluginHooks","currentHooks","currentOverrideDefs","currentGlobalDefs","overrideDefs","globalDefs","isArraysEqual","pluginDefs","currentPluginIds","hooks","addDefs","defs","def","pluginName","currentId","hooks1","compareOptionalDates","hooks0","console","warn","buildPluginHooks","date0","date1","Math","max","valueOf","StandardTheme","Theme","ensureViewDef","viewType","hash","defaultConfigs","overrideConfigs","viewDef","defaultConfig","overrideConfig","queryProp","theComponent","superType","superDef","Error","component","type","defaults","rawOptions","overrides","buildViewDef","parseViewConfigs","inputs","mapHash","parseViewConfig","content","createViewHookComponent","prototype","BaseComponent","viewProps","createElement","ViewContextType","Consumer","context","ContentContainer","elTag","elClasses","buildViewClassNames","viewSpec","renderProps","nextDayThreshold","generatorName","customGenerator","classNameGenerator","classNames","didMount","willUnmount","buildViewSpecs","defaultInputs","optionOverrides","dynamicOptionOverrides","localeDefaults","viewDefs","compileViewDefs","durationInput","duration","durationUnit","singleUnit","singleUnitOverrides","json","JSON","stringify","res","durationInputMap","createDuration","createDurationCached","denom","greatestDurationDenominator","value","queryButtonText","optionsSubset","buttonTextMap","buttonTextKey","queryButtonTitle","buttonKey","optionDefaults","buttonTextOverride","buttonTextDefault","BASE_OPTION_DEFAULTS","buttonTitleOverride","buttonHint","buttonTitleDefault","buildViewSpec","classes","root","tableCellShaded","buttonGroup","button","buttonActive","baseIconClass","iconClasses","close","rtlIconClasses","iconOverrideOption","iconOverrideCustomButtonOption","iconOverridePrefix","initEventSources","calendarOptions","dateProfile","activeRange","addSources","refiners","buildEventSourceRefiners","rawSources","eventSources","sources","initialEvents","unshift","events","rawSource","source","parseEventSource","push","parseInitialSources","reduceEventSources","action","eventSourceHash","sourceId","filterHash","eventSource","fetchDirtySources","fetchSourcesByIds","sourceIds","arrayToHash","excludeStaticSources","isRefetch","sourceHash","fetchId","fetchRange","latestFetchId","isFetching","receiveResponse","computeEventSourcesLoading","doesSourceNeedRange","lazyFetching","start","end","isSourceDirty","prevSources","sourceIdHash","nextSources","fetchSource","calendarApi","sourceDef","pluginHooks","sourceDefId","fetch","range","rawEvents","eventSourceSuccess","call","response","success","dispatch","error","errorHandled","eventSourceFailure","failure","message","ignoreRange","reduceDateSelection","currentSelection","selection","reduceSelectedEvent","currentInstanceId","eventInstanceId","reduceEventDrag","currentDrag","newDrag","state","affectedEvents","mutatedEvents","isEvent","reduceEventResize","currentResize","newResize","parseToolbars","calendarOptionOverrides","theme","viewSpecs","header","headerToolbar","parseToolbar","footer","footerToolbar","sectionStrHash","sectionWidgets","viewsWithButtons","hasTitle","sectionName","sectionRes","parseSection","widgets","sectionStr","isRtl","calendarCustomButtons","customButtons","calendarButtonTextOverrides","calendarButtonText","calendarButtonHintOverrides","calendarButtonHints","sectionSubstrs","buttonGroupStr","buttonName","customButtonProps","buttonClick","buttonIcon","ev","click","target","getCustomButtonIconClass","getIconClass","text","hint","changeView","textFallback","formatWithOrdinals","prevOrNext","navUnit","ViewImpl","constructor","getCurrentData","dateEnv","this","calendar","title","viewTitle","activeStart","toDate","activeEnd","currentStart","currentRange","currentEnd","getOption","handleEventSources","unfoundSources","hashValuesToArray","_raw","newInputs","inputFound","splice","unfoundSource","newInput","addEventSource","globalPlugins","parseMeta","refined","arg","successCallback","meta","errorCallback","func","unpromisify","bind","buildRangeApiWithTimeZone","method","String","extraParams","identity","startParam","endParam","timeZoneParam","url","format","toUpperCase","requestParams","customRequestParams","params","formatIso","timeZone","buildRequestParams","requestJson","then","_ref","parse","daysOfWeek","startTime","endTime","startRecur","endRecur","recurringData","createMarker","subtractDurations","allDayGuess","Boolean","typeData","expand","framingRange","clippedFramingRange","intersectRanges","dowHash","dayMarker","startOfDay","endMarker","instanceStarts","instanceStart","getUTCDay","add","addDays","expandRanges","emitter","trigger","view","viewApi","eventStore","hasHandlers","buildEventApis","TaskRunner","runTaskOption","drainedOption","queue","delayedRunner","DelayedRunner","drain","request","task","delay","pause","scope","resume","force","completedTasks","shift","runTask","drained","buildTitle","viewOptions","test","currentRangeUnit","formatRange","createFormatter","titleFormat","days","diffWholeDays","buildTitleFormat","isEndExclusive","isRangeAllDay","defaultSeparator","titleRangeSeparator","CalendarDataManager","props","computeCurrentViewData","memoize","_computeCurrentViewData","buildDateEnv","buildDateEnv$1","buildTheme","buildDateProfileGenerator","memoizeObjArg","buildViewApi","buildViewUiProps","buildEventUiBySource","isPropsEqual","buildEventUiBases","parseContextBusinessHours","Emitter","actionRunner","_handleAction","updateData","currentCalendarOptionsInput","currentCalendarOptionsRefined","currentViewOptionsInput","currentViewOptionsRefined","currentCalendarOptionsRefiners","optionsForRefining","optionsForHandling","data","optionsData","computeOptionsData","currentViewType","currentViewData","currentDataManager","setThisContext","setOptions","currentDate","getInitialDate","dateProfileGenerator","build","rangeContainsMarker","calendarContext","callback","initialState","businessHours","eventUiBases","createEmptyEventStore","renderableEventStore","dateSelection","eventSelection","eventDrag","eventResize","selectionConfig","contextAndState","reducer","computeIsLoading","resetOptions","changedOptionNames","optionName","rawOptionValue","reduceDynamicOptionOverrides","reduceViewType","reduceCurrentDate","currentDateProfile","dp","dateMarker","buildPrev","isValid","buildNext","reduceDateProfile","reduceEventStore","progressiveEventRendering","eventUiSingleBase","eventUiBySource","newState","wasLoading","isLoading","onAction","oldData","changeHandlers","oldCalendarOptions","newCalendarOptions","reduceEventSourcesNewTimeZone","rezoneEventStoreDates","indexOf","onData","stableOptionOverrides","stableDynamicOptionOverrides","stableCalendarOptionsData","refinedOptions","availableLocaleData","extra","processRawCalendarOptions","warnUnknownOptions","locale","weekNumberCalculation","firstDay","defaultRangeSeparator","toolbarConfig","availableRawLocales","locales","mergeRawOptions","plugins","BASE_OPTION_REFINERS","CALENDAR_LISTENER_REFINERS","CALENDAR_OPTION_REFINERS","currentRaw","currentRefined","anyChanges","COMPLEX_OPTION_COMPARATORS","processRawViewOptions","dateProfileGeneratorClass","usesMinMaxTime","slotMinTime","slotMaxTime","showNonCurrentDates","dayCount","dateAlignment","dateIncrement","hiddenDays","weekends","nowInput","now","validRangeInput","validRange","visibleRangeInput","visibleRange","fixedWeekCount","VIEW_OPTION_REFINERS","explicitLocale","DateEnv","calendarSystem","namedTimeZoneImpl","themeSystem","DateProfileGenerator","ui","eventDefs","defId","createEventUi","display","eventDisplay","editable","startEditable","eventStartEditable","durationEditable","eventDurationEditable","constraint","eventConstraint","overlap","eventOverlap","allow","eventAllow","backgroundColor","eventBackgroundColor","borderColor","eventBorderColor","textColor","eventTextColor","color","eventColor","selectConstraint","selectOverlap","selectAllow","isLoadingFunc","parseBusinessHours","viewName","ToolbarSection","render","children","widgetGroups","widgetGroup","renderWidgetGroup","className","isOnlyButtons","widget","titleId","isPressed","activeButton","isDisabled","isTodayEnabled","isPrevEnabled","isNextEnabled","buttonClasses","getClass","disabled","onClick","role","groupClassName","Toolbar","startContent","endContent","model","extraClassName","forceLtr","centerContent","center","left","right","renderSection","key","ViewHarness","super","arguments","availableWidth","handleEl","el","setRef","elRef","updateAvailableWidth","handleResize","aspectRatio","liquid","height","paddingBottom","labeledById","ref","style","componentDidMount","addResizeHandler","componentWillUnmount","removeResizeHandler","setState","offsetWidth","EventClicking","Interaction","settings","handleSegClick","segEl","seg","getElSeg","isValidSegDownEl","hasUrlContainer","elementClosest","querySelector","href","event","EventImpl","eventRange","instance","jsEvent","defaultPrevented","window","location","destroy","listenBySelector","EventHovering","handleEventElRemove","currentSegEl","handleSegLeave","handleSegEnter","triggerEvent","removeHoverListeners","listenToHoverBySelector","publicEvName","CalendarContent","PureComponent","buildViewContext","buildViewPropTransformers","buildToolbarProps","headerRef","createRef","footerRef","interactionsStore","viewLabelId","getUniqueDomId","registerInteractiveComponent","settingsInput","parseInteractionSettings","interactions","TheInteractionClass","uid","interactionSettingsStore","unregisterInteractiveComponent","listeners","listener","resizeRunner","handleWindowResize","windowResizeDelay","viewAspectRatio","toolbarProps","getNow","viewVGrow","viewHeight","isHeightAuto","forPrint","contentHeight","viewContext","Provider","renderView","buildAppendContent","CalendarInteractionClass","addEventListener","propName","componentDidUpdate","prevProps","removeEventListener","clear","interaction","Fragment","transformers","transformer","transform","ViewComponent","todayInfo","prevInfo","nextInfo","theClasses","TheClass","Calendar","CalendarImpl","isRendering","isRendered","currentClassNames","customContentRenderId","handleAction","renderRunner","tryDrain","handleData","currentData","rerenderDelay","handleRenderRequest","flushSync","CalendarRoot","setClassNames","setHeight","RenderId","ensureElHasStyles","wasRendering","updateSize","batchRendering","pauseRendering","resumeRendering","classList","remove","applyStyleProp","formatDate","dateInput","formatter","dateMeta","createMarkerMeta","marker","forcedTzo","startInput","endInput","startMeta","endMeta","forcedStartTzo","forcedEndTzo","sliceEvents","allDay","sliceEventStore","fg","version"],"sourceRoot":""}