@sme.up/ketchup 10.3.1 → 10.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/dist/cjs/{component-cb3b32f5.js → component-a6dd6c14.js} +1 -1
  2. package/dist/cjs/{f-cell-be0c55ac.js → f-cell-7a2faf7a.js} +8 -6
  3. package/dist/cjs/{f-chip-dc085b9b.js → f-chip-f2d6124b.js} +1 -1
  4. package/dist/cjs/{f-object-field-96e1c599.js → f-object-field-3810f288.js} +2 -2
  5. package/dist/cjs/{f-paginator-utils-3f233ebe.js → f-paginator-utils-3855e84c.js} +1 -1
  6. package/dist/cjs/{f-text-field-d91ab1e8.js → f-text-field-a34a5979.js} +2 -2
  7. package/dist/cjs/{f-text-field-mdc-2a3c8c01.js → f-text-field-mdc-29aae9c9.js} +1 -1
  8. package/dist/cjs/index.cjs.js +1 -1
  9. package/dist/cjs/ketchup.cjs.js +1 -1
  10. package/dist/cjs/kup-accordion.cjs.entry.js +247 -44
  11. package/dist/cjs/kup-activity-timeline.cjs.entry.js +2 -2
  12. package/dist/cjs/kup-autocomplete_29.cjs.entry.js +927 -894
  13. package/dist/cjs/kup-box.cjs.entry.js +9 -9
  14. package/dist/cjs/kup-calendar.cjs.entry.js +925 -87
  15. package/dist/cjs/kup-card-list.cjs.entry.js +1 -1
  16. package/dist/cjs/kup-cell.cjs.entry.js +5 -5
  17. package/dist/cjs/kup-dashboard.cjs.entry.js +4 -4
  18. package/dist/cjs/{kup-data-table-helper-ff263f4f.js → kup-data-table-helper-f53032e7.js} +1 -1
  19. package/dist/cjs/kup-drawer.cjs.entry.js +1 -1
  20. package/dist/cjs/kup-echart.cjs.entry.js +5 -4
  21. package/dist/cjs/kup-editor.cjs.entry.js +3 -3
  22. package/dist/cjs/kup-family-tree.cjs.entry.js +1 -1
  23. package/dist/cjs/kup-grid.cjs.entry.js +1 -1
  24. package/dist/cjs/kup-htm.cjs.entry.js +1 -1
  25. package/dist/cjs/kup-iframe.cjs.entry.js +1 -1
  26. package/dist/cjs/kup-image-list.cjs.entry.js +6 -6
  27. package/dist/cjs/kup-input-panel.cjs.entry.js +58 -31
  28. package/dist/cjs/kup-lazy.cjs.entry.js +1 -1
  29. package/dist/cjs/kup-magic-box.cjs.entry.js +1 -1
  30. package/dist/cjs/{kup-manager-ecc44384.js → kup-manager-c70d3188.js} +122 -24
  31. package/dist/cjs/kup-nav-bar.cjs.entry.js +1 -1
  32. package/dist/cjs/kup-numeric-picker.cjs.entry.js +4 -4
  33. package/dist/cjs/kup-object-field.cjs.entry.js +3 -3
  34. package/dist/cjs/kup-pdf.cjs.entry.js +1 -1
  35. package/dist/cjs/kup-planner.cjs.entry.js +4 -4
  36. package/dist/cjs/kup-probe.cjs.entry.js +1 -1
  37. package/dist/cjs/kup-qlik.cjs.entry.js +1 -1
  38. package/dist/cjs/kup-snackbar.cjs.entry.js +1 -1
  39. package/dist/cjs/kup-txt.cjs.entry.js +1 -1
  40. package/dist/cjs/kup-typography-list.cjs.entry.js +1 -1
  41. package/dist/cjs/kup-typography.cjs.entry.js +1 -1
  42. package/dist/cjs/loader.cjs.js +1 -1
  43. package/dist/collection/assets/accordion.js +73 -18
  44. package/dist/collection/assets/dashboard.js +3 -9
  45. package/dist/collection/components/kup-accordion/kup-accordion-declarations.js +6 -1
  46. package/dist/collection/components/kup-accordion/kup-accordion.css +10 -2
  47. package/dist/collection/components/kup-accordion/kup-accordion.js +432 -54
  48. package/dist/collection/components/kup-autocomplete/kup-autocomplete-declarations.js +2 -0
  49. package/dist/collection/components/kup-autocomplete/kup-autocomplete.js +44 -28
  50. package/dist/collection/components/kup-calendar/kup-calendar.css +13 -0
  51. package/dist/collection/components/kup-card/built-in/kup-card-column-drop-menu.js +3 -3
  52. package/dist/collection/components/kup-card/kup-card-helper.js +3 -2
  53. package/dist/collection/components/kup-card/kup-card.css +16 -0
  54. package/dist/collection/components/kup-card/standard/kup-card-standard.js +10 -3
  55. package/dist/collection/components/kup-chip/kup-chip.js +5 -5
  56. package/dist/collection/components/kup-combobox/kup-combobox-declarations.js +1 -0
  57. package/dist/collection/components/kup-combobox/kup-combobox.js +37 -2
  58. package/dist/collection/components/kup-data-table/kup-data-table.js +45 -46
  59. package/dist/collection/components/kup-date-picker/kup-date-picker.js +1 -1
  60. package/dist/collection/components/kup-echart/kup-echart.js +4 -3
  61. package/dist/collection/components/kup-input-panel/kup-input-panel-declarations.js +1 -0
  62. package/dist/collection/components/kup-input-panel/kup-input-panel-utils.js +20 -14
  63. package/dist/collection/components/kup-input-panel/kup-input-panel.js +53 -13
  64. package/dist/collection/components/kup-tab-bar/kup-tab-bar-declarations.js +4 -0
  65. package/dist/collection/components/kup-tab-bar/kup-tab-bar.js +26 -43
  66. package/dist/collection/components/kup-toolbar/kup-toolbar.css +17 -6
  67. package/dist/collection/components/kup-tree/kup-tree.js +7 -10
  68. package/dist/collection/f-components/f-cell/f-cell.js +2 -1
  69. package/dist/collection/f-components/f-radio/f-radio.js +1 -1
  70. package/dist/collection/f-components/f-text-field/f-text-field.js +1 -1
  71. package/dist/collection/managers/kup-data/kup-data.js +2 -0
  72. package/dist/collection/managers/kup-dynamic-position/kup-dynamic-position.js +45 -1
  73. package/dist/collection/managers/kup-language/kup-language-declarations.js +2 -0
  74. package/dist/collection/managers/kup-manager/kup-manager.js +3 -2
  75. package/dist/collection/managers/kup-perf-tuning/kup-perf-tuning-declarations.js +1 -0
  76. package/dist/collection/managers/kup-perf-tuning/kup-perf-tuning.js +25 -0
  77. package/dist/collection/utils/cell-utils.js +21 -0
  78. package/dist/components/index.js +1 -1
  79. package/dist/components/kup-accordion.js +253 -45
  80. package/dist/components/kup-activity-timeline.js +2 -2
  81. package/dist/components/kup-autocomplete.js +1 -1
  82. package/dist/components/kup-badge.js +1 -1
  83. package/dist/components/kup-box.js +1 -1
  84. package/dist/components/kup-button-list.js +1 -1
  85. package/dist/components/kup-button.js +1 -1
  86. package/dist/components/kup-calendar.js +925 -87
  87. package/dist/components/kup-card-list.js +3 -3
  88. package/dist/components/kup-card.js +1 -1
  89. package/dist/components/kup-cell.js +2 -2
  90. package/dist/components/kup-chart.js +1 -1
  91. package/dist/components/kup-checkbox.js +1 -1
  92. package/dist/components/kup-chip.js +1 -1
  93. package/dist/components/kup-color-picker.js +1 -1
  94. package/dist/components/kup-combobox.js +1 -1
  95. package/dist/components/kup-dashboard.js +2 -2
  96. package/dist/components/kup-data-table.js +1 -1
  97. package/dist/components/kup-date-picker.js +1 -1
  98. package/dist/components/kup-dialog.js +1 -1
  99. package/dist/components/kup-drawer.js +2 -2
  100. package/dist/components/kup-dropdown-button.js +1 -1
  101. package/dist/components/kup-echart.js +1 -1
  102. package/dist/components/kup-editor.js +1 -1
  103. package/dist/components/kup-family-tree.js +3 -3
  104. package/dist/components/kup-file-upload.js +1 -1
  105. package/dist/components/kup-form.js +1 -1
  106. package/dist/components/kup-gauge.js +1 -1
  107. package/dist/components/kup-grid.js +1 -1
  108. package/dist/components/kup-htm.js +2 -2
  109. package/dist/components/kup-iframe.js +2 -2
  110. package/dist/components/kup-image-list.js +2 -2
  111. package/dist/components/kup-image.js +1 -1
  112. package/dist/components/kup-input-panel.js +55 -27
  113. package/dist/components/kup-lazy.js +2 -2
  114. package/dist/components/kup-list.js +1 -1
  115. package/dist/components/kup-magic-box.js +4 -4
  116. package/dist/components/kup-nav-bar.js +2 -2
  117. package/dist/components/kup-numeric-picker.js +2 -2
  118. package/dist/components/kup-object-field.js +2 -2
  119. package/dist/components/kup-pdf.js +2 -2
  120. package/dist/components/kup-planner.js +2 -2
  121. package/dist/components/kup-probe.js +2 -2
  122. package/dist/components/kup-progress-bar.js +1 -1
  123. package/dist/components/kup-qlik.js +2 -2
  124. package/dist/components/kup-radio.js +1 -1
  125. package/dist/components/kup-rating.js +1 -1
  126. package/dist/components/kup-snackbar.js +2 -2
  127. package/dist/components/kup-spinner.js +1 -1
  128. package/dist/components/kup-switch.js +1 -1
  129. package/dist/components/kup-tab-bar.js +1 -1
  130. package/dist/components/kup-text-field.js +1 -1
  131. package/dist/components/kup-time-picker.js +1 -1
  132. package/dist/components/kup-toolbar.js +1 -1
  133. package/dist/components/kup-tree.js +1 -1
  134. package/dist/components/kup-txt.js +2 -2
  135. package/dist/components/kup-typography-list.js +2 -2
  136. package/dist/components/kup-typography.js +2 -2
  137. package/dist/components/{p-680ee680.js → p-286915d4.js} +2 -2
  138. package/dist/components/{p-685106b4.js → p-3ba7c133.js} +2 -2
  139. package/dist/components/{p-e0031e17.js → p-55fda958.js} +2025 -1983
  140. package/dist/components/{p-8037ef07.js → p-7bdb5142.js} +4 -4
  141. package/dist/components/{p-73922583.js → p-9859e801.js} +122 -25
  142. package/dist/components/{p-39e807bc.js → p-a22e5ee4.js} +6 -5
  143. package/dist/esm/{component-879e99bf.js → component-a35bc7f1.js} +1 -1
  144. package/dist/esm/{f-cell-eea4e836.js → f-cell-ae0c965d.js} +8 -6
  145. package/dist/esm/{f-chip-72bcea75.js → f-chip-29242e70.js} +1 -1
  146. package/dist/esm/{f-object-field-1827746c.js → f-object-field-75069ac2.js} +2 -2
  147. package/dist/esm/{f-paginator-utils-e785d34e.js → f-paginator-utils-212f93c3.js} +1 -1
  148. package/dist/esm/{f-text-field-591dc383.js → f-text-field-ebe023fb.js} +2 -2
  149. package/dist/esm/{f-text-field-mdc-9a862967.js → f-text-field-mdc-81ce6c7c.js} +1 -1
  150. package/dist/esm/index.js +1 -1
  151. package/dist/esm/ketchup.js +1 -1
  152. package/dist/esm/kup-accordion.entry.js +247 -44
  153. package/dist/esm/kup-activity-timeline.entry.js +2 -2
  154. package/dist/esm/kup-autocomplete_29.entry.js +164 -131
  155. package/dist/esm/kup-box.entry.js +9 -9
  156. package/dist/esm/kup-calendar.entry.js +925 -87
  157. package/dist/esm/kup-card-list.entry.js +1 -1
  158. package/dist/esm/kup-cell.entry.js +5 -5
  159. package/dist/esm/kup-dashboard.entry.js +4 -4
  160. package/dist/esm/{kup-data-table-helper-0fbe9df1.js → kup-data-table-helper-ca11e6e9.js} +1 -1
  161. package/dist/esm/kup-drawer.entry.js +1 -1
  162. package/dist/esm/kup-echart.entry.js +5 -4
  163. package/dist/esm/kup-editor.entry.js +3 -3
  164. package/dist/esm/kup-family-tree.entry.js +1 -1
  165. package/dist/esm/kup-grid.entry.js +1 -1
  166. package/dist/esm/kup-htm.entry.js +1 -1
  167. package/dist/esm/kup-iframe.entry.js +1 -1
  168. package/dist/esm/kup-image-list.entry.js +6 -6
  169. package/dist/esm/kup-input-panel.entry.js +58 -31
  170. package/dist/esm/kup-lazy.entry.js +1 -1
  171. package/dist/esm/kup-magic-box.entry.js +1 -1
  172. package/dist/esm/{kup-manager-a3f8ee8f.js → kup-manager-63a8048f.js} +122 -25
  173. package/dist/esm/kup-nav-bar.entry.js +1 -1
  174. package/dist/esm/kup-numeric-picker.entry.js +4 -4
  175. package/dist/esm/kup-object-field.entry.js +3 -3
  176. package/dist/esm/kup-pdf.entry.js +1 -1
  177. package/dist/esm/kup-planner.entry.js +4 -4
  178. package/dist/esm/kup-probe.entry.js +1 -1
  179. package/dist/esm/kup-qlik.entry.js +1 -1
  180. package/dist/esm/kup-snackbar.entry.js +1 -1
  181. package/dist/esm/kup-txt.entry.js +1 -1
  182. package/dist/esm/kup-typography-list.entry.js +1 -1
  183. package/dist/esm/kup-typography.entry.js +1 -1
  184. package/dist/esm/loader.js +1 -1
  185. package/dist/ketchup/index.esm.js +1 -1
  186. package/dist/ketchup/ketchup.esm.js +1 -1
  187. package/dist/ketchup/p-102d35b1.js +1 -0
  188. package/dist/ketchup/p-11e54526.entry.js +1 -0
  189. package/dist/ketchup/{p-5e55604b.entry.js → p-260587c5.entry.js} +1 -1
  190. package/dist/ketchup/p-3533879b.entry.js +1 -0
  191. package/dist/ketchup/{p-8cf7b4a6.entry.js → p-434f2c39.entry.js} +1 -1
  192. package/dist/ketchup/{p-cd5db3b1.entry.js → p-4365fbd3.entry.js} +1 -1
  193. package/dist/ketchup/p-43f12940.entry.js +1 -0
  194. package/dist/ketchup/{p-442a16b1.entry.js → p-4a64f9f2.entry.js} +1 -1
  195. package/dist/ketchup/{p-64e064f0.js → p-4cfa35bc.js} +1 -1
  196. package/dist/ketchup/{p-d2e3f987.entry.js → p-5bf3d60d.entry.js} +2 -2
  197. package/dist/ketchup/p-5d28e8e0.entry.js +8 -0
  198. package/dist/ketchup/{p-932940cb.js → p-610faea9.js} +1 -1
  199. package/dist/ketchup/{p-2faa7118.entry.js → p-6c41cd20.entry.js} +1 -1
  200. package/dist/ketchup/{p-dcf2c5c0.entry.js → p-6f1dec16.entry.js} +1 -1
  201. package/dist/ketchup/{p-f1886258.js → p-7375d456.js} +1 -1
  202. package/dist/ketchup/{p-2f0664cb.entry.js → p-7b326bde.entry.js} +1 -1
  203. package/dist/ketchup/{p-c4054aba.js → p-7db300e0.js} +1 -1
  204. package/dist/ketchup/{p-36ec5bc3.entry.js → p-7dfc42f0.entry.js} +1 -1
  205. package/dist/ketchup/p-81743364.entry.js +1 -0
  206. package/dist/ketchup/p-8610d5b5.js +21 -0
  207. package/dist/ketchup/{p-beef4fe9.entry.js → p-8ba1d444.entry.js} +1 -1
  208. package/dist/ketchup/{p-a4168ce9.entry.js → p-93541362.entry.js} +1 -1
  209. package/dist/ketchup/{p-ee0836a4.entry.js → p-9b200a90.entry.js} +1 -1
  210. package/dist/ketchup/{p-43dc9f87.entry.js → p-9baa1d6d.entry.js} +1 -1
  211. package/dist/ketchup/{p-57a93686.entry.js → p-a2d40711.entry.js} +1 -1
  212. package/dist/ketchup/{p-0f9ae966.entry.js → p-b068a383.entry.js} +1 -1
  213. package/dist/ketchup/{p-2c11b778.entry.js → p-b6beace3.entry.js} +1 -1
  214. package/dist/ketchup/{p-5340f777.entry.js → p-b91e3bae.entry.js} +1 -1
  215. package/dist/ketchup/{p-4c5b911e.entry.js → p-bc789017.entry.js} +1 -1
  216. package/dist/ketchup/{p-79e580bc.entry.js → p-c8cd012e.entry.js} +1 -1
  217. package/dist/ketchup/{p-d9ae70bb.entry.js → p-d84e4e90.entry.js} +1 -1
  218. package/dist/ketchup/{p-d1fa33e0.js → p-da694791.js} +1 -1
  219. package/dist/ketchup/{p-8140c1d2.js → p-e705eb4a.js} +1 -1
  220. package/dist/ketchup/{p-21a2d25a.entry.js → p-e7293ae8.entry.js} +1 -1
  221. package/dist/ketchup/{p-283f7bfc.entry.js → p-eb090acd.entry.js} +1 -1
  222. package/dist/ketchup/{p-d03527d8.entry.js → p-fb7c0958.entry.js} +1 -1
  223. package/dist/ketchup/p-fb82cad9.entry.js +1 -0
  224. package/dist/ketchup/{p-6fe57b1a.entry.js → p-fe42ae2d.entry.js} +1 -1
  225. package/dist/types/components/kup-accordion/kup-accordion-declarations.d.ts +14 -7
  226. package/dist/types/components/kup-accordion/kup-accordion.d.ts +62 -6
  227. package/dist/types/components/kup-autocomplete/kup-autocomplete-declarations.d.ts +3 -1
  228. package/dist/types/components/kup-autocomplete/kup-autocomplete.d.ts +7 -2
  229. package/dist/types/components/kup-card/kup-card-declarations.d.ts +1 -1
  230. package/dist/types/components/kup-card/kup-card-helper.d.ts +2 -1
  231. package/dist/types/components/kup-combobox/kup-combobox-declarations.d.ts +2 -1
  232. package/dist/types/components/kup-combobox/kup-combobox.d.ts +5 -0
  233. package/dist/types/components/kup-input-panel/kup-input-panel-declarations.d.ts +2 -1
  234. package/dist/types/components/kup-input-panel/kup-input-panel-utils.d.ts +1 -1
  235. package/dist/types/components/kup-input-panel/kup-input-panel.d.ts +6 -0
  236. package/dist/types/components/kup-tab-bar/kup-tab-bar-declarations.d.ts +6 -1
  237. package/dist/types/components/kup-tab-bar/kup-tab-bar.d.ts +1 -5
  238. package/dist/types/components.d.ts +86 -21
  239. package/dist/types/f-components/f-radio/f-radio-declarations.d.ts +1 -0
  240. package/dist/types/managers/kup-dynamic-position/kup-dynamic-position.d.ts +1 -0
  241. package/dist/types/managers/kup-language/kup-language-declarations.d.ts +3 -1
  242. package/dist/types/managers/kup-perf-tuning/kup-perf-tuning-declarations.d.ts +3 -1
  243. package/dist/types/managers/kup-perf-tuning/kup-perf-tuning.d.ts +1 -0
  244. package/dist/types/utils/cell-utils.d.ts +2 -0
  245. package/package.json +2 -2
  246. package/dist/ketchup/p-0eea54ac.js +0 -1
  247. package/dist/ketchup/p-1a9fb6e7.entry.js +0 -1
  248. package/dist/ketchup/p-32a6feed.entry.js +0 -9
  249. package/dist/ketchup/p-4c16edda.entry.js +0 -1
  250. package/dist/ketchup/p-e1281898.entry.js +0 -1
  251. package/dist/ketchup/p-ec86f88f.entry.js +0 -1
  252. package/dist/ketchup/p-fb4f10d5.js +0 -21
  253. package/dist/ketchup/p-fc750bff.entry.js +0 -1
  254. /package/dist/ketchup/{p-d4a879fc.js → p-c56195a0.js} +0 -0
@@ -1,8 +1,8 @@
1
1
  import { r as registerInstance, c as createEvent, f as forceUpdate, h as h$1, H as Host, d as getElement } from './index-9b0f4a0d.js';
2
- import { k as kupManagerInstance, g as getProps, s as setProps, h as KupLanguageGeneric, w as getColumnByName, e as KupDebugCategory } from './kup-manager-a3f8ee8f.js';
2
+ import { k as kupManagerInstance, g as getProps, s as setProps, b as KupLanguageGeneric, x as getColumnByName, h as KupDebugCategory } from './kup-manager-63a8048f.js';
3
3
  import { c as componentWrapperId } from './GenericVariables-d8d0541e.js';
4
4
  import { F as FButton } from './f-button-3c8f4506.js';
5
- import { d as FChip, F as FChipType } from './f-chip-72bcea75.js';
5
+ import { d as FChip, F as FChipType } from './f-chip-29242e70.js';
6
6
  import { b as KupDatesLocales, K as KupDatesFormats } from './kup-dates-da19044e.js';
7
7
  import './f-button-declarations-6c8f8abe.js';
8
8
  import './f-image-a2ecd7c3.js';
@@ -93,8 +93,8 @@ if (typeof document !== 'undefined') {
93
93
  registerStylesRoot(document);
94
94
  }
95
95
 
96
- var css_248z$3 = ":root{--fc-small-font-size:.85em;--fc-page-bg-color:#fff;--fc-neutral-bg-color:hsla(0,0%,82%,.3);--fc-neutral-text-color:grey;--fc-border-color:#ddd;--fc-button-text-color:#fff;--fc-button-bg-color:#2c3e50;--fc-button-border-color:#2c3e50;--fc-button-hover-bg-color:#1e2b37;--fc-button-hover-border-color:#1a252f;--fc-button-active-bg-color:#1a252f;--fc-button-active-border-color:#151e27;--fc-event-bg-color:#3788d8;--fc-event-border-color:#3788d8;--fc-event-text-color:#fff;--fc-event-selected-overlay-color:rgba(0,0,0,.25);--fc-more-link-bg-color:#d0d0d0;--fc-more-link-text-color:inherit;--fc-event-resizer-thickness:8px;--fc-event-resizer-dot-total-width:8px;--fc-event-resizer-dot-border-width:1px;--fc-non-business-color:hsla(0,0%,84%,.3);--fc-bg-event-color:#8fdf82;--fc-bg-event-opacity:0.3;--fc-highlight-color:rgba(188,232,241,.3);--fc-today-bg-color:rgba(255,220,40,.15);--fc-now-indicator-color:red}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc :after,.fc :before{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{padding:0;vertical-align:top}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid var(--fc-border-color)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;font-style:normal;font-weight:400;src:url(\"data:application/x-font-ttf;charset=utf-8;base64,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\") format(\"truetype\")}.fc-icon{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:fcicons!important;font-style:normal;font-variant:normal;font-weight:400;height:1em;line-height:1;text-align:center;text-transform:none;-moz-user-select:none;user-select:none;width:1em}.fc-icon-chevron-left:before{content:\"\\e900\"}.fc-icon-chevron-right:before{content:\"\\e901\"}.fc-icon-chevrons-left:before{content:\"\\e902\"}.fc-icon-chevrons-right:before{content:\"\\e903\"}.fc-icon-minus-square:before{content:\"\\e904\"}.fc-icon-plus-square:before{content:\"\\e905\"}.fc-icon-x:before{content:\"\\e906\"}.fc .fc-button{border-radius:0;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}.fc .fc-button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.fc .fc-button{-webkit-appearance:button}.fc .fc-button:not(:disabled){cursor:pointer}.fc .fc-button{background-color:transparent;border:1px solid transparent;border-radius:.25em;display:inline-block;font-size:1em;font-weight:400;line-height:1.5;padding:.4em .65em;text-align:center;-moz-user-select:none;user-select:none;vertical-align:middle}.fc .fc-button:hover{text-decoration:none}.fc .fc-button:focus{box-shadow:0 0 0 .2rem rgba(44,62,80,.25);outline:0}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:hover{background-color:var(--fc-button-hover-bg-color);border-color:var(--fc-button-hover-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:disabled{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{background-color:var(--fc-button-active-bg-color);border-color:var(--fc-button-active-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:not(:disabled).fc-button-active:focus,.fc .fc-button-primary:not(:disabled):active:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button .fc-icon{font-size:1.5em;vertical-align:middle}.fc .fc-button-group{display:inline-flex;position:relative;vertical-align:middle}.fc .fc-button-group>.fc-button{flex:1 1 auto;position:relative}.fc .fc-button-group>.fc-button.fc-button-active,.fc .fc-button-group>.fc-button:active,.fc .fc-button-group>.fc-button:focus,.fc .fc-button-group>.fc-button:hover{z-index:1}.fc-direction-ltr .fc-button-group>.fc-button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-bottom-left-radius:0;border-top-left-radius:0}.fc .fc-toolbar{align-items:center;display:flex;justify-content:space-between}.fc .fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc .fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc .fc-toolbar-title{font-size:1.75em;margin:0}.fc-direction-ltr .fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-direction-rtl .fc-toolbar>*>:not(:first-child){margin-right:.75em}.fc-direction-rtl .fc-toolbar-ltr{flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-scroller-harness{direction:ltr;overflow:hidden;position:relative}.fc .fc-scroller-harness-liquid{height:100%}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid var(--fc-border-color)}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{table-layout:fixed;width:100%}.fc .fc-scrollgrid table{border-left-style:hidden;border-right-style:hidden;border-top-style:hidden}.fc .fc-scrollgrid{border-bottom-width:0;border-collapse:separate;border-right-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section,.fc .fc-scrollgrid-section table,.fc .fc-scrollgrid-section>td{height:1px}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-left-width:0;border-top-width:0}.fc .fc-scrollgrid-section-footer>*,.fc .fc-scrollgrid-section-header>*{border-bottom-width:0}.fc .fc-scrollgrid-section-body table,.fc .fc-scrollgrid-section-footer table{border-bottom-style:hidden}.fc .fc-scrollgrid-section-sticky>*{background:var(--fc-page-bg-color);position:sticky;z-index:3}.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky>*{top:0}.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky>*{bottom:0}.fc .fc-scrollgrid-sticky-shim{height:1px;margin-bottom:-1px}.fc-sticky{position:sticky}.fc .fc-view-harness{flex-grow:1;position:relative}.fc .fc-view-harness-active>.fc-view{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-bg-event,.fc .fc-highlight,.fc .fc-non-business{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-non-business{background:var(--fc-non-business-color)}.fc .fc-bg-event{background:var(--fc-bg-event-color);opacity:var(--fc-bg-event-opacity)}.fc .fc-bg-event .fc-event-title{font-size:var(--fc-small-font-size);font-style:italic;margin:.5em}.fc .fc-highlight{background:var(--fc-highlight-color)}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:var(--fc-neutral-bg-color)}a.fc-event,a.fc-event:hover{text-decoration:none}.fc-event.fc-event-draggable,.fc-event[href]{cursor:pointer}.fc-event .fc-event-main{position:relative;z-index:2}.fc-event-dragging:not(.fc-event-selected){opacity:.75}.fc-event-dragging.fc-event-selected{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-event .fc-event-resizer{display:none;position:absolute;z-index:4}.fc-event-selected .fc-event-resizer,.fc-event:hover .fc-event-resizer{display:block}.fc-event-selected .fc-event-resizer{background:var(--fc-page-bg-color);border-color:inherit;border-radius:calc(var(--fc-event-resizer-dot-total-width)/2);border-style:solid;border-width:var(--fc-event-resizer-dot-border-width);height:var(--fc-event-resizer-dot-total-width);width:var(--fc-event-resizer-dot-total-width)}.fc-event-selected .fc-event-resizer:before{bottom:-20px;content:\"\";left:-20px;position:absolute;right:-20px;top:-20px}.fc-event-selected,.fc-event:focus{box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event-selected:before,.fc-event:focus:before{bottom:0;content:\"\";left:0;position:absolute;right:0;top:0;z-index:3}.fc-event-selected:after,.fc-event:focus:after{background:var(--fc-event-selected-overlay-color);bottom:-1px;content:\"\";left:-1px;position:absolute;right:-1px;top:-1px;z-index:1}.fc-h-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-h-event .fc-event-main{color:var(--fc-event-text-color)}.fc-h-event .fc-event-main-frame{display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;left:0;max-width:100%;overflow:hidden;right:0;vertical-align:top}.fc-h-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-bottom-left-radius:0;border-left-width:0;border-top-left-radius:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-bottom-right-radius:0;border-right-width:0;border-top-right-radius:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{bottom:0;top:0;width:var(--fc-event-resizer-thickness)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end{cursor:w-resize;left:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start{cursor:e-resize;right:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-h-event.fc-event-selected .fc-event-resizer{margin-top:calc(var(--fc-event-resizer-dot-total-width)*-.5);top:50%}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end{left:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start{right:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc .fc-popover{box-shadow:0 2px 6px rgba(0,0,0,.15);position:absolute;z-index:9999}.fc .fc-popover-header{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .fc-popover-close{cursor:pointer;font-size:1.1em;opacity:.65}.fc-theme-standard .fc-popover{background:var(--fc-page-bg-color);border:1px solid var(--fc-border-color)}.fc-theme-standard .fc-popover-header{background:var(--fc-neutral-bg-color)}";
97
- injectStyles(css_248z$3);
96
+ var css_248z$4 = ":root{--fc-small-font-size:.85em;--fc-page-bg-color:#fff;--fc-neutral-bg-color:hsla(0,0%,82%,.3);--fc-neutral-text-color:grey;--fc-border-color:#ddd;--fc-button-text-color:#fff;--fc-button-bg-color:#2c3e50;--fc-button-border-color:#2c3e50;--fc-button-hover-bg-color:#1e2b37;--fc-button-hover-border-color:#1a252f;--fc-button-active-bg-color:#1a252f;--fc-button-active-border-color:#151e27;--fc-event-bg-color:#3788d8;--fc-event-border-color:#3788d8;--fc-event-text-color:#fff;--fc-event-selected-overlay-color:rgba(0,0,0,.25);--fc-more-link-bg-color:#d0d0d0;--fc-more-link-text-color:inherit;--fc-event-resizer-thickness:8px;--fc-event-resizer-dot-total-width:8px;--fc-event-resizer-dot-border-width:1px;--fc-non-business-color:hsla(0,0%,84%,.3);--fc-bg-event-color:#8fdf82;--fc-bg-event-opacity:0.3;--fc-highlight-color:rgba(188,232,241,.3);--fc-today-bg-color:rgba(255,220,40,.15);--fc-now-indicator-color:red}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc :after,.fc :before{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{padding:0;vertical-align:top}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid var(--fc-border-color)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;font-style:normal;font-weight:400;src:url(\"data:application/x-font-ttf;charset=utf-8;base64,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\") format(\"truetype\")}.fc-icon{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:fcicons!important;font-style:normal;font-variant:normal;font-weight:400;height:1em;line-height:1;text-align:center;text-transform:none;-moz-user-select:none;user-select:none;width:1em}.fc-icon-chevron-left:before{content:\"\\e900\"}.fc-icon-chevron-right:before{content:\"\\e901\"}.fc-icon-chevrons-left:before{content:\"\\e902\"}.fc-icon-chevrons-right:before{content:\"\\e903\"}.fc-icon-minus-square:before{content:\"\\e904\"}.fc-icon-plus-square:before{content:\"\\e905\"}.fc-icon-x:before{content:\"\\e906\"}.fc .fc-button{border-radius:0;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}.fc .fc-button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.fc .fc-button{-webkit-appearance:button}.fc .fc-button:not(:disabled){cursor:pointer}.fc .fc-button{background-color:transparent;border:1px solid transparent;border-radius:.25em;display:inline-block;font-size:1em;font-weight:400;line-height:1.5;padding:.4em .65em;text-align:center;-moz-user-select:none;user-select:none;vertical-align:middle}.fc .fc-button:hover{text-decoration:none}.fc .fc-button:focus{box-shadow:0 0 0 .2rem rgba(44,62,80,.25);outline:0}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:hover{background-color:var(--fc-button-hover-bg-color);border-color:var(--fc-button-hover-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:disabled{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{background-color:var(--fc-button-active-bg-color);border-color:var(--fc-button-active-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:not(:disabled).fc-button-active:focus,.fc .fc-button-primary:not(:disabled):active:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button .fc-icon{font-size:1.5em;vertical-align:middle}.fc .fc-button-group{display:inline-flex;position:relative;vertical-align:middle}.fc .fc-button-group>.fc-button{flex:1 1 auto;position:relative}.fc .fc-button-group>.fc-button.fc-button-active,.fc .fc-button-group>.fc-button:active,.fc .fc-button-group>.fc-button:focus,.fc .fc-button-group>.fc-button:hover{z-index:1}.fc-direction-ltr .fc-button-group>.fc-button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-bottom-left-radius:0;border-top-left-radius:0}.fc .fc-toolbar{align-items:center;display:flex;justify-content:space-between}.fc .fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc .fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc .fc-toolbar-title{font-size:1.75em;margin:0}.fc-direction-ltr .fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-direction-rtl .fc-toolbar>*>:not(:first-child){margin-right:.75em}.fc-direction-rtl .fc-toolbar-ltr{flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-scroller-harness{direction:ltr;overflow:hidden;position:relative}.fc .fc-scroller-harness-liquid{height:100%}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid var(--fc-border-color)}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{table-layout:fixed;width:100%}.fc .fc-scrollgrid table{border-left-style:hidden;border-right-style:hidden;border-top-style:hidden}.fc .fc-scrollgrid{border-bottom-width:0;border-collapse:separate;border-right-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section,.fc .fc-scrollgrid-section table,.fc .fc-scrollgrid-section>td{height:1px}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-left-width:0;border-top-width:0}.fc .fc-scrollgrid-section-footer>*,.fc .fc-scrollgrid-section-header>*{border-bottom-width:0}.fc .fc-scrollgrid-section-body table,.fc .fc-scrollgrid-section-footer table{border-bottom-style:hidden}.fc .fc-scrollgrid-section-sticky>*{background:var(--fc-page-bg-color);position:sticky;z-index:3}.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky>*{top:0}.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky>*{bottom:0}.fc .fc-scrollgrid-sticky-shim{height:1px;margin-bottom:-1px}.fc-sticky{position:sticky}.fc .fc-view-harness{flex-grow:1;position:relative}.fc .fc-view-harness-active>.fc-view{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-bg-event,.fc .fc-highlight,.fc .fc-non-business{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-non-business{background:var(--fc-non-business-color)}.fc .fc-bg-event{background:var(--fc-bg-event-color);opacity:var(--fc-bg-event-opacity)}.fc .fc-bg-event .fc-event-title{font-size:var(--fc-small-font-size);font-style:italic;margin:.5em}.fc .fc-highlight{background:var(--fc-highlight-color)}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:var(--fc-neutral-bg-color)}a.fc-event,a.fc-event:hover{text-decoration:none}.fc-event.fc-event-draggable,.fc-event[href]{cursor:pointer}.fc-event .fc-event-main{position:relative;z-index:2}.fc-event-dragging:not(.fc-event-selected){opacity:.75}.fc-event-dragging.fc-event-selected{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-event .fc-event-resizer{display:none;position:absolute;z-index:4}.fc-event-selected .fc-event-resizer,.fc-event:hover .fc-event-resizer{display:block}.fc-event-selected .fc-event-resizer{background:var(--fc-page-bg-color);border-color:inherit;border-radius:calc(var(--fc-event-resizer-dot-total-width)/2);border-style:solid;border-width:var(--fc-event-resizer-dot-border-width);height:var(--fc-event-resizer-dot-total-width);width:var(--fc-event-resizer-dot-total-width)}.fc-event-selected .fc-event-resizer:before{bottom:-20px;content:\"\";left:-20px;position:absolute;right:-20px;top:-20px}.fc-event-selected,.fc-event:focus{box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event-selected:before,.fc-event:focus:before{bottom:0;content:\"\";left:0;position:absolute;right:0;top:0;z-index:3}.fc-event-selected:after,.fc-event:focus:after{background:var(--fc-event-selected-overlay-color);bottom:-1px;content:\"\";left:-1px;position:absolute;right:-1px;top:-1px;z-index:1}.fc-h-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-h-event .fc-event-main{color:var(--fc-event-text-color)}.fc-h-event .fc-event-main-frame{display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;left:0;max-width:100%;overflow:hidden;right:0;vertical-align:top}.fc-h-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-bottom-left-radius:0;border-left-width:0;border-top-left-radius:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-bottom-right-radius:0;border-right-width:0;border-top-right-radius:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{bottom:0;top:0;width:var(--fc-event-resizer-thickness)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end{cursor:w-resize;left:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start{cursor:e-resize;right:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-h-event.fc-event-selected .fc-event-resizer{margin-top:calc(var(--fc-event-resizer-dot-total-width)*-.5);top:50%}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end{left:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start{right:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc .fc-popover{box-shadow:0 2px 6px rgba(0,0,0,.15);position:absolute;z-index:9999}.fc .fc-popover-header{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .fc-popover-close{cursor:pointer;font-size:1.1em;opacity:.65}.fc-theme-standard .fc-popover{background:var(--fc-page-bg-color);border:1px solid var(--fc-border-color)}.fc-theme-standard .fc-popover-header{background:var(--fc-neutral-bg-color)}";
97
+ injectStyles(css_248z$4);
98
98
 
99
99
  class DelayedRunner {
100
100
  constructor(drainedOption) {
@@ -7021,10 +7021,10 @@ class BgEvent extends BaseComponent {
7021
7021
  render() {
7022
7022
  let { props } = this;
7023
7023
  let { seg } = props;
7024
- return (y(EventContainer, { elTag: "div", elClasses: ['fc-bg-event'], elStyle: { backgroundColor: seg.eventRange.ui.backgroundColor }, defaultGenerator: renderInnerContent$3, seg: seg, timeText: "", isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday, disableDragging: true, disableResizing: true }));
7024
+ return (y(EventContainer, { elTag: "div", elClasses: ['fc-bg-event'], elStyle: { backgroundColor: seg.eventRange.ui.backgroundColor }, defaultGenerator: renderInnerContent$4, seg: seg, timeText: "", isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday, disableDragging: true, disableResizing: true }));
7025
7025
  }
7026
7026
  }
7027
- function renderInnerContent$3(props) {
7027
+ function renderInnerContent$4(props) {
7028
7028
  let { title } = props.event;
7029
7029
  return title && (y("div", { className: "fc-event-title" }, props.event.title));
7030
7030
  }
@@ -9464,7 +9464,7 @@ class TableView extends DateComponent {
9464
9464
  }
9465
9465
  }
9466
9466
 
9467
- function splitSegsByRow(segs, rowCnt) {
9467
+ function splitSegsByRow$1(segs, rowCnt) {
9468
9468
  let byRow = [];
9469
9469
  for (let i = 0; i < rowCnt; i += 1) {
9470
9470
  byRow[i] = [];
@@ -9474,7 +9474,7 @@ function splitSegsByRow(segs, rowCnt) {
9474
9474
  }
9475
9475
  return byRow;
9476
9476
  }
9477
- function splitSegsByFirstCol(segs, colCnt) {
9477
+ function splitSegsByFirstCol$1(segs, colCnt) {
9478
9478
  let byCol = [];
9479
9479
  for (let i = 0; i < colCnt; i += 1) {
9480
9480
  byCol[i] = [];
@@ -9484,7 +9484,7 @@ function splitSegsByFirstCol(segs, colCnt) {
9484
9484
  }
9485
9485
  return byCol;
9486
9486
  }
9487
- function splitInteractionByRow(ui, rowCnt) {
9487
+ function splitInteractionByRow$1(ui, rowCnt) {
9488
9488
  let byRow = [];
9489
9489
  if (!ui) {
9490
9490
  for (let i = 0; i < rowCnt; i += 1) {
@@ -9506,13 +9506,13 @@ function splitInteractionByRow(ui, rowCnt) {
9506
9506
  return byRow;
9507
9507
  }
9508
9508
 
9509
- const DEFAULT_TABLE_EVENT_TIME_FORMAT = createFormatter({
9509
+ const DEFAULT_TABLE_EVENT_TIME_FORMAT$1 = createFormatter({
9510
9510
  hour: 'numeric',
9511
9511
  minute: '2-digit',
9512
9512
  omitZeroMinute: true,
9513
9513
  meridiem: 'narrow',
9514
9514
  });
9515
- function hasListItemDisplay(seg) {
9515
+ function hasListItemDisplay$1(seg) {
9516
9516
  let { display } = seg.eventRange.ui;
9517
9517
  return display === 'list-item' || (display === 'auto' &&
9518
9518
  !seg.eventRange.def.allDay &&
@@ -9522,34 +9522,34 @@ function hasListItemDisplay(seg) {
9522
9522
  );
9523
9523
  }
9524
9524
 
9525
- class TableBlockEvent extends BaseComponent {
9525
+ class TableBlockEvent$1 extends BaseComponent {
9526
9526
  render() {
9527
9527
  let { props } = this;
9528
- return (y(StandardEvent, Object.assign({}, props, { elClasses: ['fc-daygrid-event', 'fc-daygrid-block-event', 'fc-h-event'], defaultTimeFormat: DEFAULT_TABLE_EVENT_TIME_FORMAT, defaultDisplayEventEnd: props.defaultDisplayEventEnd, disableResizing: !props.seg.eventRange.def.allDay })));
9528
+ return (y(StandardEvent, Object.assign({}, props, { elClasses: ['fc-daygrid-event', 'fc-daygrid-block-event', 'fc-h-event'], defaultTimeFormat: DEFAULT_TABLE_EVENT_TIME_FORMAT$1, defaultDisplayEventEnd: props.defaultDisplayEventEnd, disableResizing: !props.seg.eventRange.def.allDay })));
9529
9529
  }
9530
9530
  }
9531
9531
 
9532
- class TableListItemEvent extends BaseComponent {
9532
+ class TableListItemEvent$1 extends BaseComponent {
9533
9533
  render() {
9534
9534
  let { props, context } = this;
9535
9535
  let { options } = context;
9536
9536
  let { seg } = props;
9537
- let timeFormat = options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;
9537
+ let timeFormat = options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT$1;
9538
9538
  let timeText = buildSegTimeText(seg, timeFormat, context, true, props.defaultDisplayEventEnd);
9539
- return (y(EventContainer, Object.assign({}, props, { elTag: "a", elClasses: ['fc-daygrid-event', 'fc-daygrid-dot-event'], elAttrs: getSegAnchorAttrs(props.seg, context), defaultGenerator: renderInnerContent$2, timeText: timeText, isResizing: false, isDateSelecting: false })));
9539
+ return (y(EventContainer, Object.assign({}, props, { elTag: "a", elClasses: ['fc-daygrid-event', 'fc-daygrid-dot-event'], elAttrs: getSegAnchorAttrs(props.seg, context), defaultGenerator: renderInnerContent$3, timeText: timeText, isResizing: false, isDateSelecting: false })));
9540
9540
  }
9541
9541
  }
9542
- function renderInnerContent$2(renderProps) {
9542
+ function renderInnerContent$3(renderProps) {
9543
9543
  return (y(_, null,
9544
9544
  y("div", { className: "fc-daygrid-event-dot", style: { borderColor: renderProps.borderColor || renderProps.backgroundColor } }),
9545
9545
  renderProps.timeText && (y("div", { className: "fc-event-time" }, renderProps.timeText)),
9546
9546
  y("div", { className: "fc-event-title" }, renderProps.event.title || y(_, null, "\u00A0"))));
9547
9547
  }
9548
9548
 
9549
- class TableCellMoreLink extends BaseComponent {
9549
+ class TableCellMoreLink$1 extends BaseComponent {
9550
9550
  constructor() {
9551
9551
  super(...arguments);
9552
- this.compileSegs = memoize(compileSegs);
9552
+ this.compileSegs = memoize(compileSegs$1);
9553
9553
  }
9554
9554
  render() {
9555
9555
  let { props } = this;
@@ -9562,12 +9562,12 @@ class TableCellMoreLink extends BaseComponent {
9562
9562
  let instanceId = seg.eventRange.instance.instanceId;
9563
9563
  return (y("div", { className: "fc-daygrid-event-harness", key: instanceId, style: {
9564
9564
  visibility: isForcedInvisible[instanceId] ? 'hidden' : '',
9565
- } }, hasListItemDisplay(seg) ? (y(TableListItemEvent, Object.assign({ seg: seg, isDragging: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange)))) : (y(TableBlockEvent, Object.assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange))))));
9565
+ } }, hasListItemDisplay$1(seg) ? (y(TableListItemEvent$1, Object.assign({ seg: seg, isDragging: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange)))) : (y(TableBlockEvent$1, Object.assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange))))));
9566
9566
  })));
9567
9567
  } }));
9568
9568
  }
9569
9569
  }
9570
- function compileSegs(singlePlacements) {
9570
+ function compileSegs$1(singlePlacements) {
9571
9571
  let allSegs = [];
9572
9572
  let invisibleSegs = [];
9573
9573
  for (let placement of singlePlacements) {
@@ -9579,8 +9579,8 @@ function compileSegs(singlePlacements) {
9579
9579
  return { allSegs, invisibleSegs };
9580
9580
  }
9581
9581
 
9582
- const DEFAULT_WEEK_NUM_FORMAT$1 = createFormatter({ week: 'narrow' });
9583
- class TableCell extends DateComponent {
9582
+ const DEFAULT_WEEK_NUM_FORMAT$2 = createFormatter({ week: 'narrow' });
9583
+ class TableCell$1 extends DateComponent {
9584
9584
  constructor() {
9585
9585
  super(...arguments);
9586
9586
  this.rootElRef = d();
@@ -9598,12 +9598,12 @@ class TableCell extends DateComponent {
9598
9598
  let { date, dateProfile } = props;
9599
9599
  // TODO: memoize this?
9600
9600
  const isMonthStart = props.showDayNumber &&
9601
- shouldDisplayMonthStart(date, dateProfile.currentRange, dateEnv);
9601
+ shouldDisplayMonthStart$1(date, dateProfile.currentRange, dateEnv);
9602
9602
  return (y(DayCellContainer, { elTag: "td", elRef: this.handleRootEl, elClasses: [
9603
9603
  'fc-daygrid-day',
9604
9604
  ...(props.extraClassNames || []),
9605
- ], elAttrs: Object.assign(Object.assign(Object.assign({}, props.extraDataAttrs), (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})), { role: 'gridcell' }), defaultGenerator: renderTopInner, date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, isMonthStart: isMonthStart, extraRenderProps: props.extraRenderProps }, (InnerContent, renderProps) => (y("div", { ref: props.innerElRef, className: "fc-daygrid-day-frame fc-scrollgrid-sync-inner", style: { minHeight: props.minHeight } },
9606
- props.showWeekNumber && (y(WeekNumberContainer, { elTag: "a", elClasses: ['fc-daygrid-week-number'], elAttrs: buildNavLinkAttrs(context, date, 'week'), date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT$1 })),
9605
+ ], elAttrs: Object.assign(Object.assign(Object.assign({}, props.extraDataAttrs), (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})), { role: 'gridcell' }), defaultGenerator: renderTopInner$1, date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, isMonthStart: isMonthStart, extraRenderProps: props.extraRenderProps }, (InnerContent, renderProps) => (y("div", { ref: props.innerElRef, className: "fc-daygrid-day-frame fc-scrollgrid-sync-inner", style: { minHeight: props.minHeight } },
9606
+ props.showWeekNumber && (y(WeekNumberContainer, { elTag: "a", elClasses: ['fc-daygrid-week-number'], elAttrs: buildNavLinkAttrs(context, date, 'week'), date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT$2 })),
9607
9607
  !renderProps.isDisabled &&
9608
9608
  (props.showDayNumber || hasCustomDayCellContent(options) || props.forceDayTop) ? (y("div", { className: "fc-daygrid-day-top" },
9609
9609
  y(InnerContent, { elTag: "a", elClasses: [
@@ -9616,14 +9616,14 @@ class TableCell extends DateComponent {
9616
9616
  y("div", { className: "fc-daygrid-day-events", ref: props.fgContentElRef },
9617
9617
  props.fgContent,
9618
9618
  y("div", { className: "fc-daygrid-day-bottom", style: { marginTop: props.moreMarginTop } },
9619
- y(TableCellMoreLink, { allDayDate: date, singlePlacements: props.singlePlacements, moreCnt: props.moreCnt, alignmentElRef: rootElRef, alignGridTop: !props.showDayNumber, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange }))),
9619
+ y(TableCellMoreLink$1, { allDayDate: date, singlePlacements: props.singlePlacements, moreCnt: props.moreCnt, alignmentElRef: rootElRef, alignGridTop: !props.showDayNumber, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange }))),
9620
9620
  y("div", { className: "fc-daygrid-day-bg" }, props.bgContent)))));
9621
9621
  }
9622
9622
  }
9623
- function renderTopInner(props) {
9623
+ function renderTopInner$1(props) {
9624
9624
  return props.dayNumberText || y(_, null, "\u00A0");
9625
9625
  }
9626
- function shouldDisplayMonthStart(date, currentRange, dateEnv) {
9626
+ function shouldDisplayMonthStart$1(date, currentRange, dateEnv) {
9627
9627
  const { start: currentStart, end: currentEnd } = currentRange;
9628
9628
  const currentEndIncl = addMs(currentEnd, -1);
9629
9629
  const currentFirstYear = dateEnv.getYear(currentStart);
@@ -9639,15 +9639,15 @@ function shouldDisplayMonthStart(date, currentRange, dateEnv) {
9639
9639
  (dateEnv.getDay(date) === 1 && date.valueOf() < currentEnd.valueOf()));
9640
9640
  }
9641
9641
 
9642
- function generateSegKey(seg) {
9642
+ function generateSegKey$1(seg) {
9643
9643
  return seg.eventRange.instance.instanceId + ':' + seg.firstCol;
9644
9644
  }
9645
- function generateSegUid(seg) {
9646
- return generateSegKey(seg) + ':' + seg.lastCol;
9645
+ function generateSegUid$1(seg) {
9646
+ return generateSegKey$1(seg) + ':' + seg.lastCol;
9647
9647
  }
9648
- function computeFgSegPlacement(segs, // assumed already sorted
9648
+ function computeFgSegPlacement$1(segs, // assumed already sorted
9649
9649
  dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells) {
9650
- let hierarchy = new DayGridSegHierarchy((segEntry) => {
9650
+ let hierarchy = new DayGridSegHierarchy$1((segEntry) => {
9651
9651
  // TODO: more DRY with generateSegUid
9652
9652
  let segUid = segs[segEntry.index].eventRange.instance.instanceId +
9653
9653
  ':' + segEntry.span.start +
@@ -9673,7 +9673,7 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
9673
9673
  let unknownHeightSegs = [];
9674
9674
  for (let i = 0; i < segs.length; i += 1) {
9675
9675
  let seg = segs[i];
9676
- let segUid = generateSegUid(seg);
9676
+ let segUid = generateSegUid$1(seg);
9677
9677
  let eventHeight = segHeights[segUid];
9678
9678
  if (eventHeight != null) {
9679
9679
  segInputs.push({
@@ -9690,7 +9690,7 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
9690
9690
  }
9691
9691
  let hiddenEntries = hierarchy.addSegs(segInputs);
9692
9692
  let segRects = hierarchy.toRects();
9693
- let { singleColPlacements, multiColPlacements, leftoverMargins } = placeRects(segRects, segs, cells);
9693
+ let { singleColPlacements, multiColPlacements, leftoverMargins } = placeRects$1(segRects, segs, cells);
9694
9694
  let moreCnts = [];
9695
9695
  let moreMarginTops = [];
9696
9696
  // add segs with unknown heights
@@ -9704,7 +9704,7 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
9704
9704
  });
9705
9705
  for (let col = seg.firstCol; col <= seg.lastCol; col += 1) {
9706
9706
  singleColPlacements[col].push({
9707
- seg: resliceSeg(seg, col, col + 1, cells),
9707
+ seg: resliceSeg$1(seg, col, col + 1, cells),
9708
9708
  isVisible: false,
9709
9709
  isAbsolute: false,
9710
9710
  absoluteTop: 0,
@@ -9720,7 +9720,7 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
9720
9720
  let seg = segs[hiddenEntry.index];
9721
9721
  let hiddenSpan = hiddenEntry.span;
9722
9722
  multiColPlacements[hiddenSpan.start].push({
9723
- seg: resliceSeg(seg, hiddenSpan.start, hiddenSpan.end, cells),
9723
+ seg: resliceSeg$1(seg, hiddenSpan.start, hiddenSpan.end, cells),
9724
9724
  isVisible: false,
9725
9725
  isAbsolute: true,
9726
9726
  absoluteTop: 0,
@@ -9729,7 +9729,7 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
9729
9729
  for (let col = hiddenSpan.start; col < hiddenSpan.end; col += 1) {
9730
9730
  moreCnts[col] += 1;
9731
9731
  singleColPlacements[col].push({
9732
- seg: resliceSeg(seg, col, col + 1, cells),
9732
+ seg: resliceSeg$1(seg, col, col + 1, cells),
9733
9733
  isVisible: false,
9734
9734
  isAbsolute: false,
9735
9735
  absoluteTop: 0,
@@ -9744,8 +9744,8 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
9744
9744
  return { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops };
9745
9745
  }
9746
9746
  // rects ordered by top coord, then left
9747
- function placeRects(allRects, segs, cells) {
9748
- let rectsByEachCol = groupRectsByEachCol(allRects, cells.length);
9747
+ function placeRects$1(allRects, segs, cells) {
9748
+ let rectsByEachCol = groupRectsByEachCol$1(allRects, cells.length);
9749
9749
  let singleColPlacements = [];
9750
9750
  let multiColPlacements = [];
9751
9751
  let leftoverMargins = [];
@@ -9758,7 +9758,7 @@ function placeRects(allRects, segs, cells) {
9758
9758
  for (let rect of rects) {
9759
9759
  let seg = segs[rect.index];
9760
9760
  singlePlacements.push({
9761
- seg: resliceSeg(seg, col, col + 1, cells),
9761
+ seg: resliceSeg$1(seg, col, col + 1, cells),
9762
9762
  isVisible: true,
9763
9763
  isAbsolute: false,
9764
9764
  absoluteTop: rect.levelCoord,
@@ -9780,7 +9780,7 @@ function placeRects(allRects, segs, cells) {
9780
9780
  currentMarginTop += rect.thickness;
9781
9781
  if (isFirstCol) {
9782
9782
  multiPlacements.push({
9783
- seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),
9783
+ seg: resliceSeg$1(seg, rect.span.start, rect.span.end, cells),
9784
9784
  isVisible: true,
9785
9785
  isAbsolute: true,
9786
9786
  absoluteTop: rect.levelCoord,
@@ -9790,7 +9790,7 @@ function placeRects(allRects, segs, cells) {
9790
9790
  }
9791
9791
  else if (isFirstCol) {
9792
9792
  multiPlacements.push({
9793
- seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),
9793
+ seg: resliceSeg$1(seg, rect.span.start, rect.span.end, cells),
9794
9794
  isVisible: true,
9795
9795
  isAbsolute: false,
9796
9796
  absoluteTop: rect.levelCoord,
@@ -9805,7 +9805,7 @@ function placeRects(allRects, segs, cells) {
9805
9805
  }
9806
9806
  return { singleColPlacements, multiColPlacements, leftoverMargins };
9807
9807
  }
9808
- function groupRectsByEachCol(rects, colCnt) {
9808
+ function groupRectsByEachCol$1(rects, colCnt) {
9809
9809
  let rectsByEachCol = [];
9810
9810
  for (let col = 0; col < colCnt; col += 1) {
9811
9811
  rectsByEachCol.push([]);
@@ -9817,7 +9817,7 @@ function groupRectsByEachCol(rects, colCnt) {
9817
9817
  }
9818
9818
  return rectsByEachCol;
9819
9819
  }
9820
- function resliceSeg(seg, spanStart, spanEnd, cells) {
9820
+ function resliceSeg$1(seg, spanStart, spanEnd, cells) {
9821
9821
  if (seg.firstCol === spanStart && seg.lastCol === spanEnd - 1) {
9822
9822
  return seg;
9823
9823
  }
@@ -9834,7 +9834,7 @@ function resliceSeg(seg, spanStart, spanEnd, cells) {
9834
9834
  range: slicedRange,
9835
9835
  }, isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(), isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf() });
9836
9836
  }
9837
- class DayGridSegHierarchy extends SegHierarchy {
9837
+ class DayGridSegHierarchy$1 extends SegHierarchy {
9838
9838
  constructor() {
9839
9839
  super(...arguments);
9840
9840
  // config
@@ -9881,7 +9881,7 @@ class DayGridSegHierarchy extends SegHierarchy {
9881
9881
  }
9882
9882
  }
9883
9883
 
9884
- class TableRow extends DateComponent {
9884
+ class TableRow$1 extends DateComponent {
9885
9885
  constructor() {
9886
9886
  super(...arguments);
9887
9887
  this.cellElRefs = new RefMap(); // the <td>
@@ -9904,11 +9904,11 @@ class TableRow extends DateComponent {
9904
9904
  let { props, state, context } = this;
9905
9905
  let { options } = context;
9906
9906
  let colCnt = props.cells.length;
9907
- let businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt);
9908
- let bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt);
9909
- let highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt);
9910
- let mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt);
9911
- let { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops } = computeFgSegPlacement(sortEventSegs(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.segHeights, state.maxContentHeight, props.cells);
9907
+ let businessHoursByCol = splitSegsByFirstCol$1(props.businessHourSegs, colCnt);
9908
+ let bgEventSegsByCol = splitSegsByFirstCol$1(props.bgEventSegs, colCnt);
9909
+ let highlightSegsByCol = splitSegsByFirstCol$1(this.getHighlightSegs(), colCnt);
9910
+ let mirrorSegsByCol = splitSegsByFirstCol$1(this.getMirrorSegs(), colCnt);
9911
+ let { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops } = computeFgSegPlacement$1(sortEventSegs(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.segHeights, state.maxContentHeight, props.cells);
9912
9912
  let isForcedInvisible = // TODO: messy way to compute this
9913
9913
  (props.eventDrag && props.eventDrag.affectedInstances) ||
9914
9914
  (props.eventResize && props.eventResize.affectedInstances) ||
@@ -9917,8 +9917,8 @@ class TableRow extends DateComponent {
9917
9917
  props.renderIntro && props.renderIntro(),
9918
9918
  props.cells.map((cell, col) => {
9919
9919
  let normalFgNodes = this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);
9920
- let mirrorFgNodes = this.renderFgSegs(col, buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);
9921
- return (y(TableCell, { key: cell.key, elRef: this.cellElRefs.createRef(cell.key), innerElRef: this.frameElRefs.createRef(cell.key) /* FF <td> problem, but okay to use for left/right. TODO: rename prop */, dateProfile: props.dateProfile, date: cell.date, showDayNumber: props.showDayNumbers, showWeekNumber: props.showWeekNumbers && col === 0, forceDayTop: props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */, todayRange: props.todayRange, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, extraRenderProps: cell.extraRenderProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, moreCnt: moreCnts[col], moreMarginTop: moreMarginTops[col], singlePlacements: singleColPlacements[col], fgContentElRef: this.fgElRefs.createRef(cell.key), fgContent: ( // Fragment scopes the keys
9920
+ let mirrorFgNodes = this.renderFgSegs(col, buildMirrorPlacements$1(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);
9921
+ return (y(TableCell$1, { key: cell.key, elRef: this.cellElRefs.createRef(cell.key), innerElRef: this.frameElRefs.createRef(cell.key) /* FF <td> problem, but okay to use for left/right. TODO: rename prop */, dateProfile: props.dateProfile, date: cell.date, showDayNumber: props.showDayNumbers, showWeekNumber: props.showWeekNumbers && col === 0, forceDayTop: props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */, todayRange: props.todayRange, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, extraRenderProps: cell.extraRenderProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, moreCnt: moreCnts[col], moreMarginTop: moreMarginTops[col], singlePlacements: singleColPlacements[col], fgContentElRef: this.fgElRefs.createRef(cell.key), fgContent: ( // Fragment scopes the keys
9922
9922
  y(_, null,
9923
9923
  y(_, null, normalFgNodes),
9924
9924
  y(_, null, mirrorFgNodes))), bgContent: ( // Fragment scopes the keys
@@ -9985,13 +9985,13 @@ class TableRow extends DateComponent {
9985
9985
  known bug: events that are force to be list-item but span multiple days still take up space in later columns
9986
9986
  todo: in print view, for multi-day events, don't display title within non-start/end segs
9987
9987
  */
9988
- nodes.push(y("div", { className: 'fc-daygrid-event-harness' + (isAbsolute ? ' fc-daygrid-event-harness-abs' : ''), key: generateSegKey(seg), ref: isMirror ? null : this.segHarnessRefs.createRef(generateSegUid(seg)), style: {
9988
+ nodes.push(y("div", { className: 'fc-daygrid-event-harness' + (isAbsolute ? ' fc-daygrid-event-harness-abs' : ''), key: generateSegKey$1(seg), ref: isMirror ? null : this.segHarnessRefs.createRef(generateSegUid$1(seg)), style: {
9989
9989
  visibility: isVisible ? '' : 'hidden',
9990
9990
  marginTop: isAbsolute ? '' : placement.marginTop,
9991
9991
  top: isAbsolute ? placement.absoluteTop : '',
9992
9992
  left,
9993
9993
  right,
9994
- } }, hasListItemDisplay(seg) ? (y(TableListItemEvent, Object.assign({ seg: seg, isDragging: isDragging, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange)))) : (y(TableBlockEvent, Object.assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange))))));
9994
+ } }, hasListItemDisplay$1(seg) ? (y(TableListItemEvent$1, Object.assign({ seg: seg, isDragging: isDragging, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange)))) : (y(TableBlockEvent$1, Object.assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange))))));
9995
9995
  }
9996
9996
  }
9997
9997
  return nodes;
@@ -10069,14 +10069,14 @@ class TableRow extends DateComponent {
10069
10069
  return this.props.cells.map((cell) => elMap[cell.key]);
10070
10070
  }
10071
10071
  }
10072
- TableRow.addStateEquality({
10072
+ TableRow$1.addStateEquality({
10073
10073
  segHeights: isPropsEqual,
10074
10074
  });
10075
- function buildMirrorPlacements(mirrorSegs, colPlacements) {
10075
+ function buildMirrorPlacements$1(mirrorSegs, colPlacements) {
10076
10076
  if (!mirrorSegs.length) {
10077
10077
  return [];
10078
10078
  }
10079
- let topsByInstanceId = buildAbsoluteTopHash(colPlacements); // TODO: cache this at first render?
10079
+ let topsByInstanceId = buildAbsoluteTopHash$1(colPlacements); // TODO: cache this at first render?
10080
10080
  return mirrorSegs.map((seg) => ({
10081
10081
  seg,
10082
10082
  isVisible: true,
@@ -10085,7 +10085,7 @@ function buildMirrorPlacements(mirrorSegs, colPlacements) {
10085
10085
  marginTop: 0,
10086
10086
  }));
10087
10087
  }
10088
- function buildAbsoluteTopHash(colPlacements) {
10088
+ function buildAbsoluteTopHash$1(colPlacements) {
10089
10089
  let topsByInstanceId = {};
10090
10090
  for (let placements of colPlacements) {
10091
10091
  for (let placement of placements) {
@@ -10095,15 +10095,15 @@ function buildAbsoluteTopHash(colPlacements) {
10095
10095
  return topsByInstanceId;
10096
10096
  }
10097
10097
 
10098
- class TableRows extends DateComponent {
10098
+ class TableRows$1 extends DateComponent {
10099
10099
  constructor() {
10100
10100
  super(...arguments);
10101
- this.splitBusinessHourSegs = memoize(splitSegsByRow);
10102
- this.splitBgEventSegs = memoize(splitSegsByRow);
10103
- this.splitFgEventSegs = memoize(splitSegsByRow);
10104
- this.splitDateSelectionSegs = memoize(splitSegsByRow);
10105
- this.splitEventDrag = memoize(splitInteractionByRow);
10106
- this.splitEventResize = memoize(splitInteractionByRow);
10101
+ this.splitBusinessHourSegs = memoize(splitSegsByRow$1);
10102
+ this.splitBgEventSegs = memoize(splitSegsByRow$1);
10103
+ this.splitFgEventSegs = memoize(splitSegsByRow$1);
10104
+ this.splitDateSelectionSegs = memoize(splitSegsByRow$1);
10105
+ this.splitEventDrag = memoize(splitInteractionByRow$1);
10106
+ this.splitEventResize = memoize(splitInteractionByRow$1);
10107
10107
  this.rowRefs = new RefMap();
10108
10108
  }
10109
10109
  render() {
@@ -10120,10 +10120,10 @@ class TableRows extends DateComponent {
10120
10120
  let cellMinHeight = (rowCnt >= 7 && props.clientWidth) ?
10121
10121
  props.clientWidth / context.options.aspectRatio / 6 :
10122
10122
  null;
10123
- return (y(NowTimer, { unit: "day" }, (nowDate, todayRange) => (y(_, null, props.cells.map((cells, row) => (y(TableRow, { ref: this.rowRefs.createRef(row), key: cells.length
10123
+ return (y(NowTimer, { unit: "day" }, (nowDate, todayRange) => (y(_, null, props.cells.map((cells, row) => (y(TableRow$1, { ref: this.rowRefs.createRef(row), key: cells.length
10124
10124
  ? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */
10125
10125
  : row // in case there are no cells (like when resource view is loading)
10126
- , showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: props.dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, cellMinHeight: cellMinHeight, forPrint: props.forPrint })))))));
10126
+ , showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: props.dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay$1) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, cellMinHeight: cellMinHeight, forPrint: props.forPrint })))))));
10127
10127
  }
10128
10128
  componentDidMount() {
10129
10129
  this.registerInteractiveComponent();
@@ -10192,11 +10192,11 @@ class TableRows extends DateComponent {
10192
10192
  return { start, end };
10193
10193
  }
10194
10194
  }
10195
- function isSegAllDay(seg) {
10195
+ function isSegAllDay$1(seg) {
10196
10196
  return seg.eventRange.def.allDay;
10197
10197
  }
10198
10198
 
10199
- class Table extends DateComponent {
10199
+ class Table$1 extends DateComponent {
10200
10200
  constructor() {
10201
10201
  super(...arguments);
10202
10202
  this.elRef = d();
@@ -10231,7 +10231,7 @@ class Table extends DateComponent {
10231
10231
  } },
10232
10232
  props.colGroupNode,
10233
10233
  y("tbody", { role: "presentation" },
10234
- y(TableRows, { dateProfile: props.dateProfile, cells: props.cells, renderRowIntro: props.renderRowIntro, showWeekNumbers: props.showWeekNumbers, clientWidth: props.clientWidth, clientHeight: props.clientHeight, businessHourSegs: props.businessHourSegs, bgEventSegs: props.bgEventSegs, fgEventSegs: props.fgEventSegs, dateSelectionSegs: props.dateSelectionSegs, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, forPrint: props.forPrint, isHitComboAllowed: props.isHitComboAllowed })))));
10234
+ y(TableRows$1, { dateProfile: props.dateProfile, cells: props.cells, renderRowIntro: props.renderRowIntro, showWeekNumbers: props.showWeekNumbers, clientWidth: props.clientWidth, clientHeight: props.clientHeight, businessHourSegs: props.businessHourSegs, bgEventSegs: props.bgEventSegs, fgEventSegs: props.fgEventSegs, dateSelectionSegs: props.dateSelectionSegs, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, forPrint: props.forPrint, isHitComboAllowed: props.isHitComboAllowed })))));
10235
10235
  }
10236
10236
  componentDidMount() {
10237
10237
  this.requestScrollReset();
@@ -10252,7 +10252,7 @@ class Table extends DateComponent {
10252
10252
  if (this.needsScrollReset &&
10253
10253
  this.props.clientWidth // sizes computed?
10254
10254
  ) {
10255
- const subjectEl = getScrollSubjectEl(this.elRef.current, this.props.dateProfile);
10255
+ const subjectEl = getScrollSubjectEl$1(this.elRef.current, this.props.dateProfile);
10256
10256
  if (subjectEl) {
10257
10257
  const originEl = subjectEl.closest('.fc-daygrid-body');
10258
10258
  const scrollEl = originEl.closest('.fc-scroller');
@@ -10264,7 +10264,7 @@ class Table extends DateComponent {
10264
10264
  }
10265
10265
  }
10266
10266
  }
10267
- function getScrollSubjectEl(containerEl, dateProfile) {
10267
+ function getScrollSubjectEl$1(containerEl, dateProfile) {
10268
10268
  let el;
10269
10269
  if (dateProfile.currentRangeUnit.match(/year|month/)) {
10270
10270
  el = containerEl.querySelector(`[data-date="${formatIsoMonthStr(dateProfile.currentDate)}-01"]`);
@@ -10277,7 +10277,7 @@ function getScrollSubjectEl(containerEl, dateProfile) {
10277
10277
  return el;
10278
10278
  }
10279
10279
 
10280
- class DayTableSlicer extends Slicer {
10280
+ class DayTableSlicer$1 extends Slicer {
10281
10281
  constructor() {
10282
10282
  super(...arguments);
10283
10283
  this.forceDayIfListItem = true;
@@ -10287,15 +10287,15 @@ class DayTableSlicer extends Slicer {
10287
10287
  }
10288
10288
  }
10289
10289
 
10290
- class DayTable extends DateComponent {
10290
+ class DayTable$1 extends DateComponent {
10291
10291
  constructor() {
10292
10292
  super(...arguments);
10293
- this.slicer = new DayTableSlicer();
10293
+ this.slicer = new DayTableSlicer$1();
10294
10294
  this.tableRef = d();
10295
10295
  }
10296
10296
  render() {
10297
10297
  let { props, context } = this;
10298
- return (y(Table, Object.assign({ ref: this.tableRef }, this.slicer.sliceProps(props, props.dateProfile, props.nextDayThreshold, context, props.dayTableModel), { dateProfile: props.dateProfile, cells: props.dayTableModel.cells, colGroupNode: props.colGroupNode, tableMinWidth: props.tableMinWidth, renderRowIntro: props.renderRowIntro, dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, showWeekNumbers: props.showWeekNumbers, expandRows: props.expandRows, headerAlignElRef: props.headerAlignElRef, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })));
10298
+ return (y(Table$1, Object.assign({ ref: this.tableRef }, this.slicer.sliceProps(props, props.dateProfile, props.nextDayThreshold, context, props.dayTableModel), { dateProfile: props.dateProfile, cells: props.dayTableModel.cells, colGroupNode: props.colGroupNode, tableMinWidth: props.tableMinWidth, renderRowIntro: props.renderRowIntro, dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, showWeekNumbers: props.showWeekNumbers, expandRows: props.expandRows, headerAlignElRef: props.headerAlignElRef, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })));
10299
10299
  }
10300
10300
  }
10301
10301
 
@@ -10312,7 +10312,7 @@ class DayTableView extends TableView {
10312
10312
  let { props } = this;
10313
10313
  let dayTableModel = this.buildDayTableModel(props.dateProfile, dateProfileGenerator);
10314
10314
  let headerContent = options.dayHeaders && (y(DayHeader, { ref: this.headerRef, dateProfile: props.dateProfile, dates: dayTableModel.headerDates, datesRepDistinctDays: dayTableModel.rowCnt === 1 }));
10315
- let bodyContent = (contentArg) => (y(DayTable, { ref: this.tableRef, dateProfile: props.dateProfile, dayTableModel: dayTableModel, businessHours: props.businessHours, dateSelection: props.dateSelection, eventStore: props.eventStore, eventUiBases: props.eventUiBases, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, nextDayThreshold: options.nextDayThreshold, colGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, dayMaxEvents: options.dayMaxEvents, dayMaxEventRows: options.dayMaxEventRows, showWeekNumbers: options.weekNumbers, expandRows: !props.isHeightAuto, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }));
10315
+ let bodyContent = (contentArg) => (y(DayTable$1, { ref: this.tableRef, dateProfile: props.dateProfile, dayTableModel: dayTableModel, businessHours: props.businessHours, dateSelection: props.dateSelection, eventStore: props.eventStore, eventUiBases: props.eventUiBases, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, nextDayThreshold: options.nextDayThreshold, colGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, dayMaxEvents: options.dayMaxEvents, dayMaxEventRows: options.dayMaxEventRows, showWeekNumbers: options.weekNumbers, expandRows: !props.isHeightAuto, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }));
10316
10316
  return options.dayMinWidth
10317
10317
  ? this.renderHScrollLayout(headerContent, bodyContent, dayTableModel.colCnt, options.dayMinWidth)
10318
10318
  : this.renderSimpleLayout(headerContent, bodyContent);
@@ -10361,8 +10361,8 @@ function buildDayTableRenderRange(props) {
10361
10361
  return { start, end };
10362
10362
  }
10363
10363
 
10364
- var css_248z$2 = ":root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:0 2px}.fc .fc-daygrid-day-bottom:after,.fc .fc-daygrid-day-bottom:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-more-link{border-radius:3px;cursor:pointer;line-height:1;margin-top:1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap;z-index:4}.fc .fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-more-link{float:left}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-more-link{float:right}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}";
10365
- injectStyles(css_248z$2);
10364
+ var css_248z$3 = ":root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:0 2px}.fc .fc-daygrid-day-bottom:after,.fc .fc-daygrid-day-bottom:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-more-link{border-radius:3px;cursor:pointer;line-height:1;margin-top:1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap;z-index:4}.fc .fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-more-link{float:left}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-more-link{float:right}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}";
10365
+ injectStyles(css_248z$3);
10366
10366
 
10367
10367
  var index$3 = createPlugin({
10368
10368
  name: '@fullcalendar/daygrid',
@@ -12290,7 +12290,7 @@ class ListViewHeaderRow extends BaseComponent {
12290
12290
  ...getDayClassNames(dayMeta, theme),
12291
12291
  ], elAttrs: {
12292
12292
  'data-date': formatDayString(dayDate),
12293
- }, renderProps: renderProps, generatorName: "dayHeaderContent", customGenerator: options.dayHeaderContent, defaultGenerator: renderInnerContent$1, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContent) => ( // TODO: force-hide top border based on :first-child
12293
+ }, renderProps: renderProps, generatorName: "dayHeaderContent", customGenerator: options.dayHeaderContent, defaultGenerator: renderInnerContent$2, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContent) => ( // TODO: force-hide top border based on :first-child
12294
12294
  y("th", { scope: "colgroup", colSpan: 3, id: cellId, "aria-labelledby": textId },
12295
12295
  y(InnerContent, { elTag: "div", elClasses: [
12296
12296
  'fc-list-day-cushion',
@@ -12298,7 +12298,7 @@ class ListViewHeaderRow extends BaseComponent {
12298
12298
  ] })))));
12299
12299
  }
12300
12300
  }
12301
- function renderInnerContent$1(props) {
12301
+ function renderInnerContent$2(props) {
12302
12302
  return (y(_, null,
12303
12303
  props.text && (y("a", Object.assign({ id: props.textId, className: "fc-list-day-text" }, props.navLinkAttrs), props.text)),
12304
12304
  props.sideText && ( /* not keyboard tabbable */y("a", Object.assign({ "aria-hidden": true, className: "fc-list-day-side-text" }, props.sideNavLinkAttrs), props.sideText))));
@@ -12525,8 +12525,8 @@ function groupSegsByDay(segs) {
12525
12525
  return segsByDay;
12526
12526
  }
12527
12527
 
12528
- var css_248z$1 = ":root{--fc-list-event-dot-width:10px;--fc-list-event-hover-bg-color:#f5f5f5}.fc-theme-standard .fc-list{border:1px solid var(--fc-border-color)}.fc .fc-list-empty{align-items:center;background-color:var(--fc-neutral-bg-color);display:flex;height:100%;justify-content:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{border-style:hidden;width:100%}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{background:var(--fc-page-bg-color);position:sticky;top:0}.fc .fc-list-table thead{left:-10000px;position:absolute}.fc .fc-list-table tbody>tr:first-child th{border-top:0}.fc .fc-list-table th{padding:0}.fc .fc-list-day-cushion,.fc .fc-list-table td{padding:8px 14px}.fc .fc-list-day-cushion:after{clear:both;content:\"\";display:table}.fc-theme-standard .fc-list-day-cushion{background-color:var(--fc-neutral-bg-color)}.fc-direction-ltr .fc-list-day-text,.fc-direction-rtl .fc-list-day-side-text{float:left}.fc-direction-ltr .fc-list-day-side-text,.fc-direction-rtl .fc-list-day-text{float:right}.fc-direction-ltr .fc-list-table .fc-list-event-graphic{padding-right:0}.fc-direction-rtl .fc-list-table .fc-list-event-graphic{padding-left:0}.fc .fc-list-event.fc-event-forced-url{cursor:pointer}.fc .fc-list-event:hover td{background-color:var(--fc-list-event-hover-bg-color)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{border:calc(var(--fc-list-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-list-event-dot-width)/2);box-sizing:content-box;display:inline-block;height:0;width:0}.fc .fc-list-event-title a{color:inherit;text-decoration:none}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline}";
12529
- injectStyles(css_248z$1);
12528
+ var css_248z$2 = ":root{--fc-list-event-dot-width:10px;--fc-list-event-hover-bg-color:#f5f5f5}.fc-theme-standard .fc-list{border:1px solid var(--fc-border-color)}.fc .fc-list-empty{align-items:center;background-color:var(--fc-neutral-bg-color);display:flex;height:100%;justify-content:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{border-style:hidden;width:100%}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{background:var(--fc-page-bg-color);position:sticky;top:0}.fc .fc-list-table thead{left:-10000px;position:absolute}.fc .fc-list-table tbody>tr:first-child th{border-top:0}.fc .fc-list-table th{padding:0}.fc .fc-list-day-cushion,.fc .fc-list-table td{padding:8px 14px}.fc .fc-list-day-cushion:after{clear:both;content:\"\";display:table}.fc-theme-standard .fc-list-day-cushion{background-color:var(--fc-neutral-bg-color)}.fc-direction-ltr .fc-list-day-text,.fc-direction-rtl .fc-list-day-side-text{float:left}.fc-direction-ltr .fc-list-day-side-text,.fc-direction-rtl .fc-list-day-text{float:right}.fc-direction-ltr .fc-list-table .fc-list-event-graphic{padding-right:0}.fc-direction-rtl .fc-list-table .fc-list-event-graphic{padding-left:0}.fc .fc-list-event.fc-event-forced-url{cursor:pointer}.fc .fc-list-event:hover td{background-color:var(--fc-list-event-hover-bg-color)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{border:calc(var(--fc-list-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-list-event-dot-width)/2);box-sizing:content-box;display:inline-block;height:0;width:0}.fc .fc-list-event-title a{color:inherit;text-decoration:none}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline}";
12529
+ injectStyles(css_248z$2);
12530
12530
 
12531
12531
  const OPTION_REFINERS$1 = {
12532
12532
  listDayFormat: createFalsableFormatter,
@@ -12574,6 +12574,844 @@ var index$1 = createPlugin({
12574
12574
  },
12575
12575
  });
12576
12576
 
12577
+ function splitSegsByRow(segs, rowCnt) {
12578
+ let byRow = [];
12579
+ for (let i = 0; i < rowCnt; i += 1) {
12580
+ byRow[i] = [];
12581
+ }
12582
+ for (let seg of segs) {
12583
+ byRow[seg.row].push(seg);
12584
+ }
12585
+ return byRow;
12586
+ }
12587
+ function splitSegsByFirstCol(segs, colCnt) {
12588
+ let byCol = [];
12589
+ for (let i = 0; i < colCnt; i += 1) {
12590
+ byCol[i] = [];
12591
+ }
12592
+ for (let seg of segs) {
12593
+ byCol[seg.firstCol].push(seg);
12594
+ }
12595
+ return byCol;
12596
+ }
12597
+ function splitInteractionByRow(ui, rowCnt) {
12598
+ let byRow = [];
12599
+ if (!ui) {
12600
+ for (let i = 0; i < rowCnt; i += 1) {
12601
+ byRow[i] = null;
12602
+ }
12603
+ }
12604
+ else {
12605
+ for (let i = 0; i < rowCnt; i += 1) {
12606
+ byRow[i] = {
12607
+ affectedInstances: ui.affectedInstances,
12608
+ isEvent: ui.isEvent,
12609
+ segs: [],
12610
+ };
12611
+ }
12612
+ for (let seg of ui.segs) {
12613
+ byRow[seg.row].segs.push(seg);
12614
+ }
12615
+ }
12616
+ return byRow;
12617
+ }
12618
+
12619
+ const DEFAULT_TABLE_EVENT_TIME_FORMAT = createFormatter({
12620
+ hour: 'numeric',
12621
+ minute: '2-digit',
12622
+ omitZeroMinute: true,
12623
+ meridiem: 'narrow',
12624
+ });
12625
+ function hasListItemDisplay(seg) {
12626
+ let { display } = seg.eventRange.ui;
12627
+ return display === 'list-item' || (display === 'auto' &&
12628
+ !seg.eventRange.def.allDay &&
12629
+ seg.firstCol === seg.lastCol && // can't be multi-day
12630
+ seg.isStart && // "
12631
+ seg.isEnd // "
12632
+ );
12633
+ }
12634
+
12635
+ class TableBlockEvent extends BaseComponent {
12636
+ render() {
12637
+ let { props } = this;
12638
+ return (y(StandardEvent, Object.assign({}, props, { elClasses: ['fc-daygrid-event', 'fc-daygrid-block-event', 'fc-h-event'], defaultTimeFormat: DEFAULT_TABLE_EVENT_TIME_FORMAT, defaultDisplayEventEnd: props.defaultDisplayEventEnd, disableResizing: !props.seg.eventRange.def.allDay })));
12639
+ }
12640
+ }
12641
+
12642
+ class TableListItemEvent extends BaseComponent {
12643
+ render() {
12644
+ let { props, context } = this;
12645
+ let { options } = context;
12646
+ let { seg } = props;
12647
+ let timeFormat = options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;
12648
+ let timeText = buildSegTimeText(seg, timeFormat, context, true, props.defaultDisplayEventEnd);
12649
+ return (y(EventContainer, Object.assign({}, props, { elTag: "a", elClasses: ['fc-daygrid-event', 'fc-daygrid-dot-event'], elAttrs: getSegAnchorAttrs(props.seg, context), defaultGenerator: renderInnerContent$1, timeText: timeText, isResizing: false, isDateSelecting: false })));
12650
+ }
12651
+ }
12652
+ function renderInnerContent$1(renderProps) {
12653
+ return (y(_, null,
12654
+ y("div", { className: "fc-daygrid-event-dot", style: { borderColor: renderProps.borderColor || renderProps.backgroundColor } }),
12655
+ renderProps.timeText && (y("div", { className: "fc-event-time" }, renderProps.timeText)),
12656
+ y("div", { className: "fc-event-title" }, renderProps.event.title || y(_, null, "\u00A0"))));
12657
+ }
12658
+
12659
+ class TableCellMoreLink extends BaseComponent {
12660
+ constructor() {
12661
+ super(...arguments);
12662
+ this.compileSegs = memoize(compileSegs);
12663
+ }
12664
+ render() {
12665
+ let { props } = this;
12666
+ let { allSegs, invisibleSegs } = this.compileSegs(props.singlePlacements);
12667
+ return (y(MoreLinkContainer, { elClasses: ['fc-daygrid-more-link'], dateProfile: props.dateProfile, todayRange: props.todayRange, allDayDate: props.allDayDate, moreCnt: props.moreCnt, allSegs: allSegs, hiddenSegs: invisibleSegs, alignmentElRef: props.alignmentElRef, alignGridTop: props.alignGridTop, extraDateSpan: props.extraDateSpan, popoverContent: () => {
12668
+ let isForcedInvisible = (props.eventDrag ? props.eventDrag.affectedInstances : null) ||
12669
+ (props.eventResize ? props.eventResize.affectedInstances : null) ||
12670
+ {};
12671
+ return (y(_, null, allSegs.map((seg) => {
12672
+ let instanceId = seg.eventRange.instance.instanceId;
12673
+ return (y("div", { className: "fc-daygrid-event-harness", key: instanceId, style: {
12674
+ visibility: isForcedInvisible[instanceId] ? 'hidden' : '',
12675
+ } }, hasListItemDisplay(seg) ? (y(TableListItemEvent, Object.assign({ seg: seg, isDragging: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange)))) : (y(TableBlockEvent, Object.assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange))))));
12676
+ })));
12677
+ } }));
12678
+ }
12679
+ }
12680
+ function compileSegs(singlePlacements) {
12681
+ let allSegs = [];
12682
+ let invisibleSegs = [];
12683
+ for (let placement of singlePlacements) {
12684
+ allSegs.push(placement.seg);
12685
+ if (!placement.isVisible) {
12686
+ invisibleSegs.push(placement.seg);
12687
+ }
12688
+ }
12689
+ return { allSegs, invisibleSegs };
12690
+ }
12691
+
12692
+ const DEFAULT_WEEK_NUM_FORMAT$1 = createFormatter({ week: 'narrow' });
12693
+ class TableCell extends DateComponent {
12694
+ constructor() {
12695
+ super(...arguments);
12696
+ this.rootElRef = d();
12697
+ this.state = {
12698
+ dayNumberId: getUniqueDomId(),
12699
+ };
12700
+ this.handleRootEl = (el) => {
12701
+ setRef(this.rootElRef, el);
12702
+ setRef(this.props.elRef, el);
12703
+ };
12704
+ }
12705
+ render() {
12706
+ let { context, props, state, rootElRef } = this;
12707
+ let { options, dateEnv } = context;
12708
+ let { date, dateProfile } = props;
12709
+ // TODO: memoize this?
12710
+ const isMonthStart = props.showDayNumber &&
12711
+ shouldDisplayMonthStart(date, dateProfile.currentRange, dateEnv);
12712
+ return (y(DayCellContainer, { elTag: "td", elRef: this.handleRootEl, elClasses: [
12713
+ 'fc-daygrid-day',
12714
+ ...(props.extraClassNames || []),
12715
+ ], elAttrs: Object.assign(Object.assign(Object.assign({}, props.extraDataAttrs), (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})), { role: 'gridcell' }), defaultGenerator: renderTopInner, date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, isMonthStart: isMonthStart, extraRenderProps: props.extraRenderProps }, (InnerContent, renderProps) => (y("div", { ref: props.innerElRef, className: "fc-daygrid-day-frame fc-scrollgrid-sync-inner", style: { minHeight: props.minHeight } },
12716
+ props.showWeekNumber && (y(WeekNumberContainer, { elTag: "a", elClasses: ['fc-daygrid-week-number'], elAttrs: buildNavLinkAttrs(context, date, 'week'), date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT$1 })),
12717
+ !renderProps.isDisabled &&
12718
+ (props.showDayNumber || hasCustomDayCellContent(options) || props.forceDayTop) ? (y("div", { className: "fc-daygrid-day-top" },
12719
+ y(InnerContent, { elTag: "a", elClasses: [
12720
+ 'fc-daygrid-day-number',
12721
+ isMonthStart && 'fc-daygrid-month-start',
12722
+ ], elAttrs: Object.assign(Object.assign({}, buildNavLinkAttrs(context, date)), { id: state.dayNumberId }) }))) : props.showDayNumber ? (
12723
+ // for creating correct amount of space (see issue #7162)
12724
+ y("div", { className: "fc-daygrid-day-top", style: { visibility: 'hidden' } },
12725
+ y("a", { className: "fc-daygrid-day-number" }, "\u00A0"))) : undefined,
12726
+ y("div", { className: "fc-daygrid-day-events", ref: props.fgContentElRef },
12727
+ props.fgContent,
12728
+ y("div", { className: "fc-daygrid-day-bottom", style: { marginTop: props.moreMarginTop } },
12729
+ y(TableCellMoreLink, { allDayDate: date, singlePlacements: props.singlePlacements, moreCnt: props.moreCnt, alignmentElRef: rootElRef, alignGridTop: !props.showDayNumber, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange }))),
12730
+ y("div", { className: "fc-daygrid-day-bg" }, props.bgContent)))));
12731
+ }
12732
+ }
12733
+ function renderTopInner(props) {
12734
+ return props.dayNumberText || y(_, null, "\u00A0");
12735
+ }
12736
+ function shouldDisplayMonthStart(date, currentRange, dateEnv) {
12737
+ const { start: currentStart, end: currentEnd } = currentRange;
12738
+ const currentEndIncl = addMs(currentEnd, -1);
12739
+ const currentFirstYear = dateEnv.getYear(currentStart);
12740
+ const currentFirstMonth = dateEnv.getMonth(currentStart);
12741
+ const currentLastYear = dateEnv.getYear(currentEndIncl);
12742
+ const currentLastMonth = dateEnv.getMonth(currentEndIncl);
12743
+ // spans more than one month?
12744
+ return !(currentFirstYear === currentLastYear && currentFirstMonth === currentLastMonth) &&
12745
+ Boolean(
12746
+ // first date in current view?
12747
+ date.valueOf() === currentStart.valueOf() ||
12748
+ // a month-start that's within the current range?
12749
+ (dateEnv.getDay(date) === 1 && date.valueOf() < currentEnd.valueOf()));
12750
+ }
12751
+
12752
+ function generateSegKey(seg) {
12753
+ return seg.eventRange.instance.instanceId + ':' + seg.firstCol;
12754
+ }
12755
+ function generateSegUid(seg) {
12756
+ return generateSegKey(seg) + ':' + seg.lastCol;
12757
+ }
12758
+ function computeFgSegPlacement(segs, // assumed already sorted
12759
+ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells) {
12760
+ let hierarchy = new DayGridSegHierarchy((segEntry) => {
12761
+ // TODO: more DRY with generateSegUid
12762
+ let segUid = segs[segEntry.index].eventRange.instance.instanceId +
12763
+ ':' + segEntry.span.start +
12764
+ ':' + (segEntry.span.end - 1);
12765
+ // if no thickness known, assume 1 (if 0, so small it always fits)
12766
+ return segHeights[segUid] || 1;
12767
+ });
12768
+ hierarchy.allowReslicing = true;
12769
+ hierarchy.strictOrder = strictOrder;
12770
+ if (dayMaxEvents === true || dayMaxEventRows === true) {
12771
+ hierarchy.maxCoord = maxContentHeight;
12772
+ hierarchy.hiddenConsumes = true;
12773
+ }
12774
+ else if (typeof dayMaxEvents === 'number') {
12775
+ hierarchy.maxStackCnt = dayMaxEvents;
12776
+ }
12777
+ else if (typeof dayMaxEventRows === 'number') {
12778
+ hierarchy.maxStackCnt = dayMaxEventRows;
12779
+ hierarchy.hiddenConsumes = true;
12780
+ }
12781
+ // create segInputs only for segs with known heights
12782
+ let segInputs = [];
12783
+ let unknownHeightSegs = [];
12784
+ for (let i = 0; i < segs.length; i += 1) {
12785
+ let seg = segs[i];
12786
+ let segUid = generateSegUid(seg);
12787
+ let eventHeight = segHeights[segUid];
12788
+ if (eventHeight != null) {
12789
+ segInputs.push({
12790
+ index: i,
12791
+ span: {
12792
+ start: seg.firstCol,
12793
+ end: seg.lastCol + 1,
12794
+ },
12795
+ });
12796
+ }
12797
+ else {
12798
+ unknownHeightSegs.push(seg);
12799
+ }
12800
+ }
12801
+ let hiddenEntries = hierarchy.addSegs(segInputs);
12802
+ let segRects = hierarchy.toRects();
12803
+ let { singleColPlacements, multiColPlacements, leftoverMargins } = placeRects(segRects, segs, cells);
12804
+ let moreCnts = [];
12805
+ let moreMarginTops = [];
12806
+ // add segs with unknown heights
12807
+ for (let seg of unknownHeightSegs) {
12808
+ multiColPlacements[seg.firstCol].push({
12809
+ seg,
12810
+ isVisible: false,
12811
+ isAbsolute: true,
12812
+ absoluteTop: 0,
12813
+ marginTop: 0,
12814
+ });
12815
+ for (let col = seg.firstCol; col <= seg.lastCol; col += 1) {
12816
+ singleColPlacements[col].push({
12817
+ seg: resliceSeg(seg, col, col + 1, cells),
12818
+ isVisible: false,
12819
+ isAbsolute: false,
12820
+ absoluteTop: 0,
12821
+ marginTop: 0,
12822
+ });
12823
+ }
12824
+ }
12825
+ // add the hidden entries
12826
+ for (let col = 0; col < cells.length; col += 1) {
12827
+ moreCnts.push(0);
12828
+ }
12829
+ for (let hiddenEntry of hiddenEntries) {
12830
+ let seg = segs[hiddenEntry.index];
12831
+ let hiddenSpan = hiddenEntry.span;
12832
+ multiColPlacements[hiddenSpan.start].push({
12833
+ seg: resliceSeg(seg, hiddenSpan.start, hiddenSpan.end, cells),
12834
+ isVisible: false,
12835
+ isAbsolute: true,
12836
+ absoluteTop: 0,
12837
+ marginTop: 0,
12838
+ });
12839
+ for (let col = hiddenSpan.start; col < hiddenSpan.end; col += 1) {
12840
+ moreCnts[col] += 1;
12841
+ singleColPlacements[col].push({
12842
+ seg: resliceSeg(seg, col, col + 1, cells),
12843
+ isVisible: false,
12844
+ isAbsolute: false,
12845
+ absoluteTop: 0,
12846
+ marginTop: 0,
12847
+ });
12848
+ }
12849
+ }
12850
+ // deal with leftover margins
12851
+ for (let col = 0; col < cells.length; col += 1) {
12852
+ moreMarginTops.push(leftoverMargins[col]);
12853
+ }
12854
+ return { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops };
12855
+ }
12856
+ // rects ordered by top coord, then left
12857
+ function placeRects(allRects, segs, cells) {
12858
+ let rectsByEachCol = groupRectsByEachCol(allRects, cells.length);
12859
+ let singleColPlacements = [];
12860
+ let multiColPlacements = [];
12861
+ let leftoverMargins = [];
12862
+ for (let col = 0; col < cells.length; col += 1) {
12863
+ let rects = rectsByEachCol[col];
12864
+ // compute all static segs in singlePlacements
12865
+ let singlePlacements = [];
12866
+ let currentHeight = 0;
12867
+ let currentMarginTop = 0;
12868
+ for (let rect of rects) {
12869
+ let seg = segs[rect.index];
12870
+ singlePlacements.push({
12871
+ seg: resliceSeg(seg, col, col + 1, cells),
12872
+ isVisible: true,
12873
+ isAbsolute: false,
12874
+ absoluteTop: rect.levelCoord,
12875
+ marginTop: rect.levelCoord - currentHeight,
12876
+ });
12877
+ currentHeight = rect.levelCoord + rect.thickness;
12878
+ }
12879
+ // compute mixed static/absolute segs in multiPlacements
12880
+ let multiPlacements = [];
12881
+ currentHeight = 0;
12882
+ currentMarginTop = 0;
12883
+ for (let rect of rects) {
12884
+ let seg = segs[rect.index];
12885
+ let isAbsolute = rect.span.end - rect.span.start > 1; // multi-column?
12886
+ let isFirstCol = rect.span.start === col;
12887
+ currentMarginTop += rect.levelCoord - currentHeight; // amount of space since bottom of previous seg
12888
+ currentHeight = rect.levelCoord + rect.thickness; // height will now be bottom of current seg
12889
+ if (isAbsolute) {
12890
+ currentMarginTop += rect.thickness;
12891
+ if (isFirstCol) {
12892
+ multiPlacements.push({
12893
+ seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),
12894
+ isVisible: true,
12895
+ isAbsolute: true,
12896
+ absoluteTop: rect.levelCoord,
12897
+ marginTop: 0,
12898
+ });
12899
+ }
12900
+ }
12901
+ else if (isFirstCol) {
12902
+ multiPlacements.push({
12903
+ seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),
12904
+ isVisible: true,
12905
+ isAbsolute: false,
12906
+ absoluteTop: rect.levelCoord,
12907
+ marginTop: currentMarginTop, // claim the margin
12908
+ });
12909
+ currentMarginTop = 0;
12910
+ }
12911
+ }
12912
+ singleColPlacements.push(singlePlacements);
12913
+ multiColPlacements.push(multiPlacements);
12914
+ leftoverMargins.push(currentMarginTop);
12915
+ }
12916
+ return { singleColPlacements, multiColPlacements, leftoverMargins };
12917
+ }
12918
+ function groupRectsByEachCol(rects, colCnt) {
12919
+ let rectsByEachCol = [];
12920
+ for (let col = 0; col < colCnt; col += 1) {
12921
+ rectsByEachCol.push([]);
12922
+ }
12923
+ for (let rect of rects) {
12924
+ for (let col = rect.span.start; col < rect.span.end; col += 1) {
12925
+ rectsByEachCol[col].push(rect);
12926
+ }
12927
+ }
12928
+ return rectsByEachCol;
12929
+ }
12930
+ function resliceSeg(seg, spanStart, spanEnd, cells) {
12931
+ if (seg.firstCol === spanStart && seg.lastCol === spanEnd - 1) {
12932
+ return seg;
12933
+ }
12934
+ let eventRange = seg.eventRange;
12935
+ let origRange = eventRange.range;
12936
+ let slicedRange = intersectRanges(origRange, {
12937
+ start: cells[spanStart].date,
12938
+ end: addDays(cells[spanEnd - 1].date, 1),
12939
+ });
12940
+ return Object.assign(Object.assign({}, seg), { firstCol: spanStart, lastCol: spanEnd - 1, eventRange: {
12941
+ def: eventRange.def,
12942
+ ui: Object.assign(Object.assign({}, eventRange.ui), { durationEditable: false }),
12943
+ instance: eventRange.instance,
12944
+ range: slicedRange,
12945
+ }, isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(), isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf() });
12946
+ }
12947
+ class DayGridSegHierarchy extends SegHierarchy {
12948
+ constructor() {
12949
+ super(...arguments);
12950
+ // config
12951
+ this.hiddenConsumes = false;
12952
+ // allows us to keep hidden entries in the hierarchy so they take up space
12953
+ this.forceHidden = {};
12954
+ }
12955
+ addSegs(segInputs) {
12956
+ const hiddenSegs = super.addSegs(segInputs);
12957
+ const { entriesByLevel } = this;
12958
+ const excludeHidden = (entry) => !this.forceHidden[buildEntryKey(entry)];
12959
+ // remove the forced-hidden segs
12960
+ for (let level = 0; level < entriesByLevel.length; level += 1) {
12961
+ entriesByLevel[level] = entriesByLevel[level].filter(excludeHidden);
12962
+ }
12963
+ return hiddenSegs;
12964
+ }
12965
+ handleInvalidInsertion(insertion, entry, hiddenEntries) {
12966
+ const { entriesByLevel, forceHidden } = this;
12967
+ const { touchingEntry, touchingLevel, touchingLateral } = insertion;
12968
+ // the entry that the new insertion is touching must be hidden
12969
+ if (this.hiddenConsumes && touchingEntry) {
12970
+ const touchingEntryId = buildEntryKey(touchingEntry);
12971
+ if (!forceHidden[touchingEntryId]) {
12972
+ if (this.allowReslicing) {
12973
+ // split up the touchingEntry, reinsert it
12974
+ const hiddenEntry = Object.assign(Object.assign({}, touchingEntry), { span: intersectSpans(touchingEntry.span, entry.span) });
12975
+ // reinsert the area that turned into a "more" link (so no other entries try to
12976
+ // occupy the space) but mark it forced-hidden
12977
+ const hiddenEntryId = buildEntryKey(hiddenEntry);
12978
+ forceHidden[hiddenEntryId] = true;
12979
+ entriesByLevel[touchingLevel][touchingLateral] = hiddenEntry;
12980
+ hiddenEntries.push(hiddenEntry);
12981
+ this.splitEntry(touchingEntry, entry, hiddenEntries);
12982
+ }
12983
+ else {
12984
+ forceHidden[touchingEntryId] = true;
12985
+ hiddenEntries.push(touchingEntry);
12986
+ }
12987
+ }
12988
+ }
12989
+ // will try to reslice...
12990
+ super.handleInvalidInsertion(insertion, entry, hiddenEntries);
12991
+ }
12992
+ }
12993
+
12994
+ class TableRow extends DateComponent {
12995
+ constructor() {
12996
+ super(...arguments);
12997
+ this.cellElRefs = new RefMap(); // the <td>
12998
+ this.frameElRefs = new RefMap(); // the fc-daygrid-day-frame
12999
+ this.fgElRefs = new RefMap(); // the fc-daygrid-day-events
13000
+ this.segHarnessRefs = new RefMap(); // indexed by "instanceId:firstCol"
13001
+ this.rootElRef = d();
13002
+ this.state = {
13003
+ framePositions: null,
13004
+ maxContentHeight: null,
13005
+ segHeights: {},
13006
+ };
13007
+ this.handleResize = (isForced) => {
13008
+ if (isForced) {
13009
+ this.updateSizing(true); // isExternal=true
13010
+ }
13011
+ };
13012
+ }
13013
+ render() {
13014
+ let { props, state, context } = this;
13015
+ let { options } = context;
13016
+ let colCnt = props.cells.length;
13017
+ let businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt);
13018
+ let bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt);
13019
+ let highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt);
13020
+ let mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt);
13021
+ let { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops } = computeFgSegPlacement(sortEventSegs(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.segHeights, state.maxContentHeight, props.cells);
13022
+ let isForcedInvisible = // TODO: messy way to compute this
13023
+ (props.eventDrag && props.eventDrag.affectedInstances) ||
13024
+ (props.eventResize && props.eventResize.affectedInstances) ||
13025
+ {};
13026
+ return (y("tr", { ref: this.rootElRef, role: "row" },
13027
+ props.renderIntro && props.renderIntro(),
13028
+ props.cells.map((cell, col) => {
13029
+ let normalFgNodes = this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);
13030
+ let mirrorFgNodes = this.renderFgSegs(col, buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);
13031
+ return (y(TableCell, { key: cell.key, elRef: this.cellElRefs.createRef(cell.key), innerElRef: this.frameElRefs.createRef(cell.key) /* FF <td> problem, but okay to use for left/right. TODO: rename prop */, dateProfile: props.dateProfile, date: cell.date, showDayNumber: props.showDayNumbers, showWeekNumber: props.showWeekNumbers && col === 0, forceDayTop: props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */, todayRange: props.todayRange, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, extraRenderProps: cell.extraRenderProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, moreCnt: moreCnts[col], moreMarginTop: moreMarginTops[col], singlePlacements: singleColPlacements[col], fgContentElRef: this.fgElRefs.createRef(cell.key), fgContent: ( // Fragment scopes the keys
13032
+ y(_, null,
13033
+ y(_, null, normalFgNodes),
13034
+ y(_, null, mirrorFgNodes))), bgContent: ( // Fragment scopes the keys
13035
+ y(_, null,
13036
+ this.renderFillSegs(highlightSegsByCol[col], 'highlight'),
13037
+ this.renderFillSegs(businessHoursByCol[col], 'non-business'),
13038
+ this.renderFillSegs(bgEventSegsByCol[col], 'bg-event'))), minHeight: props.cellMinHeight }));
13039
+ })));
13040
+ }
13041
+ componentDidMount() {
13042
+ this.updateSizing(true);
13043
+ this.context.addResizeHandler(this.handleResize);
13044
+ }
13045
+ componentDidUpdate(prevProps, prevState) {
13046
+ let currentProps = this.props;
13047
+ this.updateSizing(!isPropsEqual(prevProps, currentProps));
13048
+ }
13049
+ componentWillUnmount() {
13050
+ this.context.removeResizeHandler(this.handleResize);
13051
+ }
13052
+ getHighlightSegs() {
13053
+ let { props } = this;
13054
+ if (props.eventDrag && props.eventDrag.segs.length) { // messy check
13055
+ return props.eventDrag.segs;
13056
+ }
13057
+ if (props.eventResize && props.eventResize.segs.length) { // messy check
13058
+ return props.eventResize.segs;
13059
+ }
13060
+ return props.dateSelectionSegs;
13061
+ }
13062
+ getMirrorSegs() {
13063
+ let { props } = this;
13064
+ if (props.eventResize && props.eventResize.segs.length) { // messy check
13065
+ return props.eventResize.segs;
13066
+ }
13067
+ return [];
13068
+ }
13069
+ renderFgSegs(col, segPlacements, todayRange, isForcedInvisible, isDragging, isResizing, isDateSelecting) {
13070
+ let { context } = this;
13071
+ let { eventSelection } = this.props;
13072
+ let { framePositions } = this.state;
13073
+ let defaultDisplayEventEnd = this.props.cells.length === 1; // colCnt === 1
13074
+ let isMirror = isDragging || isResizing || isDateSelecting;
13075
+ let nodes = [];
13076
+ if (framePositions) {
13077
+ for (let placement of segPlacements) {
13078
+ let { seg } = placement;
13079
+ let { instanceId } = seg.eventRange.instance;
13080
+ let isVisible = placement.isVisible && !isForcedInvisible[instanceId];
13081
+ let isAbsolute = placement.isAbsolute;
13082
+ let left = '';
13083
+ let right = '';
13084
+ if (isAbsolute) {
13085
+ if (context.isRtl) {
13086
+ right = 0;
13087
+ left = framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol];
13088
+ }
13089
+ else {
13090
+ left = 0;
13091
+ right = framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol];
13092
+ }
13093
+ }
13094
+ /*
13095
+ known bug: events that are force to be list-item but span multiple days still take up space in later columns
13096
+ todo: in print view, for multi-day events, don't display title within non-start/end segs
13097
+ */
13098
+ nodes.push(y("div", { className: 'fc-daygrid-event-harness' + (isAbsolute ? ' fc-daygrid-event-harness-abs' : ''), key: generateSegKey(seg), ref: isMirror ? null : this.segHarnessRefs.createRef(generateSegUid(seg)), style: {
13099
+ visibility: isVisible ? '' : 'hidden',
13100
+ marginTop: isAbsolute ? '' : placement.marginTop,
13101
+ top: isAbsolute ? placement.absoluteTop : '',
13102
+ left,
13103
+ right,
13104
+ } }, hasListItemDisplay(seg) ? (y(TableListItemEvent, Object.assign({ seg: seg, isDragging: isDragging, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange)))) : (y(TableBlockEvent, Object.assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange))))));
13105
+ }
13106
+ }
13107
+ return nodes;
13108
+ }
13109
+ renderFillSegs(segs, fillType) {
13110
+ let { isRtl } = this.context;
13111
+ let { todayRange } = this.props;
13112
+ let { framePositions } = this.state;
13113
+ let nodes = [];
13114
+ if (framePositions) {
13115
+ for (let seg of segs) {
13116
+ let leftRightCss = isRtl ? {
13117
+ right: 0,
13118
+ left: framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol],
13119
+ } : {
13120
+ left: 0,
13121
+ right: framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol],
13122
+ };
13123
+ nodes.push(y("div", { key: buildEventRangeKey(seg.eventRange), className: "fc-daygrid-bg-harness", style: leftRightCss }, fillType === 'bg-event' ?
13124
+ y(BgEvent, Object.assign({ seg: seg }, getSegMeta(seg, todayRange))) :
13125
+ renderFill(fillType)));
13126
+ }
13127
+ }
13128
+ return y(_, {}, ...nodes);
13129
+ }
13130
+ updateSizing(isExternalSizingChange) {
13131
+ let { props, state, frameElRefs } = this;
13132
+ if (!props.forPrint &&
13133
+ props.clientWidth !== null // positioning ready?
13134
+ ) {
13135
+ if (isExternalSizingChange) {
13136
+ let frameEls = props.cells.map((cell) => frameElRefs.currentMap[cell.key]);
13137
+ if (frameEls.length) {
13138
+ let originEl = this.rootElRef.current;
13139
+ let newPositionCache = new PositionCache(originEl, frameEls, true, // isHorizontal
13140
+ false);
13141
+ if (!state.framePositions || !state.framePositions.similarTo(newPositionCache)) {
13142
+ this.setState({
13143
+ framePositions: new PositionCache(originEl, frameEls, true, // isHorizontal
13144
+ false),
13145
+ });
13146
+ }
13147
+ }
13148
+ }
13149
+ const oldSegHeights = this.state.segHeights;
13150
+ const newSegHeights = this.querySegHeights();
13151
+ const limitByContentHeight = props.dayMaxEvents === true || props.dayMaxEventRows === true;
13152
+ this.safeSetState({
13153
+ // HACK to prevent oscillations of events being shown/hidden from max-event-rows
13154
+ // Essentially, once you compute an element's height, never null-out.
13155
+ // TODO: always display all events, as visibility:hidden?
13156
+ segHeights: Object.assign(Object.assign({}, oldSegHeights), newSegHeights),
13157
+ maxContentHeight: limitByContentHeight ? this.computeMaxContentHeight() : null,
13158
+ });
13159
+ }
13160
+ }
13161
+ querySegHeights() {
13162
+ let segElMap = this.segHarnessRefs.currentMap;
13163
+ let segHeights = {};
13164
+ // get the max height amongst instance segs
13165
+ for (let segUid in segElMap) {
13166
+ let height = Math.round(segElMap[segUid].getBoundingClientRect().height);
13167
+ segHeights[segUid] = Math.max(segHeights[segUid] || 0, height);
13168
+ }
13169
+ return segHeights;
13170
+ }
13171
+ computeMaxContentHeight() {
13172
+ let firstKey = this.props.cells[0].key;
13173
+ let cellEl = this.cellElRefs.currentMap[firstKey];
13174
+ let fcContainerEl = this.fgElRefs.currentMap[firstKey];
13175
+ return cellEl.getBoundingClientRect().bottom - fcContainerEl.getBoundingClientRect().top;
13176
+ }
13177
+ getCellEls() {
13178
+ let elMap = this.cellElRefs.currentMap;
13179
+ return this.props.cells.map((cell) => elMap[cell.key]);
13180
+ }
13181
+ }
13182
+ TableRow.addStateEquality({
13183
+ segHeights: isPropsEqual,
13184
+ });
13185
+ function buildMirrorPlacements(mirrorSegs, colPlacements) {
13186
+ if (!mirrorSegs.length) {
13187
+ return [];
13188
+ }
13189
+ let topsByInstanceId = buildAbsoluteTopHash(colPlacements); // TODO: cache this at first render?
13190
+ return mirrorSegs.map((seg) => ({
13191
+ seg,
13192
+ isVisible: true,
13193
+ isAbsolute: true,
13194
+ absoluteTop: topsByInstanceId[seg.eventRange.instance.instanceId],
13195
+ marginTop: 0,
13196
+ }));
13197
+ }
13198
+ function buildAbsoluteTopHash(colPlacements) {
13199
+ let topsByInstanceId = {};
13200
+ for (let placements of colPlacements) {
13201
+ for (let placement of placements) {
13202
+ topsByInstanceId[placement.seg.eventRange.instance.instanceId] = placement.absoluteTop;
13203
+ }
13204
+ }
13205
+ return topsByInstanceId;
13206
+ }
13207
+
13208
+ class TableRows extends DateComponent {
13209
+ constructor() {
13210
+ super(...arguments);
13211
+ this.splitBusinessHourSegs = memoize(splitSegsByRow);
13212
+ this.splitBgEventSegs = memoize(splitSegsByRow);
13213
+ this.splitFgEventSegs = memoize(splitSegsByRow);
13214
+ this.splitDateSelectionSegs = memoize(splitSegsByRow);
13215
+ this.splitEventDrag = memoize(splitInteractionByRow);
13216
+ this.splitEventResize = memoize(splitInteractionByRow);
13217
+ this.rowRefs = new RefMap();
13218
+ }
13219
+ render() {
13220
+ let { props, context } = this;
13221
+ let rowCnt = props.cells.length;
13222
+ let businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, rowCnt);
13223
+ let bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, rowCnt);
13224
+ let fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, rowCnt);
13225
+ let dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, rowCnt);
13226
+ let eventDragByRow = this.splitEventDrag(props.eventDrag, rowCnt);
13227
+ let eventResizeByRow = this.splitEventResize(props.eventResize, rowCnt);
13228
+ // for DayGrid view with many rows, force a min-height on cells so doesn't appear squished
13229
+ // choose 7 because a month view will have max 6 rows
13230
+ let cellMinHeight = (rowCnt >= 7 && props.clientWidth) ?
13231
+ props.clientWidth / context.options.aspectRatio / 6 :
13232
+ null;
13233
+ return (y(NowTimer, { unit: "day" }, (nowDate, todayRange) => (y(_, null, props.cells.map((cells, row) => (y(TableRow, { ref: this.rowRefs.createRef(row), key: cells.length
13234
+ ? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */
13235
+ : row // in case there are no cells (like when resource view is loading)
13236
+ , showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: props.dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, cellMinHeight: cellMinHeight, forPrint: props.forPrint })))))));
13237
+ }
13238
+ componentDidMount() {
13239
+ this.registerInteractiveComponent();
13240
+ }
13241
+ componentDidUpdate() {
13242
+ // for if started with zero cells
13243
+ this.registerInteractiveComponent();
13244
+ }
13245
+ registerInteractiveComponent() {
13246
+ if (!this.rootEl) {
13247
+ // HACK: need a daygrid wrapper parent to do positioning
13248
+ // NOTE: a daygrid resource view w/o resources can have zero cells
13249
+ const firstCellEl = this.rowRefs.currentMap[0].getCellEls()[0];
13250
+ const rootEl = firstCellEl ? firstCellEl.closest('.fc-daygrid-body') : null;
13251
+ if (rootEl) {
13252
+ this.rootEl = rootEl;
13253
+ this.context.registerInteractiveComponent(this, {
13254
+ el: rootEl,
13255
+ isHitComboAllowed: this.props.isHitComboAllowed,
13256
+ });
13257
+ }
13258
+ }
13259
+ }
13260
+ componentWillUnmount() {
13261
+ if (this.rootEl) {
13262
+ this.context.unregisterInteractiveComponent(this);
13263
+ this.rootEl = null;
13264
+ }
13265
+ }
13266
+ // Hit System
13267
+ // ----------------------------------------------------------------------------------------------------
13268
+ prepareHits() {
13269
+ this.rowPositions = new PositionCache(this.rootEl, this.rowRefs.collect().map((rowObj) => rowObj.getCellEls()[0]), // first cell el in each row. TODO: not optimal
13270
+ false, true);
13271
+ this.colPositions = new PositionCache(this.rootEl, this.rowRefs.currentMap[0].getCellEls(), // cell els in first row
13272
+ true, // horizontal
13273
+ false);
13274
+ }
13275
+ queryHit(positionLeft, positionTop) {
13276
+ let { colPositions, rowPositions } = this;
13277
+ let col = colPositions.leftToIndex(positionLeft);
13278
+ let row = rowPositions.topToIndex(positionTop);
13279
+ if (row != null && col != null) {
13280
+ let cell = this.props.cells[row][col];
13281
+ return {
13282
+ dateProfile: this.props.dateProfile,
13283
+ dateSpan: Object.assign({ range: this.getCellRange(row, col), allDay: true }, cell.extraDateSpan),
13284
+ dayEl: this.getCellEl(row, col),
13285
+ rect: {
13286
+ left: colPositions.lefts[col],
13287
+ right: colPositions.rights[col],
13288
+ top: rowPositions.tops[row],
13289
+ bottom: rowPositions.bottoms[row],
13290
+ },
13291
+ layer: 0,
13292
+ };
13293
+ }
13294
+ return null;
13295
+ }
13296
+ getCellEl(row, col) {
13297
+ return this.rowRefs.currentMap[row].getCellEls()[col]; // TODO: not optimal
13298
+ }
13299
+ getCellRange(row, col) {
13300
+ let start = this.props.cells[row][col].date;
13301
+ let end = addDays(start, 1);
13302
+ return { start, end };
13303
+ }
13304
+ }
13305
+ function isSegAllDay(seg) {
13306
+ return seg.eventRange.def.allDay;
13307
+ }
13308
+
13309
+ class Table extends DateComponent {
13310
+ constructor() {
13311
+ super(...arguments);
13312
+ this.elRef = d();
13313
+ this.needsScrollReset = false;
13314
+ }
13315
+ render() {
13316
+ let { props } = this;
13317
+ let { dayMaxEventRows, dayMaxEvents, expandRows } = props;
13318
+ let limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true;
13319
+ // if rows can't expand to fill fixed height, can't do balanced-height event limit
13320
+ // TODO: best place to normalize these options?
13321
+ if (limitViaBalanced && !expandRows) {
13322
+ limitViaBalanced = false;
13323
+ dayMaxEventRows = null;
13324
+ dayMaxEvents = null;
13325
+ }
13326
+ let classNames = [
13327
+ 'fc-daygrid-body',
13328
+ limitViaBalanced ? 'fc-daygrid-body-balanced' : 'fc-daygrid-body-unbalanced',
13329
+ expandRows ? '' : 'fc-daygrid-body-natural', // will height of one row depend on the others?
13330
+ ];
13331
+ return (y("div", { ref: this.elRef, className: classNames.join(' '), style: {
13332
+ // these props are important to give this wrapper correct dimensions for interactions
13333
+ // TODO: if we set it here, can we avoid giving to inner tables?
13334
+ width: props.clientWidth,
13335
+ minWidth: props.tableMinWidth,
13336
+ } },
13337
+ y("table", { role: "presentation", className: "fc-scrollgrid-sync-table", style: {
13338
+ width: props.clientWidth,
13339
+ minWidth: props.tableMinWidth,
13340
+ height: expandRows ? props.clientHeight : '',
13341
+ } },
13342
+ props.colGroupNode,
13343
+ y("tbody", { role: "presentation" },
13344
+ y(TableRows, { dateProfile: props.dateProfile, cells: props.cells, renderRowIntro: props.renderRowIntro, showWeekNumbers: props.showWeekNumbers, clientWidth: props.clientWidth, clientHeight: props.clientHeight, businessHourSegs: props.businessHourSegs, bgEventSegs: props.bgEventSegs, fgEventSegs: props.fgEventSegs, dateSelectionSegs: props.dateSelectionSegs, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, forPrint: props.forPrint, isHitComboAllowed: props.isHitComboAllowed })))));
13345
+ }
13346
+ componentDidMount() {
13347
+ this.requestScrollReset();
13348
+ }
13349
+ componentDidUpdate(prevProps) {
13350
+ if (prevProps.dateProfile !== this.props.dateProfile) {
13351
+ this.requestScrollReset();
13352
+ }
13353
+ else {
13354
+ this.flushScrollReset();
13355
+ }
13356
+ }
13357
+ requestScrollReset() {
13358
+ this.needsScrollReset = true;
13359
+ this.flushScrollReset();
13360
+ }
13361
+ flushScrollReset() {
13362
+ if (this.needsScrollReset &&
13363
+ this.props.clientWidth // sizes computed?
13364
+ ) {
13365
+ const subjectEl = getScrollSubjectEl(this.elRef.current, this.props.dateProfile);
13366
+ if (subjectEl) {
13367
+ const originEl = subjectEl.closest('.fc-daygrid-body');
13368
+ const scrollEl = originEl.closest('.fc-scroller');
13369
+ const scrollTop = subjectEl.getBoundingClientRect().top -
13370
+ originEl.getBoundingClientRect().top;
13371
+ scrollEl.scrollTop = scrollTop ? (scrollTop + 1) : 0; // overcome border
13372
+ }
13373
+ this.needsScrollReset = false;
13374
+ }
13375
+ }
13376
+ }
13377
+ function getScrollSubjectEl(containerEl, dateProfile) {
13378
+ let el;
13379
+ if (dateProfile.currentRangeUnit.match(/year|month/)) {
13380
+ el = containerEl.querySelector(`[data-date="${formatIsoMonthStr(dateProfile.currentDate)}-01"]`);
13381
+ // even if view is month-based, first-of-month might be hidden...
13382
+ }
13383
+ if (!el) {
13384
+ el = containerEl.querySelector(`[data-date="${formatDayString(dateProfile.currentDate)}"]`);
13385
+ // could still be hidden if an interior-view hidden day
13386
+ }
13387
+ return el;
13388
+ }
13389
+
13390
+ class DayTableSlicer extends Slicer {
13391
+ constructor() {
13392
+ super(...arguments);
13393
+ this.forceDayIfListItem = true;
13394
+ }
13395
+ sliceRange(dateRange, dayTableModel) {
13396
+ return dayTableModel.sliceRange(dateRange);
13397
+ }
13398
+ }
13399
+
13400
+ class DayTable extends DateComponent {
13401
+ constructor() {
13402
+ super(...arguments);
13403
+ this.slicer = new DayTableSlicer();
13404
+ this.tableRef = d();
13405
+ }
13406
+ render() {
13407
+ let { props, context } = this;
13408
+ return (y(Table, Object.assign({ ref: this.tableRef }, this.slicer.sliceProps(props, props.dateProfile, props.nextDayThreshold, context, props.dayTableModel), { dateProfile: props.dateProfile, cells: props.dayTableModel.cells, colGroupNode: props.colGroupNode, tableMinWidth: props.tableMinWidth, renderRowIntro: props.renderRowIntro, dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, showWeekNumbers: props.showWeekNumbers, expandRows: props.expandRows, headerAlignElRef: props.headerAlignElRef, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })));
13409
+ }
13410
+ }
13411
+
13412
+ var css_248z$1 = ":root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:0 2px}.fc .fc-daygrid-day-bottom:after,.fc .fc-daygrid-day-bottom:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-more-link{border-radius:3px;cursor:pointer;line-height:1;margin-top:1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap;z-index:4}.fc .fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-more-link{float:left}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-more-link{float:right}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}";
13413
+ injectStyles(css_248z$1);
13414
+
12577
13415
  class AllDaySplitter extends Splitter {
12578
13416
  getKeyInfo() {
12579
13417
  return {
@@ -13962,7 +14800,7 @@ class KupCalendarState {
13962
14800
  }
13963
14801
  }
13964
14802
 
13965
- const kupCalendarCss = ".kup-body-compact-01{font-family:var(--kup-font-family);font-size:var(--kup-body-compact-01-font-size, 14px);line-height:18px;font-weight:400;letter-spacing:0.16px}.kup-body-01{font-family:var(--kup-font-family);font-size:var(--kup-body-01-font-size, 14px);line-height:20px;font-weight:400;letter-spacing:0.16px}.kup-code-01{font-family:var(--kup-font-family-monospace);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-label-01{font-family:var(--kup-font-family);font-size:var(--kup-label-01-font-size, 12px);line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-caption-02{font-family:var(--kup-font-family);font-size:12px;line-height:15px;font-weight:500;letter-spacing:1px}.kup-caption-01{font-family:var(--kup-font-family);font-size:10px;line-height:13px;font-weight:400;letter-spacing:1px}.kup-small-label-01{font-family:var(--kup-font-family);font-size:6px;line-height:9px;font-weight:400;letter-spacing:1px}.kup-heading-compact-01{font-family:var(--kup-font-family);font-size:var(--kup-heading-compact-01-font-size, 14px);line-height:18px;font-weight:600;letter-spacing:0.16px}.kup-heading-01{font-family:var(--kup-font-family);font-size:var(--kup-heading-01-font-size, 14px);line-height:20px;font-weight:600;letter-spacing:0.16px}.kup-heading-02{font-family:var(--kup-font-family);font-size:16px;line-height:24px;font-weight:500;letter-spacing:0}.kup-heading-03{font-family:var(--kup-font-family);font-size:20px;line-height:28px;font-weight:400;letter-spacing:0}.kup-heading-04{font-family:var(--kup-font-family);font-size:28px;line-height:36px;font-weight:400;letter-spacing:0}.kup-heading-05{font-family:var(--kup-font-family);font-size:32px;line-height:40px;font-weight:300;letter-spacing:0}.kup-heading-06{font-family:var(--kup-font-family);font-size:42px;line-height:50px;font-weight:300;letter-spacing:0}.kup-heading-07{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:300;letter-spacing:0}.kup-heading-08{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:600;letter-spacing:0}:host{--kup_calendar_background_color:var(\n --kup-calendar-background-color,\n var(--kup-layer-1)\n );--kup_calendar_border_color:var(\n --kup-calendar-border-color,\n var(--kup-border-subtle)\n );--kup_calendar_event_background_color:var(\n --kup-calendar-event-background-color,\n var(--kup-gray-color-30)\n );--kup_calendar_event_border_radius:var(\n --kup-calendar-event-border-radius,\n 4px\n );--kup_calendar_event_color:var(\n --kup-calendar-event-color,\n var(--kup-text-secondary)\n );--kup_calendar_font_family:var(\n --kup-calendar-font-family,\n var(--kup-font-family)\n );--kup_calendar_font_size:var(--kup-calendar-font-size, var(--kup-font-size));--kup_calendar_header_background_color:var(\n --kup-calendar-header-background-color,\n var(--kup-layer-2)\n );--kup_calendar_header_color:var(\n --kup-calendar-header-color,\n var(--kup-text-secondary)\n );--kup_calendar_navigator_border:var(\n --kup-calendar-navigator-border,\n 1px solid var(--kup-border-subtle)\n );--kup_calendar_no_work_day_background_color:var(\n --kup-calendar-no-work-day-background-color,\n var(--kup-layer-0)\n );--kup_calendar_no_work_day_color:var(\n --kup-calendar-no-work-day-color,\n var(--kup-text-secondary)\n );--kup_calendar_today_background_color:var(\n --kup-calendar-today-background-color,\n var(--kup-layer-2)\n );--kup_calendar_border_top_color:var(\n --kup-calendar-border-top-color,\n var(--kup-border-interactive)\n );--fc-border-color:var(--kup_calendar_border_color);background-color:var(--kup_calendar_background_color);display:block;font-family:var(--kup_calendar_font_family);font-size:var(--kup_calendar_font_size);height:100%;width:100%}.navigation{align-items:center;display:flex;justify-content:space-between;background-color:var(--kup_calendar_background_color)}.navigation__left{--kup-font-size:0.875em;display:flex;margin-left:var(--kup-space-03)}.navigation__right{display:flex;margin-right:var(--kup-space-03)}.navigation__title{font-family:var(--kup-font-family);font-size:16px;line-height:24px;font-weight:500;letter-spacing:0;margin:0px;padding:0px 0.5em}.navigation__title--centered{padding:0.35em 0;text-align:center;width:100%}.icon-wrapper{display:flex;justify-content:flex-end;flex-wrap:wrap}.image-wrapper{display:flex;justify-content:space-between;flex-wrap:wrap}.image-wrapper img{width:20px;height:20px}.custom-icon{background-color:var(--kup_calendar_event_color);height:1.5em;width:1.5em}#kup-component .fc-toolbar.fc-header-toolbar{margin-top:1.5rem}#kup-component .fc-ltr .fc-dayGrid-view .fc-day-top{text-align:center;padding:0.5rem}#kup-component .fc-ltr .fc-dayGrid-view .fc-day-top .fc-day-number{float:none}#kup-component .fc-content{padding:0.25rem}#kup-component .fc-event-title{white-space:normal;word-break:break-word}#kup-component .fc-content,#kup-component .fc-divider,#kup-component .fc-list-heading td,#kup-component .fc-list-view,#kup-component .fc-popover,#kup-component .fc-row,#kup-component .fc-scrollgrid,#kup-component tbody,#kup-component td{border-color:var(--kup_calendar_border_color)}#kup-component .fc-col-header-cell{background:var(--kup_calendar_header_background_color);color:var(--kup_calendar_header_color)}#kup-component .fc-h-event{background:none;border:none}#kup-component .fc-list-event-dot{border-color:var(--kup_calendar_event_background_color)}#kup-component .fc-list-day-cushion{background:var(--kup_calendar_header_background_color);color:var(--kup_calendar_header_color);font-family:var(--kup-font-family);font-size:var(--kup-heading-01-font-size, 14px);line-height:20px;font-weight:600;letter-spacing:0.16px}#kup-component .fc-list-event:hover td{background:var(--kup-hover-background-color);color:var(--kup-hover-color)}#kup-component .fc-daygrid-event,#kup-component .fc-timegrid-event{background:var(--kup_calendar_event_background_color);border:none;border-color:var(--kup_calendar_event_background_color);color:var(--kup_calendar_event_color)}#kup-component .fc-event{padding:0.5rem}#kup-component .fc-event-main{color:inherit;display:flex}#kup-component .fc-event-title .fc-event-time{padding:0.25em}#kup-component .fc-event-time{white-space:pre}#kup-component td.fc-day-today{background-color:var(--kup_calendar_today_background_color);border-top:2px solid var(--kup_calendar_border_top_color)}#kup-component td.fc-day-sun,#kup-component td.fc-day-sat{background-color:var(--kup_calendar_no_work_day_background_color);color:var(--kup_calendar_no_work_day_color);opacity:0.7}@media (max-width: 599px){.navigation{flex-direction:column}.calendar{height:100%}.calendar .fc-view-harness{min-height:450px}.navigation .navigation__left{font-size:20px;gap:8px}.navigation .navigation__right .f-chip .chip-set .chip-set__item{font-size:16px}}@media (min-width: 599px){#kup-component .fc-daygrid-event{align-items:baseline;white-space:pre-line}}";
14803
+ const kupCalendarCss = ".kup-body-compact-01{font-family:var(--kup-font-family);font-size:var(--kup-body-compact-01-font-size, 14px);line-height:18px;font-weight:400;letter-spacing:0.16px}.kup-body-01{font-family:var(--kup-font-family);font-size:var(--kup-body-01-font-size, 14px);line-height:20px;font-weight:400;letter-spacing:0.16px}.kup-code-01{font-family:var(--kup-font-family-monospace);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-label-01{font-family:var(--kup-font-family);font-size:var(--kup-label-01-font-size, 12px);line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-caption-02{font-family:var(--kup-font-family);font-size:12px;line-height:15px;font-weight:500;letter-spacing:1px}.kup-caption-01{font-family:var(--kup-font-family);font-size:10px;line-height:13px;font-weight:400;letter-spacing:1px}.kup-small-label-01{font-family:var(--kup-font-family);font-size:6px;line-height:9px;font-weight:400;letter-spacing:1px}.kup-heading-compact-01{font-family:var(--kup-font-family);font-size:var(--kup-heading-compact-01-font-size, 14px);line-height:18px;font-weight:600;letter-spacing:0.16px}.kup-heading-01{font-family:var(--kup-font-family);font-size:var(--kup-heading-01-font-size, 14px);line-height:20px;font-weight:600;letter-spacing:0.16px}.kup-heading-02{font-family:var(--kup-font-family);font-size:16px;line-height:24px;font-weight:500;letter-spacing:0}.kup-heading-03{font-family:var(--kup-font-family);font-size:20px;line-height:28px;font-weight:400;letter-spacing:0}.kup-heading-04{font-family:var(--kup-font-family);font-size:28px;line-height:36px;font-weight:400;letter-spacing:0}.kup-heading-05{font-family:var(--kup-font-family);font-size:32px;line-height:40px;font-weight:300;letter-spacing:0}.kup-heading-06{font-family:var(--kup-font-family);font-size:42px;line-height:50px;font-weight:300;letter-spacing:0}.kup-heading-07{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:300;letter-spacing:0}.kup-heading-08{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:600;letter-spacing:0}:host{--kup_calendar_background_color:var(\n --kup-calendar-background-color,\n var(--kup-layer-1)\n );--kup_calendar_border_color:var(\n --kup-calendar-border-color,\n var(--kup-border-subtle)\n );--kup_calendar_event_background_color:var(\n --kup-calendar-event-background-color,\n var(--kup-gray-color-30)\n );--kup_calendar_event_border_radius:var(\n --kup-calendar-event-border-radius,\n 4px\n );--kup_calendar_event_color:var(\n --kup-calendar-event-color,\n var(--kup-text-secondary)\n );--kup_calendar_font_family:var(\n --kup-calendar-font-family,\n var(--kup-font-family)\n );--kup_calendar_font_size:var(--kup-calendar-font-size, var(--kup-font-size));--kup_calendar_header_background_color:var(\n --kup-calendar-header-background-color,\n var(--kup-layer-2)\n );--kup_calendar_header_color:var(\n --kup-calendar-header-color,\n var(--kup-text-secondary)\n );--kup_calendar_navigator_border:var(\n --kup-calendar-navigator-border,\n 1px solid var(--kup-border-subtle)\n );--kup_calendar_no_work_day_background_color:var(\n --kup-calendar-no-work-day-background-color,\n var(--kup-layer-0)\n );--kup_calendar_no_work_day_color:var(\n --kup-calendar-no-work-day-color,\n var(--kup-text-secondary)\n );--kup_calendar_today_background_color:var(\n --kup-calendar-today-background-color,\n var(--kup-layer-2)\n );--kup_calendar_border_top_color:var(\n --kup-calendar-border-top-color,\n var(--kup-border-interactive)\n );--fc-border-color:var(--kup_calendar_border_color);background-color:var(--kup_calendar_background_color);display:block;font-family:var(--kup_calendar_font_family);font-size:var(--kup_calendar_font_size);height:100%;width:100%}.navigation{align-items:center;display:flex;justify-content:space-between;background-color:var(--kup_calendar_background_color)}.navigation__left{--kup-font-size:0.875em;display:flex;margin-left:var(--kup-space-03)}.navigation__right{display:flex;margin-right:var(--kup-space-03)}.navigation__title{font-family:var(--kup-font-family);font-size:16px;line-height:24px;font-weight:500;letter-spacing:0;margin:0px;padding:0px 0.5em}.navigation__title--centered{padding:0.35em 0;text-align:center;width:100%}.icon-wrapper{display:flex;justify-content:flex-end;flex-wrap:wrap}.image-wrapper{display:flex;justify-content:space-between;flex-wrap:wrap}.image-wrapper img{width:20px;height:20px}.custom-icon{background-color:var(--kup_calendar_event_color);height:1.5em;width:1.5em}#kup-component .fc-toolbar.fc-header-toolbar{margin-top:1.5rem}#kup-component .fc-ltr .fc-dayGrid-view .fc-day-top{text-align:center;padding:0.5rem}#kup-component .fc-ltr .fc-dayGrid-view .fc-day-top .fc-day-number{float:none}#kup-component .fc-content{padding:0.25rem}#kup-component .fc-event-title{white-space:normal;word-break:break-word}#kup-component .fc-content,#kup-component .fc-divider,#kup-component .fc-list-heading td,#kup-component .fc-list-view,#kup-component .fc-popover,#kup-component .fc-row,#kup-component .fc-scrollgrid,#kup-component tbody,#kup-component td{border-color:var(--kup_calendar_border_color)}#kup-component .fc-col-header-cell{background:var(--kup_calendar_header_background_color);color:var(--kup_calendar_header_color)}#kup-component .fc-h-event{background:none;border:none}#kup-component .fc-list-event-dot{border-color:var(--kup_calendar_event_background_color)}#kup-component .fc-list-day-cushion{background:var(--kup_calendar_header_background_color);color:var(--kup_calendar_header_color);font-family:var(--kup-font-family);font-size:var(--kup-heading-01-font-size, 14px);line-height:20px;font-weight:600;letter-spacing:0.16px}#kup-component .fc-list-event:hover td{background:var(--kup-hover-background-color);color:var(--kup-hover-color)}#kup-component .fc-daygrid-event,#kup-component .fc-timegrid-event{background:var(--kup_calendar_event_background_color);border:none;border-color:var(--kup_calendar_event_background_color);color:var(--kup_calendar_event_color)}#kup-component .fc-event{padding:0.5rem}#kup-component .fc-event-main{color:inherit;display:flex}#kup-component .fc-event-title .fc-event-time{padding:0.25em}#kup-component .fc-event-time{white-space:pre}#kup-component td.fc-day-today{background-color:var(--kup_calendar_today_background_color);border-top:2px solid var(--kup_calendar_border_top_color)}#kup-component td.fc-day-sun,#kup-component td.fc-day-sat{background-color:var(--kup_calendar_no_work_day_background_color);color:var(--kup_calendar_no_work_day_color);opacity:0.7}@media (max-width: 599px){.navigation{flex-direction:column}.calendar{height:100%}.calendar .fc-view-harness{min-height:450px}.fc-event{display:flex;flex-direction:column;padding:0.2rem;gap:var(--kup-space-03)}.fc-event .fc-event-main{display:flex;flex-direction:column}.fc-event .fc-daygrid-event-dot{display:none}.navigation .navigation__left{font-size:20px;gap:8px}.navigation .navigation__right .f-chip .chip-set .chip-set__item{font-size:16px}}@media (min-width: 599px){#kup-component .fc-daygrid-event{align-items:baseline;white-space:pre-line}}";
13966
14804
  const KupCalendarStyle0 = kupCalendarCss;
13967
14805
 
13968
14806
  const KupCalendar = class {