@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
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index$4 = require('./index-c7d441d8.js');
6
- const kupManager = require('./kup-manager-ecc44384.js');
6
+ const kupManager = require('./kup-manager-c70d3188.js');
7
7
  const GenericVariables = require('./GenericVariables-1d52ba57.js');
8
8
  const fButton = require('./f-button-bfafefb3.js');
9
- const fChip = require('./f-chip-dc085b9b.js');
9
+ const fChip = require('./f-chip-f2d6124b.js');
10
10
  const kupDates = require('./kup-dates-bc4cf9d0.js');
11
11
  require('./f-button-declarations-76ef9f87.js');
12
12
  require('./f-image-db10b066.js');
@@ -97,8 +97,8 @@ if (typeof document !== 'undefined') {
97
97
  registerStylesRoot(document);
98
98
  }
99
99
 
100
- 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)}";
101
- injectStyles(css_248z$3);
100
+ 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)}";
101
+ injectStyles(css_248z$4);
102
102
 
103
103
  class DelayedRunner {
104
104
  constructor(drainedOption) {
@@ -7025,10 +7025,10 @@ class BgEvent extends BaseComponent {
7025
7025
  render() {
7026
7026
  let { props } = this;
7027
7027
  let { seg } = props;
7028
- 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 }));
7028
+ 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 }));
7029
7029
  }
7030
7030
  }
7031
- function renderInnerContent$3(props) {
7031
+ function renderInnerContent$4(props) {
7032
7032
  let { title } = props.event;
7033
7033
  return title && (y("div", { className: "fc-event-title" }, props.event.title));
7034
7034
  }
@@ -9468,7 +9468,7 @@ class TableView extends DateComponent {
9468
9468
  }
9469
9469
  }
9470
9470
 
9471
- function splitSegsByRow(segs, rowCnt) {
9471
+ function splitSegsByRow$1(segs, rowCnt) {
9472
9472
  let byRow = [];
9473
9473
  for (let i = 0; i < rowCnt; i += 1) {
9474
9474
  byRow[i] = [];
@@ -9478,7 +9478,7 @@ function splitSegsByRow(segs, rowCnt) {
9478
9478
  }
9479
9479
  return byRow;
9480
9480
  }
9481
- function splitSegsByFirstCol(segs, colCnt) {
9481
+ function splitSegsByFirstCol$1(segs, colCnt) {
9482
9482
  let byCol = [];
9483
9483
  for (let i = 0; i < colCnt; i += 1) {
9484
9484
  byCol[i] = [];
@@ -9488,7 +9488,7 @@ function splitSegsByFirstCol(segs, colCnt) {
9488
9488
  }
9489
9489
  return byCol;
9490
9490
  }
9491
- function splitInteractionByRow(ui, rowCnt) {
9491
+ function splitInteractionByRow$1(ui, rowCnt) {
9492
9492
  let byRow = [];
9493
9493
  if (!ui) {
9494
9494
  for (let i = 0; i < rowCnt; i += 1) {
@@ -9510,13 +9510,13 @@ function splitInteractionByRow(ui, rowCnt) {
9510
9510
  return byRow;
9511
9511
  }
9512
9512
 
9513
- const DEFAULT_TABLE_EVENT_TIME_FORMAT = createFormatter({
9513
+ const DEFAULT_TABLE_EVENT_TIME_FORMAT$1 = createFormatter({
9514
9514
  hour: 'numeric',
9515
9515
  minute: '2-digit',
9516
9516
  omitZeroMinute: true,
9517
9517
  meridiem: 'narrow',
9518
9518
  });
9519
- function hasListItemDisplay(seg) {
9519
+ function hasListItemDisplay$1(seg) {
9520
9520
  let { display } = seg.eventRange.ui;
9521
9521
  return display === 'list-item' || (display === 'auto' &&
9522
9522
  !seg.eventRange.def.allDay &&
@@ -9526,34 +9526,34 @@ function hasListItemDisplay(seg) {
9526
9526
  );
9527
9527
  }
9528
9528
 
9529
- class TableBlockEvent extends BaseComponent {
9529
+ class TableBlockEvent$1 extends BaseComponent {
9530
9530
  render() {
9531
9531
  let { props } = this;
9532
- 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 })));
9532
+ 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 })));
9533
9533
  }
9534
9534
  }
9535
9535
 
9536
- class TableListItemEvent extends BaseComponent {
9536
+ class TableListItemEvent$1 extends BaseComponent {
9537
9537
  render() {
9538
9538
  let { props, context } = this;
9539
9539
  let { options } = context;
9540
9540
  let { seg } = props;
9541
- let timeFormat = options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;
9541
+ let timeFormat = options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT$1;
9542
9542
  let timeText = buildSegTimeText(seg, timeFormat, context, true, props.defaultDisplayEventEnd);
9543
- 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 })));
9543
+ 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 })));
9544
9544
  }
9545
9545
  }
9546
- function renderInnerContent$2(renderProps) {
9546
+ function renderInnerContent$3(renderProps) {
9547
9547
  return (y(_, null,
9548
9548
  y("div", { className: "fc-daygrid-event-dot", style: { borderColor: renderProps.borderColor || renderProps.backgroundColor } }),
9549
9549
  renderProps.timeText && (y("div", { className: "fc-event-time" }, renderProps.timeText)),
9550
9550
  y("div", { className: "fc-event-title" }, renderProps.event.title || y(_, null, "\u00A0"))));
9551
9551
  }
9552
9552
 
9553
- class TableCellMoreLink extends BaseComponent {
9553
+ class TableCellMoreLink$1 extends BaseComponent {
9554
9554
  constructor() {
9555
9555
  super(...arguments);
9556
- this.compileSegs = memoize(compileSegs);
9556
+ this.compileSegs = memoize(compileSegs$1);
9557
9557
  }
9558
9558
  render() {
9559
9559
  let { props } = this;
@@ -9566,12 +9566,12 @@ class TableCellMoreLink extends BaseComponent {
9566
9566
  let instanceId = seg.eventRange.instance.instanceId;
9567
9567
  return (y("div", { className: "fc-daygrid-event-harness", key: instanceId, style: {
9568
9568
  visibility: isForcedInvisible[instanceId] ? 'hidden' : '',
9569
- } }, 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))))));
9569
+ } }, 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))))));
9570
9570
  })));
9571
9571
  } }));
9572
9572
  }
9573
9573
  }
9574
- function compileSegs(singlePlacements) {
9574
+ function compileSegs$1(singlePlacements) {
9575
9575
  let allSegs = [];
9576
9576
  let invisibleSegs = [];
9577
9577
  for (let placement of singlePlacements) {
@@ -9583,8 +9583,8 @@ function compileSegs(singlePlacements) {
9583
9583
  return { allSegs, invisibleSegs };
9584
9584
  }
9585
9585
 
9586
- const DEFAULT_WEEK_NUM_FORMAT$1 = createFormatter({ week: 'narrow' });
9587
- class TableCell extends DateComponent {
9586
+ const DEFAULT_WEEK_NUM_FORMAT$2 = createFormatter({ week: 'narrow' });
9587
+ class TableCell$1 extends DateComponent {
9588
9588
  constructor() {
9589
9589
  super(...arguments);
9590
9590
  this.rootElRef = d();
@@ -9602,12 +9602,12 @@ class TableCell extends DateComponent {
9602
9602
  let { date, dateProfile } = props;
9603
9603
  // TODO: memoize this?
9604
9604
  const isMonthStart = props.showDayNumber &&
9605
- shouldDisplayMonthStart(date, dateProfile.currentRange, dateEnv);
9605
+ shouldDisplayMonthStart$1(date, dateProfile.currentRange, dateEnv);
9606
9606
  return (y(DayCellContainer, { elTag: "td", elRef: this.handleRootEl, elClasses: [
9607
9607
  'fc-daygrid-day',
9608
9608
  ...(props.extraClassNames || []),
9609
- ], 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 } },
9610
- props.showWeekNumber && (y(WeekNumberContainer, { elTag: "a", elClasses: ['fc-daygrid-week-number'], elAttrs: buildNavLinkAttrs(context, date, 'week'), date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT$1 })),
9609
+ ], 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 } },
9610
+ props.showWeekNumber && (y(WeekNumberContainer, { elTag: "a", elClasses: ['fc-daygrid-week-number'], elAttrs: buildNavLinkAttrs(context, date, 'week'), date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT$2 })),
9611
9611
  !renderProps.isDisabled &&
9612
9612
  (props.showDayNumber || hasCustomDayCellContent(options) || props.forceDayTop) ? (y("div", { className: "fc-daygrid-day-top" },
9613
9613
  y(InnerContent, { elTag: "a", elClasses: [
@@ -9620,14 +9620,14 @@ class TableCell extends DateComponent {
9620
9620
  y("div", { className: "fc-daygrid-day-events", ref: props.fgContentElRef },
9621
9621
  props.fgContent,
9622
9622
  y("div", { className: "fc-daygrid-day-bottom", style: { marginTop: props.moreMarginTop } },
9623
- 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 }))),
9623
+ 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 }))),
9624
9624
  y("div", { className: "fc-daygrid-day-bg" }, props.bgContent)))));
9625
9625
  }
9626
9626
  }
9627
- function renderTopInner(props) {
9627
+ function renderTopInner$1(props) {
9628
9628
  return props.dayNumberText || y(_, null, "\u00A0");
9629
9629
  }
9630
- function shouldDisplayMonthStart(date, currentRange, dateEnv) {
9630
+ function shouldDisplayMonthStart$1(date, currentRange, dateEnv) {
9631
9631
  const { start: currentStart, end: currentEnd } = currentRange;
9632
9632
  const currentEndIncl = addMs(currentEnd, -1);
9633
9633
  const currentFirstYear = dateEnv.getYear(currentStart);
@@ -9643,15 +9643,15 @@ function shouldDisplayMonthStart(date, currentRange, dateEnv) {
9643
9643
  (dateEnv.getDay(date) === 1 && date.valueOf() < currentEnd.valueOf()));
9644
9644
  }
9645
9645
 
9646
- function generateSegKey(seg) {
9646
+ function generateSegKey$1(seg) {
9647
9647
  return seg.eventRange.instance.instanceId + ':' + seg.firstCol;
9648
9648
  }
9649
- function generateSegUid(seg) {
9650
- return generateSegKey(seg) + ':' + seg.lastCol;
9649
+ function generateSegUid$1(seg) {
9650
+ return generateSegKey$1(seg) + ':' + seg.lastCol;
9651
9651
  }
9652
- function computeFgSegPlacement(segs, // assumed already sorted
9652
+ function computeFgSegPlacement$1(segs, // assumed already sorted
9653
9653
  dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells) {
9654
- let hierarchy = new DayGridSegHierarchy((segEntry) => {
9654
+ let hierarchy = new DayGridSegHierarchy$1((segEntry) => {
9655
9655
  // TODO: more DRY with generateSegUid
9656
9656
  let segUid = segs[segEntry.index].eventRange.instance.instanceId +
9657
9657
  ':' + segEntry.span.start +
@@ -9677,7 +9677,7 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
9677
9677
  let unknownHeightSegs = [];
9678
9678
  for (let i = 0; i < segs.length; i += 1) {
9679
9679
  let seg = segs[i];
9680
- let segUid = generateSegUid(seg);
9680
+ let segUid = generateSegUid$1(seg);
9681
9681
  let eventHeight = segHeights[segUid];
9682
9682
  if (eventHeight != null) {
9683
9683
  segInputs.push({
@@ -9694,7 +9694,7 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
9694
9694
  }
9695
9695
  let hiddenEntries = hierarchy.addSegs(segInputs);
9696
9696
  let segRects = hierarchy.toRects();
9697
- let { singleColPlacements, multiColPlacements, leftoverMargins } = placeRects(segRects, segs, cells);
9697
+ let { singleColPlacements, multiColPlacements, leftoverMargins } = placeRects$1(segRects, segs, cells);
9698
9698
  let moreCnts = [];
9699
9699
  let moreMarginTops = [];
9700
9700
  // add segs with unknown heights
@@ -9708,7 +9708,7 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
9708
9708
  });
9709
9709
  for (let col = seg.firstCol; col <= seg.lastCol; col += 1) {
9710
9710
  singleColPlacements[col].push({
9711
- seg: resliceSeg(seg, col, col + 1, cells),
9711
+ seg: resliceSeg$1(seg, col, col + 1, cells),
9712
9712
  isVisible: false,
9713
9713
  isAbsolute: false,
9714
9714
  absoluteTop: 0,
@@ -9724,7 +9724,7 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
9724
9724
  let seg = segs[hiddenEntry.index];
9725
9725
  let hiddenSpan = hiddenEntry.span;
9726
9726
  multiColPlacements[hiddenSpan.start].push({
9727
- seg: resliceSeg(seg, hiddenSpan.start, hiddenSpan.end, cells),
9727
+ seg: resliceSeg$1(seg, hiddenSpan.start, hiddenSpan.end, cells),
9728
9728
  isVisible: false,
9729
9729
  isAbsolute: true,
9730
9730
  absoluteTop: 0,
@@ -9733,7 +9733,7 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
9733
9733
  for (let col = hiddenSpan.start; col < hiddenSpan.end; col += 1) {
9734
9734
  moreCnts[col] += 1;
9735
9735
  singleColPlacements[col].push({
9736
- seg: resliceSeg(seg, col, col + 1, cells),
9736
+ seg: resliceSeg$1(seg, col, col + 1, cells),
9737
9737
  isVisible: false,
9738
9738
  isAbsolute: false,
9739
9739
  absoluteTop: 0,
@@ -9748,8 +9748,8 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
9748
9748
  return { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops };
9749
9749
  }
9750
9750
  // rects ordered by top coord, then left
9751
- function placeRects(allRects, segs, cells) {
9752
- let rectsByEachCol = groupRectsByEachCol(allRects, cells.length);
9751
+ function placeRects$1(allRects, segs, cells) {
9752
+ let rectsByEachCol = groupRectsByEachCol$1(allRects, cells.length);
9753
9753
  let singleColPlacements = [];
9754
9754
  let multiColPlacements = [];
9755
9755
  let leftoverMargins = [];
@@ -9762,7 +9762,7 @@ function placeRects(allRects, segs, cells) {
9762
9762
  for (let rect of rects) {
9763
9763
  let seg = segs[rect.index];
9764
9764
  singlePlacements.push({
9765
- seg: resliceSeg(seg, col, col + 1, cells),
9765
+ seg: resliceSeg$1(seg, col, col + 1, cells),
9766
9766
  isVisible: true,
9767
9767
  isAbsolute: false,
9768
9768
  absoluteTop: rect.levelCoord,
@@ -9784,7 +9784,7 @@ function placeRects(allRects, segs, cells) {
9784
9784
  currentMarginTop += rect.thickness;
9785
9785
  if (isFirstCol) {
9786
9786
  multiPlacements.push({
9787
- seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),
9787
+ seg: resliceSeg$1(seg, rect.span.start, rect.span.end, cells),
9788
9788
  isVisible: true,
9789
9789
  isAbsolute: true,
9790
9790
  absoluteTop: rect.levelCoord,
@@ -9794,7 +9794,7 @@ function placeRects(allRects, segs, cells) {
9794
9794
  }
9795
9795
  else if (isFirstCol) {
9796
9796
  multiPlacements.push({
9797
- seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),
9797
+ seg: resliceSeg$1(seg, rect.span.start, rect.span.end, cells),
9798
9798
  isVisible: true,
9799
9799
  isAbsolute: false,
9800
9800
  absoluteTop: rect.levelCoord,
@@ -9809,7 +9809,7 @@ function placeRects(allRects, segs, cells) {
9809
9809
  }
9810
9810
  return { singleColPlacements, multiColPlacements, leftoverMargins };
9811
9811
  }
9812
- function groupRectsByEachCol(rects, colCnt) {
9812
+ function groupRectsByEachCol$1(rects, colCnt) {
9813
9813
  let rectsByEachCol = [];
9814
9814
  for (let col = 0; col < colCnt; col += 1) {
9815
9815
  rectsByEachCol.push([]);
@@ -9821,7 +9821,7 @@ function groupRectsByEachCol(rects, colCnt) {
9821
9821
  }
9822
9822
  return rectsByEachCol;
9823
9823
  }
9824
- function resliceSeg(seg, spanStart, spanEnd, cells) {
9824
+ function resliceSeg$1(seg, spanStart, spanEnd, cells) {
9825
9825
  if (seg.firstCol === spanStart && seg.lastCol === spanEnd - 1) {
9826
9826
  return seg;
9827
9827
  }
@@ -9838,7 +9838,7 @@ function resliceSeg(seg, spanStart, spanEnd, cells) {
9838
9838
  range: slicedRange,
9839
9839
  }, isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(), isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf() });
9840
9840
  }
9841
- class DayGridSegHierarchy extends SegHierarchy {
9841
+ class DayGridSegHierarchy$1 extends SegHierarchy {
9842
9842
  constructor() {
9843
9843
  super(...arguments);
9844
9844
  // config
@@ -9885,7 +9885,7 @@ class DayGridSegHierarchy extends SegHierarchy {
9885
9885
  }
9886
9886
  }
9887
9887
 
9888
- class TableRow extends DateComponent {
9888
+ class TableRow$1 extends DateComponent {
9889
9889
  constructor() {
9890
9890
  super(...arguments);
9891
9891
  this.cellElRefs = new RefMap(); // the <td>
@@ -9908,11 +9908,11 @@ class TableRow extends DateComponent {
9908
9908
  let { props, state, context } = this;
9909
9909
  let { options } = context;
9910
9910
  let colCnt = props.cells.length;
9911
- let businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt);
9912
- let bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt);
9913
- let highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt);
9914
- let mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt);
9915
- let { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops } = computeFgSegPlacement(sortEventSegs(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.segHeights, state.maxContentHeight, props.cells);
9911
+ let businessHoursByCol = splitSegsByFirstCol$1(props.businessHourSegs, colCnt);
9912
+ let bgEventSegsByCol = splitSegsByFirstCol$1(props.bgEventSegs, colCnt);
9913
+ let highlightSegsByCol = splitSegsByFirstCol$1(this.getHighlightSegs(), colCnt);
9914
+ let mirrorSegsByCol = splitSegsByFirstCol$1(this.getMirrorSegs(), colCnt);
9915
+ let { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops } = computeFgSegPlacement$1(sortEventSegs(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.segHeights, state.maxContentHeight, props.cells);
9916
9916
  let isForcedInvisible = // TODO: messy way to compute this
9917
9917
  (props.eventDrag && props.eventDrag.affectedInstances) ||
9918
9918
  (props.eventResize && props.eventResize.affectedInstances) ||
@@ -9921,8 +9921,8 @@ class TableRow extends DateComponent {
9921
9921
  props.renderIntro && props.renderIntro(),
9922
9922
  props.cells.map((cell, col) => {
9923
9923
  let normalFgNodes = this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);
9924
- let mirrorFgNodes = this.renderFgSegs(col, buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);
9925
- 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
9924
+ let mirrorFgNodes = this.renderFgSegs(col, buildMirrorPlacements$1(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);
9925
+ 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
9926
9926
  y(_, null,
9927
9927
  y(_, null, normalFgNodes),
9928
9928
  y(_, null, mirrorFgNodes))), bgContent: ( // Fragment scopes the keys
@@ -9989,13 +9989,13 @@ class TableRow extends DateComponent {
9989
9989
  known bug: events that are force to be list-item but span multiple days still take up space in later columns
9990
9990
  todo: in print view, for multi-day events, don't display title within non-start/end segs
9991
9991
  */
9992
- 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: {
9992
+ 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: {
9993
9993
  visibility: isVisible ? '' : 'hidden',
9994
9994
  marginTop: isAbsolute ? '' : placement.marginTop,
9995
9995
  top: isAbsolute ? placement.absoluteTop : '',
9996
9996
  left,
9997
9997
  right,
9998
- } }, 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))))));
9998
+ } }, 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))))));
9999
9999
  }
10000
10000
  }
10001
10001
  return nodes;
@@ -10073,14 +10073,14 @@ class TableRow extends DateComponent {
10073
10073
  return this.props.cells.map((cell) => elMap[cell.key]);
10074
10074
  }
10075
10075
  }
10076
- TableRow.addStateEquality({
10076
+ TableRow$1.addStateEquality({
10077
10077
  segHeights: isPropsEqual,
10078
10078
  });
10079
- function buildMirrorPlacements(mirrorSegs, colPlacements) {
10079
+ function buildMirrorPlacements$1(mirrorSegs, colPlacements) {
10080
10080
  if (!mirrorSegs.length) {
10081
10081
  return [];
10082
10082
  }
10083
- let topsByInstanceId = buildAbsoluteTopHash(colPlacements); // TODO: cache this at first render?
10083
+ let topsByInstanceId = buildAbsoluteTopHash$1(colPlacements); // TODO: cache this at first render?
10084
10084
  return mirrorSegs.map((seg) => ({
10085
10085
  seg,
10086
10086
  isVisible: true,
@@ -10089,7 +10089,7 @@ function buildMirrorPlacements(mirrorSegs, colPlacements) {
10089
10089
  marginTop: 0,
10090
10090
  }));
10091
10091
  }
10092
- function buildAbsoluteTopHash(colPlacements) {
10092
+ function buildAbsoluteTopHash$1(colPlacements) {
10093
10093
  let topsByInstanceId = {};
10094
10094
  for (let placements of colPlacements) {
10095
10095
  for (let placement of placements) {
@@ -10099,15 +10099,15 @@ function buildAbsoluteTopHash(colPlacements) {
10099
10099
  return topsByInstanceId;
10100
10100
  }
10101
10101
 
10102
- class TableRows extends DateComponent {
10102
+ class TableRows$1 extends DateComponent {
10103
10103
  constructor() {
10104
10104
  super(...arguments);
10105
- this.splitBusinessHourSegs = memoize(splitSegsByRow);
10106
- this.splitBgEventSegs = memoize(splitSegsByRow);
10107
- this.splitFgEventSegs = memoize(splitSegsByRow);
10108
- this.splitDateSelectionSegs = memoize(splitSegsByRow);
10109
- this.splitEventDrag = memoize(splitInteractionByRow);
10110
- this.splitEventResize = memoize(splitInteractionByRow);
10105
+ this.splitBusinessHourSegs = memoize(splitSegsByRow$1);
10106
+ this.splitBgEventSegs = memoize(splitSegsByRow$1);
10107
+ this.splitFgEventSegs = memoize(splitSegsByRow$1);
10108
+ this.splitDateSelectionSegs = memoize(splitSegsByRow$1);
10109
+ this.splitEventDrag = memoize(splitInteractionByRow$1);
10110
+ this.splitEventResize = memoize(splitInteractionByRow$1);
10111
10111
  this.rowRefs = new RefMap();
10112
10112
  }
10113
10113
  render() {
@@ -10124,10 +10124,10 @@ class TableRows extends DateComponent {
10124
10124
  let cellMinHeight = (rowCnt >= 7 && props.clientWidth) ?
10125
10125
  props.clientWidth / context.options.aspectRatio / 6 :
10126
10126
  null;
10127
- return (y(NowTimer, { unit: "day" }, (nowDate, todayRange) => (y(_, null, props.cells.map((cells, row) => (y(TableRow, { ref: this.rowRefs.createRef(row), key: cells.length
10127
+ 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
10128
10128
  ? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */
10129
10129
  : row // in case there are no cells (like when resource view is loading)
10130
- , 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 })))))));
10130
+ , 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 })))))));
10131
10131
  }
10132
10132
  componentDidMount() {
10133
10133
  this.registerInteractiveComponent();
@@ -10196,11 +10196,11 @@ class TableRows extends DateComponent {
10196
10196
  return { start, end };
10197
10197
  }
10198
10198
  }
10199
- function isSegAllDay(seg) {
10199
+ function isSegAllDay$1(seg) {
10200
10200
  return seg.eventRange.def.allDay;
10201
10201
  }
10202
10202
 
10203
- class Table extends DateComponent {
10203
+ class Table$1 extends DateComponent {
10204
10204
  constructor() {
10205
10205
  super(...arguments);
10206
10206
  this.elRef = d();
@@ -10235,7 +10235,7 @@ class Table extends DateComponent {
10235
10235
  } },
10236
10236
  props.colGroupNode,
10237
10237
  y("tbody", { role: "presentation" },
10238
- 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 })))));
10238
+ 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 })))));
10239
10239
  }
10240
10240
  componentDidMount() {
10241
10241
  this.requestScrollReset();
@@ -10256,7 +10256,7 @@ class Table extends DateComponent {
10256
10256
  if (this.needsScrollReset &&
10257
10257
  this.props.clientWidth // sizes computed?
10258
10258
  ) {
10259
- const subjectEl = getScrollSubjectEl(this.elRef.current, this.props.dateProfile);
10259
+ const subjectEl = getScrollSubjectEl$1(this.elRef.current, this.props.dateProfile);
10260
10260
  if (subjectEl) {
10261
10261
  const originEl = subjectEl.closest('.fc-daygrid-body');
10262
10262
  const scrollEl = originEl.closest('.fc-scroller');
@@ -10268,7 +10268,7 @@ class Table extends DateComponent {
10268
10268
  }
10269
10269
  }
10270
10270
  }
10271
- function getScrollSubjectEl(containerEl, dateProfile) {
10271
+ function getScrollSubjectEl$1(containerEl, dateProfile) {
10272
10272
  let el;
10273
10273
  if (dateProfile.currentRangeUnit.match(/year|month/)) {
10274
10274
  el = containerEl.querySelector(`[data-date="${formatIsoMonthStr(dateProfile.currentDate)}-01"]`);
@@ -10281,7 +10281,7 @@ function getScrollSubjectEl(containerEl, dateProfile) {
10281
10281
  return el;
10282
10282
  }
10283
10283
 
10284
- class DayTableSlicer extends Slicer {
10284
+ class DayTableSlicer$1 extends Slicer {
10285
10285
  constructor() {
10286
10286
  super(...arguments);
10287
10287
  this.forceDayIfListItem = true;
@@ -10291,15 +10291,15 @@ class DayTableSlicer extends Slicer {
10291
10291
  }
10292
10292
  }
10293
10293
 
10294
- class DayTable extends DateComponent {
10294
+ class DayTable$1 extends DateComponent {
10295
10295
  constructor() {
10296
10296
  super(...arguments);
10297
- this.slicer = new DayTableSlicer();
10297
+ this.slicer = new DayTableSlicer$1();
10298
10298
  this.tableRef = d();
10299
10299
  }
10300
10300
  render() {
10301
10301
  let { props, context } = this;
10302
- 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 })));
10302
+ 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 })));
10303
10303
  }
10304
10304
  }
10305
10305
 
@@ -10316,7 +10316,7 @@ class DayTableView extends TableView {
10316
10316
  let { props } = this;
10317
10317
  let dayTableModel = this.buildDayTableModel(props.dateProfile, dateProfileGenerator);
10318
10318
  let headerContent = options.dayHeaders && (y(DayHeader, { ref: this.headerRef, dateProfile: props.dateProfile, dates: dayTableModel.headerDates, datesRepDistinctDays: dayTableModel.rowCnt === 1 }));
10319
- 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 }));
10319
+ 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 }));
10320
10320
  return options.dayMinWidth
10321
10321
  ? this.renderHScrollLayout(headerContent, bodyContent, dayTableModel.colCnt, options.dayMinWidth)
10322
10322
  : this.renderSimpleLayout(headerContent, bodyContent);
@@ -10365,8 +10365,8 @@ function buildDayTableRenderRange(props) {
10365
10365
  return { start, end };
10366
10366
  }
10367
10367
 
10368
- 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}";
10369
- injectStyles(css_248z$2);
10368
+ 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}";
10369
+ injectStyles(css_248z$3);
10370
10370
 
10371
10371
  var index$3 = createPlugin({
10372
10372
  name: '@fullcalendar/daygrid',
@@ -12294,7 +12294,7 @@ class ListViewHeaderRow extends BaseComponent {
12294
12294
  ...getDayClassNames(dayMeta, theme),
12295
12295
  ], elAttrs: {
12296
12296
  'data-date': formatDayString(dayDate),
12297
- }, 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
12297
+ }, 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
12298
12298
  y("th", { scope: "colgroup", colSpan: 3, id: cellId, "aria-labelledby": textId },
12299
12299
  y(InnerContent, { elTag: "div", elClasses: [
12300
12300
  'fc-list-day-cushion',
@@ -12302,7 +12302,7 @@ class ListViewHeaderRow extends BaseComponent {
12302
12302
  ] })))));
12303
12303
  }
12304
12304
  }
12305
- function renderInnerContent$1(props) {
12305
+ function renderInnerContent$2(props) {
12306
12306
  return (y(_, null,
12307
12307
  props.text && (y("a", Object.assign({ id: props.textId, className: "fc-list-day-text" }, props.navLinkAttrs), props.text)),
12308
12308
  props.sideText && ( /* not keyboard tabbable */y("a", Object.assign({ "aria-hidden": true, className: "fc-list-day-side-text" }, props.sideNavLinkAttrs), props.sideText))));
@@ -12529,8 +12529,8 @@ function groupSegsByDay(segs) {
12529
12529
  return segsByDay;
12530
12530
  }
12531
12531
 
12532
- 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}";
12533
- injectStyles(css_248z$1);
12532
+ 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}";
12533
+ injectStyles(css_248z$2);
12534
12534
 
12535
12535
  const OPTION_REFINERS$1 = {
12536
12536
  listDayFormat: createFalsableFormatter,
@@ -12578,6 +12578,844 @@ var index$1 = createPlugin({
12578
12578
  },
12579
12579
  });
12580
12580
 
12581
+ function splitSegsByRow(segs, rowCnt) {
12582
+ let byRow = [];
12583
+ for (let i = 0; i < rowCnt; i += 1) {
12584
+ byRow[i] = [];
12585
+ }
12586
+ for (let seg of segs) {
12587
+ byRow[seg.row].push(seg);
12588
+ }
12589
+ return byRow;
12590
+ }
12591
+ function splitSegsByFirstCol(segs, colCnt) {
12592
+ let byCol = [];
12593
+ for (let i = 0; i < colCnt; i += 1) {
12594
+ byCol[i] = [];
12595
+ }
12596
+ for (let seg of segs) {
12597
+ byCol[seg.firstCol].push(seg);
12598
+ }
12599
+ return byCol;
12600
+ }
12601
+ function splitInteractionByRow(ui, rowCnt) {
12602
+ let byRow = [];
12603
+ if (!ui) {
12604
+ for (let i = 0; i < rowCnt; i += 1) {
12605
+ byRow[i] = null;
12606
+ }
12607
+ }
12608
+ else {
12609
+ for (let i = 0; i < rowCnt; i += 1) {
12610
+ byRow[i] = {
12611
+ affectedInstances: ui.affectedInstances,
12612
+ isEvent: ui.isEvent,
12613
+ segs: [],
12614
+ };
12615
+ }
12616
+ for (let seg of ui.segs) {
12617
+ byRow[seg.row].segs.push(seg);
12618
+ }
12619
+ }
12620
+ return byRow;
12621
+ }
12622
+
12623
+ const DEFAULT_TABLE_EVENT_TIME_FORMAT = createFormatter({
12624
+ hour: 'numeric',
12625
+ minute: '2-digit',
12626
+ omitZeroMinute: true,
12627
+ meridiem: 'narrow',
12628
+ });
12629
+ function hasListItemDisplay(seg) {
12630
+ let { display } = seg.eventRange.ui;
12631
+ return display === 'list-item' || (display === 'auto' &&
12632
+ !seg.eventRange.def.allDay &&
12633
+ seg.firstCol === seg.lastCol && // can't be multi-day
12634
+ seg.isStart && // "
12635
+ seg.isEnd // "
12636
+ );
12637
+ }
12638
+
12639
+ class TableBlockEvent extends BaseComponent {
12640
+ render() {
12641
+ let { props } = this;
12642
+ 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 })));
12643
+ }
12644
+ }
12645
+
12646
+ class TableListItemEvent extends BaseComponent {
12647
+ render() {
12648
+ let { props, context } = this;
12649
+ let { options } = context;
12650
+ let { seg } = props;
12651
+ let timeFormat = options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;
12652
+ let timeText = buildSegTimeText(seg, timeFormat, context, true, props.defaultDisplayEventEnd);
12653
+ 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 })));
12654
+ }
12655
+ }
12656
+ function renderInnerContent$1(renderProps) {
12657
+ return (y(_, null,
12658
+ y("div", { className: "fc-daygrid-event-dot", style: { borderColor: renderProps.borderColor || renderProps.backgroundColor } }),
12659
+ renderProps.timeText && (y("div", { className: "fc-event-time" }, renderProps.timeText)),
12660
+ y("div", { className: "fc-event-title" }, renderProps.event.title || y(_, null, "\u00A0"))));
12661
+ }
12662
+
12663
+ class TableCellMoreLink extends BaseComponent {
12664
+ constructor() {
12665
+ super(...arguments);
12666
+ this.compileSegs = memoize(compileSegs);
12667
+ }
12668
+ render() {
12669
+ let { props } = this;
12670
+ let { allSegs, invisibleSegs } = this.compileSegs(props.singlePlacements);
12671
+ 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: () => {
12672
+ let isForcedInvisible = (props.eventDrag ? props.eventDrag.affectedInstances : null) ||
12673
+ (props.eventResize ? props.eventResize.affectedInstances : null) ||
12674
+ {};
12675
+ return (y(_, null, allSegs.map((seg) => {
12676
+ let instanceId = seg.eventRange.instance.instanceId;
12677
+ return (y("div", { className: "fc-daygrid-event-harness", key: instanceId, style: {
12678
+ visibility: isForcedInvisible[instanceId] ? 'hidden' : '',
12679
+ } }, 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))))));
12680
+ })));
12681
+ } }));
12682
+ }
12683
+ }
12684
+ function compileSegs(singlePlacements) {
12685
+ let allSegs = [];
12686
+ let invisibleSegs = [];
12687
+ for (let placement of singlePlacements) {
12688
+ allSegs.push(placement.seg);
12689
+ if (!placement.isVisible) {
12690
+ invisibleSegs.push(placement.seg);
12691
+ }
12692
+ }
12693
+ return { allSegs, invisibleSegs };
12694
+ }
12695
+
12696
+ const DEFAULT_WEEK_NUM_FORMAT$1 = createFormatter({ week: 'narrow' });
12697
+ class TableCell extends DateComponent {
12698
+ constructor() {
12699
+ super(...arguments);
12700
+ this.rootElRef = d();
12701
+ this.state = {
12702
+ dayNumberId: getUniqueDomId(),
12703
+ };
12704
+ this.handleRootEl = (el) => {
12705
+ setRef(this.rootElRef, el);
12706
+ setRef(this.props.elRef, el);
12707
+ };
12708
+ }
12709
+ render() {
12710
+ let { context, props, state, rootElRef } = this;
12711
+ let { options, dateEnv } = context;
12712
+ let { date, dateProfile } = props;
12713
+ // TODO: memoize this?
12714
+ const isMonthStart = props.showDayNumber &&
12715
+ shouldDisplayMonthStart(date, dateProfile.currentRange, dateEnv);
12716
+ return (y(DayCellContainer, { elTag: "td", elRef: this.handleRootEl, elClasses: [
12717
+ 'fc-daygrid-day',
12718
+ ...(props.extraClassNames || []),
12719
+ ], 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 } },
12720
+ props.showWeekNumber && (y(WeekNumberContainer, { elTag: "a", elClasses: ['fc-daygrid-week-number'], elAttrs: buildNavLinkAttrs(context, date, 'week'), date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT$1 })),
12721
+ !renderProps.isDisabled &&
12722
+ (props.showDayNumber || hasCustomDayCellContent(options) || props.forceDayTop) ? (y("div", { className: "fc-daygrid-day-top" },
12723
+ y(InnerContent, { elTag: "a", elClasses: [
12724
+ 'fc-daygrid-day-number',
12725
+ isMonthStart && 'fc-daygrid-month-start',
12726
+ ], elAttrs: Object.assign(Object.assign({}, buildNavLinkAttrs(context, date)), { id: state.dayNumberId }) }))) : props.showDayNumber ? (
12727
+ // for creating correct amount of space (see issue #7162)
12728
+ y("div", { className: "fc-daygrid-day-top", style: { visibility: 'hidden' } },
12729
+ y("a", { className: "fc-daygrid-day-number" }, "\u00A0"))) : undefined,
12730
+ y("div", { className: "fc-daygrid-day-events", ref: props.fgContentElRef },
12731
+ props.fgContent,
12732
+ y("div", { className: "fc-daygrid-day-bottom", style: { marginTop: props.moreMarginTop } },
12733
+ 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 }))),
12734
+ y("div", { className: "fc-daygrid-day-bg" }, props.bgContent)))));
12735
+ }
12736
+ }
12737
+ function renderTopInner(props) {
12738
+ return props.dayNumberText || y(_, null, "\u00A0");
12739
+ }
12740
+ function shouldDisplayMonthStart(date, currentRange, dateEnv) {
12741
+ const { start: currentStart, end: currentEnd } = currentRange;
12742
+ const currentEndIncl = addMs(currentEnd, -1);
12743
+ const currentFirstYear = dateEnv.getYear(currentStart);
12744
+ const currentFirstMonth = dateEnv.getMonth(currentStart);
12745
+ const currentLastYear = dateEnv.getYear(currentEndIncl);
12746
+ const currentLastMonth = dateEnv.getMonth(currentEndIncl);
12747
+ // spans more than one month?
12748
+ return !(currentFirstYear === currentLastYear && currentFirstMonth === currentLastMonth) &&
12749
+ Boolean(
12750
+ // first date in current view?
12751
+ date.valueOf() === currentStart.valueOf() ||
12752
+ // a month-start that's within the current range?
12753
+ (dateEnv.getDay(date) === 1 && date.valueOf() < currentEnd.valueOf()));
12754
+ }
12755
+
12756
+ function generateSegKey(seg) {
12757
+ return seg.eventRange.instance.instanceId + ':' + seg.firstCol;
12758
+ }
12759
+ function generateSegUid(seg) {
12760
+ return generateSegKey(seg) + ':' + seg.lastCol;
12761
+ }
12762
+ function computeFgSegPlacement(segs, // assumed already sorted
12763
+ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells) {
12764
+ let hierarchy = new DayGridSegHierarchy((segEntry) => {
12765
+ // TODO: more DRY with generateSegUid
12766
+ let segUid = segs[segEntry.index].eventRange.instance.instanceId +
12767
+ ':' + segEntry.span.start +
12768
+ ':' + (segEntry.span.end - 1);
12769
+ // if no thickness known, assume 1 (if 0, so small it always fits)
12770
+ return segHeights[segUid] || 1;
12771
+ });
12772
+ hierarchy.allowReslicing = true;
12773
+ hierarchy.strictOrder = strictOrder;
12774
+ if (dayMaxEvents === true || dayMaxEventRows === true) {
12775
+ hierarchy.maxCoord = maxContentHeight;
12776
+ hierarchy.hiddenConsumes = true;
12777
+ }
12778
+ else if (typeof dayMaxEvents === 'number') {
12779
+ hierarchy.maxStackCnt = dayMaxEvents;
12780
+ }
12781
+ else if (typeof dayMaxEventRows === 'number') {
12782
+ hierarchy.maxStackCnt = dayMaxEventRows;
12783
+ hierarchy.hiddenConsumes = true;
12784
+ }
12785
+ // create segInputs only for segs with known heights
12786
+ let segInputs = [];
12787
+ let unknownHeightSegs = [];
12788
+ for (let i = 0; i < segs.length; i += 1) {
12789
+ let seg = segs[i];
12790
+ let segUid = generateSegUid(seg);
12791
+ let eventHeight = segHeights[segUid];
12792
+ if (eventHeight != null) {
12793
+ segInputs.push({
12794
+ index: i,
12795
+ span: {
12796
+ start: seg.firstCol,
12797
+ end: seg.lastCol + 1,
12798
+ },
12799
+ });
12800
+ }
12801
+ else {
12802
+ unknownHeightSegs.push(seg);
12803
+ }
12804
+ }
12805
+ let hiddenEntries = hierarchy.addSegs(segInputs);
12806
+ let segRects = hierarchy.toRects();
12807
+ let { singleColPlacements, multiColPlacements, leftoverMargins } = placeRects(segRects, segs, cells);
12808
+ let moreCnts = [];
12809
+ let moreMarginTops = [];
12810
+ // add segs with unknown heights
12811
+ for (let seg of unknownHeightSegs) {
12812
+ multiColPlacements[seg.firstCol].push({
12813
+ seg,
12814
+ isVisible: false,
12815
+ isAbsolute: true,
12816
+ absoluteTop: 0,
12817
+ marginTop: 0,
12818
+ });
12819
+ for (let col = seg.firstCol; col <= seg.lastCol; col += 1) {
12820
+ singleColPlacements[col].push({
12821
+ seg: resliceSeg(seg, col, col + 1, cells),
12822
+ isVisible: false,
12823
+ isAbsolute: false,
12824
+ absoluteTop: 0,
12825
+ marginTop: 0,
12826
+ });
12827
+ }
12828
+ }
12829
+ // add the hidden entries
12830
+ for (let col = 0; col < cells.length; col += 1) {
12831
+ moreCnts.push(0);
12832
+ }
12833
+ for (let hiddenEntry of hiddenEntries) {
12834
+ let seg = segs[hiddenEntry.index];
12835
+ let hiddenSpan = hiddenEntry.span;
12836
+ multiColPlacements[hiddenSpan.start].push({
12837
+ seg: resliceSeg(seg, hiddenSpan.start, hiddenSpan.end, cells),
12838
+ isVisible: false,
12839
+ isAbsolute: true,
12840
+ absoluteTop: 0,
12841
+ marginTop: 0,
12842
+ });
12843
+ for (let col = hiddenSpan.start; col < hiddenSpan.end; col += 1) {
12844
+ moreCnts[col] += 1;
12845
+ singleColPlacements[col].push({
12846
+ seg: resliceSeg(seg, col, col + 1, cells),
12847
+ isVisible: false,
12848
+ isAbsolute: false,
12849
+ absoluteTop: 0,
12850
+ marginTop: 0,
12851
+ });
12852
+ }
12853
+ }
12854
+ // deal with leftover margins
12855
+ for (let col = 0; col < cells.length; col += 1) {
12856
+ moreMarginTops.push(leftoverMargins[col]);
12857
+ }
12858
+ return { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops };
12859
+ }
12860
+ // rects ordered by top coord, then left
12861
+ function placeRects(allRects, segs, cells) {
12862
+ let rectsByEachCol = groupRectsByEachCol(allRects, cells.length);
12863
+ let singleColPlacements = [];
12864
+ let multiColPlacements = [];
12865
+ let leftoverMargins = [];
12866
+ for (let col = 0; col < cells.length; col += 1) {
12867
+ let rects = rectsByEachCol[col];
12868
+ // compute all static segs in singlePlacements
12869
+ let singlePlacements = [];
12870
+ let currentHeight = 0;
12871
+ let currentMarginTop = 0;
12872
+ for (let rect of rects) {
12873
+ let seg = segs[rect.index];
12874
+ singlePlacements.push({
12875
+ seg: resliceSeg(seg, col, col + 1, cells),
12876
+ isVisible: true,
12877
+ isAbsolute: false,
12878
+ absoluteTop: rect.levelCoord,
12879
+ marginTop: rect.levelCoord - currentHeight,
12880
+ });
12881
+ currentHeight = rect.levelCoord + rect.thickness;
12882
+ }
12883
+ // compute mixed static/absolute segs in multiPlacements
12884
+ let multiPlacements = [];
12885
+ currentHeight = 0;
12886
+ currentMarginTop = 0;
12887
+ for (let rect of rects) {
12888
+ let seg = segs[rect.index];
12889
+ let isAbsolute = rect.span.end - rect.span.start > 1; // multi-column?
12890
+ let isFirstCol = rect.span.start === col;
12891
+ currentMarginTop += rect.levelCoord - currentHeight; // amount of space since bottom of previous seg
12892
+ currentHeight = rect.levelCoord + rect.thickness; // height will now be bottom of current seg
12893
+ if (isAbsolute) {
12894
+ currentMarginTop += rect.thickness;
12895
+ if (isFirstCol) {
12896
+ multiPlacements.push({
12897
+ seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),
12898
+ isVisible: true,
12899
+ isAbsolute: true,
12900
+ absoluteTop: rect.levelCoord,
12901
+ marginTop: 0,
12902
+ });
12903
+ }
12904
+ }
12905
+ else if (isFirstCol) {
12906
+ multiPlacements.push({
12907
+ seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),
12908
+ isVisible: true,
12909
+ isAbsolute: false,
12910
+ absoluteTop: rect.levelCoord,
12911
+ marginTop: currentMarginTop, // claim the margin
12912
+ });
12913
+ currentMarginTop = 0;
12914
+ }
12915
+ }
12916
+ singleColPlacements.push(singlePlacements);
12917
+ multiColPlacements.push(multiPlacements);
12918
+ leftoverMargins.push(currentMarginTop);
12919
+ }
12920
+ return { singleColPlacements, multiColPlacements, leftoverMargins };
12921
+ }
12922
+ function groupRectsByEachCol(rects, colCnt) {
12923
+ let rectsByEachCol = [];
12924
+ for (let col = 0; col < colCnt; col += 1) {
12925
+ rectsByEachCol.push([]);
12926
+ }
12927
+ for (let rect of rects) {
12928
+ for (let col = rect.span.start; col < rect.span.end; col += 1) {
12929
+ rectsByEachCol[col].push(rect);
12930
+ }
12931
+ }
12932
+ return rectsByEachCol;
12933
+ }
12934
+ function resliceSeg(seg, spanStart, spanEnd, cells) {
12935
+ if (seg.firstCol === spanStart && seg.lastCol === spanEnd - 1) {
12936
+ return seg;
12937
+ }
12938
+ let eventRange = seg.eventRange;
12939
+ let origRange = eventRange.range;
12940
+ let slicedRange = intersectRanges(origRange, {
12941
+ start: cells[spanStart].date,
12942
+ end: addDays(cells[spanEnd - 1].date, 1),
12943
+ });
12944
+ return Object.assign(Object.assign({}, seg), { firstCol: spanStart, lastCol: spanEnd - 1, eventRange: {
12945
+ def: eventRange.def,
12946
+ ui: Object.assign(Object.assign({}, eventRange.ui), { durationEditable: false }),
12947
+ instance: eventRange.instance,
12948
+ range: slicedRange,
12949
+ }, isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(), isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf() });
12950
+ }
12951
+ class DayGridSegHierarchy extends SegHierarchy {
12952
+ constructor() {
12953
+ super(...arguments);
12954
+ // config
12955
+ this.hiddenConsumes = false;
12956
+ // allows us to keep hidden entries in the hierarchy so they take up space
12957
+ this.forceHidden = {};
12958
+ }
12959
+ addSegs(segInputs) {
12960
+ const hiddenSegs = super.addSegs(segInputs);
12961
+ const { entriesByLevel } = this;
12962
+ const excludeHidden = (entry) => !this.forceHidden[buildEntryKey(entry)];
12963
+ // remove the forced-hidden segs
12964
+ for (let level = 0; level < entriesByLevel.length; level += 1) {
12965
+ entriesByLevel[level] = entriesByLevel[level].filter(excludeHidden);
12966
+ }
12967
+ return hiddenSegs;
12968
+ }
12969
+ handleInvalidInsertion(insertion, entry, hiddenEntries) {
12970
+ const { entriesByLevel, forceHidden } = this;
12971
+ const { touchingEntry, touchingLevel, touchingLateral } = insertion;
12972
+ // the entry that the new insertion is touching must be hidden
12973
+ if (this.hiddenConsumes && touchingEntry) {
12974
+ const touchingEntryId = buildEntryKey(touchingEntry);
12975
+ if (!forceHidden[touchingEntryId]) {
12976
+ if (this.allowReslicing) {
12977
+ // split up the touchingEntry, reinsert it
12978
+ const hiddenEntry = Object.assign(Object.assign({}, touchingEntry), { span: intersectSpans(touchingEntry.span, entry.span) });
12979
+ // reinsert the area that turned into a "more" link (so no other entries try to
12980
+ // occupy the space) but mark it forced-hidden
12981
+ const hiddenEntryId = buildEntryKey(hiddenEntry);
12982
+ forceHidden[hiddenEntryId] = true;
12983
+ entriesByLevel[touchingLevel][touchingLateral] = hiddenEntry;
12984
+ hiddenEntries.push(hiddenEntry);
12985
+ this.splitEntry(touchingEntry, entry, hiddenEntries);
12986
+ }
12987
+ else {
12988
+ forceHidden[touchingEntryId] = true;
12989
+ hiddenEntries.push(touchingEntry);
12990
+ }
12991
+ }
12992
+ }
12993
+ // will try to reslice...
12994
+ super.handleInvalidInsertion(insertion, entry, hiddenEntries);
12995
+ }
12996
+ }
12997
+
12998
+ class TableRow extends DateComponent {
12999
+ constructor() {
13000
+ super(...arguments);
13001
+ this.cellElRefs = new RefMap(); // the <td>
13002
+ this.frameElRefs = new RefMap(); // the fc-daygrid-day-frame
13003
+ this.fgElRefs = new RefMap(); // the fc-daygrid-day-events
13004
+ this.segHarnessRefs = new RefMap(); // indexed by "instanceId:firstCol"
13005
+ this.rootElRef = d();
13006
+ this.state = {
13007
+ framePositions: null,
13008
+ maxContentHeight: null,
13009
+ segHeights: {},
13010
+ };
13011
+ this.handleResize = (isForced) => {
13012
+ if (isForced) {
13013
+ this.updateSizing(true); // isExternal=true
13014
+ }
13015
+ };
13016
+ }
13017
+ render() {
13018
+ let { props, state, context } = this;
13019
+ let { options } = context;
13020
+ let colCnt = props.cells.length;
13021
+ let businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt);
13022
+ let bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt);
13023
+ let highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt);
13024
+ let mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt);
13025
+ let { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops } = computeFgSegPlacement(sortEventSegs(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.segHeights, state.maxContentHeight, props.cells);
13026
+ let isForcedInvisible = // TODO: messy way to compute this
13027
+ (props.eventDrag && props.eventDrag.affectedInstances) ||
13028
+ (props.eventResize && props.eventResize.affectedInstances) ||
13029
+ {};
13030
+ return (y("tr", { ref: this.rootElRef, role: "row" },
13031
+ props.renderIntro && props.renderIntro(),
13032
+ props.cells.map((cell, col) => {
13033
+ let normalFgNodes = this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);
13034
+ let mirrorFgNodes = this.renderFgSegs(col, buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);
13035
+ 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
13036
+ y(_, null,
13037
+ y(_, null, normalFgNodes),
13038
+ y(_, null, mirrorFgNodes))), bgContent: ( // Fragment scopes the keys
13039
+ y(_, null,
13040
+ this.renderFillSegs(highlightSegsByCol[col], 'highlight'),
13041
+ this.renderFillSegs(businessHoursByCol[col], 'non-business'),
13042
+ this.renderFillSegs(bgEventSegsByCol[col], 'bg-event'))), minHeight: props.cellMinHeight }));
13043
+ })));
13044
+ }
13045
+ componentDidMount() {
13046
+ this.updateSizing(true);
13047
+ this.context.addResizeHandler(this.handleResize);
13048
+ }
13049
+ componentDidUpdate(prevProps, prevState) {
13050
+ let currentProps = this.props;
13051
+ this.updateSizing(!isPropsEqual(prevProps, currentProps));
13052
+ }
13053
+ componentWillUnmount() {
13054
+ this.context.removeResizeHandler(this.handleResize);
13055
+ }
13056
+ getHighlightSegs() {
13057
+ let { props } = this;
13058
+ if (props.eventDrag && props.eventDrag.segs.length) { // messy check
13059
+ return props.eventDrag.segs;
13060
+ }
13061
+ if (props.eventResize && props.eventResize.segs.length) { // messy check
13062
+ return props.eventResize.segs;
13063
+ }
13064
+ return props.dateSelectionSegs;
13065
+ }
13066
+ getMirrorSegs() {
13067
+ let { props } = this;
13068
+ if (props.eventResize && props.eventResize.segs.length) { // messy check
13069
+ return props.eventResize.segs;
13070
+ }
13071
+ return [];
13072
+ }
13073
+ renderFgSegs(col, segPlacements, todayRange, isForcedInvisible, isDragging, isResizing, isDateSelecting) {
13074
+ let { context } = this;
13075
+ let { eventSelection } = this.props;
13076
+ let { framePositions } = this.state;
13077
+ let defaultDisplayEventEnd = this.props.cells.length === 1; // colCnt === 1
13078
+ let isMirror = isDragging || isResizing || isDateSelecting;
13079
+ let nodes = [];
13080
+ if (framePositions) {
13081
+ for (let placement of segPlacements) {
13082
+ let { seg } = placement;
13083
+ let { instanceId } = seg.eventRange.instance;
13084
+ let isVisible = placement.isVisible && !isForcedInvisible[instanceId];
13085
+ let isAbsolute = placement.isAbsolute;
13086
+ let left = '';
13087
+ let right = '';
13088
+ if (isAbsolute) {
13089
+ if (context.isRtl) {
13090
+ right = 0;
13091
+ left = framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol];
13092
+ }
13093
+ else {
13094
+ left = 0;
13095
+ right = framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol];
13096
+ }
13097
+ }
13098
+ /*
13099
+ known bug: events that are force to be list-item but span multiple days still take up space in later columns
13100
+ todo: in print view, for multi-day events, don't display title within non-start/end segs
13101
+ */
13102
+ 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: {
13103
+ visibility: isVisible ? '' : 'hidden',
13104
+ marginTop: isAbsolute ? '' : placement.marginTop,
13105
+ top: isAbsolute ? placement.absoluteTop : '',
13106
+ left,
13107
+ right,
13108
+ } }, 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))))));
13109
+ }
13110
+ }
13111
+ return nodes;
13112
+ }
13113
+ renderFillSegs(segs, fillType) {
13114
+ let { isRtl } = this.context;
13115
+ let { todayRange } = this.props;
13116
+ let { framePositions } = this.state;
13117
+ let nodes = [];
13118
+ if (framePositions) {
13119
+ for (let seg of segs) {
13120
+ let leftRightCss = isRtl ? {
13121
+ right: 0,
13122
+ left: framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol],
13123
+ } : {
13124
+ left: 0,
13125
+ right: framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol],
13126
+ };
13127
+ nodes.push(y("div", { key: buildEventRangeKey(seg.eventRange), className: "fc-daygrid-bg-harness", style: leftRightCss }, fillType === 'bg-event' ?
13128
+ y(BgEvent, Object.assign({ seg: seg }, getSegMeta(seg, todayRange))) :
13129
+ renderFill(fillType)));
13130
+ }
13131
+ }
13132
+ return y(_, {}, ...nodes);
13133
+ }
13134
+ updateSizing(isExternalSizingChange) {
13135
+ let { props, state, frameElRefs } = this;
13136
+ if (!props.forPrint &&
13137
+ props.clientWidth !== null // positioning ready?
13138
+ ) {
13139
+ if (isExternalSizingChange) {
13140
+ let frameEls = props.cells.map((cell) => frameElRefs.currentMap[cell.key]);
13141
+ if (frameEls.length) {
13142
+ let originEl = this.rootElRef.current;
13143
+ let newPositionCache = new PositionCache(originEl, frameEls, true, // isHorizontal
13144
+ false);
13145
+ if (!state.framePositions || !state.framePositions.similarTo(newPositionCache)) {
13146
+ this.setState({
13147
+ framePositions: new PositionCache(originEl, frameEls, true, // isHorizontal
13148
+ false),
13149
+ });
13150
+ }
13151
+ }
13152
+ }
13153
+ const oldSegHeights = this.state.segHeights;
13154
+ const newSegHeights = this.querySegHeights();
13155
+ const limitByContentHeight = props.dayMaxEvents === true || props.dayMaxEventRows === true;
13156
+ this.safeSetState({
13157
+ // HACK to prevent oscillations of events being shown/hidden from max-event-rows
13158
+ // Essentially, once you compute an element's height, never null-out.
13159
+ // TODO: always display all events, as visibility:hidden?
13160
+ segHeights: Object.assign(Object.assign({}, oldSegHeights), newSegHeights),
13161
+ maxContentHeight: limitByContentHeight ? this.computeMaxContentHeight() : null,
13162
+ });
13163
+ }
13164
+ }
13165
+ querySegHeights() {
13166
+ let segElMap = this.segHarnessRefs.currentMap;
13167
+ let segHeights = {};
13168
+ // get the max height amongst instance segs
13169
+ for (let segUid in segElMap) {
13170
+ let height = Math.round(segElMap[segUid].getBoundingClientRect().height);
13171
+ segHeights[segUid] = Math.max(segHeights[segUid] || 0, height);
13172
+ }
13173
+ return segHeights;
13174
+ }
13175
+ computeMaxContentHeight() {
13176
+ let firstKey = this.props.cells[0].key;
13177
+ let cellEl = this.cellElRefs.currentMap[firstKey];
13178
+ let fcContainerEl = this.fgElRefs.currentMap[firstKey];
13179
+ return cellEl.getBoundingClientRect().bottom - fcContainerEl.getBoundingClientRect().top;
13180
+ }
13181
+ getCellEls() {
13182
+ let elMap = this.cellElRefs.currentMap;
13183
+ return this.props.cells.map((cell) => elMap[cell.key]);
13184
+ }
13185
+ }
13186
+ TableRow.addStateEquality({
13187
+ segHeights: isPropsEqual,
13188
+ });
13189
+ function buildMirrorPlacements(mirrorSegs, colPlacements) {
13190
+ if (!mirrorSegs.length) {
13191
+ return [];
13192
+ }
13193
+ let topsByInstanceId = buildAbsoluteTopHash(colPlacements); // TODO: cache this at first render?
13194
+ return mirrorSegs.map((seg) => ({
13195
+ seg,
13196
+ isVisible: true,
13197
+ isAbsolute: true,
13198
+ absoluteTop: topsByInstanceId[seg.eventRange.instance.instanceId],
13199
+ marginTop: 0,
13200
+ }));
13201
+ }
13202
+ function buildAbsoluteTopHash(colPlacements) {
13203
+ let topsByInstanceId = {};
13204
+ for (let placements of colPlacements) {
13205
+ for (let placement of placements) {
13206
+ topsByInstanceId[placement.seg.eventRange.instance.instanceId] = placement.absoluteTop;
13207
+ }
13208
+ }
13209
+ return topsByInstanceId;
13210
+ }
13211
+
13212
+ class TableRows extends DateComponent {
13213
+ constructor() {
13214
+ super(...arguments);
13215
+ this.splitBusinessHourSegs = memoize(splitSegsByRow);
13216
+ this.splitBgEventSegs = memoize(splitSegsByRow);
13217
+ this.splitFgEventSegs = memoize(splitSegsByRow);
13218
+ this.splitDateSelectionSegs = memoize(splitSegsByRow);
13219
+ this.splitEventDrag = memoize(splitInteractionByRow);
13220
+ this.splitEventResize = memoize(splitInteractionByRow);
13221
+ this.rowRefs = new RefMap();
13222
+ }
13223
+ render() {
13224
+ let { props, context } = this;
13225
+ let rowCnt = props.cells.length;
13226
+ let businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, rowCnt);
13227
+ let bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, rowCnt);
13228
+ let fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, rowCnt);
13229
+ let dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, rowCnt);
13230
+ let eventDragByRow = this.splitEventDrag(props.eventDrag, rowCnt);
13231
+ let eventResizeByRow = this.splitEventResize(props.eventResize, rowCnt);
13232
+ // for DayGrid view with many rows, force a min-height on cells so doesn't appear squished
13233
+ // choose 7 because a month view will have max 6 rows
13234
+ let cellMinHeight = (rowCnt >= 7 && props.clientWidth) ?
13235
+ props.clientWidth / context.options.aspectRatio / 6 :
13236
+ null;
13237
+ return (y(NowTimer, { unit: "day" }, (nowDate, todayRange) => (y(_, null, props.cells.map((cells, row) => (y(TableRow, { ref: this.rowRefs.createRef(row), key: cells.length
13238
+ ? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */
13239
+ : row // in case there are no cells (like when resource view is loading)
13240
+ , 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 })))))));
13241
+ }
13242
+ componentDidMount() {
13243
+ this.registerInteractiveComponent();
13244
+ }
13245
+ componentDidUpdate() {
13246
+ // for if started with zero cells
13247
+ this.registerInteractiveComponent();
13248
+ }
13249
+ registerInteractiveComponent() {
13250
+ if (!this.rootEl) {
13251
+ // HACK: need a daygrid wrapper parent to do positioning
13252
+ // NOTE: a daygrid resource view w/o resources can have zero cells
13253
+ const firstCellEl = this.rowRefs.currentMap[0].getCellEls()[0];
13254
+ const rootEl = firstCellEl ? firstCellEl.closest('.fc-daygrid-body') : null;
13255
+ if (rootEl) {
13256
+ this.rootEl = rootEl;
13257
+ this.context.registerInteractiveComponent(this, {
13258
+ el: rootEl,
13259
+ isHitComboAllowed: this.props.isHitComboAllowed,
13260
+ });
13261
+ }
13262
+ }
13263
+ }
13264
+ componentWillUnmount() {
13265
+ if (this.rootEl) {
13266
+ this.context.unregisterInteractiveComponent(this);
13267
+ this.rootEl = null;
13268
+ }
13269
+ }
13270
+ // Hit System
13271
+ // ----------------------------------------------------------------------------------------------------
13272
+ prepareHits() {
13273
+ this.rowPositions = new PositionCache(this.rootEl, this.rowRefs.collect().map((rowObj) => rowObj.getCellEls()[0]), // first cell el in each row. TODO: not optimal
13274
+ false, true);
13275
+ this.colPositions = new PositionCache(this.rootEl, this.rowRefs.currentMap[0].getCellEls(), // cell els in first row
13276
+ true, // horizontal
13277
+ false);
13278
+ }
13279
+ queryHit(positionLeft, positionTop) {
13280
+ let { colPositions, rowPositions } = this;
13281
+ let col = colPositions.leftToIndex(positionLeft);
13282
+ let row = rowPositions.topToIndex(positionTop);
13283
+ if (row != null && col != null) {
13284
+ let cell = this.props.cells[row][col];
13285
+ return {
13286
+ dateProfile: this.props.dateProfile,
13287
+ dateSpan: Object.assign({ range: this.getCellRange(row, col), allDay: true }, cell.extraDateSpan),
13288
+ dayEl: this.getCellEl(row, col),
13289
+ rect: {
13290
+ left: colPositions.lefts[col],
13291
+ right: colPositions.rights[col],
13292
+ top: rowPositions.tops[row],
13293
+ bottom: rowPositions.bottoms[row],
13294
+ },
13295
+ layer: 0,
13296
+ };
13297
+ }
13298
+ return null;
13299
+ }
13300
+ getCellEl(row, col) {
13301
+ return this.rowRefs.currentMap[row].getCellEls()[col]; // TODO: not optimal
13302
+ }
13303
+ getCellRange(row, col) {
13304
+ let start = this.props.cells[row][col].date;
13305
+ let end = addDays(start, 1);
13306
+ return { start, end };
13307
+ }
13308
+ }
13309
+ function isSegAllDay(seg) {
13310
+ return seg.eventRange.def.allDay;
13311
+ }
13312
+
13313
+ class Table extends DateComponent {
13314
+ constructor() {
13315
+ super(...arguments);
13316
+ this.elRef = d();
13317
+ this.needsScrollReset = false;
13318
+ }
13319
+ render() {
13320
+ let { props } = this;
13321
+ let { dayMaxEventRows, dayMaxEvents, expandRows } = props;
13322
+ let limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true;
13323
+ // if rows can't expand to fill fixed height, can't do balanced-height event limit
13324
+ // TODO: best place to normalize these options?
13325
+ if (limitViaBalanced && !expandRows) {
13326
+ limitViaBalanced = false;
13327
+ dayMaxEventRows = null;
13328
+ dayMaxEvents = null;
13329
+ }
13330
+ let classNames = [
13331
+ 'fc-daygrid-body',
13332
+ limitViaBalanced ? 'fc-daygrid-body-balanced' : 'fc-daygrid-body-unbalanced',
13333
+ expandRows ? '' : 'fc-daygrid-body-natural', // will height of one row depend on the others?
13334
+ ];
13335
+ return (y("div", { ref: this.elRef, className: classNames.join(' '), style: {
13336
+ // these props are important to give this wrapper correct dimensions for interactions
13337
+ // TODO: if we set it here, can we avoid giving to inner tables?
13338
+ width: props.clientWidth,
13339
+ minWidth: props.tableMinWidth,
13340
+ } },
13341
+ y("table", { role: "presentation", className: "fc-scrollgrid-sync-table", style: {
13342
+ width: props.clientWidth,
13343
+ minWidth: props.tableMinWidth,
13344
+ height: expandRows ? props.clientHeight : '',
13345
+ } },
13346
+ props.colGroupNode,
13347
+ y("tbody", { role: "presentation" },
13348
+ 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 })))));
13349
+ }
13350
+ componentDidMount() {
13351
+ this.requestScrollReset();
13352
+ }
13353
+ componentDidUpdate(prevProps) {
13354
+ if (prevProps.dateProfile !== this.props.dateProfile) {
13355
+ this.requestScrollReset();
13356
+ }
13357
+ else {
13358
+ this.flushScrollReset();
13359
+ }
13360
+ }
13361
+ requestScrollReset() {
13362
+ this.needsScrollReset = true;
13363
+ this.flushScrollReset();
13364
+ }
13365
+ flushScrollReset() {
13366
+ if (this.needsScrollReset &&
13367
+ this.props.clientWidth // sizes computed?
13368
+ ) {
13369
+ const subjectEl = getScrollSubjectEl(this.elRef.current, this.props.dateProfile);
13370
+ if (subjectEl) {
13371
+ const originEl = subjectEl.closest('.fc-daygrid-body');
13372
+ const scrollEl = originEl.closest('.fc-scroller');
13373
+ const scrollTop = subjectEl.getBoundingClientRect().top -
13374
+ originEl.getBoundingClientRect().top;
13375
+ scrollEl.scrollTop = scrollTop ? (scrollTop + 1) : 0; // overcome border
13376
+ }
13377
+ this.needsScrollReset = false;
13378
+ }
13379
+ }
13380
+ }
13381
+ function getScrollSubjectEl(containerEl, dateProfile) {
13382
+ let el;
13383
+ if (dateProfile.currentRangeUnit.match(/year|month/)) {
13384
+ el = containerEl.querySelector(`[data-date="${formatIsoMonthStr(dateProfile.currentDate)}-01"]`);
13385
+ // even if view is month-based, first-of-month might be hidden...
13386
+ }
13387
+ if (!el) {
13388
+ el = containerEl.querySelector(`[data-date="${formatDayString(dateProfile.currentDate)}"]`);
13389
+ // could still be hidden if an interior-view hidden day
13390
+ }
13391
+ return el;
13392
+ }
13393
+
13394
+ class DayTableSlicer extends Slicer {
13395
+ constructor() {
13396
+ super(...arguments);
13397
+ this.forceDayIfListItem = true;
13398
+ }
13399
+ sliceRange(dateRange, dayTableModel) {
13400
+ return dayTableModel.sliceRange(dateRange);
13401
+ }
13402
+ }
13403
+
13404
+ class DayTable extends DateComponent {
13405
+ constructor() {
13406
+ super(...arguments);
13407
+ this.slicer = new DayTableSlicer();
13408
+ this.tableRef = d();
13409
+ }
13410
+ render() {
13411
+ let { props, context } = this;
13412
+ 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 })));
13413
+ }
13414
+ }
13415
+
13416
+ 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}";
13417
+ injectStyles(css_248z$1);
13418
+
12581
13419
  class AllDaySplitter extends Splitter {
12582
13420
  getKeyInfo() {
12583
13421
  return {
@@ -13966,7 +14804,7 @@ class KupCalendarState {
13966
14804
  }
13967
14805
  }
13968
14806
 
13969
- 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}}";
14807
+ 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}}";
13970
14808
  const KupCalendarStyle0 = kupCalendarCss;
13971
14809
 
13972
14810
  const KupCalendar = class {