django-advanced-report-builder 1.2.9__py3-none-any.whl

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 (360) hide show
  1. advanced_report_builder/.DS_Store +0 -0
  2. advanced_report_builder/.ruff_cache/.gitignore +2 -0
  3. advanced_report_builder/.ruff_cache/0.11.9/16555798982502606642 +0 -0
  4. advanced_report_builder/.ruff_cache/CACHEDIR.TAG +1 -0
  5. advanced_report_builder/__init__.py +0 -0
  6. advanced_report_builder/admin.py +264 -0
  7. advanced_report_builder/apps.py +7 -0
  8. advanced_report_builder/column_types.py +26 -0
  9. advanced_report_builder/columns.py +296 -0
  10. advanced_report_builder/customise.py +2 -0
  11. advanced_report_builder/data_merge/__init__.py +0 -0
  12. advanced_report_builder/data_merge/utils.py +112 -0
  13. advanced_report_builder/data_merge/widget.py +30 -0
  14. advanced_report_builder/duplicate.py +171 -0
  15. advanced_report_builder/exceptions.py +9 -0
  16. advanced_report_builder/field_types.py +466 -0
  17. advanced_report_builder/field_utils.py +401 -0
  18. advanced_report_builder/filter_query.py +862 -0
  19. advanced_report_builder/form_utils.py +12 -0
  20. advanced_report_builder/generate_series.py +14 -0
  21. advanced_report_builder/globals.py +276 -0
  22. advanced_report_builder/includes.py +72 -0
  23. advanced_report_builder/migrations/0001_initial.py +246 -0
  24. advanced_report_builder/migrations/0002_auto_20220209_1657.py +23 -0
  25. advanced_report_builder/migrations/0003_auto_20220215_1219.py +42 -0
  26. advanced_report_builder/migrations/0004_customreport.py +27 -0
  27. advanced_report_builder/migrations/0005_auto_20220303_0958.py +84 -0
  28. advanced_report_builder/migrations/0006_auto_20220310_1147.py +32 -0
  29. advanced_report_builder/migrations/0007_auto_20220322_1939.py +23 -0
  30. advanced_report_builder/migrations/0008_auto_20220404_1144.py +28 -0
  31. advanced_report_builder/migrations/0009_auto_20230428_1554.py +53 -0
  32. advanced_report_builder/migrations/0010_auto_20230428_2033.py +23 -0
  33. advanced_report_builder/migrations/0011_auto_20230620_1449.py +23 -0
  34. advanced_report_builder/migrations/0012_auto_20230718_1642.py +24 -0
  35. advanced_report_builder/migrations/0013_reportqueryorder.py +30 -0
  36. advanced_report_builder/migrations/0014_auto_20240706_2207.py +24 -0
  37. advanced_report_builder/migrations/0015_report_user_created_report_user_updated.py +26 -0
  38. advanced_report_builder/migrations/0016_calendarreport_dashboardreport_options_and_more.py +74 -0
  39. advanced_report_builder/migrations/0017_alter_barchartreport_options_and_more.py +57 -0
  40. advanced_report_builder/migrations/0018_reportquery_target_target_period_type.py +24 -0
  41. advanced_report_builder/migrations/0019_multicellstyle_and_more.py +107 -0
  42. advanced_report_builder/migrations/0020_alter_multicellstyle_font_size.py +18 -0
  43. advanced_report_builder/migrations/0021_multivalueheldquery_and_more.py +36 -0
  44. advanced_report_builder/migrations/0022_dashboardreport_show_options_report_template_style_and_more.py +44 -0
  45. advanced_report_builder/migrations/0023_rename_colour_target_default_colour_and_more.py +41 -0
  46. advanced_report_builder/migrations/0024_alter_target_period_type.py +18 -0
  47. advanced_report_builder/migrations/__init__.py +0 -0
  48. advanced_report_builder/models.py +954 -0
  49. advanced_report_builder/report_builder.py +28 -0
  50. advanced_report_builder/signals.py +3 -0
  51. advanced_report_builder/static/.DS_Store +0 -0
  52. advanced_report_builder/static/advanced_report_builder/.DS_Store +0 -0
  53. advanced_report_builder/static/advanced_report_builder/chart-js/js/chart.esm.js +10553 -0
  54. advanced_report_builder/static/advanced_report_builder/chart-js/js/chart.js +13190 -0
  55. advanced_report_builder/static/advanced_report_builder/chart-js/js/chart.min.js +13 -0
  56. advanced_report_builder/static/advanced_report_builder/chart-js/js/chartjs-adapter-moment.min.js +8 -0
  57. advanced_report_builder/static/advanced_report_builder/chart-js/js/chartjs-plugin-datalabels.min.js +7 -0
  58. advanced_report_builder/static/advanced_report_builder/chart-js/js/chunks/helpers.segment.js +2499 -0
  59. advanced_report_builder/static/advanced_report_builder/chart-js/js/helpers.esm.js +7 -0
  60. advanced_report_builder/static/advanced_report_builder/d3/js/d3.js +20196 -0
  61. advanced_report_builder/static/advanced_report_builder/d3/js/d3.min.js +2 -0
  62. advanced_report_builder/static/advanced_report_builder/d3-funnel/js/d3-funnel.js +6087 -0
  63. advanced_report_builder/static/advanced_report_builder/d3-funnel/js/d3-funnel.min.js +2 -0
  64. advanced_report_builder/static/advanced_report_builder/dashboard/js/dashboard.js +19 -0
  65. advanced_report_builder/static/advanced_report_builder/dot/js/.gitignore +31 -0
  66. advanced_report_builder/static/advanced_report_builder/dot/js/.travis.yml +9 -0
  67. advanced_report_builder/static/advanced_report_builder/dot/js/LICENSE-DOT.txt +24 -0
  68. advanced_report_builder/static/advanced_report_builder/dot/js/README.md +90 -0
  69. advanced_report_builder/static/advanced_report_builder/dot/js/bin/dot-packer +52 -0
  70. advanced_report_builder/static/advanced_report_builder/dot/js/bower.json +21 -0
  71. advanced_report_builder/static/advanced_report_builder/dot/js/doT.js +141 -0
  72. advanced_report_builder/static/advanced_report_builder/dot/js/doT.min.js +8 -0
  73. advanced_report_builder/static/advanced_report_builder/dot/js/doU.js +56 -0
  74. advanced_report_builder/static/advanced_report_builder/dot/js/index.js +143 -0
  75. advanced_report_builder/static/advanced_report_builder/dot/js/package.json +46 -0
  76. advanced_report_builder/static/advanced_report_builder/fullcalendar/.DS_Store +0 -0
  77. advanced_report_builder/static/advanced_report_builder/fullcalendar/LICENSE.txt +20 -0
  78. advanced_report_builder/static/advanced_report_builder/fullcalendar/README.md +10 -0
  79. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/LICENSE.txt +20 -0
  80. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/README.md +8 -0
  81. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/af.js +30 -0
  82. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ar-dz.js +31 -0
  83. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ar-kw.js +31 -0
  84. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ar-ly.js +31 -0
  85. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ar-ma.js +31 -0
  86. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ar-sa.js +31 -0
  87. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ar-tn.js +31 -0
  88. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ar.js +31 -0
  89. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/bg.js +31 -0
  90. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/bs.js +32 -0
  91. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ca.js +30 -0
  92. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/cs.js +32 -0
  93. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/da.js +30 -0
  94. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/de.js +33 -0
  95. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/el.js +30 -0
  96. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/en-au.js +17 -0
  97. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/en-gb.js +17 -0
  98. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/en-nz.js +17 -0
  99. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/es-us.js +30 -0
  100. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/es.js +30 -0
  101. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/et.js +32 -0
  102. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/eu.js +30 -0
  103. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/fa.js +33 -0
  104. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/fi.js +30 -0
  105. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/fr-ca.js +27 -0
  106. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/fr-ch.js +31 -0
  107. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/fr.js +31 -0
  108. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/gl.js +30 -0
  109. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/he.js +27 -0
  110. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/hi.js +32 -0
  111. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/hr.js +32 -0
  112. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/hu.js +30 -0
  113. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/id.js +30 -0
  114. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/is.js +30 -0
  115. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/it.js +32 -0
  116. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ja.js +28 -0
  117. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ka.js +32 -0
  118. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/kk.js +32 -0
  119. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ko.js +26 -0
  120. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/lb.js +30 -0
  121. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/lt.js +30 -0
  122. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/lv.js +32 -0
  123. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/mk.js +28 -0
  124. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ms.js +32 -0
  125. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/nb.js +30 -0
  126. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/nl.js +30 -0
  127. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/nn.js +30 -0
  128. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/pl.js +30 -0
  129. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/pt-br.js +28 -0
  130. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/pt.js +30 -0
  131. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ro.js +32 -0
  132. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ru.js +32 -0
  133. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/sk.js +32 -0
  134. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/sl.js +30 -0
  135. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/sq.js +32 -0
  136. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/sr-cyrl.js +32 -0
  137. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/sr.js +32 -0
  138. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/sv.js +30 -0
  139. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/th.js +25 -0
  140. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/tr.js +30 -0
  141. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/uk.js +32 -0
  142. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/vi.js +32 -0
  143. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/zh-cn.js +33 -0
  144. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/zh-tw.js +26 -0
  145. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales-all.js +1348 -0
  146. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales-all.min.js +1 -0
  147. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/main.css +1052 -0
  148. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/main.d.ts +2730 -0
  149. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/main.esm.js +8558 -0
  150. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/main.js +8717 -0
  151. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/main.min.css +1 -0
  152. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/main.min.js +6 -0
  153. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/package.json +30 -0
  154. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/daygrid/LICENSE.txt +20 -0
  155. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/daygrid/README.md +8 -0
  156. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/daygrid/main.css +78 -0
  157. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/daygrid/main.d.ts +310 -0
  158. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/daygrid/main.esm.js +1627 -0
  159. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/daygrid/main.js +1641 -0
  160. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/daygrid/main.min.css +1 -0
  161. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/daygrid/main.min.js +6 -0
  162. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/daygrid/package.json +33 -0
  163. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/fullcalendar-yearview/LICENSE +21 -0
  164. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/fullcalendar-yearview/css/main.css +85 -0
  165. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/fullcalendar-yearview/js/main.js +2018 -0
  166. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/google-calendar/LICENSE.txt +20 -0
  167. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/google-calendar/README.md +8 -0
  168. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/google-calendar/main.d.ts +20 -0
  169. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/google-calendar/main.esm.js +162 -0
  170. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/google-calendar/main.js +170 -0
  171. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/google-calendar/main.min.js +6 -0
  172. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/google-calendar/package.json +33 -0
  173. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/interaction/LICENSE.txt +20 -0
  174. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/interaction/README.md +8 -0
  175. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/interaction/main.d.ts +323 -0
  176. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/interaction/main.esm.js +2132 -0
  177. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/interaction/main.js +2143 -0
  178. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/interaction/main.min.js +6 -0
  179. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/interaction/package.json +33 -0
  180. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/list/LICENSE.txt +20 -0
  181. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/list/README.md +8 -0
  182. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/list/main.css +118 -0
  183. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/list/main.d.ts +33 -0
  184. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/list/main.esm.js +335 -0
  185. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/list/main.js +343 -0
  186. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/list/main.min.css +1 -0
  187. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/list/main.min.js +6 -0
  188. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/list/package.json +33 -0
  189. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/luxon/LICENSE.txt +20 -0
  190. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/luxon/README.md +8 -0
  191. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/luxon/main.d.ts +14 -0
  192. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/luxon/main.esm.js +162 -0
  193. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/luxon/main.js +170 -0
  194. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/luxon/main.min.js +6 -0
  195. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/luxon/package.json +34 -0
  196. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment/LICENSE.txt +20 -0
  197. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment/README.md +8 -0
  198. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment/main.d.ts +14 -0
  199. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment/main.esm.js +102 -0
  200. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment/main.js +110 -0
  201. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment/main.min.js +6 -0
  202. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment/package.json +34 -0
  203. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment-timezone/LICENSE.txt +20 -0
  204. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment-timezone/README.md +8 -0
  205. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment-timezone/main.d.ts +11 -0
  206. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment-timezone/main.esm.js +58 -0
  207. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment-timezone/main.js +64 -0
  208. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment-timezone/main.min.js +6 -0
  209. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment-timezone/package.json +35 -0
  210. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/rrule/LICENSE.txt +20 -0
  211. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/rrule/README.md +8 -0
  212. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/rrule/main.d.ts +9 -0
  213. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/rrule/main.esm.js +121 -0
  214. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/rrule/main.js +128 -0
  215. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/rrule/main.min.js +6 -0
  216. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/rrule/package.json +34 -0
  217. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/timegrid/LICENSE.txt +20 -0
  218. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/timegrid/README.md +8 -0
  219. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/timegrid/main.css +309 -0
  220. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/timegrid/main.d.ts +220 -0
  221. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/timegrid/main.esm.js +1345 -0
  222. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/timegrid/main.js +1357 -0
  223. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/timegrid/main.min.css +1 -0
  224. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/timegrid/main.min.js +6 -0
  225. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/timegrid/package.json +36 -0
  226. advanced_report_builder/static/advanced_report_builder/fullcalendar/vendor/rrule.js +3782 -0
  227. advanced_report_builder/static/advanced_report_builder/jquery_extendext/js/jQuery.extendext.js +132 -0
  228. advanced_report_builder/static/advanced_report_builder/jquery_extendext/js/jQuery.extendext.min.js +9 -0
  229. advanced_report_builder/static/advanced_report_builder/moment/locales.js +9769 -0
  230. advanced_report_builder/static/advanced_report_builder/moment/locales.min.js +1 -0
  231. advanced_report_builder/static/advanced_report_builder/moment/moment-with-locales.js +14289 -0
  232. advanced_report_builder/static/advanced_report_builder/moment/moment-with-locales.min.js +1 -0
  233. advanced_report_builder/static/advanced_report_builder/moment/moment.min.js +1 -0
  234. advanced_report_builder/static/advanced_report_builder/query_builder/.DS_Store +0 -0
  235. advanced_report_builder/static/advanced_report_builder/query_builder/css/.DS_Store +0 -0
  236. advanced_report_builder/static/advanced_report_builder/query_builder/css/query-builder.dark.css +173 -0
  237. advanced_report_builder/static/advanced_report_builder/query_builder/css/query-builder.dark.min.css +6 -0
  238. advanced_report_builder/static/advanced_report_builder/query_builder/css/query-builder.default.css +173 -0
  239. advanced_report_builder/static/advanced_report_builder/query_builder/css/query-builder.default.min.css +6 -0
  240. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.ar.js +80 -0
  241. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.az.js +79 -0
  242. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.bg.js +79 -0
  243. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.cs.js +79 -0
  244. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.da.js +56 -0
  245. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.de.js +76 -0
  246. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.el.js +80 -0
  247. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.en.js +83 -0
  248. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.es.js +81 -0
  249. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.fa-IR.js +79 -0
  250. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.fr.js +83 -0
  251. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.he.js +81 -0
  252. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.it.js +79 -0
  253. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.nl.js +76 -0
  254. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.no.js +54 -0
  255. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.pl.js +80 -0
  256. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.pt-BR.js +80 -0
  257. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.pt-PT.js +75 -0
  258. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.ro.js +54 -0
  259. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.ru.js +77 -0
  260. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.sq.js +78 -0
  261. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.tr.js +82 -0
  262. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.ua.js +79 -0
  263. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.zh-CN.js +80 -0
  264. advanced_report_builder/static/advanced_report_builder/query_builder/js/.DS_Store +0 -0
  265. advanced_report_builder/static/advanced_report_builder/query_builder/js/plugins/.DS_Store +0 -0
  266. advanced_report_builder/static/advanced_report_builder/query_builder/js/plugins/currency/plugin.js +30 -0
  267. advanced_report_builder/static/advanced_report_builder/query_builder/js/query-builder.js +6200 -0
  268. advanced_report_builder/static/advanced_report_builder/query_builder/js/query-builder.min.js +7 -0
  269. advanced_report_builder/static/advanced_report_builder/query_builder/js/query-builder.standalone.js +6477 -0
  270. advanced_report_builder/static/advanced_report_builder/query_builder/js/query-builder.standalone.min.js +7 -0
  271. advanced_report_builder/static/advanced_report_builder/query_builder/scss/.DS_Store +0 -0
  272. advanced_report_builder/static/advanced_report_builder/query_builder/scss/dark.scss +19 -0
  273. advanced_report_builder/static/advanced_report_builder/query_builder/scss/default.scss +186 -0
  274. advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_bt-checkbox.scss +12 -0
  275. advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_bt-tooltip-errors.scss +9 -0
  276. advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_filter-description.scss +21 -0
  277. advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_invert.scss +5 -0
  278. advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_sortable.scss +28 -0
  279. advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/bt-tooltip-errors.scss +9 -0
  280. advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/filter-description.scss +21 -0
  281. advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/invert.scss +5 -0
  282. advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/sortable.scss +27 -0
  283. advanced_report_builder/template_types.py +34 -0
  284. advanced_report_builder/templates/advanced_report_builder/calendar/description_modal.html +12 -0
  285. advanced_report_builder/templates/advanced_report_builder/calendar/middle.html +33 -0
  286. advanced_report_builder/templates/advanced_report_builder/calendar/modal.html +10 -0
  287. advanced_report_builder/templates/advanced_report_builder/calendar/report.html +80 -0
  288. advanced_report_builder/templates/advanced_report_builder/charts/bar/middle.html +122 -0
  289. advanced_report_builder/templates/advanced_report_builder/charts/funnel/middle.html +46 -0
  290. advanced_report_builder/templates/advanced_report_builder/charts/funnel/report.html +34 -0
  291. advanced_report_builder/templates/advanced_report_builder/charts/line/middle.html +119 -0
  292. advanced_report_builder/templates/advanced_report_builder/charts/modal.html +12 -0
  293. advanced_report_builder/templates/advanced_report_builder/charts/modal_field.html +13 -0
  294. advanced_report_builder/templates/advanced_report_builder/charts/pie/middle.html +58 -0
  295. advanced_report_builder/templates/advanced_report_builder/charts/report.html +33 -0
  296. advanced_report_builder/templates/advanced_report_builder/data_merge/data_merge.html +144 -0
  297. advanced_report_builder/templates/advanced_report_builder/datatables/fields/modal.html +13 -0
  298. advanced_report_builder/templates/advanced_report_builder/datatables/fields/single_query_builder.html +87 -0
  299. advanced_report_builder/templates/advanced_report_builder/datatables/modal.html +13 -0
  300. advanced_report_builder/templates/advanced_report_builder/datatables/onclick_menu.html +14 -0
  301. advanced_report_builder/templates/advanced_report_builder/datatables/report.html +37 -0
  302. advanced_report_builder/templates/advanced_report_builder/datatables/select_pivot.html +199 -0
  303. advanced_report_builder/templates/advanced_report_builder/error.html +21 -0
  304. advanced_report_builder/templates/advanced_report_builder/extra_query_modal.html +13 -0
  305. advanced_report_builder/templates/advanced_report_builder/kanban/description_modal.html +12 -0
  306. advanced_report_builder/templates/advanced_report_builder/kanban/middle.html +63 -0
  307. advanced_report_builder/templates/advanced_report_builder/kanban/modal.html +10 -0
  308. advanced_report_builder/templates/advanced_report_builder/kanban/report.html +71 -0
  309. advanced_report_builder/templates/advanced_report_builder/multi_values/held_modal.html +14 -0
  310. advanced_report_builder/templates/advanced_report_builder/multi_values/middle.html +61 -0
  311. advanced_report_builder/templates/advanced_report_builder/multi_values/modal.html +15 -0
  312. advanced_report_builder/templates/advanced_report_builder/multi_values/report.html +19 -0
  313. advanced_report_builder/templates/advanced_report_builder/query_builder.html +88 -0
  314. advanced_report_builder/templates/advanced_report_builder/query_modal.html +12 -0
  315. advanced_report_builder/templates/advanced_report_builder/select_column.html +230 -0
  316. advanced_report_builder/templates/advanced_report_builder/single_values/gauge_middle.html +143 -0
  317. advanced_report_builder/templates/advanced_report_builder/single_values/middle.html +63 -0
  318. advanced_report_builder/templates/advanced_report_builder/single_values/modal.html +13 -0
  319. advanced_report_builder/templates/advanced_report_builder/single_values/report.html +56 -0
  320. advanced_report_builder/toggle.py +9 -0
  321. advanced_report_builder/urls.py +237 -0
  322. advanced_report_builder/utils.py +171 -0
  323. advanced_report_builder/variable_date.py +670 -0
  324. advanced_report_builder/view_types.py +27 -0
  325. advanced_report_builder/views/.DS_Store +0 -0
  326. advanced_report_builder/views/__init__.py +0 -0
  327. advanced_report_builder/views/bar_charts.py +746 -0
  328. advanced_report_builder/views/calendar.py +745 -0
  329. advanced_report_builder/views/charts_base.py +625 -0
  330. advanced_report_builder/views/custom.py +147 -0
  331. advanced_report_builder/views/dashboard.py +357 -0
  332. advanced_report_builder/views/datatables/__init__.py +0 -0
  333. advanced_report_builder/views/datatables/datatables.py +151 -0
  334. advanced_report_builder/views/datatables/modal.py +1151 -0
  335. advanced_report_builder/views/datatables/utils.py +701 -0
  336. advanced_report_builder/views/error_pod.py +50 -0
  337. advanced_report_builder/views/funnel_charts.py +289 -0
  338. advanced_report_builder/views/helpers.py +22 -0
  339. advanced_report_builder/views/kanban.py +868 -0
  340. advanced_report_builder/views/line_charts.py +415 -0
  341. advanced_report_builder/views/modals_base.py +213 -0
  342. advanced_report_builder/views/multi_value.py +1160 -0
  343. advanced_report_builder/views/pie_charts.py +290 -0
  344. advanced_report_builder/views/query_modal/__init__.py +0 -0
  345. advanced_report_builder/views/query_modal/mixin.py +161 -0
  346. advanced_report_builder/views/query_modal/modal.py +274 -0
  347. advanced_report_builder/views/report.py +241 -0
  348. advanced_report_builder/views/report_utils_mixin.py +312 -0
  349. advanced_report_builder/views/reports.py +154 -0
  350. advanced_report_builder/views/single_values.py +792 -0
  351. advanced_report_builder/views/targets/__init__.py +0 -0
  352. advanced_report_builder/views/targets/utils.py +251 -0
  353. advanced_report_builder/views/targets/views.py +139 -0
  354. advanced_report_builder/views/value_base.py +198 -0
  355. advanced_report_builder/widgets.py +5 -0
  356. django_advanced_report_builder-1.2.9.dist-info/METADATA +35 -0
  357. django_advanced_report_builder-1.2.9.dist-info/RECORD +360 -0
  358. django_advanced_report_builder-1.2.9.dist-info/WHEEL +5 -0
  359. django_advanced_report_builder-1.2.9.dist-info/licenses/LICENSE +21 -0
  360. django_advanced_report_builder-1.2.9.dist-info/top_level.txt +1 -0
@@ -0,0 +1,2018 @@
1
+ (function webpackUniversalModuleDefinition(root, factory) {
2
+ if(typeof exports === 'object' && typeof module === 'object')
3
+ module.exports = factory(require("FullCalendar"), require("moment"));
4
+ else if(typeof define === 'function' && define.amd)
5
+ define(["FullCalendar", "moment"], factory);
6
+ else if(typeof exports === 'object')
7
+ exports["FullCalendarYearView"] = factory(require("FullCalendar"), require("moment"));
8
+ else
9
+ root["FullCalendarYearView"] = factory(root["FullCalendar"], root["moment"]);
10
+ })(this, function(__WEBPACK_EXTERNAL_MODULE__0__, __WEBPACK_EXTERNAL_MODULE__1__) {
11
+ return /******/ (function(modules) { // webpackBootstrap
12
+ /******/ // The module cache
13
+ /******/ var installedModules = {};
14
+ /******/
15
+ /******/ // The require function
16
+ /******/ function __webpack_require__(moduleId) {
17
+ /******/
18
+ /******/ // Check if module is in cache
19
+ /******/ if(installedModules[moduleId]) {
20
+ /******/ return installedModules[moduleId].exports;
21
+ /******/ }
22
+ /******/ // Create a new module (and put it into the cache)
23
+ /******/ var module = installedModules[moduleId] = {
24
+ /******/ i: moduleId,
25
+ /******/ l: false,
26
+ /******/ exports: {}
27
+ /******/ };
28
+ /******/
29
+ /******/ // Execute the module function
30
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
31
+ /******/
32
+ /******/ // Flag the module as loaded
33
+ /******/ module.l = true;
34
+ /******/
35
+ /******/ // Return the exports of the module
36
+ /******/ return module.exports;
37
+ /******/ }
38
+ /******/
39
+ /******/
40
+ /******/ // expose the modules object (__webpack_modules__)
41
+ /******/ __webpack_require__.m = modules;
42
+ /******/
43
+ /******/ // expose the module cache
44
+ /******/ __webpack_require__.c = installedModules;
45
+ /******/
46
+ /******/ // define getter function for harmony exports
47
+ /******/ __webpack_require__.d = function(exports, name, getter) {
48
+ /******/ if(!__webpack_require__.o(exports, name)) {
49
+ /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
50
+ /******/ }
51
+ /******/ };
52
+ /******/
53
+ /******/ // define __esModule on exports
54
+ /******/ __webpack_require__.r = function(exports) {
55
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
56
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
57
+ /******/ }
58
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
59
+ /******/ };
60
+ /******/
61
+ /******/ // create a fake namespace object
62
+ /******/ // mode & 1: value is a module id, require it
63
+ /******/ // mode & 2: merge all properties of value into the ns
64
+ /******/ // mode & 4: return value when already ns object
65
+ /******/ // mode & 8|1: behave like require
66
+ /******/ __webpack_require__.t = function(value, mode) {
67
+ /******/ if(mode & 1) value = __webpack_require__(value);
68
+ /******/ if(mode & 8) return value;
69
+ /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
70
+ /******/ var ns = Object.create(null);
71
+ /******/ __webpack_require__.r(ns);
72
+ /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
73
+ /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
74
+ /******/ return ns;
75
+ /******/ };
76
+ /******/
77
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
78
+ /******/ __webpack_require__.n = function(module) {
79
+ /******/ var getter = module && module.__esModule ?
80
+ /******/ function getDefault() { return module['default']; } :
81
+ /******/ function getModuleExports() { return module; };
82
+ /******/ __webpack_require__.d(getter, 'a', getter);
83
+ /******/ return getter;
84
+ /******/ };
85
+ /******/
86
+ /******/ // Object.prototype.hasOwnProperty.call
87
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
88
+ /******/
89
+ /******/ // __webpack_public_path__
90
+ /******/ __webpack_require__.p = "";
91
+ /******/
92
+ /******/
93
+ /******/ // Load entry module and return exports
94
+ /******/ return __webpack_require__(__webpack_require__.s = 3);
95
+ /******/ })
96
+ /************************************************************************/
97
+ /******/ ([
98
+ /* 0 */
99
+ /***/ (function(module, exports) {
100
+
101
+ module.exports = __WEBPACK_EXTERNAL_MODULE__0__;
102
+
103
+ /***/ }),
104
+ /* 1 */
105
+ /***/ (function(module, exports) {
106
+
107
+ module.exports = __WEBPACK_EXTERNAL_MODULE__1__;
108
+
109
+ /***/ }),
110
+ /* 2 */
111
+ /***/ (function(module, exports, __webpack_require__) {
112
+
113
+ // extracted by mini-css-extract-plugin
114
+
115
+ /***/ }),
116
+ /* 3 */
117
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
118
+
119
+ "use strict";
120
+ __webpack_require__.r(__webpack_exports__);
121
+
122
+ // EXTERNAL MODULE: ./src/main.scss
123
+ var main = __webpack_require__(2);
124
+
125
+ // EXTERNAL MODULE: external "FullCalendar"
126
+ var core_ = __webpack_require__(0);
127
+
128
+ // CONCATENATED MODULE: ./node_modules/tslib/tslib.es6.js
129
+ /*! *****************************************************************************
130
+ Copyright (c) Microsoft Corporation. All rights reserved.
131
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use
132
+ this file except in compliance with the License. You may obtain a copy of the
133
+ License at http://www.apache.org/licenses/LICENSE-2.0
134
+
135
+ THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
136
+ KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
137
+ WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
138
+ MERCHANTABLITY OR NON-INFRINGEMENT.
139
+
140
+ See the Apache Version 2.0 License for specific language governing permissions
141
+ and limitations under the License.
142
+ ***************************************************************************** */
143
+ /* global Reflect, Promise */
144
+
145
+ var extendStatics = function(d, b) {
146
+ extendStatics = Object.setPrototypeOf ||
147
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
148
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
149
+ return extendStatics(d, b);
150
+ };
151
+
152
+ function __extends(d, b) {
153
+ extendStatics(d, b);
154
+ function __() { this.constructor = d; }
155
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
156
+ }
157
+
158
+ var __assign = function() {
159
+ __assign = Object.assign || function __assign(t) {
160
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
161
+ s = arguments[i];
162
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
163
+ }
164
+ return t;
165
+ }
166
+ return __assign.apply(this, arguments);
167
+ }
168
+
169
+ function __rest(s, e) {
170
+ var t = {};
171
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
172
+ t[p] = s[p];
173
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
174
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
175
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
176
+ t[p[i]] = s[p[i]];
177
+ }
178
+ return t;
179
+ }
180
+
181
+ function __decorate(decorators, target, key, desc) {
182
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
183
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
184
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
185
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
186
+ }
187
+
188
+ function __param(paramIndex, decorator) {
189
+ return function (target, key) { decorator(target, key, paramIndex); }
190
+ }
191
+
192
+ function __metadata(metadataKey, metadataValue) {
193
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
194
+ }
195
+
196
+ function __awaiter(thisArg, _arguments, P, generator) {
197
+ return new (P || (P = Promise))(function (resolve, reject) {
198
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
199
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
200
+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
201
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
202
+ });
203
+ }
204
+
205
+ function __generator(thisArg, body) {
206
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
207
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
208
+ function verb(n) { return function (v) { return step([n, v]); }; }
209
+ function step(op) {
210
+ if (f) throw new TypeError("Generator is already executing.");
211
+ while (_) try {
212
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
213
+ if (y = 0, t) op = [op[0] & 2, t.value];
214
+ switch (op[0]) {
215
+ case 0: case 1: t = op; break;
216
+ case 4: _.label++; return { value: op[1], done: false };
217
+ case 5: _.label++; y = op[1]; op = [0]; continue;
218
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
219
+ default:
220
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
221
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
222
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
223
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
224
+ if (t[2]) _.ops.pop();
225
+ _.trys.pop(); continue;
226
+ }
227
+ op = body.call(thisArg, _);
228
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
229
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
230
+ }
231
+ }
232
+
233
+ function __exportStar(m, exports) {
234
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
235
+ }
236
+
237
+ function __values(o) {
238
+ var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
239
+ if (m) return m.call(o);
240
+ return {
241
+ next: function () {
242
+ if (o && i >= o.length) o = void 0;
243
+ return { value: o && o[i++], done: !o };
244
+ }
245
+ };
246
+ }
247
+
248
+ function __read(o, n) {
249
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
250
+ if (!m) return o;
251
+ var i = m.call(o), r, ar = [], e;
252
+ try {
253
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
254
+ }
255
+ catch (error) { e = { error: error }; }
256
+ finally {
257
+ try {
258
+ if (r && !r.done && (m = i["return"])) m.call(i);
259
+ }
260
+ finally { if (e) throw e.error; }
261
+ }
262
+ return ar;
263
+ }
264
+
265
+ function __spread() {
266
+ for (var ar = [], i = 0; i < arguments.length; i++)
267
+ ar = ar.concat(__read(arguments[i]));
268
+ return ar;
269
+ }
270
+
271
+ function __spreadArrays() {
272
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
273
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
274
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
275
+ r[k] = a[j];
276
+ return r;
277
+ };
278
+
279
+ function __await(v) {
280
+ return this instanceof __await ? (this.v = v, this) : new __await(v);
281
+ }
282
+
283
+ function __asyncGenerator(thisArg, _arguments, generator) {
284
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
285
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
286
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
287
+ function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
288
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
289
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
290
+ function fulfill(value) { resume("next", value); }
291
+ function reject(value) { resume("throw", value); }
292
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
293
+ }
294
+
295
+ function __asyncDelegator(o) {
296
+ var i, p;
297
+ return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
298
+ function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
299
+ }
300
+
301
+ function __asyncValues(o) {
302
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
303
+ var m = o[Symbol.asyncIterator], i;
304
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
305
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
306
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
307
+ }
308
+
309
+ function __makeTemplateObject(cooked, raw) {
310
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
311
+ return cooked;
312
+ };
313
+
314
+ function __importStar(mod) {
315
+ if (mod && mod.__esModule) return mod;
316
+ var result = {};
317
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
318
+ result.default = mod;
319
+ return result;
320
+ }
321
+
322
+ function __importDefault(mod) {
323
+ return (mod && mod.__esModule) ? mod : { default: mod };
324
+ }
325
+
326
+ // CONCATENATED MODULE: ./src/DayGridDateProfileGenerator.ts
327
+
328
+
329
+ var DayGridDateProfileGenerator_DayGridDateProfileGenerator = /** @class */ (function (_super) {
330
+ __extends(DayGridDateProfileGenerator, _super);
331
+ function DayGridDateProfileGenerator() {
332
+ return _super !== null && _super.apply(this, arguments) || this;
333
+ }
334
+ // Computes the date range that will be rendered.
335
+ DayGridDateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) {
336
+ var renderRange = _super.prototype.buildRenderRange.call(this, currentRange, currentRangeUnit, isRangeAllDay);
337
+ var start = renderRange.start;
338
+ var end = renderRange.end;
339
+ return { start: start, end: end };
340
+ };
341
+ return DayGridDateProfileGenerator;
342
+ }(core_["DateProfileGenerator"]));
343
+ /* harmony default export */ var src_DayGridDateProfileGenerator = (DayGridDateProfileGenerator_DayGridDateProfileGenerator);
344
+
345
+ // CONCATENATED MODULE: ./src/Popover.ts
346
+ /* A rectangular panel that is absolutely positioned over other content
347
+ ------------------------------------------------------------------------------------------------------------------------
348
+ Options:
349
+ - className (string)
350
+ - content (HTML string, element, or element array)
351
+ - parentEl
352
+ - top
353
+ - left
354
+ - right (the x coord of where the right edge should be. not a "CSS" right)
355
+ - autoHide (boolean)
356
+ - show (callback)
357
+ - hide (callback)
358
+ */
359
+
360
+ var Popover_Popover = /** @class */ (function () {
361
+ function Popover(options) {
362
+ var _this = this;
363
+ this.isHidden = true;
364
+ this.margin = 10; // the space required between the popover and the edges of the scroll container
365
+ // Triggered when the user clicks *anywhere* in the document, for the autoHide feature
366
+ this.documentMousedown = function (ev) {
367
+ // only hide the popover if the click happened outside the popover
368
+ if (_this.el && !_this.el.contains(ev.target)) {
369
+ _this.hide();
370
+ }
371
+ };
372
+ this.options = options;
373
+ }
374
+ // Shows the popover on the specified position. Renders it if not already
375
+ Popover.prototype.show = function () {
376
+ if (this.isHidden) {
377
+ if (!this.el) {
378
+ this.render();
379
+ }
380
+ this.el.style.display = '';
381
+ this.position();
382
+ this.isHidden = false;
383
+ this.trigger('show');
384
+ }
385
+ };
386
+ // Hides the popover, through CSS, but does not remove it from the DOM
387
+ Popover.prototype.hide = function () {
388
+ if (!this.isHidden) {
389
+ this.el.style.display = 'none';
390
+ this.isHidden = true;
391
+ this.trigger('hide');
392
+ }
393
+ };
394
+ // Creates `this.el` and renders content inside of it
395
+ Popover.prototype.render = function () {
396
+ var _this = this;
397
+ var options = this.options;
398
+ var el = this.el = Object(core_["createElement"])('div', {
399
+ className: 'fc-popover ' + (options.className || ''),
400
+ style: {
401
+ top: '0',
402
+ left: '0'
403
+ }
404
+ });
405
+ if (typeof options.content === 'function') {
406
+ options.content(el);
407
+ }
408
+ options.parentEl.appendChild(el);
409
+ // when a click happens on anything inside with a 'fc-close' className, hide the popover
410
+ Object(core_["listenBySelector"])(el, 'click', '.fc-close', function (ev) {
411
+ _this.hide();
412
+ });
413
+ if (options.autoHide) {
414
+ document.addEventListener('mousedown', this.documentMousedown);
415
+ }
416
+ };
417
+ // Hides and unregisters any handlers
418
+ Popover.prototype.destroy = function () {
419
+ this.hide();
420
+ if (this.el) {
421
+ Object(core_["removeElement"])(this.el);
422
+ this.el = null;
423
+ }
424
+ document.removeEventListener('mousedown', this.documentMousedown);
425
+ };
426
+ // Positions the popover optimally, using the top/left/right options
427
+ Popover.prototype.position = function () {
428
+ var options = this.options;
429
+ var el = this.el;
430
+ var elDims = el.getBoundingClientRect(); // only used for width,height
431
+ var origin = Object(core_["computeRect"])(el.offsetParent);
432
+ var clippingRect = Object(core_["computeClippingRect"])(options.parentEl);
433
+ var top; // the "position" (not "offset") values for the popover
434
+ var left; //
435
+ // compute top and left
436
+ top = options.top || 0;
437
+ if (options.left !== undefined) {
438
+ left = options.left;
439
+ }
440
+ else if (options.right !== undefined) {
441
+ left = options.right - elDims.width; // derive the left value from the right value
442
+ }
443
+ else {
444
+ left = 0;
445
+ }
446
+ // constrain to the view port. if constrained by two edges, give precedence to top/left
447
+ top = Math.min(top, clippingRect.bottom - elDims.height - this.margin);
448
+ top = Math.max(top, clippingRect.top + this.margin);
449
+ left = Math.min(left, clippingRect.right - elDims.width - this.margin);
450
+ left = Math.max(left, clippingRect.left + this.margin);
451
+ Object(core_["applyStyle"])(el, {
452
+ top: top - origin.top,
453
+ left: left - origin.left
454
+ });
455
+ };
456
+ // Triggers a callback. Calls a function in the option hash of the same name.
457
+ // Arguments beyond the first `name` are forwarded on.
458
+ // TODO: better code reuse for this. Repeat code
459
+ // can kill this???
460
+ Popover.prototype.trigger = function (name) {
461
+ if (this.options[name]) {
462
+ this.options[name].apply(this, Array.prototype.slice.call(arguments, 1));
463
+ }
464
+ };
465
+ return Popover;
466
+ }());
467
+ /* harmony default export */ var src_Popover = (Popover_Popover);
468
+
469
+ // CONCATENATED MODULE: ./src/SimpleDayGridEventRenderer.ts
470
+
471
+
472
+ /* Event-rendering methods for the DayGrid class
473
+ ----------------------------------------------------------------------------------------------------------------------*/
474
+ // "Simple" is bad a name. has nothing to do with SimpleDayGrid
475
+ var SimpleDayGridEventRenderer_SimpleDayGridEventRenderer = /** @class */ (function (_super) {
476
+ __extends(SimpleDayGridEventRenderer, _super);
477
+ function SimpleDayGridEventRenderer() {
478
+ return _super !== null && _super.apply(this, arguments) || this;
479
+ }
480
+ // Builds the HTML to be used for the default element for an individual segment
481
+ SimpleDayGridEventRenderer.prototype.renderSegHtml = function (seg, mirrorInfo) {
482
+ var _a = this.context, view = _a.view, options = _a.options;
483
+ var eventRange = seg.eventRange;
484
+ var eventDef = eventRange.def;
485
+ var eventUi = eventRange.ui;
486
+ var allDay = eventDef.allDay;
487
+ var isDraggable = view.computeEventDraggable(eventDef, eventUi);
488
+ var isResizableFromStart = allDay && seg.isStart && view.computeEventStartResizable(eventDef, eventUi);
489
+ var isResizableFromEnd = allDay && seg.isEnd && view.computeEventEndResizable(eventDef, eventUi);
490
+ var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd, mirrorInfo);
491
+ var skinCss = Object(core_["cssToStr"])(this.getSkinCss(eventUi));
492
+ var timeHtml = '';
493
+ var timeText;
494
+ var titleHtml;
495
+ classes.unshift('fc-day-grid-event', 'fc-h-event');
496
+ // Only display a timed events time if it is the starting segment
497
+ if (seg.isStart) {
498
+ timeText = this.getTimeText(eventRange);
499
+ if (timeText) {
500
+ timeHtml = '<span class="fc-time">' + Object(core_["htmlEscape"])(timeText) + '</span>';
501
+ }
502
+ }
503
+ titleHtml =
504
+ '<span class="fc-title">' +
505
+ (Object(core_["htmlEscape"])(eventDef.title || '') || '&nbsp;') + // we always want one line of height
506
+ '</span>';
507
+ return '<a class="' + classes.join(' ') + '"' +
508
+ (eventDef.url ?
509
+ ' href="' + Object(core_["htmlEscape"])(eventDef.url) + '"' :
510
+ '') +
511
+ (skinCss ?
512
+ ' style="' + skinCss + '"' :
513
+ '') +
514
+ '>' +
515
+ '<div class="fc-content">' +
516
+ (options.dir === 'rtl' ?
517
+ titleHtml + ' ' + timeHtml : // put a natural space in between
518
+ timeHtml + ' ' + titleHtml //
519
+ ) +
520
+ '</div>' +
521
+ (isResizableFromStart ?
522
+ '<div class="fc-resizer fc-start-resizer"></div>' :
523
+ '') +
524
+ (isResizableFromEnd ?
525
+ '<div class="fc-resizer fc-end-resizer"></div>' :
526
+ '') +
527
+ '</a>';
528
+ };
529
+ // Computes a default event time formatting string if `eventTimeFormat` is not explicitly defined
530
+ SimpleDayGridEventRenderer.prototype.computeEventTimeFormat = function () {
531
+ return {
532
+ hour: 'numeric',
533
+ minute: '2-digit',
534
+ omitZeroMinute: true,
535
+ meridiem: 'narrow'
536
+ };
537
+ };
538
+ SimpleDayGridEventRenderer.prototype.computeDisplayEventEnd = function () {
539
+ return false; // TODO: somehow consider the originating DayGrid's column count
540
+ };
541
+ return SimpleDayGridEventRenderer;
542
+ }(core_["FgEventRenderer"]));
543
+ /* harmony default export */ var src_SimpleDayGridEventRenderer = (SimpleDayGridEventRenderer_SimpleDayGridEventRenderer);
544
+
545
+ // CONCATENATED MODULE: ./src/DayGridEventRenderer.ts
546
+
547
+
548
+
549
+ /* Event-rendering methods for the DayGrid class
550
+ ----------------------------------------------------------------------------------------------------------------------*/
551
+ var DayGridEventRenderer_DayGridEventRenderer = /** @class */ (function (_super) {
552
+ __extends(DayGridEventRenderer, _super);
553
+ function DayGridEventRenderer(dayGrid) {
554
+ var _this = _super.call(this, dayGrid.context) || this;
555
+ _this.dayGrid = dayGrid;
556
+ return _this;
557
+ }
558
+ // Renders the given foreground event segments onto the grid
559
+ DayGridEventRenderer.prototype.attachSegs = function (segs, mirrorInfo) {
560
+ var rowStructs = this.rowStructs = this.renderSegRows(segs);
561
+ // append to each row's content skeleton
562
+ this.dayGrid.rowEls.forEach(function (rowNode, i) {
563
+ rowNode.querySelector('.fc-content-skeleton > table').appendChild(rowStructs[i].tbodyEl);
564
+ });
565
+ // removes the "more.." events popover
566
+ if (!mirrorInfo) {
567
+ this.dayGrid.removeSegPopover();
568
+ }
569
+ };
570
+ // Unrenders all currently rendered foreground event segments
571
+ DayGridEventRenderer.prototype.detachSegs = function () {
572
+ var rowStructs = this.rowStructs || [];
573
+ var rowStruct;
574
+ while ((rowStruct = rowStructs.pop())) {
575
+ Object(core_["removeElement"])(rowStruct.tbodyEl);
576
+ }
577
+ this.rowStructs = null;
578
+ };
579
+ // Uses the given events array to generate <tbody> elements that should be appended to each row's content skeleton.
580
+ // Returns an array of rowStruct objects (see the bottom of `renderSegRow`).
581
+ // PRECONDITION: each segment shoud already have a rendered and assigned `.el`
582
+ DayGridEventRenderer.prototype.renderSegRows = function (segs) {
583
+ var rowStructs = [];
584
+ var segRows;
585
+ var row;
586
+ segRows = this.groupSegRows(segs); // group into nested arrays
587
+ // iterate each row of segment groupings
588
+ for (row = 0; row < segRows.length; row++) {
589
+ rowStructs.push(this.renderSegRow(row, segRows[row]));
590
+ }
591
+ return rowStructs;
592
+ };
593
+ // Given a row # and an array of segments all in the same row, render a <tbody> element, a skeleton that contains
594
+ // the segments. Returns object with a bunch of internal data about how the render was calculated.
595
+ // NOTE: modifies rowSegs
596
+ DayGridEventRenderer.prototype.renderSegRow = function (row, rowSegs) {
597
+ var dayGrid = this.dayGrid;
598
+ var colCnt = dayGrid.colCnt, isRtl = dayGrid.isRtl;
599
+ var segLevels = this.buildSegLevels(rowSegs); // group into sub-arrays of levels
600
+ var levelCnt = Math.max(1, segLevels.length); // ensure at least one level
601
+ var tbody = document.createElement('tbody');
602
+ var segMatrix = []; // lookup for which segments are rendered into which level+col cells
603
+ var cellMatrix = []; // lookup for all <td> elements of the level+col matrix
604
+ var loneCellMatrix = []; // lookup for <td> elements that only take up a single column
605
+ var i;
606
+ var levelSegs;
607
+ var col;
608
+ var tr;
609
+ var j;
610
+ var seg;
611
+ var td;
612
+ // populates empty cells from the current column (`col`) to `endCol`
613
+ function emptyCellsUntil(endCol) {
614
+ while (col < endCol) {
615
+ // try to grab a cell from the level above and extend its rowspan. otherwise, create a fresh cell
616
+ td = (loneCellMatrix[i - 1] || [])[col];
617
+ if (td) {
618
+ td.rowSpan = (td.rowSpan || 1) + 1;
619
+ }
620
+ else {
621
+ td = document.createElement('td');
622
+ tr.appendChild(td);
623
+ }
624
+ cellMatrix[i][col] = td;
625
+ loneCellMatrix[i][col] = td;
626
+ col++;
627
+ }
628
+ }
629
+ for (i = 0; i < levelCnt; i++) { // iterate through all levels
630
+ levelSegs = segLevels[i];
631
+ col = 0;
632
+ tr = document.createElement('tr');
633
+ segMatrix.push([]);
634
+ cellMatrix.push([]);
635
+ loneCellMatrix.push([]);
636
+ // levelCnt might be 1 even though there are no actual levels. protect against this.
637
+ // this single empty row is useful for styling.
638
+ if (levelSegs) {
639
+ for (j = 0; j < levelSegs.length; j++) { // iterate through segments in level
640
+ seg = levelSegs[j];
641
+ var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol;
642
+ var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol;
643
+ emptyCellsUntil(leftCol);
644
+ // create a container that occupies or more columns. append the event element.
645
+ td = Object(core_["createElement"])('td', { className: 'fc-event-container' }, seg.el);
646
+ if (leftCol !== rightCol) {
647
+ td.colSpan = rightCol - leftCol + 1;
648
+ }
649
+ else { // a single-column segment
650
+ loneCellMatrix[i][col] = td;
651
+ }
652
+ while (col <= rightCol) {
653
+ cellMatrix[i][col] = td;
654
+ segMatrix[i][col] = seg;
655
+ col++;
656
+ }
657
+ tr.appendChild(td);
658
+ }
659
+ }
660
+ emptyCellsUntil(colCnt); // finish off the row
661
+ var introHtml = dayGrid.renderProps.renderIntroHtml();
662
+ if (introHtml) {
663
+ if (dayGrid.isRtl) {
664
+ Object(core_["appendToElement"])(tr, introHtml);
665
+ }
666
+ else {
667
+ Object(core_["prependToElement"])(tr, introHtml);
668
+ }
669
+ }
670
+ tbody.appendChild(tr);
671
+ }
672
+ return {
673
+ row: row,
674
+ tbodyEl: tbody,
675
+ cellMatrix: cellMatrix,
676
+ segMatrix: segMatrix,
677
+ segLevels: segLevels,
678
+ segs: rowSegs
679
+ };
680
+ };
681
+ // Stacks a flat array of segments, which are all assumed to be in the same row, into subarrays of vertical levels.
682
+ // NOTE: modifies segs
683
+ DayGridEventRenderer.prototype.buildSegLevels = function (segs) {
684
+ var _a = this.dayGrid, isRtl = _a.isRtl, colCnt = _a.colCnt;
685
+ var levels = [];
686
+ var i;
687
+ var seg;
688
+ var j;
689
+ // Give preference to elements with certain criteria, so they have
690
+ // a chance to be closer to the top.
691
+ segs = this.sortEventSegs(segs);
692
+ for (i = 0; i < segs.length; i++) {
693
+ seg = segs[i];
694
+ // loop through levels, starting with the topmost, until the segment doesn't collide with other segments
695
+ for (j = 0; j < levels.length; j++) {
696
+ if (!isDaySegCollision(seg, levels[j])) {
697
+ break;
698
+ }
699
+ }
700
+ // `j` now holds the desired subrow index
701
+ seg.level = j;
702
+ seg.leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol; // for sorting only
703
+ seg.rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol // for sorting only
704
+ ;
705
+ (levels[j] || (levels[j] = [])).push(seg);
706
+ }
707
+ // order segments left-to-right. very important if calendar is RTL
708
+ for (j = 0; j < levels.length; j++) {
709
+ levels[j].sort(compareDaySegCols);
710
+ }
711
+ return levels;
712
+ };
713
+ // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's row
714
+ DayGridEventRenderer.prototype.groupSegRows = function (segs) {
715
+ var segRows = [];
716
+ var i;
717
+ for (i = 0; i < this.dayGrid.rowCnt; i++) {
718
+ segRows.push([]);
719
+ }
720
+ for (i = 0; i < segs.length; i++) {
721
+ segRows[segs[i].row].push(segs[i]);
722
+ }
723
+ return segRows;
724
+ };
725
+ // Computes a default `displayEventEnd` value if one is not expliclty defined
726
+ DayGridEventRenderer.prototype.computeDisplayEventEnd = function () {
727
+ return this.dayGrid.colCnt === 1; // we'll likely have space if there's only one day
728
+ };
729
+ return DayGridEventRenderer;
730
+ }(src_SimpleDayGridEventRenderer));
731
+ /* harmony default export */ var src_DayGridEventRenderer = (DayGridEventRenderer_DayGridEventRenderer);
732
+ // Computes whether two segments' columns collide. They are assumed to be in the same row.
733
+ function isDaySegCollision(seg, otherSegs) {
734
+ var i;
735
+ var otherSeg;
736
+ for (i = 0; i < otherSegs.length; i++) {
737
+ otherSeg = otherSegs[i];
738
+ if (otherSeg.firstCol <= seg.lastCol &&
739
+ otherSeg.lastCol >= seg.firstCol) {
740
+ return true;
741
+ }
742
+ }
743
+ return false;
744
+ }
745
+ // A cmp function for determining the leftmost event
746
+ function compareDaySegCols(a, b) {
747
+ return a.leftCol - b.leftCol;
748
+ }
749
+
750
+ // CONCATENATED MODULE: ./src/DayGridMirrorRenderer.ts
751
+
752
+
753
+
754
+ var DayGridMirrorRenderer_DayGridMirrorRenderer = /** @class */ (function (_super) {
755
+ __extends(DayGridMirrorRenderer, _super);
756
+ function DayGridMirrorRenderer() {
757
+ return _super !== null && _super.apply(this, arguments) || this;
758
+ }
759
+ DayGridMirrorRenderer.prototype.attachSegs = function (segs, mirrorInfo) {
760
+ var sourceSeg = mirrorInfo.sourceSeg;
761
+ var rowStructs = this.rowStructs = this.renderSegRows(segs);
762
+ // inject each new event skeleton into each associated row
763
+ this.dayGrid.rowEls.forEach(function (rowNode, row) {
764
+ var skeletonEl = Object(core_["htmlToElement"])('<div class="fc-mirror-skeleton"><table></table></div>'); // will be absolutely positioned
765
+ var skeletonTopEl;
766
+ var skeletonTop;
767
+ // If there is an original segment, match the top position. Otherwise, put it at the row's top level
768
+ if (sourceSeg && sourceSeg.row === row) {
769
+ skeletonTopEl = sourceSeg.el;
770
+ }
771
+ else {
772
+ skeletonTopEl = rowNode.querySelector('.fc-content-skeleton tbody');
773
+ if (!skeletonTopEl) { // when no events
774
+ skeletonTopEl = rowNode.querySelector('.fc-content-skeleton table');
775
+ }
776
+ }
777
+ skeletonTop = skeletonTopEl.getBoundingClientRect().top -
778
+ rowNode.getBoundingClientRect().top; // the offsetParent origin
779
+ skeletonEl.style.top = skeletonTop + 'px';
780
+ skeletonEl.querySelector('table').appendChild(rowStructs[row].tbodyEl);
781
+ rowNode.appendChild(skeletonEl);
782
+ });
783
+ };
784
+ return DayGridMirrorRenderer;
785
+ }(src_DayGridEventRenderer));
786
+ /* harmony default export */ var src_DayGridMirrorRenderer = (DayGridMirrorRenderer_DayGridMirrorRenderer);
787
+
788
+ // CONCATENATED MODULE: ./src/DayGridFillRenderer.ts
789
+
790
+
791
+ var EMPTY_CELL_HTML = '<td style="pointer-events:none"></td>';
792
+ var DayGridFillRenderer_DayGridFillRenderer = /** @class */ (function (_super) {
793
+ __extends(DayGridFillRenderer, _super);
794
+ function DayGridFillRenderer(dayGrid) {
795
+ var _this = _super.call(this, dayGrid.context) || this;
796
+ _this.fillSegTag = 'td'; // override the default tag name
797
+ _this.dayGrid = dayGrid;
798
+ return _this;
799
+ }
800
+ DayGridFillRenderer.prototype.renderSegs = function (type, segs) {
801
+ // don't render timed background events
802
+ if (type === 'bgEvent') {
803
+ segs = segs.filter(function (seg) {
804
+ return seg.eventRange.def.allDay;
805
+ });
806
+ }
807
+ _super.prototype.renderSegs.call(this, type, segs);
808
+ };
809
+ DayGridFillRenderer.prototype.attachSegs = function (type, segs) {
810
+ var els = [];
811
+ var i;
812
+ var seg;
813
+ var skeletonEl;
814
+ for (i = 0; i < segs.length; i++) {
815
+ seg = segs[i];
816
+ skeletonEl = this.renderFillRow(type, seg);
817
+ this.dayGrid.rowEls[seg.row].appendChild(skeletonEl);
818
+ els.push(skeletonEl);
819
+ }
820
+ return els;
821
+ };
822
+ // Generates the HTML needed for one row of a fill. Requires the seg's el to be rendered.
823
+ DayGridFillRenderer.prototype.renderFillRow = function (type, seg) {
824
+ var dayGrid = this.dayGrid;
825
+ var colCnt = dayGrid.colCnt, isRtl = dayGrid.isRtl;
826
+ var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol;
827
+ var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol;
828
+ var startCol = leftCol;
829
+ var endCol = rightCol + 1;
830
+ var className;
831
+ var skeletonEl;
832
+ var trEl;
833
+ if (type === 'businessHours') {
834
+ className = 'bgevent';
835
+ }
836
+ else {
837
+ className = type.toLowerCase();
838
+ }
839
+ skeletonEl = Object(core_["htmlToElement"])('<div class="fc-' + className + '-skeleton">' +
840
+ '<table><tr></tr></table>' +
841
+ '</div>');
842
+ trEl = skeletonEl.getElementsByTagName('tr')[0];
843
+ if (startCol > 0) {
844
+ Object(core_["appendToElement"])(trEl,
845
+ // will create (startCol + 1) td's
846
+ new Array(startCol + 1).join(EMPTY_CELL_HTML));
847
+ }
848
+ seg.el.colSpan = endCol - startCol;
849
+ trEl.appendChild(seg.el);
850
+ if (endCol < colCnt) {
851
+ Object(core_["appendToElement"])(trEl,
852
+ // will create (colCnt - endCol) td's
853
+ new Array(colCnt - endCol + 1).join(EMPTY_CELL_HTML));
854
+ }
855
+ var introHtml = dayGrid.renderProps.renderIntroHtml();
856
+ if (introHtml) {
857
+ if (dayGrid.isRtl) {
858
+ Object(core_["appendToElement"])(trEl, introHtml);
859
+ }
860
+ else {
861
+ Object(core_["prependToElement"])(trEl, introHtml);
862
+ }
863
+ }
864
+ return skeletonEl;
865
+ };
866
+ return DayGridFillRenderer;
867
+ }(core_["FillRenderer"]));
868
+ /* harmony default export */ var src_DayGridFillRenderer = (DayGridFillRenderer_DayGridFillRenderer);
869
+
870
+ // CONCATENATED MODULE: ./src/DayTile.ts
871
+
872
+
873
+
874
+ var DayTile_DayTile = /** @class */ (function (_super) {
875
+ __extends(DayTile, _super);
876
+ function DayTile(context, el) {
877
+ var _this = _super.call(this, context, el) || this;
878
+ var eventRenderer = _this.eventRenderer = new DayTile_DayTileEventRenderer(_this);
879
+ var renderFrame = _this.renderFrame = Object(core_["memoizeRendering"])(_this._renderFrame);
880
+ _this.renderFgEvents = Object(core_["memoizeRendering"])(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer), [renderFrame]);
881
+ _this.renderEventSelection = Object(core_["memoizeRendering"])(eventRenderer.selectByInstanceId.bind(eventRenderer), eventRenderer.unselectByInstanceId.bind(eventRenderer), [_this.renderFgEvents]);
882
+ _this.renderEventDrag = Object(core_["memoizeRendering"])(eventRenderer.hideByHash.bind(eventRenderer), eventRenderer.showByHash.bind(eventRenderer), [renderFrame]);
883
+ _this.renderEventResize = Object(core_["memoizeRendering"])(eventRenderer.hideByHash.bind(eventRenderer), eventRenderer.showByHash.bind(eventRenderer), [renderFrame]);
884
+ context.calendar.registerInteractiveComponent(_this, {
885
+ el: _this.el,
886
+ useEventCenter: false
887
+ });
888
+ return _this;
889
+ }
890
+ DayTile.prototype.render = function (props) {
891
+ this.renderFrame(props.date);
892
+ this.renderFgEvents(props.fgSegs);
893
+ this.renderEventSelection(props.eventSelection);
894
+ this.renderEventDrag(props.eventDragInstances);
895
+ this.renderEventResize(props.eventResizeInstances);
896
+ };
897
+ DayTile.prototype.destroy = function () {
898
+ _super.prototype.destroy.call(this);
899
+ this.renderFrame.unrender(); // should unrender everything else
900
+ this.calendar.unregisterInteractiveComponent(this);
901
+ };
902
+ DayTile.prototype._renderFrame = function (date) {
903
+ var _a = this, theme = _a.theme, dateEnv = _a.dateEnv;
904
+ var title = dateEnv.format(date, Object(core_["createFormatter"])(this.opt('dayPopoverFormat')) // TODO: cache
905
+ );
906
+ this.el.innerHTML =
907
+ '<div class="fc-header ' + theme.getClass('popoverHeader') + '">' +
908
+ '<span class="fc-title">' +
909
+ Object(core_["htmlEscape"])(title) +
910
+ '</span>' +
911
+ '<span class="fc-close ' + theme.getIconClass('close') + '"></span>' +
912
+ '</div>' +
913
+ '<div class="fc-body ' + theme.getClass('popoverContent') + '">' +
914
+ '<div class="fc-event-container"></div>' +
915
+ '</div>';
916
+ this.segContainerEl = this.el.querySelector('.fc-event-container');
917
+ };
918
+ DayTile.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) {
919
+ var date = this.props.date; // HACK
920
+ if (positionLeft < elWidth && positionTop < elHeight) {
921
+ return {
922
+ component: this,
923
+ dateSpan: {
924
+ allDay: true,
925
+ range: { start: date, end: Object(core_["addDays"])(date, 1) }
926
+ },
927
+ dayEl: this.el,
928
+ rect: {
929
+ left: 0,
930
+ top: 0,
931
+ right: elWidth,
932
+ bottom: elHeight
933
+ },
934
+ layer: 1
935
+ };
936
+ }
937
+ };
938
+ return DayTile;
939
+ }(core_["DateComponent"]));
940
+ /* harmony default export */ var src_DayTile = (DayTile_DayTile);
941
+ var DayTile_DayTileEventRenderer = /** @class */ (function (_super) {
942
+ __extends(DayTileEventRenderer, _super);
943
+ function DayTileEventRenderer(dayTile) {
944
+ var _this = _super.call(this, dayTile.context) || this;
945
+ _this.dayTile = dayTile;
946
+ return _this;
947
+ }
948
+ DayTileEventRenderer.prototype.attachSegs = function (segs) {
949
+ for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {
950
+ var seg = segs_1[_i];
951
+ this.dayTile.segContainerEl.appendChild(seg.el);
952
+ }
953
+ };
954
+ DayTileEventRenderer.prototype.detachSegs = function (segs) {
955
+ for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {
956
+ var seg = segs_2[_i];
957
+ Object(core_["removeElement"])(seg.el);
958
+ }
959
+ };
960
+ return DayTileEventRenderer;
961
+ }(src_SimpleDayGridEventRenderer));
962
+
963
+
964
+ // CONCATENATED MODULE: ./src/DayBgRow.ts
965
+
966
+ var DayBgRow = /** @class */ (function () {
967
+ function DayBgRow(context) {
968
+ this.context = context;
969
+ }
970
+ DayBgRow.prototype.renderHtml = function (props) {
971
+ var parts = [];
972
+ if (props.renderIntroHtml) {
973
+ parts.push(props.renderIntroHtml());
974
+ }
975
+ for (var _i = 0, _a = props.cells; _i < _a.length; _i++) {
976
+ var cell = _a[_i];
977
+ parts.push(renderCellHtml(cell.date, props.dateProfile, this.context, cell.htmlAttrs));
978
+ }
979
+ if (!props.cells.length) {
980
+ parts.push('<td class="fc-day ' + this.context.theme.getClass('widgetContent') + '"></td>');
981
+ }
982
+ if (this.context.options.dir === 'rtl') {
983
+ parts.reverse();
984
+ }
985
+ return '<tr>' + parts.join('') + '</tr>';
986
+ };
987
+ return DayBgRow;
988
+ }());
989
+ /* harmony default export */ var src_DayBgRow = (DayBgRow);
990
+ function renderCellHtml(date, dateProfile, context, otherAttrs) {
991
+ var dateEnv = context.dateEnv, theme = context.theme;
992
+ var isDateValid = Object(core_["rangeContainsMarker"])(dateProfile.activeRange, date); // TODO: called too frequently. cache somehow.
993
+ var classes = Object(core_["getDayClasses"])(date, dateProfile, context);
994
+ classes.unshift('fc-day', theme.getClass('widgetContent'));
995
+ return '<td class="' + classes.join(' ') + '"' +
996
+ (isDateValid ?
997
+ ' data-date="' + dateEnv.formatIso(date, { omitTime: true }) + '"' :
998
+ '') +
999
+ (otherAttrs ?
1000
+ ' ' + otherAttrs :
1001
+ '') +
1002
+ '></td>';
1003
+ }
1004
+
1005
+ // EXTERNAL MODULE: external "moment"
1006
+ var external_moment_ = __webpack_require__(1);
1007
+ var external_moment_default = /*#__PURE__*/__webpack_require__.n(external_moment_);
1008
+
1009
+ // CONCATENATED MODULE: ./src/DayGrid.ts
1010
+
1011
+
1012
+
1013
+
1014
+
1015
+
1016
+
1017
+
1018
+
1019
+ var DAY_NUM_FORMAT = Object(core_["createFormatter"])({ day: 'numeric' });
1020
+ var WEEK_NUM_FORMAT = Object(core_["createFormatter"])({ week: 'numeric' });
1021
+ var DayGrid_DayGrid = /** @class */ (function (_super) {
1022
+ __extends(DayGrid, _super);
1023
+ function DayGrid(context, el, renderProps) {
1024
+ var _this = _super.call(this, context, el) || this;
1025
+ _this.bottomCoordPadding = 0; // hack for extending the hit area for the last row of the coordinate grid
1026
+ _this.isCellSizesDirty = false;
1027
+ var eventRenderer = _this.eventRenderer = new src_DayGridEventRenderer(_this);
1028
+ var fillRenderer = _this.fillRenderer = new src_DayGridFillRenderer(_this);
1029
+ _this.mirrorRenderer = new src_DayGridMirrorRenderer(_this);
1030
+ var renderCells = _this.renderCells = Object(core_["memoizeRendering"])(_this._renderCells, _this._unrenderCells);
1031
+ _this.renderBusinessHours = Object(core_["memoizeRendering"])(fillRenderer.renderSegs.bind(fillRenderer, 'businessHours'), fillRenderer.unrender.bind(fillRenderer, 'businessHours'), [renderCells]);
1032
+ _this.renderDateSelection = Object(core_["memoizeRendering"])(fillRenderer.renderSegs.bind(fillRenderer, 'highlight'), fillRenderer.unrender.bind(fillRenderer, 'highlight'), [renderCells]);
1033
+ _this.renderBgEvents = Object(core_["memoizeRendering"])(fillRenderer.renderSegs.bind(fillRenderer, 'bgEvent'), fillRenderer.unrender.bind(fillRenderer, 'bgEvent'), [renderCells]);
1034
+ _this.renderFgEvents = Object(core_["memoizeRendering"])(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer), [renderCells]);
1035
+ _this.renderEventSelection = Object(core_["memoizeRendering"])(eventRenderer.selectByInstanceId.bind(eventRenderer), eventRenderer.unselectByInstanceId.bind(eventRenderer), [_this.renderFgEvents]);
1036
+ _this.renderEventDrag = Object(core_["memoizeRendering"])(_this._renderEventDrag, _this._unrenderEventDrag, [renderCells]);
1037
+ _this.renderEventResize = Object(core_["memoizeRendering"])(_this._renderEventResize, _this._unrenderEventResize, [renderCells]);
1038
+ _this.renderProps = renderProps;
1039
+ return _this;
1040
+ }
1041
+ DayGrid.prototype.render = function (props) {
1042
+ var cells = props.cells;
1043
+ this.rowCnt = cells.length;
1044
+ this.colCnt = cells[0].length;
1045
+ this.renderCells(cells, props.isRigid);
1046
+ this.renderBusinessHours(props.businessHourSegs);
1047
+ this.renderDateSelection(props.dateSelectionSegs);
1048
+ this.renderBgEvents(props.bgEventSegs);
1049
+ this.renderFgEvents(props.fgEventSegs);
1050
+ this.renderEventSelection(props.eventSelection);
1051
+ this.renderEventDrag(props.eventDrag);
1052
+ this.renderEventResize(props.eventResize);
1053
+ if (this.segPopoverTile) {
1054
+ this.updateSegPopoverTile();
1055
+ }
1056
+ };
1057
+ DayGrid.prototype.destroy = function () {
1058
+ _super.prototype.destroy.call(this);
1059
+ this.renderCells.unrender(); // will unrender everything else
1060
+ };
1061
+ DayGrid.prototype.getCellRange = function (row, col) {
1062
+ var start = this.props.cells[row][col].date;
1063
+ var end = Object(core_["addDays"])(start, 1);
1064
+ return { start: start, end: end };
1065
+ };
1066
+ DayGrid.prototype.updateSegPopoverTile = function (date, segs) {
1067
+ var ownProps = this.props;
1068
+ this.segPopoverTile.receiveProps({
1069
+ date: date || this.segPopoverTile.props.date,
1070
+ fgSegs: segs || this.segPopoverTile.props.fgSegs,
1071
+ eventSelection: ownProps.eventSelection,
1072
+ eventDragInstances: ownProps.eventDrag ? ownProps.eventDrag.affectedInstances : null,
1073
+ eventResizeInstances: ownProps.eventResize ? ownProps.eventResize.affectedInstances : null
1074
+ });
1075
+ };
1076
+ /* Date Rendering
1077
+ ------------------------------------------------------------------------------------------------------------------*/
1078
+ DayGrid.prototype._renderCells = function (cells, isRigid) {
1079
+ var _a = this, view = _a.view, dateEnv = _a.dateEnv;
1080
+ var _b = this, rowCnt = _b.rowCnt, colCnt = _b.colCnt;
1081
+ var html = '';
1082
+ var row;
1083
+ var col;
1084
+ for (row = 0; row < rowCnt; row++) {
1085
+ html += this.renderDayRowHtml(row, isRigid);
1086
+ }
1087
+ this.el.innerHTML = html;
1088
+ this.rowEls = Object(core_["findElements"])(this.el, '.fc-row');
1089
+ this.cellEls = Object(core_["findElements"])(this.el, '.fc-day, .fc-disabled-day');
1090
+ if (this.isRtl) {
1091
+ this.cellEls.reverse();
1092
+ }
1093
+ this.rowPositions = new core_["PositionCache"](this.el, this.rowEls, false, true // vertical
1094
+ );
1095
+ this.colPositions = new core_["PositionCache"](this.el, this.cellEls.slice(0, colCnt), // only the first row
1096
+ true, false // horizontal
1097
+ );
1098
+ // trigger dayRender with each cell's element
1099
+ for (row = 0; row < rowCnt; row++) {
1100
+ for (col = 0; col < colCnt; col++) {
1101
+ if (cells[row][col] === undefined) {
1102
+ break;
1103
+ }
1104
+ if (cells[row][col].date != null) {
1105
+ this.publiclyTrigger('dayRender', [
1106
+ {
1107
+ date: dateEnv.toDate(cells[row][col].date),
1108
+ el: this.getCellEl(row, col),
1109
+ view: view
1110
+ }
1111
+ ]);
1112
+ }
1113
+ }
1114
+ }
1115
+ this.isCellSizesDirty = true;
1116
+ };
1117
+ DayGrid.prototype._unrenderCells = function () {
1118
+ this.removeSegPopover();
1119
+ };
1120
+ // Generates the HTML for a single row, which is a div that wraps a table.
1121
+ // `row` is the row number.
1122
+ DayGrid.prototype.renderDayRowHtml = function (row, isRigid) {
1123
+ var theme = this.theme;
1124
+ var classes = ['fc-row', 'fc-week', theme.getClass('dayRow')];
1125
+ if (isRigid) {
1126
+ classes.push('fc-rigid');
1127
+ }
1128
+ var bgRow = new src_DayBgRow(this.context);
1129
+ return '' +
1130
+ '<div class="' + classes.join(' ') + '">' +
1131
+ '<div class="fc-row-monthname fc-content"><span>' + external_moment_default()(this.props.cells[row][0].date).format('MMM') + '</span></div>' +
1132
+ '<div class="fc-bg">' +
1133
+ '<table class="' + theme.getClass('tableGrid') + '">' +
1134
+ bgRow.renderHtml({
1135
+ cells: this.props.cells[row],
1136
+ dateProfile: this.props.dateProfile,
1137
+ renderIntroHtml: this.renderProps.renderBgIntroHtml
1138
+ }) +
1139
+ '</table>' +
1140
+ '</div>' +
1141
+ '<div class="fc-content-skeleton">' +
1142
+ '<table>' +
1143
+ (this.getIsNumbersVisible() ?
1144
+ '<thead>' +
1145
+ this.renderNumberTrHtml(row) +
1146
+ '</thead>' :
1147
+ '') +
1148
+ '</table>' +
1149
+ '</div>' +
1150
+ '</div>';
1151
+ };
1152
+ DayGrid.prototype.getIsNumbersVisible = function () {
1153
+ return this.getIsDayNumbersVisible() ||
1154
+ this.renderProps.cellWeekNumbersVisible ||
1155
+ this.renderProps.colWeekNumbersVisible;
1156
+ };
1157
+ DayGrid.prototype.getIsDayNumbersVisible = function () {
1158
+ return this.rowCnt > 1;
1159
+ };
1160
+ /* Grid Number Rendering
1161
+ ------------------------------------------------------------------------------------------------------------------*/
1162
+ DayGrid.prototype.renderNumberTrHtml = function (row) {
1163
+ var intro = this.renderProps.renderNumberIntroHtml(row, this);
1164
+ return '' +
1165
+ '<tr>' +
1166
+ (this.isRtl ? '' : intro) +
1167
+ this.renderNumberCellsHtml(row) +
1168
+ (this.isRtl ? intro : '') +
1169
+ '</tr>';
1170
+ };
1171
+ DayGrid.prototype.renderNumberCellsHtml = function (row) {
1172
+ var htmls = [];
1173
+ var col;
1174
+ var date;
1175
+ for (col = 0; col < this.colCnt; col++) {
1176
+ date = this.props.cells[row][col].date;
1177
+ htmls.push(this.renderNumberCellHtml(date));
1178
+ }
1179
+ if (this.isRtl) {
1180
+ htmls.reverse();
1181
+ }
1182
+ return htmls.join('');
1183
+ };
1184
+ // Generates the HTML for the <td>s of the "number" row in the DayGrid's content skeleton.
1185
+ // The number row will only exist if either day numbers or week numbers are turned on.
1186
+ DayGrid.prototype.renderNumberCellHtml = function (date) {
1187
+ if (date === null) {
1188
+ return '<td></td>';
1189
+ }
1190
+ var _a = this, view = _a.view, dateEnv = _a.dateEnv;
1191
+ var html = '';
1192
+ var isDateValid = Object(core_["rangeContainsMarker"])(this.props.dateProfile.activeRange, date); // TODO: called too frequently. cache somehow.
1193
+ var isDayNumberVisible = this.getIsDayNumbersVisible() && isDateValid;
1194
+ var classes;
1195
+ var weekCalcFirstDow;
1196
+ if (!isDayNumberVisible && !this.renderProps.cellWeekNumbersVisible) {
1197
+ // no numbers in day cell (week number must be along the side)
1198
+ return '<td></td>'; // will create an empty space above events :(
1199
+ }
1200
+ classes = Object(core_["getDayClasses"])(date, this.props.dateProfile, this.context);
1201
+ classes.unshift('fc-day-top');
1202
+ if (this.renderProps.cellWeekNumbersVisible) {
1203
+ weekCalcFirstDow = dateEnv.weekDow;
1204
+ }
1205
+ html += '<td class="' + classes.join(' ') + '"' +
1206
+ (isDateValid ?
1207
+ ' data-date="' + dateEnv.formatIso(date, { omitTime: true }) + '"' :
1208
+ '') +
1209
+ '>';
1210
+ if (this.renderProps.cellWeekNumbersVisible && (date.getUTCDay() === weekCalcFirstDow)) {
1211
+ html += Object(core_["buildGotoAnchorHtml"])(view, { date: date, type: 'week' }, { 'class': 'fc-week-number' }, dateEnv.format(date, WEEK_NUM_FORMAT) // inner HTML
1212
+ );
1213
+ }
1214
+ if (isDayNumberVisible) {
1215
+ html += Object(core_["buildGotoAnchorHtml"])(view, date, { 'class': 'fc-day-number' }, '<span class="fc-day-number-weekday">' + external_moment_default()(date).format('dd') + '</span>' + dateEnv.format(date, DAY_NUM_FORMAT) // inner HTML
1216
+ );
1217
+ }
1218
+ html += '</td>';
1219
+ return html;
1220
+ };
1221
+ /* Sizing
1222
+ ------------------------------------------------------------------------------------------------------------------*/
1223
+ DayGrid.prototype.updateSize = function (isResize) {
1224
+ var _a = this, fillRenderer = _a.fillRenderer, eventRenderer = _a.eventRenderer, mirrorRenderer = _a.mirrorRenderer;
1225
+ if (isResize ||
1226
+ this.isCellSizesDirty ||
1227
+ this.view.calendar.isEventsUpdated // hack
1228
+ ) {
1229
+ this.buildPositionCaches();
1230
+ this.isCellSizesDirty = false;
1231
+ }
1232
+ fillRenderer.computeSizes(isResize);
1233
+ eventRenderer.computeSizes(isResize);
1234
+ mirrorRenderer.computeSizes(isResize);
1235
+ fillRenderer.assignSizes(isResize);
1236
+ eventRenderer.assignSizes(isResize);
1237
+ mirrorRenderer.assignSizes(isResize);
1238
+ };
1239
+ DayGrid.prototype.buildPositionCaches = function () {
1240
+ this.buildColPositions();
1241
+ this.buildRowPositions();
1242
+ };
1243
+ DayGrid.prototype.buildColPositions = function () {
1244
+ this.colPositions.build();
1245
+ };
1246
+ DayGrid.prototype.buildRowPositions = function () {
1247
+ this.rowPositions.build();
1248
+ this.rowPositions.bottoms[this.rowCnt - 1] += this.bottomCoordPadding; // hack
1249
+ };
1250
+ /* Hit System
1251
+ ------------------------------------------------------------------------------------------------------------------*/
1252
+ DayGrid.prototype.positionToHit = function (leftPosition, topPosition) {
1253
+ var _a = this, colPositions = _a.colPositions, rowPositions = _a.rowPositions;
1254
+ var col = colPositions.leftToIndex(leftPosition);
1255
+ var row = rowPositions.topToIndex(topPosition);
1256
+ if (row != null && col != null) {
1257
+ return {
1258
+ row: row,
1259
+ col: col,
1260
+ dateSpan: {
1261
+ range: this.getCellRange(row, col),
1262
+ allDay: true
1263
+ },
1264
+ dayEl: this.getCellEl(row, col),
1265
+ relativeRect: {
1266
+ left: colPositions.lefts[col],
1267
+ right: colPositions.rights[col],
1268
+ top: rowPositions.tops[row],
1269
+ bottom: rowPositions.bottoms[row]
1270
+ }
1271
+ };
1272
+ }
1273
+ };
1274
+ /* Cell System
1275
+ ------------------------------------------------------------------------------------------------------------------*/
1276
+ // FYI: the first column is the leftmost column, regardless of date
1277
+ DayGrid.prototype.getCellEl = function (row, col) {
1278
+ return this.cellEls[row * this.colCnt + col];
1279
+ };
1280
+ /* Event Drag Visualization
1281
+ ------------------------------------------------------------------------------------------------------------------*/
1282
+ DayGrid.prototype._renderEventDrag = function (state) {
1283
+ if (state) {
1284
+ this.eventRenderer.hideByHash(state.affectedInstances);
1285
+ this.fillRenderer.renderSegs('highlight', state.segs);
1286
+ }
1287
+ };
1288
+ DayGrid.prototype._unrenderEventDrag = function (state) {
1289
+ if (state) {
1290
+ this.eventRenderer.showByHash(state.affectedInstances);
1291
+ this.fillRenderer.unrender('highlight');
1292
+ }
1293
+ };
1294
+ /* Event Resize Visualization
1295
+ ------------------------------------------------------------------------------------------------------------------*/
1296
+ DayGrid.prototype._renderEventResize = function (state) {
1297
+ if (state) {
1298
+ this.eventRenderer.hideByHash(state.affectedInstances);
1299
+ this.fillRenderer.renderSegs('highlight', state.segs);
1300
+ this.mirrorRenderer.renderSegs(state.segs, { isResizing: true, sourceSeg: state.sourceSeg });
1301
+ }
1302
+ };
1303
+ DayGrid.prototype._unrenderEventResize = function (state) {
1304
+ if (state) {
1305
+ this.eventRenderer.showByHash(state.affectedInstances);
1306
+ this.fillRenderer.unrender('highlight');
1307
+ this.mirrorRenderer.unrender(state.segs, { isResizing: true, sourceSeg: state.sourceSeg });
1308
+ }
1309
+ };
1310
+ /* More+ Link Popover
1311
+ ------------------------------------------------------------------------------------------------------------------*/
1312
+ DayGrid.prototype.removeSegPopover = function () {
1313
+ if (this.segPopover) {
1314
+ this.segPopover.hide(); // in handler, will call segPopover's removeElement
1315
+ }
1316
+ };
1317
+ // Limits the number of "levels" (vertically stacking layers of events) for each row of the grid.
1318
+ // `levelLimit` can be false (don't limit), a number, or true (should be computed).
1319
+ DayGrid.prototype.limitRows = function (levelLimit) {
1320
+ var rowStructs = this.eventRenderer.rowStructs || [];
1321
+ var row; // row #
1322
+ var rowLevelLimit;
1323
+ for (row = 0; row < rowStructs.length; row++) {
1324
+ this.unlimitRow(row);
1325
+ if (!levelLimit) {
1326
+ rowLevelLimit = false;
1327
+ }
1328
+ else if (typeof levelLimit === 'number') {
1329
+ rowLevelLimit = levelLimit;
1330
+ }
1331
+ else {
1332
+ rowLevelLimit = this.computeRowLevelLimit(row);
1333
+ }
1334
+ if (rowLevelLimit !== false) {
1335
+ this.limitRow(row, rowLevelLimit);
1336
+ }
1337
+ }
1338
+ };
1339
+ // Computes the number of levels a row will accomodate without going outside its bounds.
1340
+ // Assumes the row is "rigid" (maintains a constant height regardless of what is inside).
1341
+ // `row` is the row number.
1342
+ DayGrid.prototype.computeRowLevelLimit = function (row) {
1343
+ var rowEl = this.rowEls[row]; // the containing "fake" row div
1344
+ var rowBottom = rowEl.getBoundingClientRect().bottom; // relative to viewport!
1345
+ var trEls = Object(core_["findChildren"])(this.eventRenderer.rowStructs[row].tbodyEl);
1346
+ var i;
1347
+ var trEl;
1348
+ // Reveal one level <tr> at a time and stop when we find one out of bounds
1349
+ for (i = 0; i < trEls.length; i++) {
1350
+ trEl = trEls[i];
1351
+ trEl.classList.remove('fc-limited'); // reset to original state (reveal)
1352
+ if (trEl.getBoundingClientRect().bottom > rowBottom) {
1353
+ return i;
1354
+ }
1355
+ }
1356
+ return false; // should not limit at all
1357
+ };
1358
+ // Limits the given grid row to the maximum number of levels and injects "more" links if necessary.
1359
+ // `row` is the row number.
1360
+ // `levelLimit` is a number for the maximum (inclusive) number of levels allowed.
1361
+ DayGrid.prototype.limitRow = function (row, levelLimit) {
1362
+ var _this = this;
1363
+ var _a = this, colCnt = _a.colCnt, isRtl = _a.isRtl;
1364
+ var rowStruct = this.eventRenderer.rowStructs[row];
1365
+ var moreNodes = []; // array of "more" <a> links and <td> DOM nodes
1366
+ var col = 0; // col #, left-to-right (not chronologically)
1367
+ var levelSegs; // array of segment objects in the last allowable level, ordered left-to-right
1368
+ var cellMatrix; // a matrix (by level, then column) of all <td> elements in the row
1369
+ var limitedNodes; // array of temporarily hidden level <tr> and segment <td> DOM nodes
1370
+ var i;
1371
+ var seg;
1372
+ var segsBelow; // array of segment objects below `seg` in the current `col`
1373
+ var totalSegsBelow; // total number of segments below `seg` in any of the columns `seg` occupies
1374
+ var colSegsBelow; // array of segment arrays, below seg, one for each column (offset from segs's first column)
1375
+ var td;
1376
+ var rowSpan;
1377
+ var segMoreNodes; // array of "more" <td> cells that will stand-in for the current seg's cell
1378
+ var j;
1379
+ var moreTd;
1380
+ var moreWrap;
1381
+ var moreLink;
1382
+ // Iterates through empty level cells and places "more" links inside if need be
1383
+ var emptyCellsUntil = function (endCol) {
1384
+ while (col < endCol) {
1385
+ segsBelow = _this.getCellSegs(row, col, levelLimit);
1386
+ if (segsBelow.length) {
1387
+ td = cellMatrix[levelLimit - 1][col];
1388
+ moreLink = _this.renderMoreLink(row, col, segsBelow);
1389
+ moreWrap = Object(core_["createElement"])('div', null, moreLink);
1390
+ td.appendChild(moreWrap);
1391
+ moreNodes.push(moreWrap);
1392
+ }
1393
+ col++;
1394
+ }
1395
+ };
1396
+ if (levelLimit && levelLimit < rowStruct.segLevels.length) { // is it actually over the limit?
1397
+ levelSegs = rowStruct.segLevels[levelLimit - 1];
1398
+ cellMatrix = rowStruct.cellMatrix;
1399
+ limitedNodes = Object(core_["findChildren"])(rowStruct.tbodyEl).slice(levelLimit); // get level <tr> elements past the limit
1400
+ limitedNodes.forEach(function (node) {
1401
+ node.classList.add('fc-limited'); // hide elements and get a simple DOM-nodes array
1402
+ });
1403
+ // iterate though segments in the last allowable level
1404
+ for (i = 0; i < levelSegs.length; i++) {
1405
+ seg = levelSegs[i];
1406
+ var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol;
1407
+ var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol;
1408
+ emptyCellsUntil(leftCol); // process empty cells before the segment
1409
+ // determine *all* segments below `seg` that occupy the same columns
1410
+ colSegsBelow = [];
1411
+ totalSegsBelow = 0;
1412
+ while (col <= rightCol) {
1413
+ segsBelow = this.getCellSegs(row, col, levelLimit);
1414
+ colSegsBelow.push(segsBelow);
1415
+ totalSegsBelow += segsBelow.length;
1416
+ col++;
1417
+ }
1418
+ if (totalSegsBelow) { // do we need to replace this segment with one or many "more" links?
1419
+ td = cellMatrix[levelLimit - 1][leftCol]; // the segment's parent cell
1420
+ rowSpan = td.rowSpan || 1;
1421
+ segMoreNodes = [];
1422
+ // make a replacement <td> for each column the segment occupies. will be one for each colspan
1423
+ for (j = 0; j < colSegsBelow.length; j++) {
1424
+ moreTd = Object(core_["createElement"])('td', { className: 'fc-more-cell', rowSpan: rowSpan });
1425
+ segsBelow = colSegsBelow[j];
1426
+ moreLink = this.renderMoreLink(row, leftCol + j, [seg].concat(segsBelow) // count seg as hidden too
1427
+ );
1428
+ moreWrap = Object(core_["createElement"])('div', null, moreLink);
1429
+ moreTd.appendChild(moreWrap);
1430
+ segMoreNodes.push(moreTd);
1431
+ moreNodes.push(moreTd);
1432
+ }
1433
+ td.classList.add('fc-limited');
1434
+ Object(core_["insertAfterElement"])(td, segMoreNodes);
1435
+ limitedNodes.push(td);
1436
+ }
1437
+ }
1438
+ emptyCellsUntil(this.colCnt); // finish off the level
1439
+ rowStruct.moreEls = moreNodes; // for easy undoing later
1440
+ rowStruct.limitedEls = limitedNodes; // for easy undoing later
1441
+ }
1442
+ };
1443
+ // Reveals all levels and removes all "more"-related elements for a grid's row.
1444
+ // `row` is a row number.
1445
+ DayGrid.prototype.unlimitRow = function (row) {
1446
+ var rowStruct = this.eventRenderer.rowStructs[row];
1447
+ if (rowStruct.moreEls) {
1448
+ rowStruct.moreEls.forEach(core_["removeElement"]);
1449
+ rowStruct.moreEls = null;
1450
+ }
1451
+ if (rowStruct.limitedEls) {
1452
+ rowStruct.limitedEls.forEach(function (limitedEl) {
1453
+ limitedEl.classList.remove('fc-limited');
1454
+ });
1455
+ rowStruct.limitedEls = null;
1456
+ }
1457
+ };
1458
+ // Renders an <a> element that represents hidden event element for a cell.
1459
+ // Responsible for attaching click handler as well.
1460
+ DayGrid.prototype.renderMoreLink = function (row, col, hiddenSegs) {
1461
+ var _this = this;
1462
+ var _a = this, view = _a.view, dateEnv = _a.dateEnv;
1463
+ var a = Object(core_["createElement"])('a', { className: 'fc-more' });
1464
+ a.innerText = this.getMoreLinkText(hiddenSegs.length);
1465
+ a.addEventListener('click', function (ev) {
1466
+ var clickOption = _this.opt('eventLimitClick');
1467
+ var _col = _this.isRtl ? _this.colCnt - col - 1 : col; // HACK: props.cells has different dir system?
1468
+ var date = _this.props.cells[row][_col].date;
1469
+ var moreEl = ev.currentTarget;
1470
+ var dayEl = _this.getCellEl(row, col);
1471
+ var allSegs = _this.getCellSegs(row, col);
1472
+ // rescope the segments to be within the cell's date
1473
+ var reslicedAllSegs = _this.resliceDaySegs(allSegs, date);
1474
+ var reslicedHiddenSegs = _this.resliceDaySegs(hiddenSegs, date);
1475
+ if (typeof clickOption === 'function') {
1476
+ // the returned value can be an atomic option
1477
+ clickOption = _this.publiclyTrigger('eventLimitClick', [
1478
+ {
1479
+ date: dateEnv.toDate(date),
1480
+ allDay: true,
1481
+ dayEl: dayEl,
1482
+ moreEl: moreEl,
1483
+ segs: reslicedAllSegs,
1484
+ hiddenSegs: reslicedHiddenSegs,
1485
+ jsEvent: ev,
1486
+ view: view
1487
+ }
1488
+ ]);
1489
+ }
1490
+ if (clickOption === 'popover') {
1491
+ _this.showSegPopover(row, col, moreEl, reslicedAllSegs);
1492
+ }
1493
+ else if (typeof clickOption === 'string') { // a view name
1494
+ view.calendar.zoomTo(date, clickOption);
1495
+ }
1496
+ });
1497
+ return a;
1498
+ };
1499
+ // Reveals the popover that displays all events within a cell
1500
+ DayGrid.prototype.showSegPopover = function (row, col, moreLink, segs) {
1501
+ var _this = this;
1502
+ var _a = this, calendar = _a.calendar, view = _a.view, theme = _a.theme;
1503
+ var _col = this.isRtl ? this.colCnt - col - 1 : col; // HACK: props.cells has different dir system?
1504
+ var moreWrap = moreLink.parentNode; // the <div> wrapper around the <a>
1505
+ var topEl; // the element we want to match the top coordinate of
1506
+ var options;
1507
+ if (this.rowCnt === 1) {
1508
+ topEl = view.el; // will cause the popover to cover any sort of header
1509
+ }
1510
+ else {
1511
+ topEl = this.rowEls[row]; // will align with top of row
1512
+ }
1513
+ options = {
1514
+ className: 'fc-more-popover ' + theme.getClass('popover'),
1515
+ parentEl: view.el,
1516
+ top: Object(core_["computeRect"])(topEl).top,
1517
+ autoHide: true,
1518
+ content: function (el) {
1519
+ _this.segPopoverTile = new src_DayTile(_this.context, el);
1520
+ _this.updateSegPopoverTile(_this.props.cells[row][_col].date, segs);
1521
+ },
1522
+ hide: function () {
1523
+ _this.segPopoverTile.destroy();
1524
+ _this.segPopoverTile = null;
1525
+ _this.segPopover.destroy();
1526
+ _this.segPopover = null;
1527
+ }
1528
+ };
1529
+ // Determine horizontal coordinate.
1530
+ // We use the moreWrap instead of the <td> to avoid border confusion.
1531
+ if (this.isRtl) {
1532
+ options.right = Object(core_["computeRect"])(moreWrap).right + 1; // +1 to be over cell border
1533
+ }
1534
+ else {
1535
+ options.left = Object(core_["computeRect"])(moreWrap).left - 1; // -1 to be over cell border
1536
+ }
1537
+ this.segPopover = new src_Popover(options);
1538
+ this.segPopover.show();
1539
+ calendar.releaseAfterSizingTriggers(); // hack for eventPositioned
1540
+ };
1541
+ // Given the events within an array of segment objects, reslice them to be in a single day
1542
+ DayGrid.prototype.resliceDaySegs = function (segs, dayDate) {
1543
+ var dayStart = dayDate;
1544
+ var dayEnd = Object(core_["addDays"])(dayStart, 1);
1545
+ var dayRange = { start: dayStart, end: dayEnd };
1546
+ var newSegs = [];
1547
+ for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {
1548
+ var seg = segs_1[_i];
1549
+ var eventRange = seg.eventRange;
1550
+ var origRange = eventRange.range;
1551
+ var slicedRange = Object(core_["intersectRanges"])(origRange, dayRange);
1552
+ if (slicedRange) {
1553
+ newSegs.push(__assign(__assign({}, seg), { eventRange: {
1554
+ def: eventRange.def,
1555
+ ui: __assign(__assign({}, eventRange.ui), { durationEditable: false }),
1556
+ instance: eventRange.instance,
1557
+ range: slicedRange
1558
+ }, isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(), isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf() }));
1559
+ }
1560
+ }
1561
+ return newSegs;
1562
+ };
1563
+ // Generates the text that should be inside a "more" link, given the number of events it represents
1564
+ DayGrid.prototype.getMoreLinkText = function (num) {
1565
+ var opt = this.opt('eventLimitText');
1566
+ if (typeof opt === 'function') {
1567
+ return opt(num);
1568
+ }
1569
+ else {
1570
+ return '+' + num + ' ' + opt;
1571
+ }
1572
+ };
1573
+ // Returns segments within a given cell.
1574
+ // If `startLevel` is specified, returns only events including and below that level. Otherwise returns all segs.
1575
+ DayGrid.prototype.getCellSegs = function (row, col, startLevel) {
1576
+ var segMatrix = this.eventRenderer.rowStructs[row].segMatrix;
1577
+ var level = startLevel || 0;
1578
+ var segs = [];
1579
+ var seg;
1580
+ while (level < segMatrix.length) {
1581
+ seg = segMatrix[level][col];
1582
+ if (seg) {
1583
+ segs.push(seg);
1584
+ }
1585
+ level++;
1586
+ }
1587
+ return segs;
1588
+ };
1589
+ return DayGrid;
1590
+ }(core_["DateComponent"]));
1591
+ /* harmony default export */ var src_DayGrid = (DayGrid_DayGrid);
1592
+
1593
+ // CONCATENATED MODULE: ./src/AbstractDayGridView.ts
1594
+
1595
+
1596
+
1597
+
1598
+ var AbstractDayGridView_WEEK_NUM_FORMAT = Object(core_["createFormatter"])({ week: 'numeric' });
1599
+ /* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells.
1600
+ ----------------------------------------------------------------------------------------------------------------------*/
1601
+ // It is a manager for a DayGrid subcomponent, which does most of the heavy lifting.
1602
+ // It is responsible for managing width/height.
1603
+ var AbstractDayGridView_DayGridView = /** @class */ (function (_super) {
1604
+ __extends(DayGridView, _super);
1605
+ function DayGridView(context, viewSpec, dateProfileGenerator, parentEl) {
1606
+ var _this = _super.call(this, context, viewSpec, dateProfileGenerator, parentEl) || this;
1607
+ /* Header Rendering
1608
+ ------------------------------------------------------------------------------------------------------------------*/
1609
+ // Generates the HTML that will go before the day-of week header cells
1610
+ _this.renderHeadIntroHtml = function () {
1611
+ var theme = _this.theme;
1612
+ if (_this.colWeekNumbersVisible) {
1613
+ return '' +
1614
+ '<th class="fc-week-number ' + theme.getClass('widgetHeader') + '" ' + _this.weekNumberStyleAttr() + '>' +
1615
+ '<span>' + // needed for matchCellWidths
1616
+ Object(core_["htmlEscape"])(_this.opt('weekLabel')) +
1617
+ '</span>' +
1618
+ '</th>';
1619
+ }
1620
+ return '';
1621
+ };
1622
+ /* Day Grid Rendering
1623
+ ------------------------------------------------------------------------------------------------------------------*/
1624
+ // Generates the HTML that will go before content-skeleton cells that display the day/week numbers
1625
+ _this.renderDayGridNumberIntroHtml = function (row, dayGrid) {
1626
+ var dateEnv = _this.dateEnv;
1627
+ var weekStart = dayGrid.props.cells[row][0].date;
1628
+ if (_this.colWeekNumbersVisible) {
1629
+ return '' +
1630
+ '<td class="fc-week-number" ' + _this.weekNumberStyleAttr() + '>' +
1631
+ Object(core_["buildGotoAnchorHtml"])(// aside from link, important for matchCellWidths
1632
+ _this, { date: weekStart, type: 'week', forceOff: dayGrid.colCnt === 1 }, dateEnv.format(weekStart, AbstractDayGridView_WEEK_NUM_FORMAT) // inner HTML
1633
+ ) +
1634
+ '</td>';
1635
+ }
1636
+ return '';
1637
+ };
1638
+ // Generates the HTML that goes before the day bg cells for each day-row
1639
+ _this.renderDayGridBgIntroHtml = function () {
1640
+ var theme = _this.theme;
1641
+ if (_this.colWeekNumbersVisible) {
1642
+ return '<td class="fc-week-number ' + theme.getClass('widgetContent') + '" ' + _this.weekNumberStyleAttr() + '></td>';
1643
+ }
1644
+ return '';
1645
+ };
1646
+ // Generates the HTML that goes before every other type of row generated by DayGrid.
1647
+ // Affects mirror-skeleton and highlight-skeleton rows.
1648
+ _this.renderDayGridIntroHtml = function () {
1649
+ if (_this.colWeekNumbersVisible) {
1650
+ return '<td class="fc-week-number" ' + _this.weekNumberStyleAttr() + '></td>';
1651
+ }
1652
+ return '';
1653
+ };
1654
+ _this.el.classList.add('fc-dayGrid-view');
1655
+ _this.el.innerHTML = _this.renderSkeletonHtml();
1656
+ _this.scroller = new core_["ScrollComponent"]('hidden', // overflow x
1657
+ 'auto' // overflow y
1658
+ );
1659
+ var dayGridContainerEl = _this.scroller.el;
1660
+ _this.el.querySelector('.fc-body > tr > td').appendChild(dayGridContainerEl);
1661
+ dayGridContainerEl.classList.add('fc-day-grid-container');
1662
+ dayGridContainerEl.classList.add('fc-year-container');
1663
+ var dayGridEl = Object(core_["createElement"])('div', { className: 'fc-day-grid' });
1664
+ dayGridContainerEl.appendChild(dayGridEl);
1665
+ var cellWeekNumbersVisible;
1666
+ if (_this.opt('weekNumbers')) {
1667
+ if (_this.opt('weekNumbersWithinDays')) {
1668
+ cellWeekNumbersVisible = true;
1669
+ _this.colWeekNumbersVisible = false;
1670
+ }
1671
+ else {
1672
+ cellWeekNumbersVisible = false;
1673
+ _this.colWeekNumbersVisible = true;
1674
+ }
1675
+ }
1676
+ else {
1677
+ _this.colWeekNumbersVisible = false;
1678
+ cellWeekNumbersVisible = false;
1679
+ }
1680
+ _this.dayGrid = new src_DayGrid(_this.context, dayGridEl, {
1681
+ renderNumberIntroHtml: _this.renderDayGridNumberIntroHtml,
1682
+ renderBgIntroHtml: _this.renderDayGridBgIntroHtml,
1683
+ renderIntroHtml: _this.renderDayGridIntroHtml,
1684
+ colWeekNumbersVisible: _this.colWeekNumbersVisible,
1685
+ cellWeekNumbersVisible: cellWeekNumbersVisible
1686
+ });
1687
+ return _this;
1688
+ }
1689
+ DayGridView.prototype.destroy = function () {
1690
+ _super.prototype.destroy.call(this);
1691
+ this.dayGrid.destroy();
1692
+ this.scroller.destroy();
1693
+ };
1694
+ // Builds the HTML skeleton for the view.
1695
+ // The day-grid component will render inside of a container defined by this HTML.
1696
+ DayGridView.prototype.renderSkeletonHtml = function () {
1697
+ var theme = this.theme;
1698
+ return '' +
1699
+ '<table class="' + theme.getClass('tableGrid') + '">' +
1700
+ (this.opt('columnHeader') ?
1701
+ '<thead class="fc-head">' +
1702
+ '<tr>' +
1703
+ '<td class="fc-head-container ' + theme.getClass('widgetHeader') + '">&nbsp;</td>' +
1704
+ '</tr>' +
1705
+ '</thead>' :
1706
+ '') +
1707
+ '<tbody class="fc-body">' +
1708
+ '<tr>' +
1709
+ '<td class="' + theme.getClass('widgetContent') + '"></td>' +
1710
+ '</tr>' +
1711
+ '</tbody>' +
1712
+ '</table>';
1713
+ };
1714
+ // Generates an HTML attribute string for setting the width of the week number column, if it is known
1715
+ DayGridView.prototype.weekNumberStyleAttr = function () {
1716
+ if (this.weekNumberWidth != null) {
1717
+ return 'style="width:' + this.weekNumberWidth + 'px"';
1718
+ }
1719
+ return '';
1720
+ };
1721
+ // Determines whether each row should have a constant height
1722
+ DayGridView.prototype.hasRigidRows = function () {
1723
+ var eventLimit = this.opt('eventLimit');
1724
+ return eventLimit && typeof eventLimit !== 'number';
1725
+ };
1726
+ /* Dimensions
1727
+ ------------------------------------------------------------------------------------------------------------------*/
1728
+ DayGridView.prototype.updateSize = function (isResize, viewHeight, isAuto) {
1729
+ _super.prototype.updateSize.call(this, isResize, viewHeight, isAuto); // will call updateBaseSize. important that executes first
1730
+ this.dayGrid.updateSize(isResize);
1731
+ };
1732
+ // Refreshes the horizontal dimensions of the view
1733
+ DayGridView.prototype.updateBaseSize = function (isResize, viewHeight, isAuto) {
1734
+ var dayGrid = this.dayGrid;
1735
+ var eventLimit = this.opt('eventLimit');
1736
+ var headRowEl = this.header ? this.header.el : null; // HACK
1737
+ var scrollerHeight;
1738
+ var scrollbarWidths;
1739
+ // hack to give the view some height prior to dayGrid's columns being rendered
1740
+ // TODO: separate setting height from scroller VS dayGrid.
1741
+
1742
+ if (!dayGrid.rowEls) {
1743
+ if (!isAuto) {
1744
+ scrollerHeight = this.computeScrollerHeight(viewHeight);
1745
+ this.scroller.setHeight(scrollerHeight);
1746
+ }
1747
+ return;
1748
+ }
1749
+ if (this.colWeekNumbersVisible) {
1750
+ // Make sure all week number cells running down the side have the same width.
1751
+ this.weekNumberWidth = Object(core_["matchCellWidths"])(Object(core_["findElements"])(this.el, '.fc-week-number'));
1752
+ }
1753
+ // reset all heights to be natural
1754
+ this.scroller.clear();
1755
+ if (headRowEl) {
1756
+ Object(core_["uncompensateScroll"])(headRowEl);
1757
+ }
1758
+ dayGrid.removeSegPopover(); // kill the "more" popover if displayed
1759
+ // is the event limit a constant level number?
1760
+ if (eventLimit && typeof eventLimit === 'number') {
1761
+ dayGrid.limitRows(eventLimit); // limit the levels first so the height can redistribute after
1762
+ }
1763
+ // distribute the height to the rows
1764
+ // (viewHeight is a "recommended" value if isAuto)
1765
+ scrollerHeight = this.computeScrollerHeight(viewHeight) + 260;
1766
+ this.setGridHeight(scrollerHeight, isAuto);
1767
+ // is the event limit dynamically calculated?
1768
+ if (eventLimit && typeof eventLimit !== 'number') {
1769
+ dayGrid.limitRows(eventLimit); // limit the levels after the grid's row heights have been set
1770
+ }
1771
+ if (!isAuto) { // should we force dimensions of the scroll container?
1772
+ this.scroller.setHeight(scrollerHeight);
1773
+ scrollbarWidths = this.scroller.getScrollbarWidths();
1774
+ if (scrollbarWidths.left || scrollbarWidths.right) { // using scrollbars?
1775
+ if (headRowEl) {
1776
+ Object(core_["compensateScroll"])(headRowEl, scrollbarWidths);
1777
+ }
1778
+ // doing the scrollbar compensation might have created text overflow which created more height. redo
1779
+ scrollerHeight = this.computeScrollerHeight(viewHeight);
1780
+ this.scroller.setHeight(scrollerHeight);
1781
+ }
1782
+ // guarantees the same scrollbar widths
1783
+ this.scroller.lockOverflow(scrollbarWidths);
1784
+ }
1785
+ };
1786
+ // given a desired total height of the view, returns what the height of the scroller should be
1787
+ DayGridView.prototype.computeScrollerHeight = function (viewHeight) {
1788
+ return viewHeight -
1789
+ Object(core_["subtractInnerElHeight"])(this.el, this.scroller.el); // everything that's NOT the scroller
1790
+ };
1791
+ // Sets the height of just the DayGrid component in this view
1792
+ DayGridView.prototype.setGridHeight = function (height, isAuto) {
1793
+ if (this.opt('monthMode')) {
1794
+ // if auto, make the height of each row the height that it would be if there were 6 weeks
1795
+ if (isAuto) {
1796
+ height *= this.dayGrid.rowCnt / 6;
1797
+ }
1798
+
1799
+ Object(core_["distributeHeight"])(this.dayGrid.rowEls, height, !isAuto); // if auto, don't compensate for height-hogging rows
1800
+ }
1801
+ else {
1802
+ if (isAuto) {
1803
+ Object(core_["undistributeHeight"])(this.dayGrid.rowEls); // let the rows be their natural height with no expanding
1804
+ }
1805
+ else {
1806
+ Object(core_["distributeHeight"])(this.dayGrid.rowEls, height, true); // true = compensate for height-hogging rows
1807
+ }
1808
+ }
1809
+ };
1810
+ /* Scroll
1811
+ ------------------------------------------------------------------------------------------------------------------*/
1812
+ DayGridView.prototype.computeDateScroll = function (duration) {
1813
+ return { top: 0 };
1814
+ };
1815
+ DayGridView.prototype.queryDateScroll = function () {
1816
+ return { top: this.scroller.getScrollTop() };
1817
+ };
1818
+ DayGridView.prototype.applyDateScroll = function (scroll) {
1819
+ if (scroll.top !== undefined) {
1820
+ this.scroller.setScrollTop(scroll.top);
1821
+ }
1822
+ };
1823
+ return DayGridView;
1824
+ }(core_["View"]));
1825
+ /* harmony default export */ var AbstractDayGridView = (AbstractDayGridView_DayGridView);
1826
+ AbstractDayGridView_DayGridView.prototype.dateProfileGeneratorClass = src_DayGridDateProfileGenerator;
1827
+
1828
+ // CONCATENATED MODULE: ./src/SimpleDayGrid.ts
1829
+
1830
+
1831
+ var SimpleDayGrid_SimpleDayGrid = /** @class */ (function (_super) {
1832
+ __extends(SimpleDayGrid, _super);
1833
+ function SimpleDayGrid(context, dayGrid) {
1834
+ var _this = _super.call(this, context, dayGrid.el) || this;
1835
+ _this.slicer = new SimpleDayGrid_DayGridSlicer();
1836
+ _this.dayGrid = dayGrid;
1837
+ context.calendar.registerInteractiveComponent(_this, { el: _this.dayGrid.el });
1838
+ return _this;
1839
+ }
1840
+ SimpleDayGrid.prototype.destroy = function () {
1841
+ _super.prototype.destroy.call(this);
1842
+ this.calendar.unregisterInteractiveComponent(this);
1843
+ };
1844
+ SimpleDayGrid.prototype.render = function (props) {
1845
+ var dayGrid = this.dayGrid;
1846
+ var dateProfile = props.dateProfile, dayTable = props.dayTable;
1847
+ dayGrid.receiveProps(__assign(__assign({}, this.slicer.sliceProps(props, dateProfile, props.nextDayThreshold, dayGrid, dayTable)), { dateProfile: dateProfile, cells: dayTable.cells, isRigid: props.isRigid }));
1848
+ };
1849
+ SimpleDayGrid.prototype.buildPositionCaches = function () {
1850
+ this.dayGrid.buildPositionCaches();
1851
+ };
1852
+ SimpleDayGrid.prototype.queryHit = function (positionLeft, positionTop) {
1853
+ var rawHit = this.dayGrid.positionToHit(positionLeft, positionTop);
1854
+ if (rawHit) {
1855
+ return {
1856
+ component: this.dayGrid,
1857
+ dateSpan: rawHit.dateSpan,
1858
+ dayEl: rawHit.dayEl,
1859
+ rect: {
1860
+ left: rawHit.relativeRect.left,
1861
+ right: rawHit.relativeRect.right,
1862
+ top: rawHit.relativeRect.top,
1863
+ bottom: rawHit.relativeRect.bottom
1864
+ },
1865
+ layer: 0
1866
+ };
1867
+ }
1868
+ };
1869
+ return SimpleDayGrid;
1870
+ }(core_["DateComponent"]));
1871
+ /* harmony default export */ var src_SimpleDayGrid = (SimpleDayGrid_SimpleDayGrid);
1872
+ var SimpleDayGrid_DayGridSlicer = /** @class */ (function (_super) {
1873
+ __extends(DayGridSlicer, _super);
1874
+ function DayGridSlicer() {
1875
+ return _super !== null && _super.apply(this, arguments) || this;
1876
+ }
1877
+ DayGridSlicer.prototype.sliceRange = function (dateRange, dayTable) {
1878
+ return dayTable.sliceRange(dateRange);
1879
+ };
1880
+ return DayGridSlicer;
1881
+ }(core_["Slicer"]));
1882
+
1883
+
1884
+ // CONCATENATED MODULE: ./src/DayTable.ts
1885
+
1886
+ var DayTable_DayTable = /** @class */ (function () {
1887
+ function DayTable(daySeries, breakOnWeeks) {
1888
+ this.daySeries = daySeries;
1889
+ this.cells = this.buildCells();
1890
+ this.headerDates = this.buildHeaderDates();
1891
+ this.rowCnt = 12;
1892
+ }
1893
+ DayTable.prototype.buildCells = function () {
1894
+ var rows = [];
1895
+ var cells = [];
1896
+ for (var i = 0; i < this.daySeries.dates.length; i++) {
1897
+ cells.push({date: this.daySeries.dates[i] });
1898
+
1899
+ if (this.daySeries.dates.length === (i + 1) || this.daySeries.dates[i + 1].getDate() === 1) {
1900
+
1901
+ for (var padding = this.daySeries.dates[i].getDate(); padding < 31; padding++) {
1902
+ cells.push({
1903
+ date: null
1904
+ });
1905
+ }
1906
+ rows.push(cells);
1907
+ cells = [];
1908
+ }
1909
+ }
1910
+ return rows;
1911
+ };
1912
+ DayTable.prototype.buildHeaderDates = function () {
1913
+ return [];
1914
+ };
1915
+ DayTable.prototype.sliceRange = function (range) {
1916
+ var segs = [];
1917
+ var firstMonthStart = external_moment_default()(range.start).startOf('month');
1918
+ var currentMonthStart = external_moment_default()(range.start).startOf('month');
1919
+ var currentMonthEnd = external_moment_default()(range.start).endOf('month');
1920
+ var lastMonthStart = external_moment_default()(range.end).startOf('month');
1921
+ if (lastMonthStart.year() > currentMonthStart.year()) {
1922
+ lastMonthStart = currentMonthStart.clone().month(11).startOf('month');
1923
+ }
1924
+ while (currentMonthStart.isSameOrBefore(lastMonthStart)) {
1925
+ segs.push({
1926
+ row: currentMonthStart.month(),
1927
+ firstCol: (currentMonthStart.isAfter(range.start)) ? 0 : range.start.getDate() - 1,
1928
+ lastCol: (currentMonthEnd.isBefore(range.end)) ? currentMonthEnd.date() - 1 : range.end.getDate() - 1,
1929
+ isStart: currentMonthStart.isSame(firstMonthStart),
1930
+ isEnd: currentMonthStart.isSame(lastMonthStart)
1931
+ });
1932
+ currentMonthStart.add(1, 'months');
1933
+ currentMonthEnd = currentMonthStart.clone().endOf('month');
1934
+ }
1935
+ return segs;
1936
+ };
1937
+ return DayTable;
1938
+ }());
1939
+ /* harmony default export */ var src_DayTable = (DayTable_DayTable);
1940
+
1941
+ // CONCATENATED MODULE: ./src/DayGridView.ts
1942
+
1943
+
1944
+
1945
+
1946
+
1947
+ var DayGridView_DayGridView = /** @class */ (function (_super) {
1948
+ __extends(DayGridView, _super);
1949
+ function DayGridView(_context, viewSpec, dateProfileGenerator, parentEl) {
1950
+ var _this = _super.call(this, _context, viewSpec, dateProfileGenerator, parentEl) || this;
1951
+ _this.buildDayTable = Object(core_["memoize"])(buildDayTable);
1952
+ if (_this.opt('columnHeader')) {
1953
+ _this.header = new core_["DayHeader"](_this.context, _this.el.querySelector('.fc-head-container'));
1954
+ }
1955
+ _this.simpleDayGrid = new src_SimpleDayGrid(_this.context, _this.dayGrid);
1956
+ return _this;
1957
+ }
1958
+ DayGridView.prototype.destroy = function () {
1959
+ _super.prototype.destroy.call(this);
1960
+ if (this.header) {
1961
+ this.header.destroy();
1962
+ }
1963
+ this.simpleDayGrid.destroy();
1964
+ };
1965
+ DayGridView.prototype.render = function (props) {
1966
+ _super.prototype.render.call(this, props);
1967
+ var dateProfile = this.props.dateProfile;
1968
+ var dayTable = this.dayTable =
1969
+ this.buildDayTable(dateProfile, this.dateProfileGenerator);
1970
+ if (this.header) {
1971
+ this.header.receiveProps({
1972
+ dateProfile: dateProfile,
1973
+ dates: dayTable.headerDates,
1974
+ datesRepDistinctDays: dayTable.rowCnt === 1,
1975
+ renderIntroHtml: this.renderHeadIntroHtml
1976
+ });
1977
+ }
1978
+ this.simpleDayGrid.receiveProps({
1979
+ dateProfile: dateProfile,
1980
+ dayTable: dayTable,
1981
+ businessHours: props.businessHours,
1982
+ dateSelection: props.dateSelection,
1983
+ eventStore: props.eventStore,
1984
+ eventUiBases: props.eventUiBases,
1985
+ eventSelection: props.eventSelection,
1986
+ eventDrag: props.eventDrag,
1987
+ eventResize: props.eventResize,
1988
+ isRigid: this.hasRigidRows(),
1989
+ nextDayThreshold: this.nextDayThreshold
1990
+ });
1991
+ };
1992
+ return DayGridView;
1993
+ }(AbstractDayGridView));
1994
+ /* harmony default export */ var src_DayGridView = (DayGridView_DayGridView);
1995
+ function buildDayTable(dateProfile, dateProfileGenerator) {
1996
+ var daySeries = new core_["DaySeries"](dateProfile.renderRange, dateProfileGenerator);
1997
+ return new src_DayTable(daySeries, /year|month|week/.test(dateProfile.currentRangeUnit));
1998
+ }
1999
+
2000
+ // CONCATENATED MODULE: ./src/main.ts
2001
+
2002
+
2003
+
2004
+ /* harmony default export */ var src_main = __webpack_exports__["default"] = (Object(core_["createPlugin"])({
2005
+ defaultView: 'year',
2006
+ views: {
2007
+ yearGrid: src_DayGridView,
2008
+ year: {
2009
+ type: 'yearGrid',
2010
+ duration: { years: 1 }
2011
+ }
2012
+ }
2013
+ }));
2014
+
2015
+
2016
+ /***/ })
2017
+ /******/ ]);
2018
+ });