@sme.up/ketchup 4.3.0-SNAPSHOT → 5.1.0-SNAPSHOT

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 (343) hide show
  1. package/README.md +107 -3
  2. package/dist/cjs/{cell-utils-dc0884a3.js → cell-utils-9b1d6563.js} +4 -4
  3. package/dist/cjs/{component-8fbc31a2.js → component-d1496215.js} +203 -174
  4. package/dist/cjs/{f-button-2ba74fb5.js → f-button-02a7cde4.js} +2 -2
  5. package/dist/cjs/{f-cell-fe60a08d.js → f-cell-4d1450a8.js} +38 -28
  6. package/dist/cjs/f-chip-a50b9f00.js +130 -0
  7. package/dist/cjs/{f-image-d3bd4e08.js → f-image-db55ac49.js} +3 -3
  8. package/dist/cjs/{index-0416afab.js → index-ab119fad.js} +23 -0
  9. package/dist/cjs/ketchup.cjs.js +3 -3
  10. package/dist/cjs/kup-accordion.cjs.entry.js +7 -7
  11. package/dist/cjs/{kup-autocomplete_28.cjs.entry.js → kup-autocomplete_27.cjs.entry.js} +4636 -4073
  12. package/dist/cjs/kup-calendar.cjs.entry.js +626 -359
  13. package/dist/cjs/kup-cell.cjs.entry.js +15 -13
  14. package/dist/cjs/kup-dash-list.cjs.entry.js +4 -4
  15. package/dist/cjs/kup-dash_2.cjs.entry.js +8 -7
  16. package/dist/cjs/kup-drawer.cjs.entry.js +3 -3
  17. package/dist/cjs/kup-echart.cjs.entry.js +93039 -0
  18. package/dist/cjs/kup-field.cjs.entry.js +2 -2
  19. package/dist/cjs/kup-iframe.cjs.entry.js +3 -3
  20. package/dist/cjs/kup-lazy.cjs.entry.js +22 -5
  21. package/dist/cjs/kup-magic-box.cjs.entry.js +95 -42
  22. package/dist/cjs/{kup-manager-1a2688ca.js → kup-manager-5877b2ee.js} +3392 -753
  23. package/dist/cjs/kup-nav-bar.cjs.entry.js +3 -3
  24. package/dist/cjs/kup-probe.cjs.entry.js +2 -2
  25. package/dist/cjs/kup-qlik.cjs.entry.js +2 -2
  26. package/dist/cjs/kup-snackbar.cjs.entry.js +5 -5
  27. package/dist/cjs/loader.cjs.js +3 -3
  28. package/dist/cjs/{tslib.es6-4360c099.js → tslib.es6-0ee02c67.js} +13 -0
  29. package/dist/cjs/utils-1b5c8c70.js +482 -0
  30. package/dist/collection/assets/calendar.js +46 -1
  31. package/dist/collection/assets/card.js +15 -15
  32. package/dist/collection/assets/data-table.js +18 -6
  33. package/dist/collection/assets/index.js +8 -0
  34. package/dist/collection/assets/kupdata.js +937 -0
  35. package/dist/collection/collection-manifest.json +4 -4
  36. package/dist/collection/components/kup-accordion/kup-accordion.css +0 -1
  37. package/dist/collection/components/kup-accordion/kup-accordion.js +2 -2
  38. package/dist/collection/components/kup-autocomplete/kup-autocomplete-declarations.js +2 -0
  39. package/dist/collection/components/kup-autocomplete/kup-autocomplete.js +148 -52
  40. package/dist/collection/components/kup-badge/kup-badge.js +2 -2
  41. package/dist/collection/components/kup-box/kup-box.js +31 -17
  42. package/dist/collection/components/kup-button/kup-button.js +2 -2
  43. package/dist/collection/components/kup-button-list/kup-button-list.js +26 -8
  44. package/dist/collection/components/kup-calendar/kup-calendar-declarations.js +14 -8
  45. package/dist/collection/components/kup-calendar/kup-calendar.css +2 -2
  46. package/dist/collection/components/kup-calendar/kup-calendar.js +185 -315
  47. package/dist/collection/components/kup-card/built-in/kup-card-built-in.js +38 -0
  48. package/dist/collection/components/kup-card/{builtin → built-in}/kup-card-calendar.js +1 -1
  49. package/dist/collection/components/kup-card/{builtin → built-in}/kup-card-clock.js +32 -32
  50. package/dist/collection/components/kup-card/built-in/kup-card-column-drop-menu.js +167 -0
  51. package/dist/collection/components/kup-card/collapsible/kup-card-collapsible.js +1 -1
  52. package/dist/collection/components/kup-card/dialog/kup-card-dialog.js +2 -2
  53. package/dist/collection/components/kup-card/free/kup-card-free.js +11 -2
  54. package/dist/collection/components/kup-card/kup-card-declarations.js +14 -14
  55. package/dist/collection/components/kup-card/kup-card-helper.js +3 -3
  56. package/dist/collection/components/kup-card/kup-card.css +423 -137
  57. package/dist/collection/components/kup-card/kup-card.js +62 -11
  58. package/dist/collection/components/kup-card/scalable/kup-card-scalable.js +1 -1
  59. package/dist/collection/components/kup-card/standard/kup-card-standard.js +18 -5
  60. package/dist/collection/components/kup-cell/kup-cell.js +15 -13
  61. package/dist/collection/components/kup-chart/kup-chart-builder.js +3 -4
  62. package/dist/collection/components/kup-chart/kup-chart.js +7 -7
  63. package/dist/collection/components/kup-checkbox/kup-checkbox.js +1 -1
  64. package/dist/collection/components/kup-chip/kup-chip.css +1 -0
  65. package/dist/collection/components/kup-chip/kup-chip.js +51 -92
  66. package/dist/collection/components/kup-color-picker/kup-color-picker.css +1 -265
  67. package/dist/collection/components/kup-color-picker/kup-color-picker.js +93 -48
  68. package/dist/collection/components/kup-combobox/kup-combobox.js +148 -115
  69. package/dist/collection/components/kup-dash/kup-dash.js +1 -1
  70. package/dist/collection/components/kup-dash-list/kup-dash-list.js +5 -5
  71. package/dist/collection/components/kup-data-table/kup-data-table-declarations.js +3 -1
  72. package/dist/collection/components/kup-data-table/kup-data-table-helper.js +28 -56
  73. package/dist/collection/components/kup-data-table/kup-data-table.css +4 -0
  74. package/dist/collection/components/kup-data-table/kup-data-table.js +345 -158
  75. package/dist/collection/components/kup-date-picker/kup-date-picker.js +8 -5
  76. package/dist/collection/components/kup-drawer/kup-drawer.js +1 -1
  77. package/dist/collection/components/kup-dropdown-button/kup-dropdown-button.js +2 -2
  78. package/dist/collection/components/kup-echart/assets/maps/africa.json +6116 -0
  79. package/dist/collection/components/kup-echart/assets/maps/america.json +5416 -0
  80. package/dist/collection/components/kup-echart/assets/maps/asia.json +6053 -0
  81. package/dist/collection/components/kup-echart/assets/maps/europe.json +5051 -0
  82. package/dist/collection/components/kup-echart/assets/maps/italy.json +3562 -0
  83. package/dist/collection/components/kup-echart/assets/maps/oceania.json +1069 -0
  84. package/dist/collection/components/kup-echart/assets/maps/world.json +23685 -0
  85. package/dist/collection/components/kup-echart/kup-echart-declarations.js +45 -0
  86. package/dist/collection/components/kup-echart/kup-echart.css +13 -0
  87. package/dist/collection/components/kup-echart/kup-echart.js +1165 -0
  88. package/dist/collection/components/kup-field/kup-field.js +2 -2
  89. package/dist/collection/components/kup-gauge/kup-gauge.js +3 -3
  90. package/dist/collection/components/kup-grid/kup-grid.css +2 -2
  91. package/dist/collection/components/kup-grid/kup-grid.js +6 -5
  92. package/dist/collection/components/kup-iframe/kup-iframe.js +2 -2
  93. package/dist/collection/components/kup-image/assets/svg/science.svg +1 -0
  94. package/dist/collection/components/kup-image/kup-image.js +3 -3
  95. package/dist/collection/components/kup-lazy/kup-lazy.css +21 -11
  96. package/dist/collection/components/kup-lazy/kup-lazy.js +62 -3
  97. package/dist/collection/components/kup-list/kup-list-helper.js +7 -1
  98. package/dist/collection/components/kup-list/kup-list.css +3 -0
  99. package/dist/collection/components/kup-list/kup-list.js +219 -288
  100. package/dist/collection/components/kup-magic-box/kup-magic-box-declarations.js +11 -7
  101. package/dist/collection/components/kup-magic-box/kup-magic-box.js +90 -41
  102. package/dist/collection/components/kup-nav-bar/kup-nav-bar.js +1 -1
  103. package/dist/collection/components/kup-probe/kup-probe.js +1 -1
  104. package/dist/collection/components/kup-progress-bar/kup-progress-bar.js +1 -1
  105. package/dist/collection/components/kup-qlik/kup-qlik.js +1 -1
  106. package/dist/collection/components/kup-radio/kup-radio.js +1 -1
  107. package/dist/collection/components/kup-rating/kup-rating.js +1 -1
  108. package/dist/collection/components/kup-snackbar/kup-snackbar.js +1 -1
  109. package/dist/collection/components/kup-spinner/kup-spinner.js +1 -1
  110. package/dist/collection/components/kup-state/mock-store.js +1 -1
  111. package/dist/collection/components/kup-switch/kup-switch.js +1 -1
  112. package/dist/collection/components/kup-tab-bar/kup-tab-bar.js +3 -3
  113. package/dist/collection/components/kup-text-field/kup-text-field.css +2 -0
  114. package/dist/collection/components/kup-text-field/kup-text-field.js +2 -2
  115. package/dist/collection/components/kup-time-picker/kup-time-picker.js +8 -5
  116. package/dist/collection/components/kup-tooltip/kup-tooltip.js +3 -3
  117. package/dist/collection/components/kup-tree/kup-tree-declarations.js +0 -5
  118. package/dist/collection/components/kup-tree/kup-tree-faker.js +2 -3
  119. package/dist/collection/components/kup-tree/kup-tree.css +2 -0
  120. package/dist/collection/components/kup-tree/kup-tree.js +145 -70
  121. package/dist/collection/f-components/f-cell/f-cell-declarations.js +3 -1
  122. package/dist/collection/f-components/f-cell/f-cell.js +29 -19
  123. package/dist/collection/f-components/f-chip/f-chip.js +76 -87
  124. package/dist/collection/f-components/f-image/f-image.js +2 -2
  125. package/dist/collection/f-components/f-paginator/f-paginator-declarations.js +5 -0
  126. package/dist/collection/f-components/f-paginator/f-paginator-utils.js +28 -0
  127. package/dist/collection/f-components/f-paginator/f-paginator.js +91 -0
  128. package/dist/collection/f-components/f-text-field/f-text-field.js +4 -4
  129. package/dist/collection/managers/kup-data/kup-data-cell-helper.js +52 -0
  130. package/dist/collection/managers/kup-data/kup-data-column-helper.js +272 -0
  131. package/dist/collection/managers/kup-data/kup-data-declarations.js +9 -0
  132. package/dist/collection/managers/kup-data/kup-data-node-helper.js +72 -0
  133. package/dist/collection/managers/kup-data/kup-data-row-helper.js +28 -0
  134. package/dist/collection/managers/kup-data/kup-data.js +382 -0
  135. package/dist/collection/{utils → managers}/kup-dates/kup-dates-declarations.js +0 -0
  136. package/dist/collection/{utils → managers}/kup-dates/kup-dates.js +53 -19
  137. package/dist/collection/{utils → managers}/kup-debug/kup-debug-browser-utils.js +1 -1
  138. package/dist/collection/{utils → managers}/kup-debug/kup-debug-declarations.js +0 -0
  139. package/dist/collection/{utils → managers}/kup-debug/kup-debug.js +79 -124
  140. package/dist/collection/{utils → managers}/kup-dynamic-position/kup-dynamic-position-declarations.js +0 -0
  141. package/dist/collection/{utils → managers}/kup-dynamic-position/kup-dynamic-position.js +10 -1
  142. package/dist/collection/{utils → managers}/kup-interact/kup-interact-declarations.js +1 -0
  143. package/dist/collection/{utils → managers}/kup-interact/kup-interact.js +22 -13
  144. package/dist/collection/{utils → managers}/kup-language/kup-language-declarations.js +10 -0
  145. package/dist/collection/{utils → managers}/kup-language/kup-language.js +5 -5
  146. package/dist/collection/{utils → managers}/kup-manager/kup-manager-declarations.js +0 -0
  147. package/dist/collection/{utils → managers}/kup-manager/kup-manager.js +45 -4
  148. package/dist/collection/managers/kup-math/kup-math-declarations.js +13 -0
  149. package/dist/collection/managers/kup-math/kup-math-helper.js +39 -0
  150. package/dist/collection/managers/kup-math/kup-math.js +151 -0
  151. package/dist/collection/{utils → managers}/kup-objects/kup-objects-declarations.js +0 -0
  152. package/dist/collection/{utils → managers}/kup-objects/kup-objects.js +15 -0
  153. package/dist/collection/{utils → managers}/kup-scroll-on-hover/kup-scroll-on-hover-declarations.js +0 -0
  154. package/dist/collection/{utils → managers}/kup-scroll-on-hover/kup-scroll-on-hover.js +0 -0
  155. package/dist/collection/{utils → managers}/kup-search/kup-search-declarations.js +0 -0
  156. package/dist/collection/{utils → managers}/kup-search/kup-search.js +0 -0
  157. package/dist/collection/{utils → managers}/kup-theme/kup-theme-declarations.js +99 -0
  158. package/dist/collection/{utils → managers}/kup-theme/kup-theme.js +117 -68
  159. package/dist/collection/{utils → managers}/kup-toolbar/kup-toolbar-declarations.js +0 -0
  160. package/dist/collection/{utils → managers}/kup-toolbar/kup-toolbar.js +0 -0
  161. package/dist/collection/types/GenericTypes.js +48 -1
  162. package/dist/collection/utils/cell-utils.js +3 -4
  163. package/dist/collection/utils/filters/filters-column-menu.js +7 -7
  164. package/dist/collection/utils/filters/filters-rows.js +2 -2
  165. package/dist/collection/utils/filters/filters-tree-items.js +12 -12
  166. package/dist/collection/utils/filters/filters.js +3 -2
  167. package/dist/collection/utils/kup-column-menu/kup-column-menu-declarations.js +1 -0
  168. package/dist/collection/utils/kup-column-menu/kup-column-menu.js +100 -68
  169. package/dist/collection/utils/utils.js +4 -4
  170. package/dist/esm/{cell-utils-8f512ea9.js → cell-utils-571978d6.js} +4 -4
  171. package/dist/esm/{component-d2803feb.js → component-c4eb6153.js} +204 -170
  172. package/dist/esm/{f-button-30dbcaa9.js → f-button-b3011cc2.js} +2 -2
  173. package/dist/esm/{f-cell-95c186c6.js → f-cell-b88b2731.js} +38 -28
  174. package/dist/esm/f-chip-a52489ec.js +128 -0
  175. package/dist/esm/{f-image-3bc8b24f.js → f-image-5e5ed7e2.js} +3 -3
  176. package/dist/esm/{index-e0e67c23.js → index-78f3699d.js} +23 -0
  177. package/dist/esm/ketchup.js +3 -3
  178. package/dist/esm/kup-accordion.entry.js +7 -7
  179. package/dist/esm/{kup-autocomplete_28.entry.js → kup-autocomplete_27.entry.js} +4420 -3856
  180. package/dist/esm/kup-calendar.entry.js +626 -359
  181. package/dist/esm/kup-cell.entry.js +15 -13
  182. package/dist/esm/kup-dash-list.entry.js +4 -4
  183. package/dist/esm/kup-dash_2.entry.js +8 -7
  184. package/dist/esm/kup-drawer.entry.js +3 -3
  185. package/dist/esm/kup-echart.entry.js +93035 -0
  186. package/dist/esm/kup-field.entry.js +2 -2
  187. package/dist/esm/kup-iframe.entry.js +3 -3
  188. package/dist/esm/kup-lazy.entry.js +22 -5
  189. package/dist/esm/kup-magic-box.entry.js +95 -42
  190. package/dist/esm/{kup-manager-7fc234da.js → kup-manager-1f76a3ef.js} +3388 -753
  191. package/dist/esm/kup-nav-bar.entry.js +3 -3
  192. package/dist/esm/kup-probe.entry.js +2 -2
  193. package/dist/esm/kup-qlik.entry.js +2 -2
  194. package/dist/esm/kup-snackbar.entry.js +5 -5
  195. package/dist/esm/loader.js +3 -3
  196. package/dist/esm/polyfills/css-shim.js +1 -1
  197. package/dist/esm/{tslib.es6-e6137777.js → tslib.es6-8f2d44b6.js} +13 -1
  198. package/dist/esm/utils-93ae800f.js +461 -0
  199. package/dist/ketchup/assets/maps/africa.json +6116 -0
  200. package/dist/ketchup/assets/maps/america.json +5416 -0
  201. package/dist/ketchup/assets/maps/asia.json +6053 -0
  202. package/dist/ketchup/assets/maps/europe.json +5051 -0
  203. package/dist/ketchup/assets/maps/italy.json +3562 -0
  204. package/dist/ketchup/assets/maps/oceania.json +1069 -0
  205. package/dist/ketchup/assets/maps/world.json +23685 -0
  206. package/dist/ketchup/assets/svg/science.svg +1 -0
  207. package/dist/ketchup/ketchup.esm.js +1 -1
  208. package/dist/ketchup/{p-a878016f.entry.js → p-088a886c.entry.js} +1 -1
  209. package/dist/ketchup/p-135cabdc.entry.js +1 -0
  210. package/dist/ketchup/{p-1c6178e4.entry.js → p-1c1e830f.entry.js} +1 -1
  211. package/dist/ketchup/{p-62816d0b.entry.js → p-29208220.entry.js} +1 -1
  212. package/dist/ketchup/{p-ca0ca27f.entry.js → p-2b9f2019.entry.js} +1 -1
  213. package/dist/ketchup/p-52d0582a.js +1 -0
  214. package/dist/ketchup/p-554bd5f0.entry.js +39 -0
  215. package/dist/ketchup/{p-de83f2f6.js → p-5f52e313.js} +1 -1
  216. package/dist/ketchup/{p-ccda584a.entry.js → p-65449480.entry.js} +1 -1
  217. package/dist/ketchup/p-79cf3874.entry.js +1 -0
  218. package/dist/ketchup/p-7a85cda4.js +1 -0
  219. package/dist/ketchup/p-84cce555.entry.js +27 -0
  220. package/dist/ketchup/p-8c44c3b9.js +135 -0
  221. package/dist/ketchup/{p-65adc15b.entry.js → p-9d49cdb2.entry.js} +1 -1
  222. package/dist/ketchup/{p-5a4a5fdc.js → p-a0b1d769.js} +1 -1
  223. package/dist/ketchup/{p-dbb6998b.entry.js → p-a2b6672e.entry.js} +1 -1
  224. package/dist/ketchup/{p-a378ba56.entry.js → p-a4be630b.entry.js} +1 -1
  225. package/dist/ketchup/p-c072b270.js +1 -0
  226. package/dist/ketchup/{p-1baf1205.entry.js → p-c648972c.entry.js} +1 -1
  227. package/dist/ketchup/{p-af4a6191.entry.js → p-d67d39c0.entry.js} +1 -1
  228. package/dist/ketchup/p-d6e2f2b0.entry.js +1 -0
  229. package/dist/ketchup/{p-44375e49.js → p-da387e0e.js} +1 -1
  230. package/dist/ketchup/p-e5c9ec9e.js +1 -0
  231. package/dist/ketchup/{p-cb5f4994.js → p-ed0b8666.js} +0 -0
  232. package/dist/ketchup/p-ef539eda.js +9 -0
  233. package/dist/ketchup/p-f316234c.entry.js +143 -0
  234. package/dist/types/components/kup-accordion/kup-accordion-declarations.d.ts +2 -2
  235. package/dist/types/components/kup-autocomplete/kup-autocomplete-declarations.d.ts +6 -0
  236. package/dist/types/components/kup-autocomplete/kup-autocomplete.d.ts +29 -22
  237. package/dist/types/components/kup-box/kup-box-declarations.d.ts +7 -11
  238. package/dist/types/components/kup-box/kup-box.d.ts +4 -4
  239. package/dist/types/components/kup-button-list/kup-button-list-declarations.d.ts +6 -1
  240. package/dist/types/components/kup-button-list/kup-button-list.d.ts +4 -3
  241. package/dist/types/components/kup-calendar/kup-calendar-declarations.d.ts +28 -10
  242. package/dist/types/components/kup-calendar/kup-calendar.d.ts +19 -47
  243. package/dist/types/components/kup-card/built-in/kup-card-built-in.d.ts +27 -0
  244. package/dist/types/components/kup-card/{builtin → built-in}/kup-card-calendar.d.ts +0 -0
  245. package/dist/types/components/kup-card/{builtin → built-in}/kup-card-clock.d.ts +0 -0
  246. package/dist/types/components/kup-card/built-in/kup-card-column-drop-menu.d.ts +3 -0
  247. package/dist/types/components/kup-card/free/kup-card-free.d.ts +7 -1
  248. package/dist/types/components/kup-card/kup-card-declarations.d.ts +46 -21
  249. package/dist/types/components/kup-card/kup-card.d.ts +9 -2
  250. package/dist/types/components/kup-cell/kup-cell.d.ts +3 -3
  251. package/dist/types/components/kup-chart/kup-chart-builder.d.ts +5 -5
  252. package/dist/types/components/kup-chart/kup-chart-declarations.d.ts +3 -3
  253. package/dist/types/components/kup-chart/kup-chart.d.ts +2 -2
  254. package/dist/types/components/kup-chip/kup-chip-declarations.d.ts +6 -3
  255. package/dist/types/components/kup-chip/kup-chip.d.ts +9 -13
  256. package/dist/types/components/kup-color-picker/kup-color-picker.d.ts +7 -3
  257. package/dist/types/components/kup-combobox/kup-combobox-declarations.d.ts +4 -0
  258. package/dist/types/components/kup-combobox/kup-combobox.d.ts +11 -33
  259. package/dist/types/components/kup-dash-list/kup-dash-list.d.ts +2 -2
  260. package/dist/types/components/kup-data-table/kup-data-table-declarations.d.ts +45 -104
  261. package/dist/types/components/kup-data-table/kup-data-table-helper.d.ts +8 -11
  262. package/dist/types/components/kup-data-table/kup-data-table.d.ts +49 -27
  263. package/dist/types/components/kup-echart/kup-echart-declarations.d.ts +55 -0
  264. package/dist/types/components/kup-echart/kup-echart.d.ts +100 -0
  265. package/dist/types/components/kup-lazy/kup-lazy.d.ts +13 -1
  266. package/dist/types/components/kup-list/kup-list-declarations.d.ts +2 -1
  267. package/dist/types/components/kup-list/kup-list.d.ts +4 -35
  268. package/dist/types/components/kup-magic-box/kup-magic-box-declarations.d.ts +6 -10
  269. package/dist/types/components/kup-magic-box/kup-magic-box.d.ts +7 -11
  270. package/dist/types/components/kup-tooltip/kup-tooltip-declarations.d.ts +11 -13
  271. package/dist/types/components/kup-tree/kup-tree-declarations.d.ts +14 -35
  272. package/dist/types/components/kup-tree/kup-tree-faker.d.ts +10 -10
  273. package/dist/types/components/kup-tree/kup-tree.d.ts +45 -35
  274. package/dist/types/components.d.ts +305 -186
  275. package/dist/types/f-components/f-cell/f-cell-declarations.d.ts +11 -10
  276. package/dist/types/f-components/f-chip/f-chip-declarations.d.ts +7 -22
  277. package/dist/types/f-components/f-paginator/f-paginator-declarations.d.ts +22 -0
  278. package/dist/types/f-components/f-paginator/f-paginator-utils.d.ts +2 -0
  279. package/dist/types/f-components/f-paginator/f-paginator.d.ts +3 -0
  280. package/dist/types/managers/kup-data/kup-data-cell-helper.d.ts +24 -0
  281. package/dist/types/managers/kup-data/kup-data-column-helper.d.ts +31 -0
  282. package/dist/types/managers/kup-data/kup-data-declarations.d.ts +160 -0
  283. package/dist/types/managers/kup-data/kup-data-node-helper.d.ts +23 -0
  284. package/dist/types/managers/kup-data/kup-data-row-helper.d.ts +14 -0
  285. package/dist/types/managers/kup-data/kup-data.d.ts +77 -0
  286. package/dist/types/{utils → managers}/kup-dates/kup-dates-declarations.d.ts +0 -0
  287. package/dist/types/{utils → managers}/kup-dates/kup-dates.d.ts +24 -2
  288. package/dist/types/{utils → managers}/kup-debug/kup-debug-declarations.d.ts +0 -0
  289. package/dist/types/{utils → managers}/kup-debug/kup-debug.d.ts +6 -13
  290. package/dist/types/{utils → managers}/kup-dynamic-position/kup-dynamic-position-declarations.d.ts +1 -0
  291. package/dist/types/{utils → managers}/kup-dynamic-position/kup-dynamic-position.d.ts +0 -0
  292. package/dist/types/{utils → managers}/kup-interact/kup-interact-declarations.d.ts +9 -8
  293. package/dist/types/{utils → managers}/kup-interact/kup-interact.d.ts +7 -6
  294. package/dist/types/{utils → managers}/kup-language/kup-language-declarations.d.ts +11 -1
  295. package/dist/types/{utils → managers}/kup-language/kup-language.d.ts +3 -3
  296. package/dist/types/{utils → managers}/kup-manager/kup-manager-declarations.d.ts +21 -2
  297. package/dist/types/{utils → managers}/kup-manager/kup-manager.d.ts +4 -0
  298. package/dist/types/managers/kup-math/kup-math-declarations.d.ts +21 -0
  299. package/dist/types/managers/kup-math/kup-math-helper.d.ts +17 -0
  300. package/dist/types/managers/kup-math/kup-math.d.ts +60 -0
  301. package/dist/types/{utils → managers}/kup-objects/kup-objects-declarations.d.ts +0 -0
  302. package/dist/types/{utils → managers}/kup-objects/kup-objects.d.ts +6 -0
  303. package/dist/types/{utils → managers}/kup-scroll-on-hover/kup-scroll-on-hover-declarations.d.ts +0 -0
  304. package/dist/types/{utils → managers}/kup-scroll-on-hover/kup-scroll-on-hover.d.ts +0 -0
  305. package/dist/types/{utils → managers}/kup-search/kup-search-declarations.d.ts +0 -0
  306. package/dist/types/{utils → managers}/kup-search/kup-search.d.ts +0 -0
  307. package/dist/types/{utils → managers}/kup-theme/kup-theme-declarations.d.ts +37 -1
  308. package/dist/types/{utils → managers}/kup-theme/kup-theme.d.ts +19 -19
  309. package/dist/types/{utils → managers}/kup-toolbar/kup-toolbar-declarations.d.ts +0 -0
  310. package/dist/types/{utils → managers}/kup-toolbar/kup-toolbar.d.ts +0 -0
  311. package/dist/types/stencil-public-runtime.d.ts +6 -4
  312. package/dist/types/types/GenericTypes.d.ts +53 -6
  313. package/dist/types/utils/cell-utils.d.ts +7 -6
  314. package/dist/types/utils/filters/filters-column-menu.d.ts +16 -16
  315. package/dist/types/utils/filters/filters-rows.d.ts +10 -10
  316. package/dist/types/utils/filters/filters-tree-items.d.ts +7 -7
  317. package/dist/types/utils/helpers.d.ts +2 -2
  318. package/dist/types/utils/kup-column-menu/kup-column-menu-declarations.d.ts +1 -0
  319. package/dist/types/utils/kup-column-menu/kup-column-menu.d.ts +27 -33
  320. package/dist/types/utils/utils.d.ts +4 -2
  321. package/package.json +31 -26
  322. package/dist/cjs/f-chip-90d95d22.js +0 -141
  323. package/dist/cjs/utils-0cc466b9.js +0 -1492
  324. package/dist/collection/components/kup-card/builtin/kup-card-builtin.js +0 -20
  325. package/dist/collection/components/kup-paginator/kup-paginator-declarations.js +0 -5
  326. package/dist/collection/components/kup-paginator/kup-paginator.css +0 -46
  327. package/dist/collection/components/kup-paginator/kup-paginator.js +0 -408
  328. package/dist/esm/f-chip-c0e9c0ff.js +0 -139
  329. package/dist/esm/utils-6c73709d.js +0 -1470
  330. package/dist/ketchup/p-15321eae.js +0 -1
  331. package/dist/ketchup/p-5a5f2a53.js +0 -1
  332. package/dist/ketchup/p-61faaa38.js +0 -8
  333. package/dist/ketchup/p-7e23ea7c.entry.js +0 -1
  334. package/dist/ketchup/p-9d02a676.js +0 -134
  335. package/dist/ketchup/p-a96e6e32.entry.js +0 -1
  336. package/dist/ketchup/p-ad32821e.entry.js +0 -1
  337. package/dist/ketchup/p-c18c7bb0.entry.js +0 -27
  338. package/dist/ketchup/p-d4aa4922.js +0 -1
  339. package/dist/ketchup/p-ec3a3db9.js +0 -1
  340. package/dist/ketchup/p-ecccb3a4.entry.js +0 -45
  341. package/dist/types/components/kup-card/builtin/kup-card-builtin.d.ts +0 -14
  342. package/dist/types/components/kup-paginator/kup-paginator-declarations.d.ts +0 -11
  343. package/dist/types/components/kup-paginator/kup-paginator.d.ts +0 -48
@@ -1,19 +1,19 @@
1
- import { r as registerInstance, c as createEvent, f as forceUpdate, a as getAssetPath, h as h$1, H as Host, g as getElement } from './index-e0e67c23.js';
2
- import { _ as __extends, a as __assign, b as __spreadArray } from './tslib.es6-e6137777.js';
3
- import { G as createCommonjsModule, I as getDefaultExportFromCjs, k as kupManagerInstance, J as KupDatesLocales, g as KupLanguageGeneric } from './kup-manager-7fc234da.js';
4
- import { c as getColumnByName } from './cell-utils-8f512ea9.js';
1
+ import { r as registerInstance, c as createEvent, a as getAssetPath, f as forceUpdate, h as h$1, H as Host, g as getElement } from './index-78f3699d.js';
2
+ import { b as __extends, c as __assign, _ as __spreadArray } from './tslib.es6-8f2d44b6.js';
3
+ import { X as createCommonjsModule, Y as getDefaultExportFromCjs, k as kupManagerInstance, Z as KupDatesLocales, i as KupLanguageGeneric } from './kup-manager-1f76a3ef.js';
4
+ import { c as getColumnByName } from './cell-utils-571978d6.js';
5
5
  import { c as componentWrapperId } from './GenericVariables-6dfdd433.js';
6
- import { F as FButton } from './f-button-30dbcaa9.js';
7
- import { g as getProps, s as setProps } from './utils-6c73709d.js';
8
- import { F as FChip, a as FChipType } from './f-chip-c0e9c0ff.js';
6
+ import { F as FButton } from './f-button-b3011cc2.js';
7
+ import { g as getProps, s as setProps } from './utils-93ae800f.js';
8
+ import { F as FChip, a as FChipType } from './f-chip-a52489ec.js';
9
9
  import './f-button-declarations-fd4965d1.js';
10
- import './f-image-3bc8b24f.js';
10
+ import './f-image-5e5ed7e2.js';
11
11
 
12
- var n,l,u$1,t,o,r$1,f$1,e$1={},c$1=[],s=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function a$1(n,l){for(var u in l)n[u]=l[u];return n}function h(n){var l=n.parentNode;l&&l.removeChild(n);}function v$1(l,u,i){var t,o,r,f={};for(r in u)"key"==r?t=u[r]:"ref"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),"function"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return y(l,f,t,o,null)}function y(n,i,t,o,r){var f={type:n,props:i,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++u$1:r};return null!=l.vnode&&l.vnode(f),f}function p(){return {current:null}}function d(n){return n.children}function _(n,l){this.props=n,this.context=l;}function k(n,l){if(null==l)return n.__?k(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return "function"==typeof n.type?k(n):null}function b$1(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return b$1(n)}}function m(n){(!n.__d&&(n.__d=!0)&&t.push(n)&&!g$1.__r++||r$1!==l.debounceRendering)&&((r$1=l.debounceRendering)||o)(g$1);}function g$1(){for(var n;g$1.__r=t.length;)n=t.sort(function(n,l){return n.__v.__b-l.__v.__b}),t=[],n.some(function(n){var l,u,i,t,o,r;n.__d&&(o=(t=(l=n).__v).__e,(r=l.__P)&&(u=[],(i=a$1({},t)).__v=t.__v+1,j$2(r,t,i,l.__n,void 0!==r.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?k(t):o,t.__h),z(u,t),t.__e!=o&&b$1(t)));});}function w$1(n,l,u,i,t,o,r,f,s,a){var h,v,p,_,b,m,g,w=i&&i.__k||c$1,A=w.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(_=u.__k[h]=null==(_=l[h])||"boolean"==typeof _?null:"string"==typeof _||"number"==typeof _||"bigint"==typeof _?y(null,_,null,null,_):Array.isArray(_)?y(d,{children:_},null,null,null):_.__b>0?y(_.type,_.props,_.key,null,_.__v):_)){if(_.__=u,_.__b=u.__b+1,null===(p=w[h])||p&&_.key==p.key&&_.type===p.type)w[h]=void 0;else for(v=0;v<A;v++){if((p=w[v])&&_.key==p.key&&_.type===p.type){w[v]=void 0;break}p=null;}j$2(n,_,p=p||e$1,t,o,r,f,s,a),b=_.__e,(v=_.ref)&&p.ref!=v&&(g||(g=[]),p.ref&&g.push(p.ref,null,_),g.push(v,_.__c||b,_)),null!=b?(null==m&&(m=b),"function"==typeof _.type&&null!=_.__k&&_.__k===p.__k?_.__d=s=x$1(_,s,n):s=P$1(n,_,p,w,b,s),a||"option"!==u.type?"function"==typeof u.type&&(u.__d=s):n.value=""):s&&p.__e==s&&s.parentNode!=n&&(s=k(p));}for(u.__e=m,h=A;h--;)null!=w[h]&&("function"==typeof u.type&&null!=w[h].__e&&w[h].__e==u.__d&&(u.__d=k(i,h+1)),N(w[h],w[h]));if(g)for(h=0;h<g.length;h++)M$1(g[h],g[++h],g[++h]);}function x$1(n,l,u){var i,t;for(i=0;i<n.__k.length;i++)(t=n.__k[i])&&(t.__=n,l="function"==typeof t.type?x$1(t,l,u):P$1(u,t,t,n.__k,t.__e,l));return l}function A$1(n,l){return l=l||[],null==n||"boolean"==typeof n||(Array.isArray(n)?n.some(function(n){A$1(n,l);}):l.push(n)),l}function P$1(n,l,u,i,t,o){var r,f,e;if(void 0!==l.__d)r=l.__d,l.__d=void 0;else if(null==u||t!=o||null==t.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(t),r=null;else {for(f=o,e=0;(f=f.nextSibling)&&e<i.length;e+=2)if(f==t)break n;n.insertBefore(t,o),r=o;}return void 0!==r?r:t.nextSibling}function C$1(n,l,u,i,t){var o;for(o in u)"children"===o||"key"===o||o in l||H$1(n,o,null,u[o],i);for(o in l)t&&"function"!=typeof l[o]||"children"===o||"key"===o||"value"===o||"checked"===o||u[o]===l[o]||H$1(n,o,l[o],u[o],i);}function $$1(n,l,u){"-"===l[0]?n.setProperty(l,u):n[l]=null==u?"":"number"!=typeof u||s.test(l)?u:u+"px";}function H$1(n,l,u,i,t){var o;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else {if("string"==typeof i&&(n.style.cssText=i=""),i)for(l in i)u&&l in u||$$1(n.style,l,"");if(u)for(l in u)i&&u[l]===i[l]||$$1(n.style,l,u[l]);}else if("o"===l[0]&&"n"===l[1])o=l!==(l=l.replace(/Capture$/,"")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?i||n.addEventListener(l,o?T$1:I$1,o):n.removeEventListener(l,o?T$1:I$1,o);else if("dangerouslySetInnerHTML"!==l){if(t)l=l.replace(/xlink[H:h]/,"h").replace(/sName$/,"s");else if("href"!==l&&"list"!==l&&"form"!==l&&"tabIndex"!==l&&"download"!==l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null!=u&&(!1!==u||"a"===l[0]&&"r"===l[1])?n.setAttribute(l,u):n.removeAttribute(l));}}function I$1(n){this.l[n.type+!1](l.event?l.event(n):n);}function T$1(n){this.l[n.type+!0](l.event?l.event(n):n);}function j$2(n,u,i,t,o,r,f,e,c){var s,h,v,y,p,k,b,m,g,x,A,P=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(s=l.__b)&&s(u);try{n:if("function"==typeof P){if(m=u.props,g=(s=P.contextType)&&t[s.__c],x=s?g?g.props.value:s.__:t,i.__c?b=(h=u.__c=i.__c).__=h.__E:("prototype"in P&&P.prototype.render?u.__c=h=new P(m,x):(u.__c=h=new _(m,x),h.constructor=P,h.render=O$1),g&&g.sub(h),h.props=m,h.state||(h.state={}),h.context=x,h.__n=t,v=h.__d=!0,h.__h=[]),null==h.__s&&(h.__s=h.state),null!=P.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=a$1({},h.__s)),a$1(h.__s,P.getDerivedStateFromProps(m,h.__s))),y=h.props,p=h.state,v)null==P.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else {if(null==P.getDerivedStateFromProps&&m!==y&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(m,x),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(m,h.__s,x)||u.__v===i.__v){h.props=m,h.state=h.__s,u.__v!==i.__v&&(h.__d=!1),h.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u);}),h.__h.length&&f.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(m,h.__s,x),null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(y,p,k);});}h.context=x,h.props=m,h.state=h.__s,(s=l.__r)&&s(u),h.__d=!1,h.__v=u,h.__P=n,s=h.render(h.props,h.state,h.context),h.state=h.__s,null!=h.getChildContext&&(t=a$1(a$1({},t),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(k=h.getSnapshotBeforeUpdate(y,p)),A=null!=s&&s.type===d&&null==s.key?s.props.children:s,w$1(n,Array.isArray(A)?A:[A],u,i,t,o,r,f,e,c),h.base=u.__e,u.__h=null,h.__h.length&&f.push(h),b&&(h.__E=h.__=null),h.__e=!1;}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=L$1(i.__e,u,i,t,o,r,f,c);(s=l.diffed)&&s(u);}catch(n){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),l.__e(n,u,i);}}function z(n,u){l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u);});}catch(n){l.__e(n,u.__v);}});}function L$1(l,u,i,t,o,r,f,c){var s,a,v,y=i.props,p=u.props,d=u.type,_=0;if("svg"===d&&(o=!0),null!=r)for(;_<r.length;_++)if((s=r[_])&&(s===l||(d?s.localName==d:3==s.nodeType))){l=s,r[_]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=o?document.createElementNS("http://www.w3.org/2000/svg",d):document.createElement(d,p.is&&p),r=null,c=!1;}if(null===d)y===p||c&&l.data===p||(l.data=p);else {if(r=r&&n.call(l.childNodes),a=(y=i.props||e$1).dangerouslySetInnerHTML,v=p.dangerouslySetInnerHTML,!c){if(null!=r)for(y={},_=0;_<l.attributes.length;_++)y[l.attributes[_].name]=l.attributes[_].value;(v||a)&&(v&&(a&&v.__html==a.__html||v.__html===l.innerHTML)||(l.innerHTML=v&&v.__html||""));}if(C$1(l,p,y,o,c),v)u.__k=[];else if(_=u.props.children,w$1(l,Array.isArray(_)?_:[_],u,i,t,o&&"foreignObject"!==d,r,f,r?r[0]:i.__k&&k(i,0),c),null!=r)for(_=r.length;_--;)null!=r[_]&&h(r[_]);c||("value"in p&&void 0!==(_=p.value)&&(_!==l.value||"progress"===d&&!_)&&H$1(l,"value",_,y.value,!1),"checked"in p&&void 0!==(_=p.checked)&&_!==l.checked&&H$1(l,"checked",_,y.checked,!1));}return l}function M$1(n,u,i){try{"function"==typeof n?n(u):n.current=u;}catch(n){l.__e(n,i);}}function N(n,u,i){var t,o;if(l.unmount&&l.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||M$1(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount();}catch(n){l.__e(n,u);}t.base=t.__P=null;}if(t=n.__k)for(o=0;o<t.length;o++)t[o]&&N(t[o],u,"function"!=typeof n.type);i||null==n.__e||h(n.__e),n.__e=n.__d=void 0;}function O$1(n,l,u){return this.constructor(n,u)}function S$1(u,i,t){var o,r,f;l.__&&l.__(u,i),r=(o="function"==typeof t)?null:t&&t.__k||i.__k,f=[],j$2(i,u=(!o&&t||i).__k=v$1(d,null,[u]),r||e$1,e$1,void 0!==i.ownerSVGElement,!o&&t?[t]:r?null:i.firstChild?n.call(i.childNodes):null,f,!o&&t?t:r?r.__e:i.firstChild,o),z(f,u);}function D$1(n,l){var u={__c:l="__cC"+f$1++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(m);},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n);};}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=c$1.slice,l={__e:function(n,l){for(var u,i,t;l=l.__;)if((u=l.__c)&&!u.__)try{if((i=u.constructor)&&null!=i.getDerivedStateFromError&&(u.setState(i.getDerivedStateFromError(n)),t=u.__d),null!=u.componentDidCatch&&(u.componentDidCatch(n),t=u.__d),t)return u.__E=u}catch(l){n=l;}throw n}},u$1=0,_.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=a$1({},this.state),"function"==typeof n&&(n=n(a$1({},u),this.props)),n&&a$1(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),m(this));},_.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),m(this));},_.prototype.render=d,t=[],o="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,g$1.__r=0,f$1=0;
12
+ var n,l,u$1,t,r$1,o,f$1,e$1={},c$1=[],s=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function a$1(n,l){for(var u in l)n[u]=l[u];return n}function h(n){var l=n.parentNode;l&&l.removeChild(n);}function v$1(l,u,i){var t,r,o,f={};for(o in u)"key"==o?t=u[o]:"ref"==o?r=u[o]:f[o]=u[o];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),"function"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===f[o]&&(f[o]=l.defaultProps[o]);return y(l,f,t,r,null)}function y(n,i,t,r,o){var f={type:n,props:i,key:t,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++u$1:o};return null==o&&null!=l.vnode&&l.vnode(f),f}function p(){return {current:null}}function d(n){return n.children}function _(n,l){this.props=n,this.context=l;}function k(n,l){if(null==l)return n.__?k(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return "function"==typeof n.type?k(n):null}function b$1(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return b$1(n)}}function m(n){(!n.__d&&(n.__d=!0)&&t.push(n)&&!g$1.__r++||o!==l.debounceRendering)&&((o=l.debounceRendering)||r$1)(g$1);}function g$1(){for(var n;g$1.__r=t.length;)n=t.sort(function(n,l){return n.__v.__b-l.__v.__b}),t=[],n.some(function(n){var l,u,i,t,r,o;n.__d&&(r=(t=(l=n).__v).__e,(o=l.__P)&&(u=[],(i=a$1({},t)).__v=t.__v+1,j$2(o,t,i,l.__n,void 0!==o.ownerSVGElement,null!=t.__h?[r]:null,u,null==r?k(t):r,t.__h),z$1(u,t),t.__e!=r&&b$1(t)));});}function w$1(n,l,u,i,t,r,o,f,s,a){var h,v,p,_,b,m,g,w=i&&i.__k||c$1,A=w.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(_=u.__k[h]=null==(_=l[h])||"boolean"==typeof _?null:"string"==typeof _||"number"==typeof _||"bigint"==typeof _?y(null,_,null,null,_):Array.isArray(_)?y(d,{children:_},null,null,null):_.__b>0?y(_.type,_.props,_.key,null,_.__v):_)){if(_.__=u,_.__b=u.__b+1,null===(p=w[h])||p&&_.key==p.key&&_.type===p.type)w[h]=void 0;else for(v=0;v<A;v++){if((p=w[v])&&_.key==p.key&&_.type===p.type){w[v]=void 0;break}p=null;}j$2(n,_,p=p||e$1,t,r,o,f,s,a),b=_.__e,(v=_.ref)&&p.ref!=v&&(g||(g=[]),p.ref&&g.push(p.ref,null,_),g.push(v,_.__c||b,_)),null!=b?(null==m&&(m=b),"function"==typeof _.type&&_.__k===p.__k?_.__d=s=x$1(_,s,n):s=P$1(n,_,p,w,b,s),"function"==typeof u.type&&(u.__d=s)):s&&p.__e==s&&s.parentNode!=n&&(s=k(p));}for(u.__e=m,h=A;h--;)null!=w[h]&&("function"==typeof u.type&&null!=w[h].__e&&w[h].__e==u.__d&&(u.__d=k(i,h+1)),N(w[h],w[h]));if(g)for(h=0;h<g.length;h++)M$1(g[h],g[++h],g[++h]);}function x$1(n,l,u){for(var i,t=n.__k,r=0;t&&r<t.length;r++)(i=t[r])&&(i.__=n,l="function"==typeof i.type?x$1(i,l,u):P$1(u,i,i,t,i.__e,l));return l}function A$1(n,l){return l=l||[],null==n||"boolean"==typeof n||(Array.isArray(n)?n.some(function(n){A$1(n,l);}):l.push(n)),l}function P$1(n,l,u,i,t,r){var o,f,e;if(void 0!==l.__d)o=l.__d,l.__d=void 0;else if(null==u||t!=r||null==t.parentNode)n:if(null==r||r.parentNode!==n)n.appendChild(t),o=null;else {for(f=r,e=0;(f=f.nextSibling)&&e<i.length;e+=2)if(f==t)break n;n.insertBefore(t,r),o=r;}return void 0!==o?o:t.nextSibling}function C$1(n,l,u,i,t){var r;for(r in u)"children"===r||"key"===r||r in l||H$1(n,r,null,u[r],i);for(r in l)t&&"function"!=typeof l[r]||"children"===r||"key"===r||"value"===r||"checked"===r||u[r]===l[r]||H$1(n,r,l[r],u[r],i);}function $(n,l,u){"-"===l[0]?n.setProperty(l,u):n[l]=null==u?"":"number"!=typeof u||s.test(l)?u:u+"px";}function H$1(n,l,u,i,t){var r;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else {if("string"==typeof i&&(n.style.cssText=i=""),i)for(l in i)u&&l in u||$(n.style,l,"");if(u)for(l in u)i&&u[l]===i[l]||$(n.style,l,u[l]);}else if("o"===l[0]&&"n"===l[1])r=l!==(l=l.replace(/Capture$/,"")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?i||n.addEventListener(l,r?T$1:I$1,r):n.removeEventListener(l,r?T$1:I$1,r);else if("dangerouslySetInnerHTML"!==l){if(t)l=l.replace(/xlink[H:h]/,"h").replace(/sName$/,"s");else if("href"!==l&&"list"!==l&&"form"!==l&&"tabIndex"!==l&&"download"!==l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null!=u&&(!1!==u||"a"===l[0]&&"r"===l[1])?n.setAttribute(l,u):n.removeAttribute(l));}}function I$1(n){this.l[n.type+!1](l.event?l.event(n):n);}function T$1(n){this.l[n.type+!0](l.event?l.event(n):n);}function j$2(n,u,i,t,r,o,f,e,c){var s,h,v,y,p,k,b,m,g,x,A,P=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,o=[e]),(s=l.__b)&&s(u);try{n:if("function"==typeof P){if(m=u.props,g=(s=P.contextType)&&t[s.__c],x=s?g?g.props.value:s.__:t,i.__c?b=(h=u.__c=i.__c).__=h.__E:("prototype"in P&&P.prototype.render?u.__c=h=new P(m,x):(u.__c=h=new _(m,x),h.constructor=P,h.render=O$1),g&&g.sub(h),h.props=m,h.state||(h.state={}),h.context=x,h.__n=t,v=h.__d=!0,h.__h=[]),null==h.__s&&(h.__s=h.state),null!=P.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=a$1({},h.__s)),a$1(h.__s,P.getDerivedStateFromProps(m,h.__s))),y=h.props,p=h.state,v)null==P.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else {if(null==P.getDerivedStateFromProps&&m!==y&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(m,x),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(m,h.__s,x)||u.__v===i.__v){h.props=m,h.state=h.__s,u.__v!==i.__v&&(h.__d=!1),h.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u);}),h.__h.length&&f.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(m,h.__s,x),null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(y,p,k);});}h.context=x,h.props=m,h.state=h.__s,(s=l.__r)&&s(u),h.__d=!1,h.__v=u,h.__P=n,s=h.render(h.props,h.state,h.context),h.state=h.__s,null!=h.getChildContext&&(t=a$1(a$1({},t),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(k=h.getSnapshotBeforeUpdate(y,p)),A=null!=s&&s.type===d&&null==s.key?s.props.children:s,w$1(n,Array.isArray(A)?A:[A],u,i,t,r,o,f,e,c),h.base=u.__e,u.__h=null,h.__h.length&&f.push(h),b&&(h.__E=h.__=null),h.__e=!1;}else null==o&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=L$1(i.__e,u,i,t,r,o,f,c);(s=l.diffed)&&s(u);}catch(n){u.__v=null,(c||null!=o)&&(u.__e=e,u.__h=!!c,o[o.indexOf(e)]=null),l.__e(n,u,i);}}function z$1(n,u){l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u);});}catch(n){l.__e(n,u.__v);}});}function L$1(l,u,i,t,r,o,f,c){var s,a,v,y=i.props,p=u.props,d=u.type,_=0;if("svg"===d&&(r=!0),null!=o)for(;_<o.length;_++)if((s=o[_])&&"setAttribute"in s==!!d&&(d?s.localName===d:3===s.nodeType)){l=s,o[_]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=r?document.createElementNS("http://www.w3.org/2000/svg",d):document.createElement(d,p.is&&p),o=null,c=!1;}if(null===d)y===p||c&&l.data===p||(l.data=p);else {if(o=o&&n.call(l.childNodes),a=(y=i.props||e$1).dangerouslySetInnerHTML,v=p.dangerouslySetInnerHTML,!c){if(null!=o)for(y={},_=0;_<l.attributes.length;_++)y[l.attributes[_].name]=l.attributes[_].value;(v||a)&&(v&&(a&&v.__html==a.__html||v.__html===l.innerHTML)||(l.innerHTML=v&&v.__html||""));}if(C$1(l,p,y,r,c),v)u.__k=[];else if(_=u.props.children,w$1(l,Array.isArray(_)?_:[_],u,i,t,r&&"foreignObject"!==d,o,f,o?o[0]:i.__k&&k(i,0),c),null!=o)for(_=o.length;_--;)null!=o[_]&&h(o[_]);c||("value"in p&&void 0!==(_=p.value)&&(_!==y.value||_!==l.value||"progress"===d&&!_)&&H$1(l,"value",_,y.value,!1),"checked"in p&&void 0!==(_=p.checked)&&_!==l.checked&&H$1(l,"checked",_,y.checked,!1));}return l}function M$1(n,u,i){try{"function"==typeof n?n(u):n.current=u;}catch(n){l.__e(n,i);}}function N(n,u,i){var t,r;if(l.unmount&&l.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||M$1(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount();}catch(n){l.__e(n,u);}t.base=t.__P=null;}if(t=n.__k)for(r=0;r<t.length;r++)t[r]&&N(t[r],u,"function"!=typeof n.type);i||null==n.__e||h(n.__e),n.__e=n.__d=void 0;}function O$1(n,l,u){return this.constructor(n,u)}function S$1(u,i,t){var r,o,f;l.__&&l.__(u,i),o=(r="function"==typeof t)?null:t&&t.__k||i.__k,f=[],j$2(i,u=(!r&&t||i).__k=v$1(d,null,[u]),o||e$1,e$1,void 0!==i.ownerSVGElement,!r&&t?[t]:o?null:i.firstChild?n.call(i.childNodes):null,f,!r&&t?t:o?o.__e:i.firstChild,r),z$1(f,u);}function D$1(n,l){var u={__c:l="__cC"+f$1++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(m);},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n);};}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=c$1.slice,l={__e:function(n,l){for(var u,i,t;l=l.__;)if((u=l.__c)&&!u.__)try{if((i=u.constructor)&&null!=i.getDerivedStateFromError&&(u.setState(i.getDerivedStateFromError(n)),t=u.__d),null!=u.componentDidCatch&&(u.componentDidCatch(n),t=u.__d),t)return u.__E=u}catch(l){n=l;}throw n}},u$1=0,_.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=a$1({},this.state),"function"==typeof n&&(n=n(a$1({},u),this.props)),n&&a$1(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),m(this));},_.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),m(this));},_.prototype.render=d,t=[],r$1="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,g$1.__r=0,f$1=0;
13
13
 
14
- var u,r,i=[],c=l.__b,f=l.__r,e=l.diffed,a=l.__c,v=l.unmount;function x(){i.forEach(function(t){if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(j$1),t.__H.__h=[];}catch(u){t.__H.__h=[],l.__e(u,t.__v);}}),i=[];}l.__b=function(n){u=null,c&&c(n);},l.__r=function(n){f&&f(n),0;var r=(u=n.__c).__H;r&&(r.__h.forEach(g),r.__h.forEach(j$1),r.__h=[]);},l.diffed=function(t){e&&e(t);var o=t.__c;o&&o.__H&&o.__H.__h.length&&(1!==i.push(o)&&r===l.requestAnimationFrame||((r=l.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),b&&cancelAnimationFrame(t),setTimeout(n);},r=setTimeout(u,100);b&&(t=requestAnimationFrame(u));})(x)),u=void 0;},l.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return !n.__||j$1(n)});}catch(r){u.some(function(n){n.__h&&(n.__h=[]);}),u=[],l.__e(r,t.__v);}}),a&&a(t,u);},l.unmount=function(t){v&&v(t);var u=t.__c;if(u&&u.__H)try{u.__H.__.forEach(g);}catch(t){l.__e(t,u.__v);}};var b="function"==typeof requestAnimationFrame;function g(n){var t=u;"function"==typeof n.__c&&n.__c(),u=t;}function j$1(n){var t=u;n.__c=n.__(),u=t;}
14
+ var u,r,i=[],c=l.__b,f=l.__r,e=l.diffed,a=l.__c,v=l.unmount;function x(){var t;for(i.sort(function(n,t){return n.__v.__b-t.__v.__b});t=i.pop();)if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(j$1),t.__H.__h=[];}catch(u){t.__H.__h=[],l.__e(u,t.__v);}}l.__b=function(n){u=null,c&&c(n);},l.__r=function(n){f&&f(n),0;var r=(u=n.__c).__H;r&&(r.__h.forEach(g),r.__h.forEach(j$1),r.__h=[]);},l.diffed=function(t){e&&e(t);var o=t.__c;o&&o.__H&&o.__H.__h.length&&(1!==i.push(o)&&r===l.requestAnimationFrame||((r=l.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),b&&cancelAnimationFrame(t),setTimeout(n);},r=setTimeout(u,100);b&&(t=requestAnimationFrame(u));})(x)),u=null;},l.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return !n.__||j$1(n)});}catch(r){u.some(function(n){n.__h&&(n.__h=[]);}),u=[],l.__e(r,t.__v);}}),a&&a(t,u);},l.unmount=function(t){v&&v(t);var u,r=t.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{g(n);}catch(n){u=n;}}),u&&l.__e(u,r.__v));};var b="function"==typeof requestAnimationFrame;function g(n){var t=u,r=n.__c;"function"==typeof r&&(n.__c=void 0,r()),u=t;}function j$1(n){var t=u;n.__c=n.__(),u=t;}
15
15
 
16
- function S(n,t){for(var e in t)n[e]=t[e];return n}function C(n,t){for(var e in n)if("__source"!==e&&!(e in t))return !0;for(var r in t)if("__source"!==r&&n[r]!==t[r])return !0;return !1}function E(n){this.props=n;}(E.prototype=new _).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return C(this.props,n)||C(this.state,t)};var w=l.__b;l.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),w&&w(n);};var A=l.__e;l.__e=function(n,t,e){if(n.then)for(var r,u=t;u=u.__;)if((r=u.__c)&&r.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),r.__c(n,t);A(n,t,e);};var O=l.unmount;function L(){this.__u=0,this.t=null,this.__b=null;}function U(n){var t=n.__.__c;return t&&t.__e&&t.__e(n)}function M(){this.u=null,this.o=null;}l.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),O&&O(n);},(L.prototype=new _).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=U(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l());};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__e){var n=r.state.__e;r.__v.__k[0]=function n(t,e,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)}),t.__c&&t.__c.__P===e&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(n,n.__c.__P,n.__c.__O);}var t;for(r.setState({__e:r.__b=null});t=r.t.pop();)t.forceUpdate();}},f=!0===t.__h;r.__u++||f||r.setState({__e:r.__b=r.__v.__k[0]}),n.then(i,i);},L.prototype.componentWillUnmount=function(){this.t=[];},L.prototype.render=function(n,t){if(this.__b){if(this.__v.__k){var e=document.createElement("div"),r=this.__v.__k[0].__c;this.__v.__k[0]=function n(t,e,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(n){"function"==typeof n.__c&&n.__c();}),t.__c.__H=null),null!=(t=S({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=e),t.__c=null),t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)})),t}(this.__b,e,r.__O=r.__P);}this.__b=null;}var u=t.__e&&v$1(d,null,n.fallback);return u&&(u.__h=null),[v$1(d,null,t.__e?null:n.children),u]};var T=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&("t"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2];}};function D(n){return this.getChildContext=function(){return n.context},n.children}function I(n){var t=this,e=n.i;t.componentWillUnmount=function(){S$1(null,t.l),t.l=null,t.i=null;},t.i&&t.i!==e&&t.componentWillUnmount(),n.__v?(t.l||(t.i=e,t.l={nodeType:1,parentNode:e,childNodes:[],appendChild:function(n){this.childNodes.push(n),t.i.appendChild(n);},insertBefore:function(n,e){this.childNodes.push(n),t.i.appendChild(n);},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),t.i.removeChild(n);}}),S$1(v$1(D,{context:t.context},n.__v),t.l)):t.l&&t.componentWillUnmount();}function W(n,t){return v$1(I,{__v:n,i:t})}(M.prototype=new _).__e=function(n){var t=this,e=U(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),T(t,n,r)):u();};e?e(o):o();}},M.prototype.render=function(n){this.u=null,this.o=new Map;var t=A$1(n.children);n.revealOrder&&"b"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},M.prototype.componentDidUpdate=M.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){T(n,e,t);});};var j="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,P=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,V=function(n){return ("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};_.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(n){Object.defineProperty(_.prototype,n,{configurable:!0,get:function(){return this["UNSAFE_"+n]},set:function(t){Object.defineProperty(this,n,{configurable:!0,writable:!0,value:t});}});});var H=l.event;function Z(){}function Y(){return this.cancelBubble}function $(){return this.defaultPrevented}l.event=function(n){return H&&(n=H(n)),n.persist=Z,n.isPropagationStopped=Y,n.isDefaultPrevented=$,n.nativeEvent=n};var G={configurable:!0,get:function(){return this.class}},J=l.vnode;l.vnode=function(n){var t=n.type,e=n.props,r=e;if("string"==typeof t){for(var u in r={},e){var o=e[u];"value"===u&&"defaultValue"in e&&null==o||("defaultValue"===u&&"value"in e&&null==e.value?u="value":"download"===u&&!0===o?o="":/ondoubleclick/i.test(u)?u="ondblclick":/^onchange(textarea|input)/i.test(u+t)&&!V(e.type)?u="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(u)?u=u.toLowerCase():P.test(u)?u=u.replace(/[A-Z0-9]/,"-$&").toLowerCase():null===o&&(o=void 0),r[u]=o);}"select"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=A$1(e.children).forEach(function(n){n.props.selected=-1!=r.value.indexOf(n.props.value);})),"select"==t&&null!=r.defaultValue&&(r.value=A$1(e.children).forEach(function(n){n.props.selected=r.multiple?-1!=r.defaultValue.indexOf(n.props.value):r.defaultValue==n.props.value;})),n.props=r;}t&&e.class!=e.className&&(G.enumerable="className"in e,null!=e.className&&(r.class=e.className),Object.defineProperty(r,"className",G)),n.$$typeof=j,J&&J(n);};var K=l.__r;l.__r=function(n){K&&K(n),n.__c;};
16
+ function S(n,t){for(var e in t)n[e]=t[e];return n}function C(n,t){for(var e in n)if("__source"!==e&&!(e in t))return !0;for(var r in t)if("__source"!==r&&n[r]!==t[r])return !0;return !1}function E(n){this.props=n;}(E.prototype=new _).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return C(this.props,n)||C(this.state,t)};var w=l.__b;l.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),w&&w(n);};var A=l.__e;l.__e=function(n,t,e){if(n.then)for(var r,u=t;u=u.__;)if((r=u.__c)&&r.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),r.__c(n,t);A(n,t,e);};var O=l.unmount;function L(){this.__u=0,this.t=null,this.__b=null;}function U(n){var t=n.__.__c;return t&&t.__e&&t.__e(n)}function M(){this.u=null,this.o=null;}l.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),O&&O(n);},(L.prototype=new _).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=U(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l());};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__e){var n=r.state.__e;r.__v.__k[0]=function n(t,e,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)}),t.__c&&t.__c.__P===e&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(n,n.__c.__P,n.__c.__O);}var t;for(r.setState({__e:r.__b=null});t=r.t.pop();)t.forceUpdate();}},c=!0===t.__h;r.__u++||c||r.setState({__e:r.__b=r.__v.__k[0]}),n.then(i,i);},L.prototype.componentWillUnmount=function(){this.t=[];},L.prototype.render=function(n,t){if(this.__b){if(this.__v.__k){var e=document.createElement("div"),r=this.__v.__k[0].__c;this.__v.__k[0]=function n(t,e,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(n){"function"==typeof n.__c&&n.__c();}),t.__c.__H=null),null!=(t=S({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=e),t.__c=null),t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)})),t}(this.__b,e,r.__O=r.__P);}this.__b=null;}var u=t.__e&&v$1(d,null,n.fallback);return u&&(u.__h=null),[v$1(d,null,t.__e?null:n.children),u]};var T=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&("t"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2];}};function D(n){return this.getChildContext=function(){return n.context},n.children}function I(n){var t=this,e=n.i;t.componentWillUnmount=function(){S$1(null,t.l),t.l=null,t.i=null;},t.i&&t.i!==e&&t.componentWillUnmount(),n.__v?(t.l||(t.i=e,t.l={nodeType:1,parentNode:e,childNodes:[],appendChild:function(n){this.childNodes.push(n),t.i.appendChild(n);},insertBefore:function(n,e){this.childNodes.push(n),t.i.appendChild(n);},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),t.i.removeChild(n);}}),S$1(v$1(D,{context:t.context},n.__v),t.l)):t.l&&t.componentWillUnmount();}function W(n,t){return v$1(I,{__v:n,i:t})}(M.prototype=new _).__e=function(n){var t=this,e=U(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),T(t,n,r)):u();};e?e(o):o();}},M.prototype.render=function(n){this.u=null,this.o=new Map;var t=A$1(n.children);n.revealOrder&&"b"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},M.prototype.componentDidUpdate=M.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){T(n,e,t);});};var j="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,P=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,V="undefined"!=typeof document,z=function(n){return ("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};_.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(n){Object.defineProperty(_.prototype,n,{configurable:!0,get:function(){return this["UNSAFE_"+n]},set:function(t){Object.defineProperty(this,n,{configurable:!0,writable:!0,value:t});}});});var H=l.event;function Z(){}function Y(){return this.cancelBubble}function q(){return this.defaultPrevented}l.event=function(n){return H&&(n=H(n)),n.persist=Z,n.isPropagationStopped=Y,n.isDefaultPrevented=q,n.nativeEvent=n};var J={configurable:!0,get:function(){return this.class}},K=l.vnode;l.vnode=function(n){var t=n.type,e=n.props,r=e;if("string"==typeof t){var u=-1===t.indexOf("-");for(var o in r={},e){var i=e[o];V&&"children"===o&&"noscript"===t||"value"===o&&"defaultValue"in e&&null==i||("defaultValue"===o&&"value"in e&&null==e.value?o="value":"download"===o&&!0===i?i="":/ondoubleclick/i.test(o)?o="ondblclick":/^onchange(textarea|input)/i.test(o+t)&&!z(e.type)?o="oninput":/^onfocus$/i.test(o)?o="onfocusin":/^onblur$/i.test(o)?o="onfocusout":/^on(Ani|Tra|Tou|BeforeInp)/.test(o)?o=o.toLowerCase():u&&P.test(o)?o=o.replace(/[A-Z0-9]/,"-$&").toLowerCase():null===i&&(i=void 0),r[o]=i);}"select"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=A$1(e.children).forEach(function(n){n.props.selected=-1!=r.value.indexOf(n.props.value);})),"select"==t&&null!=r.defaultValue&&(r.value=A$1(e.children).forEach(function(n){n.props.selected=r.multiple?-1!=r.defaultValue.indexOf(n.props.value):r.defaultValue==n.props.value;})),n.props=r,e.class!=e.className&&(J.enumerable="className"in e,null!=e.className&&(r.class=e.className),Object.defineProperty(r,"className",J));}n.$$typeof=j,K&&K(n);};var Q=l.__r;l.__r=function(n){Q&&Q(n),n.__c;};
17
17
 
18
18
  var globalObj = typeof globalThis !== 'undefined' ? globalThis : window; // // TODO: streamline when killing IE11 support
19
19
  if (globalObj.FullCalendarVDom) {
@@ -106,7 +106,7 @@ var flushToDom = FullCalendarVDom.flushToDom;
106
106
  var unmountComponentAtNode = FullCalendarVDom.unmountComponentAtNode;
107
107
 
108
108
  /*!
109
- FullCalendar v5.9.0
109
+ FullCalendar v5.10.1
110
110
  Docs & License: https://fullcalendar.io/
111
111
  (c) 2021 Adam Shaw
112
112
  */
@@ -230,6 +230,12 @@ function getEventTargetViaRoot(ev) {
230
230
  function getElRoot(el) {
231
231
  return el.getRootNode ? el.getRootNode() : document;
232
232
  }
233
+ // Unique ID for DOM attribute
234
+ var guid$1 = 0;
235
+ function getUniqueDomId() {
236
+ guid$1 += 1;
237
+ return 'fc-dom-' + guid$1;
238
+ }
233
239
 
234
240
  // Stops a mouse/touch event from doing it's native browser action
235
241
  function preventDefault(ev) {
@@ -289,6 +295,22 @@ function whenTransitionDone(el, callback) {
289
295
  el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes
290
296
  });
291
297
  }
298
+ // ARIA workarounds
299
+ // ----------------------------------------------------------------------------------------------------------------
300
+ function createAriaClickAttrs(handler) {
301
+ return __assign({ onClick: handler }, createAriaKeyboardAttrs(handler));
302
+ }
303
+ function createAriaKeyboardAttrs(handler) {
304
+ return {
305
+ tabIndex: 0,
306
+ onKeyDown: function (ev) {
307
+ if (ev.key === 'Enter' || ev.key === ' ') {
308
+ handler(ev);
309
+ ev.preventDefault(); // if space, don't scroll down page
310
+ }
311
+ },
312
+ };
313
+ }
292
314
 
293
315
  var guidNumber = 0;
294
316
  function guid() {
@@ -389,6 +411,15 @@ function padStart(val, len) {
389
411
  var s = String(val);
390
412
  return '000'.substr(0, len - s.length) + s;
391
413
  }
414
+ function formatWithOrdinals(formatter, args, fallbackText) {
415
+ if (typeof formatter === 'function') {
416
+ return formatter.apply(void 0, args);
417
+ }
418
+ if (typeof formatter === 'string') { // non-blank string
419
+ return args.reduce(function (str, arg, index) { return (str.replace('$' + index, arg || '')); }, formatter);
420
+ }
421
+ return fallbackText;
422
+ }
392
423
  /* Number Utilities
393
424
  ----------------------------------------------------------------------------------------------------------------------*/
394
425
  function compareNumbers(a, b) {
@@ -1163,7 +1194,7 @@ function buildFormattingFunc(standardDateProps, extendedSettings, context) {
1163
1194
  return function (date) { return (formatTimeZoneOffset(date.timeZoneOffset)); };
1164
1195
  }
1165
1196
  if (standardDatePropCnt === 0 && extendedSettings.week) {
1166
- return function (date) { return (formatWeekNumber(context.computeWeekNumber(date.marker), context.weekText, context.locale, extendedSettings.week)); };
1197
+ return function (date) { return (formatWeekNumber(context.computeWeekNumber(date.marker), context.weekText, context.weekTextLong, context.locale, extendedSettings.week)); };
1167
1198
  }
1168
1199
  return buildNativeFormattingFunc(standardDateProps, extendedSettings, context);
1169
1200
  }
@@ -1255,15 +1286,17 @@ function injectTzoStr(s, tzoStr) {
1255
1286
  }
1256
1287
  return s;
1257
1288
  }
1258
- function formatWeekNumber(num, weekText, locale, display) {
1289
+ function formatWeekNumber(num, weekText, weekTextLong, locale, display) {
1259
1290
  var parts = [];
1260
- if (display === 'narrow') {
1291
+ if (display === 'long') {
1292
+ parts.push(weekTextLong);
1293
+ }
1294
+ else if (display === 'short' || display === 'narrow') {
1261
1295
  parts.push(weekText);
1262
1296
  }
1263
- else if (display === 'short') {
1264
- parts.push(weekText, ' ');
1297
+ if (display === 'long' || display === 'short') {
1298
+ parts.push(' ');
1265
1299
  }
1266
- // otherwise, considered 'numeric'
1267
1300
  parts.push(locale.simpleNumberFormat.format(num));
1268
1301
  if (locale.options.direction === 'rtl') { // TODO: use control characters instead?
1269
1302
  parts.reverse();
@@ -1485,6 +1518,7 @@ var BASE_OPTION_REFINERS = {
1485
1518
  displayEventTime: Boolean,
1486
1519
  displayEventEnd: Boolean,
1487
1520
  weekText: String,
1521
+ weekTextLong: String,
1488
1522
  progressiveEventRendering: Boolean,
1489
1523
  businessHours: identity,
1490
1524
  initialDate: identity,
@@ -1538,6 +1572,7 @@ var BASE_OPTION_REFINERS = {
1538
1572
  eventTimeFormat: createFormatter,
1539
1573
  rerenderDelay: Number,
1540
1574
  moreLinkText: identity,
1575
+ moreLinkHint: identity,
1541
1576
  selectMinDistance: Number,
1542
1577
  selectable: Boolean,
1543
1578
  selectLongPressDelay: Number,
@@ -1559,8 +1594,14 @@ var BASE_OPTION_REFINERS = {
1559
1594
  validRange: identity,
1560
1595
  visibleRange: identity,
1561
1596
  titleFormat: identity,
1597
+ eventInteractive: Boolean,
1562
1598
  // only used by list-view, but languages define the value, so we need it in base options
1563
1599
  noEventsText: String,
1600
+ viewHint: identity,
1601
+ navLinkHint: identity,
1602
+ closeHint: String,
1603
+ timeHint: String,
1604
+ eventHint: String,
1564
1605
  moreLinkClick: identity,
1565
1606
  moreLinkClassNames: identity,
1566
1607
  moreLinkContent: identity,
@@ -1649,6 +1690,7 @@ var CALENDAR_LISTENER_REFINERS = {
1649
1690
  // -------------------------
1650
1691
  var CALENDAR_OPTION_REFINERS = {
1651
1692
  buttonText: identity,
1693
+ buttonHints: identity,
1652
1694
  views: identity,
1653
1695
  plugins: identity,
1654
1696
  initialEvents: identity,
@@ -1659,6 +1701,7 @@ var COMPLEX_OPTION_COMPARATORS = {
1659
1701
  headerToolbar: isBoolComplexEqual,
1660
1702
  footerToolbar: isBoolComplexEqual,
1661
1703
  buttonText: isBoolComplexEqual,
1704
+ buttonHints: isBoolComplexEqual,
1662
1705
  buttonIcons: isBoolComplexEqual,
1663
1706
  };
1664
1707
  function isBoolComplexEqual(a, b) {
@@ -1874,6 +1917,7 @@ var EVENT_NON_DATE_REFINERS = {
1874
1917
  groupId: String,
1875
1918
  title: String,
1876
1919
  url: String,
1920
+ interactive: Boolean,
1877
1921
  };
1878
1922
  var EVENT_DATE_REFINERS = {
1879
1923
  start: identity,
@@ -1926,6 +1970,7 @@ function parseEventDef(refined, extra, sourceId, allDay, hasEnd, context) {
1926
1970
  sourceId: sourceId,
1927
1971
  allDay: allDay,
1928
1972
  hasEnd: hasEnd,
1973
+ interactive: refined.interactive,
1929
1974
  ui: createEventUi(refined, context),
1930
1975
  extendedProps: __assign(__assign({}, (refined.extendedProps || {})), extra),
1931
1976
  };
@@ -2385,6 +2430,34 @@ function buildEventRangeKey(eventRange) {
2385
2430
  : eventRange.def.defId + ":" + eventRange.range.start.toISOString();
2386
2431
  // inverse-background events don't have specific instances. TODO: better solution
2387
2432
  }
2433
+ function getSegAnchorAttrs(seg, context) {
2434
+ var _a = seg.eventRange, def = _a.def, instance = _a.instance;
2435
+ var url = def.url;
2436
+ if (url) {
2437
+ return { href: url };
2438
+ }
2439
+ var emitter = context.emitter, options = context.options;
2440
+ var eventInteractive = options.eventInteractive;
2441
+ if (eventInteractive == null) {
2442
+ eventInteractive = def.interactive;
2443
+ if (eventInteractive == null) {
2444
+ eventInteractive = Boolean(emitter.hasHandlers('eventClick'));
2445
+ }
2446
+ }
2447
+ // mock what happens in EventClicking
2448
+ if (eventInteractive) {
2449
+ // only attach keyboard-related handlers because click handler is already done in EventClicking
2450
+ return createAriaKeyboardAttrs(function (ev) {
2451
+ emitter.trigger('eventClick', {
2452
+ el: ev.target,
2453
+ event: new EventApi(context, def, instance),
2454
+ jsEvent: ev,
2455
+ view: context.viewApi,
2456
+ });
2457
+ });
2458
+ }
2459
+ return {};
2460
+ }
2388
2461
 
2389
2462
  var STANDARD_PROPS = {
2390
2463
  start: identity,
@@ -2859,7 +2932,7 @@ var CalendarApi = /** @class */ (function () {
2859
2932
  // Preference is given to views that have corresponding buttons.
2860
2933
  CalendarApi.prototype.getUnitViewSpec = function (unit) {
2861
2934
  var _a = this.getCurrentData(), viewSpecs = _a.viewSpecs, toolbarConfig = _a.toolbarConfig;
2862
- var viewTypes = [].concat(toolbarConfig.viewsWithButtons);
2935
+ var viewTypes = [].concat(toolbarConfig.header ? toolbarConfig.header.viewsWithButtons : [], toolbarConfig.footer ? toolbarConfig.footer.viewsWithButtons : []);
2863
2936
  var i;
2864
2937
  var spec;
2865
2938
  for (var viewType in viewSpecs) {
@@ -3663,6 +3736,7 @@ var DateEnv = /** @class */ (function () {
3663
3736
  this.weekNumberFunc = settings.weekNumberCalculation;
3664
3737
  }
3665
3738
  this.weekText = settings.weekText != null ? settings.weekText : settings.locale.options.weekText;
3739
+ this.weekTextLong = (settings.weekTextLong != null ? settings.weekTextLong : settings.locale.options.weekTextLong) || this.weekText;
3666
3740
  this.cmdFormatter = settings.cmdFormatter;
3667
3741
  this.defaultSeparator = settings.defaultSeparator;
3668
3742
  }
@@ -3965,7 +4039,7 @@ var DateEnv = /** @class */ (function () {
3965
4039
 
3966
4040
  var globalLocales = [];
3967
4041
 
3968
- var RAW_EN_LOCALE = {
4042
+ var MINIMAL_RAW_EN_LOCALE = {
3969
4043
  code: 'en',
3970
4044
  week: {
3971
4045
  dow: 0,
@@ -3985,15 +4059,33 @@ var RAW_EN_LOCALE = {
3985
4059
  list: 'list',
3986
4060
  },
3987
4061
  weekText: 'W',
4062
+ weekTextLong: 'Week',
4063
+ closeHint: 'Close',
4064
+ timeHint: 'Time',
4065
+ eventHint: 'Event',
3988
4066
  allDayText: 'all-day',
3989
4067
  moreLinkText: 'more',
3990
4068
  noEventsText: 'No events to display',
3991
4069
  };
4070
+ var RAW_EN_LOCALE = __assign(__assign({}, MINIMAL_RAW_EN_LOCALE), {
4071
+ // Includes things we don't want other locales to inherit,
4072
+ // things that derive from other translatable strings.
4073
+ buttonHints: {
4074
+ prev: 'Previous $0',
4075
+ next: 'Next $0',
4076
+ today: function (buttonText, unit) {
4077
+ return (unit === 'day')
4078
+ ? 'Today'
4079
+ : "This " + buttonText;
4080
+ },
4081
+ }, viewHint: '$0 view', navLinkHint: 'Go to $0', moreLinkHint: function (eventCnt) {
4082
+ return "Show " + eventCnt + " more event" + (eventCnt === 1 ? '' : 's');
4083
+ } });
3992
4084
  function organizeRawLocales(explicitRawLocales) {
3993
4085
  var defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en';
3994
4086
  var allRawLocales = globalLocales.concat(explicitRawLocales);
3995
4087
  var rawLocaleMap = {
3996
- en: RAW_EN_LOCALE, // necessary?
4088
+ en: RAW_EN_LOCALE,
3997
4089
  };
3998
4090
  for (var _i = 0, allRawLocales_1 = allRawLocales; _i < allRawLocales_1.length; _i++) {
3999
4091
  var rawLocale = allRawLocales_1[_i];
@@ -4028,7 +4120,7 @@ function queryRawLocale(codes, available) {
4028
4120
  return null;
4029
4121
  }
4030
4122
  function parseLocale(codeArg, codes, raw) {
4031
- var merged = mergeProps([RAW_EN_LOCALE, raw], ['buttonText']);
4123
+ var merged = mergeProps([MINIMAL_RAW_EN_LOCALE, raw], ['buttonText']);
4032
4124
  delete merged.code; // don't want this part of the options
4033
4125
  var week = merged.week;
4034
4126
  delete merged.week;
@@ -4313,12 +4405,33 @@ function getDayClassNames(meta, theme) {
4313
4405
  return classNames;
4314
4406
  }
4315
4407
 
4316
- function buildNavLinkData(date, type) {
4317
- if (type === void 0) { type = 'day'; }
4318
- return JSON.stringify({
4319
- date: formatDayString(date),
4320
- type: type,
4321
- });
4408
+ var DAY_FORMAT = createFormatter({ year: 'numeric', month: 'long', day: 'numeric' });
4409
+ var WEEK_FORMAT = createFormatter({ week: 'long' });
4410
+ function buildNavLinkAttrs(context, dateMarker, viewType, isTabbable) {
4411
+ if (viewType === void 0) { viewType = 'day'; }
4412
+ if (isTabbable === void 0) { isTabbable = true; }
4413
+ var dateEnv = context.dateEnv, options = context.options, calendarApi = context.calendarApi;
4414
+ var dateStr = dateEnv.format(dateMarker, viewType === 'week' ? WEEK_FORMAT : DAY_FORMAT);
4415
+ if (options.navLinks) {
4416
+ var zonedDate = dateEnv.toDate(dateMarker);
4417
+ var handleInteraction = function (ev) {
4418
+ var customAction = viewType === 'day' ? options.navLinkDayClick :
4419
+ viewType === 'week' ? options.navLinkWeekClick : null;
4420
+ if (typeof customAction === 'function') {
4421
+ customAction.call(calendarApi, dateEnv.toDate(dateMarker), ev);
4422
+ }
4423
+ else {
4424
+ if (typeof customAction === 'string') {
4425
+ viewType = customAction;
4426
+ }
4427
+ calendarApi.zoomTo(dateMarker, viewType);
4428
+ }
4429
+ };
4430
+ return __assign({ title: formatWithOrdinals(options.navLinkHint, [dateStr, zonedDate], dateStr), 'data-navlink': '' }, (isTabbable
4431
+ ? createAriaClickAttrs(handleInteraction)
4432
+ : { onClick: handleInteraction }));
4433
+ }
4434
+ return { 'aria-label': dateStr };
4322
4435
  }
4323
4436
 
4324
4437
  var _isRtlScrollbarOnLeft = null;
@@ -4523,8 +4636,8 @@ var Emitter = /** @class */ (function () {
4523
4636
  }
4524
4637
  };
4525
4638
  Emitter.prototype.hasHandlers = function (type) {
4526
- return (this.handlers[type] && this.handlers[type].length) ||
4527
- (this.options && this.options[type]);
4639
+ return Boolean((this.handlers[type] && this.handlers[type].length) ||
4640
+ (this.options && this.options[type]));
4528
4641
  };
4529
4642
  return Emitter;
4530
4643
  }());
@@ -5405,6 +5518,20 @@ function buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionO
5405
5518
  }
5406
5519
  return null;
5407
5520
  };
5521
+ var queryButtonTitle = function (optionsSubset) {
5522
+ var buttonHints = optionsSubset.buttonHints || {};
5523
+ var buttonKey = viewDef.defaults.buttonTextKey; // use same key as text
5524
+ if (buttonKey != null && buttonHints[buttonKey] != null) {
5525
+ return buttonHints[buttonKey];
5526
+ }
5527
+ if (buttonHints[viewDef.type] != null) {
5528
+ return buttonHints[viewDef.type];
5529
+ }
5530
+ if (buttonHints[singleUnit] != null) {
5531
+ return buttonHints[singleUnit];
5532
+ }
5533
+ return null;
5534
+ };
5408
5535
  return {
5409
5536
  type: viewDef.type,
5410
5537
  component: viewDef.component,
@@ -5419,7 +5546,15 @@ function buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionO
5419
5546
  buttonTextDefault: queryButtonText(localeDefaults) ||
5420
5547
  viewDef.defaults.buttonText ||
5421
5548
  queryButtonText(BASE_OPTION_DEFAULTS) ||
5422
- viewDef.type, // fall back to given view name
5549
+ viewDef.type,
5550
+ // not DRY
5551
+ buttonTitleOverride: queryButtonTitle(dynamicOptionOverrides) ||
5552
+ queryButtonTitle(optionOverrides) ||
5553
+ viewDef.overrides.buttonHint,
5554
+ buttonTitleDefault: queryButtonTitle(localeDefaults) ||
5555
+ viewDef.defaults.buttonHint ||
5556
+ queryButtonTitle(BASE_OPTION_DEFAULTS),
5557
+ // will eventually fall back to buttonText
5423
5558
  };
5424
5559
  }
5425
5560
  // hack to get memoization working
@@ -6110,25 +6245,41 @@ function reduceEventResize(currentResize, action) {
6110
6245
  }
6111
6246
 
6112
6247
  function parseToolbars(calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {
6113
- var viewsWithButtons = [];
6114
- var headerToolbar = calendarOptions.headerToolbar ? parseToolbar(calendarOptions.headerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi, viewsWithButtons) : null;
6115
- var footerToolbar = calendarOptions.footerToolbar ? parseToolbar(calendarOptions.footerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi, viewsWithButtons) : null;
6116
- return { headerToolbar: headerToolbar, footerToolbar: footerToolbar, viewsWithButtons: viewsWithButtons };
6248
+ var header = calendarOptions.headerToolbar ? parseToolbar(calendarOptions.headerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;
6249
+ var footer = calendarOptions.footerToolbar ? parseToolbar(calendarOptions.footerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;
6250
+ return { header: header, footer: footer };
6117
6251
  }
6118
- function parseToolbar(sectionStrHash, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi, viewsWithButtons) {
6119
- return mapHash(sectionStrHash, function (sectionStr) { return parseSection(sectionStr, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi, viewsWithButtons); });
6252
+ function parseToolbar(sectionStrHash, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {
6253
+ var sectionWidgets = {};
6254
+ var viewsWithButtons = [];
6255
+ var hasTitle = false;
6256
+ for (var sectionName in sectionStrHash) {
6257
+ var sectionStr = sectionStrHash[sectionName];
6258
+ var sectionRes = parseSection(sectionStr, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi);
6259
+ sectionWidgets[sectionName] = sectionRes.widgets;
6260
+ viewsWithButtons.push.apply(viewsWithButtons, sectionRes.viewsWithButtons);
6261
+ hasTitle = hasTitle || sectionRes.hasTitle;
6262
+ }
6263
+ return { sectionWidgets: sectionWidgets, viewsWithButtons: viewsWithButtons, hasTitle: hasTitle };
6120
6264
  }
6121
6265
  /*
6122
6266
  BAD: querying icons and text here. should be done at render time
6123
6267
  */
6124
- function parseSection(sectionStr, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi, viewsWithButtons) {
6268
+ function parseSection(sectionStr, calendarOptions, // defaults+overrides, then refined
6269
+ calendarOptionOverrides, // overrides only!, unrefined :(
6270
+ theme, viewSpecs, calendarApi) {
6125
6271
  var isRtl = calendarOptions.direction === 'rtl';
6126
6272
  var calendarCustomButtons = calendarOptions.customButtons || {};
6127
6273
  var calendarButtonTextOverrides = calendarOptionOverrides.buttonText || {};
6128
6274
  var calendarButtonText = calendarOptions.buttonText || {};
6275
+ var calendarButtonHintOverrides = calendarOptionOverrides.buttonHints || {};
6276
+ var calendarButtonHints = calendarOptions.buttonHints || {};
6129
6277
  var sectionSubstrs = sectionStr ? sectionStr.split(' ') : [];
6130
- return sectionSubstrs.map(function (buttonGroupStr) { return (buttonGroupStr.split(',').map(function (buttonName) {
6278
+ var viewsWithButtons = [];
6279
+ var hasTitle = false;
6280
+ var widgets = sectionSubstrs.map(function (buttonGroupStr) { return (buttonGroupStr.split(',').map(function (buttonName) {
6131
6281
  if (buttonName === 'title') {
6282
+ hasTitle = true;
6132
6283
  return { buttonName: buttonName };
6133
6284
  }
6134
6285
  var customButtonProps;
@@ -6136,6 +6287,8 @@ function parseSection(sectionStr, calendarOptions, calendarOptionOverrides, them
6136
6287
  var buttonClick;
6137
6288
  var buttonIcon; // only one of these will be set
6138
6289
  var buttonText; // "
6290
+ var buttonHint;
6291
+ // ^ for the title="" attribute, for accessibility
6139
6292
  if ((customButtonProps = calendarCustomButtons[buttonName])) {
6140
6293
  buttonClick = function (ev) {
6141
6294
  if (customButtonProps.click) {
@@ -6145,6 +6298,7 @@ function parseSection(sectionStr, calendarOptions, calendarOptionOverrides, them
6145
6298
  (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) ||
6146
6299
  (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||
6147
6300
  (buttonText = customButtonProps.text);
6301
+ buttonHint = customButtonProps.hint || customButtonProps.text;
6148
6302
  }
6149
6303
  else if ((viewSpec = viewSpecs[buttonName])) {
6150
6304
  viewsWithButtons.push(buttonName);
@@ -6154,6 +6308,12 @@ function parseSection(sectionStr, calendarOptions, calendarOptionOverrides, them
6154
6308
  (buttonText = viewSpec.buttonTextOverride) ||
6155
6309
  (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||
6156
6310
  (buttonText = viewSpec.buttonTextDefault);
6311
+ var textFallback = viewSpec.buttonTextOverride ||
6312
+ viewSpec.buttonTextDefault;
6313
+ buttonHint = formatWithOrdinals(viewSpec.buttonTitleOverride ||
6314
+ viewSpec.buttonTitleDefault ||
6315
+ calendarOptions.viewHint, [textFallback, buttonName], // view-name = buttonName
6316
+ textFallback);
6157
6317
  }
6158
6318
  else if (calendarApi[buttonName]) { // a calendarApi method
6159
6319
  buttonClick = function () {
@@ -6161,11 +6321,26 @@ function parseSection(sectionStr, calendarOptions, calendarOptionOverrides, them
6161
6321
  };
6162
6322
  (buttonText = calendarButtonTextOverrides[buttonName]) ||
6163
6323
  (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||
6164
- (buttonText = calendarButtonText[buttonName]);
6165
- // ^ everything else is considered default
6324
+ (buttonText = calendarButtonText[buttonName]); // everything else is considered default
6325
+ if (buttonName === 'prevYear' || buttonName === 'nextYear') {
6326
+ var prevOrNext = buttonName === 'prevYear' ? 'prev' : 'next';
6327
+ buttonHint = formatWithOrdinals(calendarButtonHintOverrides[prevOrNext] ||
6328
+ calendarButtonHints[prevOrNext], [
6329
+ calendarButtonText.year || 'year',
6330
+ 'year',
6331
+ ], calendarButtonText[buttonName]);
6332
+ }
6333
+ else {
6334
+ buttonHint = function (navUnit) { return formatWithOrdinals(calendarButtonHintOverrides[buttonName] ||
6335
+ calendarButtonHints[buttonName], [
6336
+ calendarButtonText[navUnit] || navUnit,
6337
+ navUnit,
6338
+ ], calendarButtonText[buttonName]); };
6339
+ }
6166
6340
  }
6167
- return { buttonName: buttonName, buttonClick: buttonClick, buttonIcon: buttonIcon, buttonText: buttonText };
6341
+ return { buttonName: buttonName, buttonClick: buttonClick, buttonIcon: buttonIcon, buttonText: buttonText, buttonHint: buttonHint };
6168
6342
  })); });
6343
+ return { widgets: widgets, viewsWithButtons: viewsWithButtons, hasTitle: hasTitle };
6169
6344
  }
6170
6345
 
6171
6346
  var eventSourceDef$2 = {
@@ -6470,8 +6645,8 @@ var globalPlugins = [
6470
6645
  function (state) { return computeEventSourcesLoading(state.eventSources); },
6471
6646
  ],
6472
6647
  contentTypeHandlers: {
6473
- html: function () { return ({ render: injectHtml }); },
6474
- domNodes: function () { return ({ render: injectDomNodes }); },
6648
+ html: buildHtmlRenderer,
6649
+ domNodes: buildDomNodeRenderer,
6475
6650
  },
6476
6651
  propSetHandlers: {
6477
6652
  dateProfile: handleDateProfile,
@@ -6479,19 +6654,45 @@ var globalPlugins = [
6479
6654
  },
6480
6655
  }),
6481
6656
  ];
6482
- function injectHtml(el, html) {
6483
- el.innerHTML = html;
6657
+ function buildHtmlRenderer() {
6658
+ var currentEl = null;
6659
+ var currentHtml = '';
6660
+ function render(el, html) {
6661
+ if (el !== currentEl || html !== currentHtml) {
6662
+ el.innerHTML = html;
6663
+ }
6664
+ currentEl = el;
6665
+ currentHtml = html;
6666
+ }
6667
+ function destroy() {
6668
+ currentEl.innerHTML = '';
6669
+ currentEl = null;
6670
+ currentHtml = '';
6671
+ }
6672
+ return { render: render, destroy: destroy };
6484
6673
  }
6485
- function injectDomNodes(el, domNodes) {
6486
- var oldNodes = Array.prototype.slice.call(el.childNodes); // TODO: use array util
6487
- var newNodes = Array.prototype.slice.call(domNodes); // TODO: use array util
6488
- if (!isArraysEqual(oldNodes, newNodes)) {
6489
- for (var _i = 0, newNodes_1 = newNodes; _i < newNodes_1.length; _i++) {
6490
- var newNode = newNodes_1[_i];
6491
- el.appendChild(newNode);
6674
+ function buildDomNodeRenderer() {
6675
+ var currentEl = null;
6676
+ var currentDomNodes = [];
6677
+ function render(el, domNodes) {
6678
+ var newDomNodes = Array.prototype.slice.call(domNodes);
6679
+ if (el !== currentEl || !isArraysEqual(currentDomNodes, newDomNodes)) {
6680
+ // append first, remove second (for scroll resetting)
6681
+ for (var _i = 0, newDomNodes_1 = newDomNodes; _i < newDomNodes_1.length; _i++) {
6682
+ var newNode = newDomNodes_1[_i];
6683
+ el.appendChild(newNode);
6684
+ }
6685
+ destroy();
6492
6686
  }
6493
- oldNodes.forEach(removeElement);
6687
+ currentEl = el;
6688
+ currentDomNodes = newDomNodes;
6689
+ }
6690
+ function destroy() {
6691
+ currentDomNodes.forEach(removeElement);
6692
+ currentDomNodes = [];
6693
+ currentEl = null;
6494
6694
  }
6695
+ return { render: render, destroy: destroy };
6495
6696
  }
6496
6697
 
6497
6698
  var DelayedRunner = /** @class */ (function () {
@@ -7425,21 +7626,21 @@ var ToolbarSection = /** @class */ (function (_super) {
7425
7626
  var isOnlyButtons = true;
7426
7627
  for (var _i = 0, widgetGroup_1 = widgetGroup; _i < widgetGroup_1.length; _i++) {
7427
7628
  var widget = widgetGroup_1[_i];
7428
- var buttonName = widget.buttonName, buttonClick = widget.buttonClick, buttonText = widget.buttonText, buttonIcon = widget.buttonIcon;
7629
+ var buttonName = widget.buttonName, buttonClick = widget.buttonClick, buttonText = widget.buttonText, buttonIcon = widget.buttonIcon, buttonHint = widget.buttonHint;
7429
7630
  if (buttonName === 'title') {
7430
7631
  isOnlyButtons = false;
7431
- children.push(createElement("h2", { className: "fc-toolbar-title" }, props.title));
7632
+ children.push(createElement("h2", { className: "fc-toolbar-title", id: props.titleId }, props.title));
7432
7633
  }
7433
7634
  else {
7434
- var ariaAttrs = buttonIcon ? { 'aria-label': buttonName } : {};
7435
- var buttonClasses = ["fc-" + buttonName + "-button", theme.getClass('button')];
7436
- if (buttonName === props.activeButton) {
7437
- buttonClasses.push(theme.getClass('buttonActive'));
7438
- }
7635
+ var isPressed = buttonName === props.activeButton;
7439
7636
  var isDisabled = (!props.isTodayEnabled && buttonName === 'today') ||
7440
7637
  (!props.isPrevEnabled && buttonName === 'prev') ||
7441
7638
  (!props.isNextEnabled && buttonName === 'next');
7442
- children.push(createElement("button", __assign({ disabled: isDisabled, className: buttonClasses.join(' '), onClick: buttonClick, type: "button" }, ariaAttrs), buttonText || (buttonIcon ? createElement("span", { className: buttonIcon }) : '')));
7639
+ var buttonClasses = ["fc-" + buttonName + "-button", theme.getClass('button')];
7640
+ if (isPressed) {
7641
+ buttonClasses.push(theme.getClass('buttonActive'));
7642
+ }
7643
+ children.push(createElement("button", { type: "button", title: typeof buttonHint === 'function' ? buttonHint(props.navUnit) : buttonHint, disabled: isDisabled, "aria-pressed": isPressed, className: buttonClasses.join(' '), onClick: buttonClick }, buttonText || (buttonIcon ? createElement("span", { className: buttonIcon }) : '')));
7443
7644
  }
7444
7645
  }
7445
7646
  if (children.length > 1) {
@@ -7461,20 +7662,21 @@ var Toolbar = /** @class */ (function (_super) {
7461
7662
  var forceLtr = false;
7462
7663
  var startContent;
7463
7664
  var endContent;
7464
- var centerContent = model.center;
7465
- if (model.left) {
7665
+ var sectionWidgets = model.sectionWidgets;
7666
+ var centerContent = sectionWidgets.center;
7667
+ if (sectionWidgets.left) {
7466
7668
  forceLtr = true;
7467
- startContent = model.left;
7669
+ startContent = sectionWidgets.left;
7468
7670
  }
7469
7671
  else {
7470
- startContent = model.start;
7672
+ startContent = sectionWidgets.start;
7471
7673
  }
7472
- if (model.right) {
7674
+ if (sectionWidgets.right) {
7473
7675
  forceLtr = true;
7474
- endContent = model.right;
7676
+ endContent = sectionWidgets.right;
7475
7677
  }
7476
7678
  else {
7477
- endContent = model.end;
7679
+ endContent = sectionWidgets.end;
7478
7680
  }
7479
7681
  var classNames = [
7480
7682
  extraClassName || '',
@@ -7488,7 +7690,7 @@ var Toolbar = /** @class */ (function (_super) {
7488
7690
  };
7489
7691
  Toolbar.prototype.renderSection = function (key, widgetGroups) {
7490
7692
  var props = this.props;
7491
- return (createElement(ToolbarSection, { key: key, widgetGroups: widgetGroups, title: props.title, activeButton: props.activeButton, isTodayEnabled: props.isTodayEnabled, isPrevEnabled: props.isPrevEnabled, isNextEnabled: props.isNextEnabled }));
7693
+ return (createElement(ToolbarSection, { key: key, widgetGroups: widgetGroups, title: props.title, navUnit: props.navUnit, activeButton: props.activeButton, isTodayEnabled: props.isTodayEnabled, isPrevEnabled: props.isPrevEnabled, isNextEnabled: props.isNextEnabled, titleId: props.titleId }));
7492
7694
  };
7493
7695
  return Toolbar;
7494
7696
  }(BaseComponent));
@@ -7537,7 +7739,7 @@ var ViewContainer = /** @class */ (function (_super) {
7537
7739
  else {
7538
7740
  height = props.height || '';
7539
7741
  }
7540
- return (createElement("div", { ref: this.handleEl, onClick: props.onClick, className: classNames.join(' '), style: { height: height, paddingBottom: paddingBottom } }, props.children));
7742
+ return (createElement("div", { "aria-labelledby": props.labeledById, ref: this.handleEl, className: classNames.join(' '), style: { height: height, paddingBottom: paddingBottom } }, props.children));
7541
7743
  };
7542
7744
  ViewContainer.prototype.componentDidMount = function () {
7543
7745
  this.context.addResizeHandler(this.handleResize);
@@ -7646,10 +7848,13 @@ var CalendarContent = /** @class */ (function (_super) {
7646
7848
  _this.buildViewContext = memoize(buildViewContext);
7647
7849
  _this.buildViewPropTransformers = memoize(buildViewPropTransformers);
7648
7850
  _this.buildToolbarProps = memoize(buildToolbarProps);
7649
- _this.handleNavLinkClick = buildDelegationHandler('a[data-navlink]', _this._handleNavLinkClick.bind(_this));
7650
7851
  _this.headerRef = createRef();
7651
7852
  _this.footerRef = createRef();
7652
7853
  _this.interactionsStore = {};
7854
+ // eslint-disable-next-line
7855
+ _this.state = {
7856
+ viewLabelId: getUniqueDomId(),
7857
+ };
7653
7858
  // Component Registration
7654
7859
  // -----------------------------------------------------------------------------------------------------------------
7655
7860
  _this.registerInteractiveComponent = function (component, settingsInput) {
@@ -7711,12 +7916,15 @@ var CalendarContent = /** @class */ (function (_super) {
7711
7916
  viewAspectRatio = Math.max(options.aspectRatio, 0.5); // prevent from getting too tall
7712
7917
  }
7713
7918
  var viewContext = this.buildViewContext(props.viewSpec, props.viewApi, props.options, props.dateProfileGenerator, props.dateEnv, props.theme, props.pluginHooks, props.dispatch, props.getCurrentData, props.emitter, props.calendarApi, this.registerInteractiveComponent, this.unregisterInteractiveComponent);
7919
+ var viewLabelId = (toolbarConfig.header && toolbarConfig.header.hasTitle)
7920
+ ? this.state.viewLabelId
7921
+ : '';
7714
7922
  return (createElement(ViewContextType.Provider, { value: viewContext },
7715
- toolbarConfig.headerToolbar && (createElement(Toolbar, __assign({ ref: this.headerRef, extraClassName: "fc-header-toolbar", model: toolbarConfig.headerToolbar }, toolbarProps))),
7716
- createElement(ViewContainer, { liquid: viewVGrow, height: viewHeight, aspectRatio: viewAspectRatio, onClick: this.handleNavLinkClick },
7923
+ toolbarConfig.header && (createElement(Toolbar, __assign({ ref: this.headerRef, extraClassName: "fc-header-toolbar", model: toolbarConfig.header, titleId: viewLabelId }, toolbarProps))),
7924
+ createElement(ViewContainer, { liquid: viewVGrow, height: viewHeight, aspectRatio: viewAspectRatio, labeledById: viewLabelId },
7717
7925
  this.renderView(props),
7718
7926
  this.buildAppendContent()),
7719
- toolbarConfig.footerToolbar && (createElement(Toolbar, __assign({ ref: this.footerRef, extraClassName: "fc-footer-toolbar", model: toolbarConfig.footerToolbar }, toolbarProps)))));
7927
+ toolbarConfig.footer && (createElement(Toolbar, __assign({ ref: this.footerRef, extraClassName: "fc-footer-toolbar", model: toolbarConfig.footer, titleId: "" }, toolbarProps)))));
7720
7928
  };
7721
7929
  CalendarContent.prototype.componentDidMount = function () {
7722
7930
  var props = this.props;
@@ -7746,24 +7954,6 @@ var CalendarContent = /** @class */ (function (_super) {
7746
7954
  }
7747
7955
  this.props.emitter.trigger('_unmount');
7748
7956
  };
7749
- CalendarContent.prototype._handleNavLinkClick = function (ev, anchorEl) {
7750
- var _a = this.props, dateEnv = _a.dateEnv, options = _a.options, calendarApi = _a.calendarApi;
7751
- var navLinkOptions = anchorEl.getAttribute('data-navlink');
7752
- navLinkOptions = navLinkOptions ? JSON.parse(navLinkOptions) : {};
7753
- var dateMarker = dateEnv.createMarker(navLinkOptions.date);
7754
- var viewType = navLinkOptions.type;
7755
- var customAction = viewType === 'day' ? options.navLinkDayClick :
7756
- viewType === 'week' ? options.navLinkWeekClick : null;
7757
- if (typeof customAction === 'function') {
7758
- customAction.call(calendarApi, dateEnv.toDate(dateMarker), ev);
7759
- }
7760
- else {
7761
- if (typeof customAction === 'string') {
7762
- viewType = customAction;
7763
- }
7764
- calendarApi.zoomTo(dateMarker, viewType);
7765
- }
7766
- };
7767
7957
  CalendarContent.prototype.buildAppendContent = function () {
7768
7958
  var props = this.props;
7769
7959
  var children = props.pluginHooks.viewContainerAppends.map(function (buildAppendContent) { return buildAppendContent(props); });
@@ -7802,6 +7992,7 @@ function buildToolbarProps(viewSpec, dateProfile, dateProfileGenerator, currentD
7802
7992
  return {
7803
7993
  title: title,
7804
7994
  activeButton: viewSpec.type,
7995
+ navUnit: viewSpec.singleUnit,
7805
7996
  isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now),
7806
7997
  isPrevEnabled: prevInfo.isValid,
7807
7998
  isNextEnabled: nextInfo.isValid,
@@ -7889,11 +8080,11 @@ var TableDateCell = /** @class */ (function (_super) {
7889
8080
  var classNames = [CLASS_NAME].concat(getDayClassNames(dayMeta, theme));
7890
8081
  var text = dateEnv.format(date, props.dayHeaderFormat);
7891
8082
  // if colCnt is 1, we are already in a day-view and don't need a navlink
7892
- var navLinkAttrs = (options.navLinks && !dayMeta.isDisabled && props.colCnt > 1)
7893
- ? { 'data-navlink': buildNavLinkData(date), tabIndex: 0 }
8083
+ var navLinkAttrs = (!dayMeta.isDisabled && props.colCnt > 1)
8084
+ ? buildNavLinkAttrs(this.context, date)
7894
8085
  : {};
7895
8086
  var hookProps = __assign(__assign(__assign({ date: dateEnv.toDate(date), view: viewApi }, props.extraHookProps), { text: text }), dayMeta);
7896
- return (createElement(RenderHook, { hookProps: hookProps, classNames: options.dayHeaderClassNames, content: options.dayHeaderContent, defaultContent: renderInner$1, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return (createElement("th", __assign({ ref: rootElRef, className: classNames.concat(customClassNames).join(' '), "data-date": !dayMeta.isDisabled ? formatDayString(date) : undefined, colSpan: props.colSpan }, props.extraDataAttrs),
8087
+ return (createElement(RenderHook, { hookProps: hookProps, classNames: options.dayHeaderClassNames, content: options.dayHeaderContent, defaultContent: renderInner$1, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return (createElement("th", __assign({ ref: rootElRef, role: "columnheader", className: classNames.concat(customClassNames).join(' '), "data-date": !dayMeta.isDisabled ? formatDayString(date) : undefined, colSpan: props.colSpan }, props.extraDataAttrs),
7897
8088
  createElement("div", { className: "fc-scrollgrid-sync-inner" }, !dayMeta.isDisabled && (createElement("a", __assign({ ref: innerElRef, className: [
7898
8089
  'fc-col-header-cell-cushion',
7899
8090
  props.isSticky ? 'fc-sticky' : '',
@@ -7902,6 +8093,7 @@ var TableDateCell = /** @class */ (function (_super) {
7902
8093
  return TableDateCell;
7903
8094
  }(BaseComponent));
7904
8095
 
8096
+ var WEEKDAY_FORMAT = createFormatter({ weekday: 'long' });
7905
8097
  var TableDowCell = /** @class */ (function (_super) {
7906
8098
  __extends(TableDowCell, _super);
7907
8099
  function TableDowCell() {
@@ -7923,9 +8115,9 @@ var TableDowCell = /** @class */ (function (_super) {
7923
8115
  var text = dateEnv.format(date, props.dayHeaderFormat);
7924
8116
  var hookProps = __assign(__assign(__assign(__assign({ // TODO: make this public?
7925
8117
  date: date }, dateMeta), { view: viewApi }), props.extraHookProps), { text: text });
7926
- return (createElement(RenderHook, { hookProps: hookProps, classNames: options.dayHeaderClassNames, content: options.dayHeaderContent, defaultContent: renderInner$1, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return (createElement("th", __assign({ ref: rootElRef, className: classNames.concat(customClassNames).join(' '), colSpan: props.colSpan }, props.extraDataAttrs),
8118
+ return (createElement(RenderHook, { hookProps: hookProps, classNames: options.dayHeaderClassNames, content: options.dayHeaderContent, defaultContent: renderInner$1, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return (createElement("th", __assign({ ref: rootElRef, role: "columnheader", className: classNames.concat(customClassNames).join(' '), colSpan: props.colSpan }, props.extraDataAttrs),
7927
8119
  createElement("div", { className: "fc-scrollgrid-sync-inner" },
7928
- createElement("a", { className: [
8120
+ createElement("a", { "aria-label": dateEnv.format(date, WEEKDAY_FORMAT), className: [
7929
8121
  'fc-col-header-cell-cushion',
7930
8122
  props.isSticky ? 'fc-sticky' : '',
7931
8123
  ].join(' '), ref: innerElRef }, innerContent)))); }));
@@ -8007,7 +8199,7 @@ var DayHeader = /** @class */ (function (_super) {
8007
8199
  var context = this.context;
8008
8200
  var _a = this.props, dates = _a.dates, dateProfile = _a.dateProfile, datesRepDistinctDays = _a.datesRepDistinctDays, renderIntro = _a.renderIntro;
8009
8201
  var dayHeaderFormat = this.createDayHeaderFormatter(context.options.dayHeaderFormat, datesRepDistinctDays, dates.length);
8010
- return (createElement(NowTimer, { unit: "day" }, function (nowDate, todayRange) { return (createElement("tr", null,
8202
+ return (createElement(NowTimer, { unit: "day" }, function (nowDate, todayRange) { return (createElement("tr", { role: "row" },
8011
8203
  renderIntro && renderIntro('day'),
8012
8204
  dates.map(function (date) { return (datesRepDistinctDays ? (createElement(TableDateCell, { key: date.toISOString(), date: date, dateProfile: dateProfile, todayRange: todayRange, colCnt: dates.length, dayHeaderFormat: dayHeaderFormat })) : (createElement(TableDowCell, { key: date.getUTCDay(), dow: date.getUTCDay(), dayHeaderFormat: dayHeaderFormat }))); }))); }));
8013
8205
  };
@@ -8651,11 +8843,12 @@ function getAllowYScrolling(props, sectionConfig) {
8651
8843
  getSectionHasLiquidHeight(props, sectionConfig); // if the section is liquid height, it might condense enough to require scrollbars
8652
8844
  }
8653
8845
  // TODO: ONLY use `arg`. force out internal function to use same API
8654
- function renderChunkContent(sectionConfig, chunkConfig, arg) {
8846
+ function renderChunkContent(sectionConfig, chunkConfig, arg, isHeader) {
8655
8847
  var expandRows = arg.expandRows;
8656
8848
  var content = typeof chunkConfig.content === 'function' ?
8657
8849
  chunkConfig.content(arg) :
8658
8850
  createElement('table', {
8851
+ role: 'presentation',
8659
8852
  className: [
8660
8853
  chunkConfig.tableClassName,
8661
8854
  sectionConfig.syncRowHeights ? 'fc-scrollgrid-sync-table' : '',
@@ -8665,7 +8858,11 @@ function renderChunkContent(sectionConfig, chunkConfig, arg) {
8665
8858
  width: arg.clientWidth,
8666
8859
  height: expandRows ? arg.clientHeight : '', // css `height` on a <table> serves as a min-height
8667
8860
  },
8668
- }, arg.tableColGroupNode, createElement('tbody', {}, typeof chunkConfig.rowContent === 'function' ? chunkConfig.rowContent(arg) : chunkConfig.rowContent));
8861
+ }, arg.tableColGroupNode, createElement(isHeader ? 'thead' : 'tbody', {
8862
+ role: 'presentation',
8863
+ }, typeof chunkConfig.rowContent === 'function'
8864
+ ? chunkConfig.rowContent(arg)
8865
+ : chunkConfig.rowContent));
8669
8866
  return content;
8670
8867
  }
8671
8868
  function isColPropsEqual(cols0, cols1) {
@@ -8787,15 +8984,15 @@ var SimpleScrollGrid = /** @class */ (function (_super) {
8787
8984
  var bodySectionNodes = [];
8788
8985
  var footSectionNodes = [];
8789
8986
  while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'header') {
8790
- headSectionNodes.push(this.renderSection(currentConfig, microColGroupNode));
8987
+ headSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));
8791
8988
  configI += 1;
8792
8989
  }
8793
8990
  while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'body') {
8794
- bodySectionNodes.push(this.renderSection(currentConfig, microColGroupNode));
8991
+ bodySectionNodes.push(this.renderSection(currentConfig, microColGroupNode, false));
8795
8992
  configI += 1;
8796
8993
  }
8797
8994
  while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'footer') {
8798
- footSectionNodes.push(this.renderSection(currentConfig, microColGroupNode));
8995
+ footSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));
8799
8996
  configI += 1;
8800
8997
  }
8801
8998
  // firefox bug: when setting height on table and there is a thead or tfoot,
@@ -8803,18 +9000,20 @@ var SimpleScrollGrid = /** @class */ (function (_super) {
8803
9000
  // use getCanVGrowWithinCell as a way to detect table-stupid firefox.
8804
9001
  // if so, use a simpler dom structure, jam everything into a lone tbody.
8805
9002
  var isBuggy = !getCanVGrowWithinCell();
9003
+ var roleAttrs = { role: 'rowgroup' };
8806
9004
  return createElement('table', {
9005
+ role: 'grid',
8807
9006
  className: classNames.join(' '),
8808
9007
  style: { height: props.height },
8809
- }, Boolean(!isBuggy && headSectionNodes.length) && createElement.apply(void 0, __spreadArray(['thead', {}], headSectionNodes)), Boolean(!isBuggy && bodySectionNodes.length) && createElement.apply(void 0, __spreadArray(['tbody', {}], bodySectionNodes)), Boolean(!isBuggy && footSectionNodes.length) && createElement.apply(void 0, __spreadArray(['tfoot', {}], footSectionNodes)), isBuggy && createElement.apply(void 0, __spreadArray(__spreadArray(__spreadArray(['tbody', {}], headSectionNodes), bodySectionNodes), footSectionNodes)));
9008
+ }, Boolean(!isBuggy && headSectionNodes.length) && createElement.apply(void 0, __spreadArray(['thead', roleAttrs], headSectionNodes)), Boolean(!isBuggy && bodySectionNodes.length) && createElement.apply(void 0, __spreadArray(['tbody', roleAttrs], bodySectionNodes)), Boolean(!isBuggy && footSectionNodes.length) && createElement.apply(void 0, __spreadArray(['tfoot', roleAttrs], footSectionNodes)), isBuggy && createElement.apply(void 0, __spreadArray(__spreadArray(__spreadArray(['tbody', roleAttrs], headSectionNodes), bodySectionNodes), footSectionNodes)));
8810
9009
  };
8811
- SimpleScrollGrid.prototype.renderSection = function (sectionConfig, microColGroupNode) {
9010
+ SimpleScrollGrid.prototype.renderSection = function (sectionConfig, microColGroupNode, isHeader) {
8812
9011
  if ('outerContent' in sectionConfig) {
8813
9012
  return (createElement(Fragment, { key: sectionConfig.key }, sectionConfig.outerContent));
8814
9013
  }
8815
- return (createElement("tr", { key: sectionConfig.key, className: getSectionClassNames(sectionConfig, this.props.liquid).join(' ') }, this.renderChunkTd(sectionConfig, microColGroupNode, sectionConfig.chunk)));
9014
+ return (createElement("tr", { key: sectionConfig.key, role: "presentation", className: getSectionClassNames(sectionConfig, this.props.liquid).join(' ') }, this.renderChunkTd(sectionConfig, microColGroupNode, sectionConfig.chunk, isHeader)));
8816
9015
  };
8817
- SimpleScrollGrid.prototype.renderChunkTd = function (sectionConfig, microColGroupNode, chunkConfig) {
9016
+ SimpleScrollGrid.prototype.renderChunkTd = function (sectionConfig, microColGroupNode, chunkConfig, isHeader) {
8818
9017
  if ('outerContent' in chunkConfig) {
8819
9018
  return chunkConfig.outerContent;
8820
9019
  }
@@ -8838,11 +9037,13 @@ var SimpleScrollGrid = /** @class */ (function (_super) {
8838
9037
  syncRowHeights: false,
8839
9038
  rowSyncHeights: [],
8840
9039
  reportRowHeightChange: function () { },
8841
- });
8842
- return (createElement("td", { ref: chunkConfig.elRef },
8843
- createElement("div", { className: "fc-scroller-harness" + (isLiquid ? ' fc-scroller-harness-liquid' : '') },
8844
- createElement(Scroller, { ref: this.scrollerRefs.createRef(sectionKey), elRef: this.scrollerElRefs.createRef(sectionKey), overflowY: overflowY, overflowX: !props.liquid ? 'visible' : 'hidden' /* natural height? */, maxHeight: sectionConfig.maxHeight, liquid: isLiquid, liquidIsAbsolute // because its within a harness
8845
- : true }, content))));
9040
+ }, isHeader);
9041
+ return createElement(isHeader ? 'th' : 'td', {
9042
+ ref: chunkConfig.elRef,
9043
+ role: 'presentation',
9044
+ }, createElement("div", { className: "fc-scroller-harness" + (isLiquid ? ' fc-scroller-harness-liquid' : '') },
9045
+ createElement(Scroller, { ref: this.scrollerRefs.createRef(sectionKey), elRef: this.scrollerElRefs.createRef(sectionKey), overflowY: overflowY, overflowX: !props.liquid ? 'visible' : 'hidden' /* natural height? */, maxHeight: sectionConfig.maxHeight, liquid: isLiquid, liquidIsAbsolute // because its within a harness
9046
+ : true }, content)));
8846
9047
  };
8847
9048
  SimpleScrollGrid.prototype._handleScrollerEl = function (scrollerEl, key) {
8848
9049
  var section = getSectionByKey(this.props.sections, key);
@@ -8974,7 +9175,7 @@ var StandardEvent = /** @class */ (function (_super) {
8974
9175
  return (createElement(EventRoot, { seg: seg, timeText: timeText, disableDragging: props.disableDragging, disableResizing: props.disableResizing, defaultContent: props.defaultContent || renderInnerContent$1$1, isDragging: props.isDragging, isResizing: props.isResizing, isDateSelecting: props.isDateSelecting, isSelected: props.isSelected, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday }, function (rootElRef, classNames, innerElRef, innerContent, hookProps) { return (createElement("a", __assign({ className: props.extraClassNames.concat(classNames).join(' '), style: {
8975
9176
  borderColor: hookProps.borderColor,
8976
9177
  backgroundColor: hookProps.backgroundColor,
8977
- }, ref: rootElRef }, getSegAnchorAttrs$1(seg)),
9178
+ }, ref: rootElRef }, getSegAnchorAttrs(seg, context)),
8978
9179
  createElement("div", { className: "fc-event-main", ref: innerElRef, style: { color: hookProps.textColor } }, innerContent),
8979
9180
  hookProps.isStartResizable &&
8980
9181
  createElement("div", { className: "fc-event-resizer fc-event-resizer-start" }),
@@ -8989,10 +9190,6 @@ function renderInnerContent$1$1(innerProps) {
8989
9190
  createElement("div", { className: "fc-event-title-container" },
8990
9191
  createElement("div", { className: "fc-event-title fc-sticky" }, innerProps.event.title || createElement(Fragment, null, "\u00A0")))));
8991
9192
  }
8992
- function getSegAnchorAttrs$1(seg) {
8993
- var url = seg.eventRange.def.url;
8994
- return url ? { href: url } : {};
8995
- }
8996
9193
 
8997
9194
  var NowIndicatorRoot = function (props) { return (createElement(ViewContextType.Consumer, null, function (context) {
8998
9195
  var options = context.options;
@@ -9092,6 +9289,9 @@ var Popover = /** @class */ (function (_super) {
9092
9289
  __extends(Popover, _super);
9093
9290
  function Popover() {
9094
9291
  var _this = _super !== null && _super.apply(this, arguments) || this;
9292
+ _this.state = {
9293
+ titleId: getUniqueDomId(),
9294
+ };
9095
9295
  _this.handleRootEl = function (el) {
9096
9296
  _this.rootEl = el;
9097
9297
  if (_this.props.elRef) {
@@ -9099,13 +9299,18 @@ var Popover = /** @class */ (function (_super) {
9099
9299
  }
9100
9300
  };
9101
9301
  // Triggered when the user clicks *anywhere* in the document, for the autoHide feature
9102
- _this.handleDocumentMousedown = function (ev) {
9302
+ _this.handleDocumentMouseDown = function (ev) {
9103
9303
  // only hide the popover if the click happened outside the popover
9104
9304
  var target = getEventTargetViaRoot(ev);
9105
9305
  if (!_this.rootEl.contains(target)) {
9106
9306
  _this.handleCloseClick();
9107
9307
  }
9108
9308
  };
9309
+ _this.handleDocumentKeyDown = function (ev) {
9310
+ if (ev.key === 'Escape') {
9311
+ _this.handleCloseClick();
9312
+ }
9313
+ };
9109
9314
  _this.handleCloseClick = function () {
9110
9315
  var onClose = _this.props.onClose;
9111
9316
  if (onClose) {
@@ -9115,24 +9320,26 @@ var Popover = /** @class */ (function (_super) {
9115
9320
  return _this;
9116
9321
  }
9117
9322
  Popover.prototype.render = function () {
9118
- var theme = this.context.theme;
9119
- var props = this.props;
9323
+ var _a = this.context, theme = _a.theme, options = _a.options;
9324
+ var _b = this, props = _b.props, state = _b.state;
9120
9325
  var classNames = [
9121
9326
  'fc-popover',
9122
9327
  theme.getClass('popover'),
9123
9328
  ].concat(props.extraClassNames || []);
9124
- return createPortal(createElement("div", __assign({ className: classNames.join(' ') }, props.extraAttrs, { ref: this.handleRootEl }),
9329
+ return createPortal(createElement("div", __assign({ id: props.id, className: classNames.join(' '), "aria-labelledby": state.titleId }, props.extraAttrs, { ref: this.handleRootEl }),
9125
9330
  createElement("div", { className: 'fc-popover-header ' + theme.getClass('popoverHeader') },
9126
- createElement("span", { className: "fc-popover-title" }, props.title),
9127
- createElement("span", { className: 'fc-popover-close ' + theme.getIconClass('close'), onClick: this.handleCloseClick })),
9331
+ createElement("span", { className: "fc-popover-title", id: state.titleId }, props.title),
9332
+ createElement("span", { className: 'fc-popover-close ' + theme.getIconClass('close'), title: options.closeHint, onClick: this.handleCloseClick })),
9128
9333
  createElement("div", { className: 'fc-popover-body ' + theme.getClass('popoverContent') }, props.children)), props.parentEl);
9129
9334
  };
9130
9335
  Popover.prototype.componentDidMount = function () {
9131
- document.addEventListener('mousedown', this.handleDocumentMousedown);
9336
+ document.addEventListener('mousedown', this.handleDocumentMouseDown);
9337
+ document.addEventListener('keydown', this.handleDocumentKeyDown);
9132
9338
  this.updateSize();
9133
9339
  };
9134
9340
  Popover.prototype.componentWillUnmount = function () {
9135
- document.removeEventListener('mousedown', this.handleDocumentMousedown);
9341
+ document.removeEventListener('mousedown', this.handleDocumentMouseDown);
9342
+ document.removeEventListener('keydown', this.handleDocumentKeyDown);
9136
9343
  };
9137
9344
  Popover.prototype.updateSize = function () {
9138
9345
  var isRtl = this.context.isRtl;
@@ -9183,7 +9390,7 @@ var MorePopover = /** @class */ (function (_super) {
9183
9390
  var props = this.props;
9184
9391
  var startDate = props.startDate, todayRange = props.todayRange, dateProfile = props.dateProfile;
9185
9392
  var title = dateEnv.format(startDate, options.dayPopoverFormat);
9186
- return (createElement(DayCellRoot, { date: startDate, dateProfile: dateProfile, todayRange: todayRange, elRef: this.handleRootEl }, function (rootElRef, dayClassNames, dataAttrs) { return (createElement(Popover, { elRef: rootElRef, title: title, extraClassNames: ['fc-more-popover'].concat(dayClassNames), extraAttrs: dataAttrs /* TODO: make these time-based when not whole-day? */, parentEl: props.parentEl, alignmentEl: props.alignmentEl, alignGridTop: props.alignGridTop, onClose: props.onClose },
9393
+ return (createElement(DayCellRoot, { date: startDate, dateProfile: dateProfile, todayRange: todayRange, elRef: this.handleRootEl }, function (rootElRef, dayClassNames, dataAttrs) { return (createElement(Popover, { elRef: rootElRef, id: props.id, title: title, extraClassNames: ['fc-more-popover'].concat(dayClassNames), extraAttrs: dataAttrs /* TODO: make these time-based when not whole-day? */, parentEl: props.parentEl, alignmentEl: props.alignmentEl, alignGridTop: props.alignGridTop, onClose: props.onClose },
9187
9394
  createElement(DayCellContent, { date: startDate, dateProfile: dateProfile, todayRange: todayRange }, function (innerElRef, innerContent) { return (innerContent &&
9188
9395
  createElement("div", { className: "fc-more-popover-misc", ref: innerElRef }, innerContent)); }),
9189
9396
  props.children)); }));
@@ -9220,6 +9427,7 @@ var MoreLinkRoot = /** @class */ (function (_super) {
9220
9427
  _this.linkElRef = createRef();
9221
9428
  _this.state = {
9222
9429
  isPopoverOpen: false,
9430
+ popoverId: getUniqueDomId(),
9223
9431
  };
9224
9432
  _this.handleClick = function (ev) {
9225
9433
  var _a = _this, props = _a.props, context = _a.context;
@@ -9259,23 +9467,25 @@ var MoreLinkRoot = /** @class */ (function (_super) {
9259
9467
  }
9260
9468
  MoreLinkRoot.prototype.render = function () {
9261
9469
  var _this = this;
9262
- var props = this.props;
9470
+ var _a = this, props = _a.props, state = _a.state;
9263
9471
  return (createElement(ViewContextType.Consumer, null, function (context) {
9264
9472
  var viewApi = context.viewApi, options = context.options, calendarApi = context.calendarApi;
9265
9473
  var moreLinkText = options.moreLinkText;
9266
9474
  var moreCnt = props.moreCnt;
9267
9475
  var range = computeRange(props);
9476
+ var text = typeof moreLinkText === 'function' // TODO: eventually use formatWithOrdinals
9477
+ ? moreLinkText.call(calendarApi, moreCnt)
9478
+ : "+" + moreCnt + " " + moreLinkText;
9479
+ var title = formatWithOrdinals(options.moreLinkHint, [moreCnt], text);
9268
9480
  var hookProps = {
9269
9481
  num: moreCnt,
9270
9482
  shortText: "+" + moreCnt,
9271
- text: typeof moreLinkText === 'function'
9272
- ? moreLinkText.call(calendarApi, moreCnt)
9273
- : "+" + moreCnt + " " + moreLinkText,
9483
+ text: text,
9274
9484
  view: viewApi,
9275
9485
  };
9276
9486
  return (createElement(Fragment, null,
9277
- Boolean(props.moreCnt) && (createElement(RenderHook, { elRef: _this.linkElRef, hookProps: hookProps, classNames: options.moreLinkClassNames, content: options.moreLinkContent, defaultContent: props.defaultContent || renderMoreLinkInner$1, didMount: options.moreLinkDidMount, willUnmount: options.moreLinkWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return props.children(rootElRef, ['fc-more-link'].concat(customClassNames), innerElRef, innerContent, _this.handleClick); })),
9278
- _this.state.isPopoverOpen && (createElement(MorePopover, { startDate: range.start, endDate: range.end, dateProfile: props.dateProfile, todayRange: props.todayRange, extraDateSpan: props.extraDateSpan, parentEl: _this.parentEl, alignmentEl: props.alignmentElRef.current, alignGridTop: props.alignGridTop, onClose: _this.handlePopoverClose }, props.popoverContent()))));
9487
+ Boolean(props.moreCnt) && (createElement(RenderHook, { elRef: _this.linkElRef, hookProps: hookProps, classNames: options.moreLinkClassNames, content: options.moreLinkContent, defaultContent: props.defaultContent || renderMoreLinkInner$1, didMount: options.moreLinkDidMount, willUnmount: options.moreLinkWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return props.children(rootElRef, ['fc-more-link'].concat(customClassNames), innerElRef, innerContent, _this.handleClick, title, state.isPopoverOpen, state.isPopoverOpen ? state.popoverId : ''); })),
9488
+ state.isPopoverOpen && (createElement(MorePopover, { id: state.popoverId, startDate: range.start, endDate: range.end, dateProfile: props.dateProfile, todayRange: props.todayRange, extraDateSpan: props.extraDateSpan, parentEl: _this.parentEl, alignmentEl: props.alignmentElRef.current, alignGridTop: props.alignGridTop, onClose: _this.handlePopoverClose }, props.popoverContent()))));
9279
9489
  }));
9280
9490
  };
9281
9491
  MoreLinkRoot.prototype.componentDidMount = function () {
@@ -9321,7 +9531,7 @@ function pickLatestEnd(seg0, seg1) {
9321
9531
  }
9322
9532
 
9323
9533
  /*!
9324
- FullCalendar v5.9.0
9534
+ FullCalendar v5.10.1
9325
9535
  Docs & License: https://fullcalendar.io/
9326
9536
  (c) 2021 Adam Shaw
9327
9537
  */
@@ -9440,7 +9650,7 @@ var Calendar = /** @class */ (function (_super) {
9440
9650
  }(CalendarApi));
9441
9651
 
9442
9652
  /*!
9443
- FullCalendar v5.9.0
9653
+ FullCalendar v5.10.1
9444
9654
  Docs & License: https://fullcalendar.io/
9445
9655
  (c) 2021 Adam Shaw
9446
9656
  */
@@ -9581,11 +9791,9 @@ var TableCellTop = /** @class */ (function (_super) {
9581
9791
  }
9582
9792
  TableCellTop.prototype.render = function () {
9583
9793
  var props = this.props;
9584
- var navLinkAttrs = this.context.options.navLinks
9585
- ? { 'data-navlink': buildNavLinkData(props.date), tabIndex: 0 }
9586
- : {};
9794
+ var navLinkAttrs = buildNavLinkAttrs(this.context, props.date);
9587
9795
  return (createElement(DayCellContent, { date: props.date, dateProfile: props.dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, extraHookProps: props.extraHookProps, defaultContent: renderTopInner }, function (innerElRef, innerContent) { return ((innerContent || props.forceDayTop) && (createElement("div", { className: "fc-daygrid-day-top", ref: innerElRef },
9588
- createElement("a", __assign({ className: "fc-daygrid-day-number" }, navLinkAttrs), innerContent || createElement(Fragment, null, "\u00A0"))))); }));
9796
+ createElement("a", __assign({ id: props.dayNumberId, className: "fc-daygrid-day-number" }, navLinkAttrs), innerContent || createElement(Fragment, null, "\u00A0"))))); }));
9589
9797
  };
9590
9798
  return TableCellTop;
9591
9799
  }(BaseComponent));
@@ -9631,7 +9839,7 @@ var TableListItemEvent = /** @class */ (function (_super) {
9631
9839
  var timeFormat = context.options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;
9632
9840
  var timeText = buildSegTimeText(props.seg, timeFormat, context, true, props.defaultDisplayEventEnd);
9633
9841
  return (createElement(EventRoot, { seg: props.seg, timeText: timeText, defaultContent: renderInnerContent$2, isDragging: props.isDragging, isResizing: false, isDateSelecting: false, isSelected: props.isSelected, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday }, function (rootElRef, classNames, innerElRef, innerContent) { return ( // we don't use styles!
9634
- createElement("a", __assign({ className: ['fc-daygrid-event', 'fc-daygrid-dot-event'].concat(classNames).join(' '), ref: rootElRef }, getSegAnchorAttrs(props.seg)), innerContent)); }));
9842
+ createElement("a", __assign({ className: ['fc-daygrid-event', 'fc-daygrid-dot-event'].concat(classNames).join(' '), ref: rootElRef }, getSegAnchorAttrs(props.seg, context)), innerContent)); }));
9635
9843
  };
9636
9844
  return TableListItemEvent;
9637
9845
  }(BaseComponent));
@@ -9641,10 +9849,6 @@ function renderInnerContent$2(innerProps) {
9641
9849
  innerProps.timeText && (createElement("div", { className: "fc-event-time" }, innerProps.timeText)),
9642
9850
  createElement("div", { className: "fc-event-title" }, innerProps.event.title || createElement(Fragment, null, "\u00A0"))));
9643
9851
  }
9644
- function getSegAnchorAttrs(seg) {
9645
- var url = seg.eventRange.def.url;
9646
- return url ? { href: url } : {};
9647
- }
9648
9852
 
9649
9853
  var TableCellMoreLink = /** @class */ (function (_super) {
9650
9854
  __extends(TableCellMoreLink, _super);
@@ -9666,7 +9870,7 @@ var TableCellMoreLink = /** @class */ (function (_super) {
9666
9870
  visibility: isForcedInvisible[instanceId] ? 'hidden' : '',
9667
9871
  } }, hasListItemDisplay(seg) ? (createElement(TableListItemEvent, __assign({ seg: seg, isDragging: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange)))) : (createElement(TableBlockEvent, __assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange))))));
9668
9872
  })));
9669
- } }, function (rootElRef, classNames, innerElRef, innerContent, handleClick) { return (createElement("a", { ref: rootElRef, className: ['fc-daygrid-more-link'].concat(classNames).join(' '), onClick: handleClick }, innerContent)); }));
9873
+ } }, function (rootElRef, classNames, innerElRef, innerContent, handleClick, title, isExpanded, popoverId) { return (createElement("a", __assign({ ref: rootElRef, className: ['fc-daygrid-more-link'].concat(classNames).join(' '), title: title, "aria-expanded": isExpanded, "aria-controls": popoverId }, createAriaClickAttrs(handleClick)), innerContent)); }));
9670
9874
  };
9671
9875
  return TableCellMoreLink;
9672
9876
  }(BaseComponent));
@@ -9689,6 +9893,9 @@ var TableCell = /** @class */ (function (_super) {
9689
9893
  function TableCell() {
9690
9894
  var _this = _super !== null && _super.apply(this, arguments) || this;
9691
9895
  _this.rootElRef = createRef();
9896
+ _this.state = {
9897
+ dayNumberId: getUniqueDomId(),
9898
+ };
9692
9899
  _this.handleRootEl = function (el) {
9693
9900
  setRef(_this.rootElRef, el);
9694
9901
  setRef(_this.props.elRef, el);
@@ -9696,16 +9903,13 @@ var TableCell = /** @class */ (function (_super) {
9696
9903
  return _this;
9697
9904
  }
9698
9905
  TableCell.prototype.render = function () {
9699
- var _a = this, props = _a.props, context = _a.context, rootElRef = _a.rootElRef;
9700
- var options = context.options;
9906
+ var _a = this, context = _a.context, props = _a.props, state = _a.state, rootElRef = _a.rootElRef;
9701
9907
  var date = props.date, dateProfile = props.dateProfile;
9702
- var navLinkAttrs = options.navLinks
9703
- ? { 'data-navlink': buildNavLinkData(date, 'week'), tabIndex: 0 }
9704
- : {};
9705
- return (createElement(DayCellRoot, { date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, extraHookProps: props.extraHookProps, elRef: this.handleRootEl }, function (dayElRef, dayClassNames, rootDataAttrs, isDisabled) { return (createElement("td", __assign({ ref: dayElRef, className: ['fc-daygrid-day'].concat(dayClassNames, props.extraClassNames || []).join(' ') }, rootDataAttrs, props.extraDataAttrs),
9908
+ var navLinkAttrs = buildNavLinkAttrs(context, date, 'week');
9909
+ return (createElement(DayCellRoot, { date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, extraHookProps: props.extraHookProps, elRef: this.handleRootEl }, function (dayElRef, dayClassNames, rootDataAttrs, isDisabled) { return (createElement("td", __assign({ ref: dayElRef, role: "gridcell", className: ['fc-daygrid-day'].concat(dayClassNames, props.extraClassNames || []).join(' ') }, rootDataAttrs, props.extraDataAttrs, (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})),
9706
9910
  createElement("div", { className: "fc-daygrid-day-frame fc-scrollgrid-sync-inner", ref: props.innerElRef /* different from hook system! RENAME */ },
9707
9911
  props.showWeekNumber && (createElement(WeekNumberRoot, { date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT$1 }, function (weekElRef, weekClassNames, innerElRef, innerContent) { return (createElement("a", __assign({ ref: weekElRef, className: ['fc-daygrid-week-number'].concat(weekClassNames).join(' ') }, navLinkAttrs), innerContent)); })),
9708
- !isDisabled && (createElement(TableCellTop, { date: date, dateProfile: dateProfile, showDayNumber: props.showDayNumber, forceDayTop: props.forceDayTop, todayRange: props.todayRange, extraHookProps: props.extraHookProps })),
9912
+ !isDisabled && (createElement(TableCellTop, { date: date, dateProfile: dateProfile, showDayNumber: props.showDayNumber, dayNumberId: state.dayNumberId, forceDayTop: props.forceDayTop, todayRange: props.todayRange, extraHookProps: props.extraHookProps })),
9709
9913
  createElement("div", { className: "fc-daygrid-day-events", ref: props.fgContentElRef },
9710
9914
  props.fgContent,
9711
9915
  createElement("div", { className: "fc-daygrid-day-bottom", style: { marginTop: props.moreMarginTop } },
@@ -9979,7 +10183,7 @@ var TableRow = /** @class */ (function (_super) {
9979
10183
  (props.eventDrag && props.eventDrag.affectedInstances) ||
9980
10184
  (props.eventResize && props.eventResize.affectedInstances) ||
9981
10185
  {};
9982
- return (createElement("tr", { ref: this.rootElRef },
10186
+ return (createElement("tr", { ref: this.rootElRef, role: "row" },
9983
10187
  props.renderIntro && props.renderIntro(),
9984
10188
  props.cells.map(function (cell, col) {
9985
10189
  var normalFgNodes = _this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);
@@ -10097,9 +10301,14 @@ var TableRow = /** @class */ (function (_super) {
10097
10301
  });
10098
10302
  }
10099
10303
  }
10304
+ var oldInstanceHeights = this.state.eventInstanceHeights;
10305
+ var newInstanceHeights = this.queryEventInstanceHeights();
10100
10306
  var limitByContentHeight = props.dayMaxEvents === true || props.dayMaxEventRows === true;
10101
10307
  this.setState({
10102
- eventInstanceHeights: this.queryEventInstanceHeights(),
10308
+ // HACK to prevent oscillations of events being shown/hidden from max-event-rows
10309
+ // Essentially, once you compute an element's height, never null-out.
10310
+ // TODO: always display all events, as visibility:hidden?
10311
+ eventInstanceHeights: __assign(__assign({}, oldInstanceHeights), newInstanceHeights),
10103
10312
  maxContentHeight: limitByContentHeight ? this.computeMaxContentHeight() : null,
10104
10313
  });
10105
10314
  }
@@ -10211,13 +10420,13 @@ var Table = /** @class */ (function (_super) {
10211
10420
  minWidth: props.tableMinWidth,
10212
10421
  } },
10213
10422
  createElement(NowTimer, { unit: "day" }, function (nowDate, todayRange) { return (createElement(Fragment, null,
10214
- createElement("table", { className: "fc-scrollgrid-sync-table", style: {
10423
+ createElement("table", { role: "presentation", className: "fc-scrollgrid-sync-table", style: {
10215
10424
  width: props.clientWidth,
10216
10425
  minWidth: props.tableMinWidth,
10217
10426
  height: expandRows ? props.clientHeight : '',
10218
10427
  } },
10219
10428
  props.colGroupNode,
10220
- createElement("tbody", null, props.cells.map(function (cells, row) { return (createElement(TableRow, { ref: _this.rowRefs.createRef(row), key: cells.length
10429
+ createElement("tbody", { role: "presentation" }, props.cells.map(function (cells, row) { return (createElement(TableRow, { ref: _this.rowRefs.createRef(row), key: cells.length
10221
10430
  ? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */
10222
10431
  : row // in case there are no cells (like when resource view is loading)
10223
10432
  , showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })); }))))); })));
@@ -10379,7 +10588,7 @@ var main$3 = createPlugin({
10379
10588
  });
10380
10589
 
10381
10590
  /*!
10382
- FullCalendar v5.9.0
10591
+ FullCalendar v5.10.1
10383
10592
  Docs & License: https://fullcalendar.io/
10384
10593
  (c) 2021 Adam Shaw
10385
10594
  */
@@ -12280,7 +12489,7 @@ var main$2 = createPlugin({
12280
12489
  });
12281
12490
 
12282
12491
  /*!
12283
- FullCalendar v5.9.0
12492
+ FullCalendar v5.10.1
12284
12493
  Docs & License: https://fullcalendar.io/
12285
12494
  (c) 2021 Adam Shaw
12286
12495
  */
@@ -12288,37 +12497,36 @@ Docs & License: https://fullcalendar.io/
12288
12497
  var ListViewHeaderRow = /** @class */ (function (_super) {
12289
12498
  __extends(ListViewHeaderRow, _super);
12290
12499
  function ListViewHeaderRow() {
12291
- return _super !== null && _super.apply(this, arguments) || this;
12500
+ var _this = _super !== null && _super.apply(this, arguments) || this;
12501
+ _this.state = {
12502
+ textId: getUniqueDomId(),
12503
+ };
12504
+ return _this;
12292
12505
  }
12293
12506
  ListViewHeaderRow.prototype.render = function () {
12294
- var _a = this.props, dayDate = _a.dayDate, todayRange = _a.todayRange;
12295
- var _b = this.context, theme = _b.theme, dateEnv = _b.dateEnv, options = _b.options, viewApi = _b.viewApi;
12507
+ var _a = this.context, theme = _a.theme, dateEnv = _a.dateEnv, options = _a.options, viewApi = _a.viewApi;
12508
+ var _b = this.props, cellId = _b.cellId, dayDate = _b.dayDate, todayRange = _b.todayRange;
12509
+ var textId = this.state.textId;
12296
12510
  var dayMeta = getDateMeta(dayDate, todayRange);
12297
12511
  // will ever be falsy?
12298
12512
  var text = options.listDayFormat ? dateEnv.format(dayDate, options.listDayFormat) : '';
12299
12513
  // will ever be falsy? also, BAD NAME "alt"
12300
12514
  var sideText = options.listDaySideFormat ? dateEnv.format(dayDate, options.listDaySideFormat) : '';
12301
- var navLinkData = options.navLinks
12302
- ? buildNavLinkData(dayDate)
12303
- : null;
12304
- var hookProps = __assign({ date: dateEnv.toDate(dayDate), view: viewApi, text: text,
12305
- sideText: sideText,
12306
- navLinkData: navLinkData }, dayMeta);
12515
+ var hookProps = __assign({ date: dateEnv.toDate(dayDate), view: viewApi, textId: textId,
12516
+ text: text,
12517
+ sideText: sideText, navLinkAttrs: buildNavLinkAttrs(this.context, dayDate), sideNavLinkAttrs: buildNavLinkAttrs(this.context, dayDate, 'day', false) }, dayMeta);
12307
12518
  var classNames = ['fc-list-day'].concat(getDayClassNames(dayMeta, theme));
12308
12519
  // TODO: make a reusable HOC for dayHeader (used in daygrid/timegrid too)
12309
12520
  return (createElement(RenderHook, { hookProps: hookProps, classNames: options.dayHeaderClassNames, content: options.dayHeaderContent, defaultContent: renderInnerContent$1, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return (createElement("tr", { ref: rootElRef, className: classNames.concat(customClassNames).join(' '), "data-date": formatDayString(dayDate) },
12310
- createElement("th", { colSpan: 3 },
12521
+ createElement("th", { scope: "colgroup", colSpan: 3, id: cellId, "aria-labelledby": textId },
12311
12522
  createElement("div", { className: 'fc-list-day-cushion ' + theme.getClass('tableCellShaded'), ref: innerElRef }, innerContent)))); }));
12312
12523
  };
12313
12524
  return ListViewHeaderRow;
12314
12525
  }(BaseComponent));
12315
12526
  function renderInnerContent$1(props) {
12316
- var navLinkAttrs = props.navLinkData // is there a type for this?
12317
- ? { 'data-navlink': props.navLinkData, tabIndex: 0 }
12318
- : {};
12319
12527
  return (createElement(Fragment, null,
12320
- props.text && (createElement("a", __assign({ className: "fc-list-day-text" }, navLinkAttrs), props.text)),
12321
- props.sideText && (createElement("a", __assign({ className: "fc-list-day-side-text" }, navLinkAttrs), props.sideText))));
12528
+ props.text && (createElement("a", __assign({ id: props.textId, className: "fc-list-day-text" }, props.navLinkAttrs), props.text)),
12529
+ props.sideText && ( /* not keyboard tabbable */createElement("a", __assign({ "aria-hidden": true, className: "fc-list-day-side-text" }, props.sideNavLinkAttrs), props.sideText))));
12322
12530
  }
12323
12531
 
12324
12532
  var DEFAULT_TIME_FORMAT$1 = createFormatter({
@@ -12333,24 +12541,22 @@ var ListViewEventRow = /** @class */ (function (_super) {
12333
12541
  }
12334
12542
  ListViewEventRow.prototype.render = function () {
12335
12543
  var _a = this, props = _a.props, context = _a.context;
12336
- var seg = props.seg;
12544
+ var seg = props.seg, timeHeaderId = props.timeHeaderId, eventHeaderId = props.eventHeaderId, dateHeaderId = props.dateHeaderId;
12337
12545
  var timeFormat = context.options.eventTimeFormat || DEFAULT_TIME_FORMAT$1;
12338
12546
  return (createElement(EventRoot, { seg: seg, timeText: "" // BAD. because of all-day content
12339
- , disableDragging: true, disableResizing: true, defaultContent: renderEventInnerContent, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday, isSelected: props.isSelected, isDragging: props.isDragging, isResizing: props.isResizing, isDateSelecting: props.isDateSelecting }, function (rootElRef, classNames, innerElRef, innerContent, hookProps) { return (createElement("tr", { className: ['fc-list-event', hookProps.event.url ? 'fc-event-forced-url' : ''].concat(classNames).join(' '), ref: rootElRef },
12340
- buildTimeContent(seg, timeFormat, context),
12341
- createElement("td", { className: "fc-list-event-graphic" },
12547
+ , disableDragging: true, disableResizing: true, defaultContent: function () { return renderEventInnerContent(seg, context); } /* weird */, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday, isSelected: props.isSelected, isDragging: props.isDragging, isResizing: props.isResizing, isDateSelecting: props.isDateSelecting }, function (rootElRef, classNames, innerElRef, innerContent, hookProps) { return (createElement("tr", { className: ['fc-list-event', hookProps.event.url ? 'fc-event-forced-url' : ''].concat(classNames).join(' '), ref: rootElRef },
12548
+ buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId),
12549
+ createElement("td", { "aria-hidden": true, className: "fc-list-event-graphic" },
12342
12550
  createElement("span", { className: "fc-list-event-dot", style: { borderColor: hookProps.borderColor || hookProps.backgroundColor } })),
12343
- createElement("td", { className: "fc-list-event-title", ref: innerElRef }, innerContent))); }));
12551
+ createElement("td", { ref: innerElRef, headers: eventHeaderId + " " + dateHeaderId, className: "fc-list-event-title" }, innerContent))); }));
12344
12552
  };
12345
12553
  return ListViewEventRow;
12346
12554
  }(BaseComponent));
12347
- function renderEventInnerContent(props) {
12348
- var event = props.event;
12349
- var url = event.url;
12350
- var anchorAttrs = url ? { href: url } : {};
12351
- return (createElement("a", __assign({}, anchorAttrs), event.title));
12555
+ function renderEventInnerContent(seg, context) {
12556
+ var interactiveAttrs = getSegAnchorAttrs(seg, context);
12557
+ return (createElement("a", __assign({}, interactiveAttrs), seg.eventRange.def.title));
12352
12558
  }
12353
- function buildTimeContent(seg, timeFormat, context) {
12559
+ function buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId) {
12354
12560
  var options = context.options;
12355
12561
  if (options.displayEventTime !== false) {
12356
12562
  var eventDef = seg.eventRange.def;
@@ -12379,7 +12585,7 @@ function buildTimeContent(seg, timeFormat, context) {
12379
12585
  text: context.options.allDayText,
12380
12586
  view: context.viewApi,
12381
12587
  };
12382
- return (createElement(RenderHook, { hookProps: hookProps, classNames: options.allDayClassNames, content: options.allDayContent, defaultContent: renderAllDayInner$1, didMount: options.allDayDidMount, willUnmount: options.allDayWillUnmount }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement("td", { className: ['fc-list-event-time'].concat(classNames).join(' '), ref: rootElRef }, innerContent)); }));
12588
+ return (createElement(RenderHook, { hookProps: hookProps, classNames: options.allDayClassNames, content: options.allDayContent, defaultContent: renderAllDayInner$1, didMount: options.allDayDidMount, willUnmount: options.allDayWillUnmount }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement("td", { ref: rootElRef, headers: timeHeaderId + " " + dateHeaderId, className: ['fc-list-event-time'].concat(classNames).join(' ') }, innerContent)); }));
12383
12589
  }
12384
12590
  return (createElement("td", { className: "fc-list-event-time" }, timeText));
12385
12591
  }
@@ -12398,6 +12604,11 @@ var ListView = /** @class */ (function (_super) {
12398
12604
  var _this = _super !== null && _super.apply(this, arguments) || this;
12399
12605
  _this.computeDateVars = memoize(computeDateVars);
12400
12606
  _this.eventStoreToSegs = memoize(_this._eventStoreToSegs);
12607
+ _this.state = {
12608
+ timeHeaderId: getUniqueDomId(),
12609
+ eventHeaderId: getUniqueDomId(),
12610
+ dateHeaderIdRoot: getUniqueDomId(),
12611
+ };
12401
12612
  _this.setRootEl = function (rootEl) {
12402
12613
  if (rootEl) {
12403
12614
  _this.context.registerInteractiveComponent(_this, {
@@ -12436,23 +12647,30 @@ var ListView = /** @class */ (function (_super) {
12436
12647
  };
12437
12648
  ListView.prototype.renderSegList = function (allSegs, dayDates) {
12438
12649
  var _a = this.context, theme = _a.theme, options = _a.options;
12650
+ var _b = this.state, timeHeaderId = _b.timeHeaderId, eventHeaderId = _b.eventHeaderId, dateHeaderIdRoot = _b.dateHeaderIdRoot;
12439
12651
  var segsByDay = groupSegsByDay(allSegs); // sparse array
12440
12652
  return (createElement(NowTimer, { unit: "day" }, function (nowDate, todayRange) {
12441
12653
  var innerNodes = [];
12442
12654
  for (var dayIndex = 0; dayIndex < segsByDay.length; dayIndex += 1) {
12443
12655
  var daySegs = segsByDay[dayIndex];
12444
12656
  if (daySegs) { // sparse array, so might be undefined
12445
- var dayStr = dayDates[dayIndex].toISOString();
12657
+ var dayStr = formatDayString(dayDates[dayIndex]);
12658
+ var dateHeaderId = dateHeaderIdRoot + '-' + dayStr;
12446
12659
  // append a day header
12447
- innerNodes.push(createElement(ListViewHeaderRow, { key: dayStr, dayDate: dayDates[dayIndex], todayRange: todayRange }));
12660
+ innerNodes.push(createElement(ListViewHeaderRow, { key: dayStr, cellId: dateHeaderId, dayDate: dayDates[dayIndex], todayRange: todayRange }));
12448
12661
  daySegs = sortEventSegs(daySegs, options.eventOrder);
12449
12662
  for (var _i = 0, daySegs_1 = daySegs; _i < daySegs_1.length; _i++) {
12450
12663
  var seg = daySegs_1[_i];
12451
- innerNodes.push(createElement(ListViewEventRow, __assign({ key: dayStr + ':' + seg.eventRange.instance.instanceId /* are multiple segs for an instanceId */, seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false }, getSegMeta(seg, todayRange, nowDate))));
12664
+ innerNodes.push(createElement(ListViewEventRow, __assign({ key: dayStr + ':' + seg.eventRange.instance.instanceId /* are multiple segs for an instanceId */, seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false, timeHeaderId: timeHeaderId, eventHeaderId: eventHeaderId, dateHeaderId: dateHeaderId }, getSegMeta(seg, todayRange, nowDate))));
12452
12665
  }
12453
12666
  }
12454
12667
  }
12455
12668
  return (createElement("table", { className: 'fc-list-table ' + theme.getClass('table') },
12669
+ createElement("thead", null,
12670
+ createElement("tr", null,
12671
+ createElement("th", { scope: "col", id: timeHeaderId }, options.timeHint),
12672
+ createElement("th", { scope: "col", "aria-hidden": true }),
12673
+ createElement("th", { scope: "col", id: eventHeaderId }, options.eventHint))),
12456
12674
  createElement("tbody", null, innerNodes)));
12457
12675
  }));
12458
12676
  };
@@ -12582,7 +12800,7 @@ var main$1 = createPlugin({
12582
12800
  });
12583
12801
 
12584
12802
  /*!
12585
- FullCalendar v5.9.0
12803
+ FullCalendar v5.10.1
12586
12804
  Docs & License: https://fullcalendar.io/
12587
12805
  (c) 2021 Adam Shaw
12588
12806
  */
@@ -12692,18 +12910,18 @@ var TimeColsView = /** @class */ (function (_super) {
12692
12910
  var dateProfile = _this.props.dateProfile;
12693
12911
  var range = dateProfile.renderRange;
12694
12912
  var dayCnt = diffDays(range.start, range.end);
12695
- var navLinkAttrs = (options.navLinks && dayCnt === 1) // only do in day views (to avoid doing in week views that dont need it)
12696
- ? { 'data-navlink': buildNavLinkData(range.start, 'week'), tabIndex: 0 }
12913
+ var navLinkAttrs = (dayCnt === 1) // only do in day views (to avoid doing in week views that dont need it)
12914
+ ? buildNavLinkAttrs(_this.context, range.start, 'week')
12697
12915
  : {};
12698
12916
  if (options.weekNumbers && rowKey === 'day') {
12699
- return (createElement(WeekNumberRoot, { date: range.start, defaultFormat: DEFAULT_WEEK_NUM_FORMAT }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement("th", { ref: rootElRef, className: [
12917
+ return (createElement(WeekNumberRoot, { date: range.start, defaultFormat: DEFAULT_WEEK_NUM_FORMAT }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement("th", { ref: rootElRef, "aria-hidden": true, className: [
12700
12918
  'fc-timegrid-axis',
12701
12919
  'fc-scrollgrid-shrink',
12702
12920
  ].concat(classNames).join(' ') },
12703
12921
  createElement("div", { className: "fc-timegrid-axis-frame fc-scrollgrid-shrink-frame fc-timegrid-axis-frame-liquid", style: { height: frameHeight } },
12704
12922
  createElement("a", __assign({ ref: innerElRef, className: "fc-timegrid-axis-cushion fc-scrollgrid-shrink-cushion fc-scrollgrid-sync-inner" }, navLinkAttrs), innerContent)))); }));
12705
12923
  }
12706
- return (createElement("th", { className: "fc-timegrid-axis" },
12924
+ return (createElement("th", { "aria-hidden": true, className: "fc-timegrid-axis" },
12707
12925
  createElement("div", { className: "fc-timegrid-axis-frame", style: { height: frameHeight } })));
12708
12926
  };
12709
12927
  /* Table Component Render Methods
@@ -12718,7 +12936,7 @@ var TimeColsView = /** @class */ (function (_super) {
12718
12936
  };
12719
12937
  return (
12720
12938
  // TODO: make reusable hook. used in list view too
12721
- createElement(RenderHook, { hookProps: hookProps, classNames: options.allDayClassNames, content: options.allDayContent, defaultContent: renderAllDayInner, didMount: options.allDayDidMount, willUnmount: options.allDayWillUnmount }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement("td", { ref: rootElRef, className: [
12939
+ createElement(RenderHook, { hookProps: hookProps, classNames: options.allDayClassNames, content: options.allDayContent, defaultContent: renderAllDayInner, didMount: options.allDayDidMount, willUnmount: options.allDayWillUnmount }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement("td", { ref: rootElRef, "aria-hidden": true, className: [
12722
12940
  'fc-timegrid-axis',
12723
12941
  'fc-scrollgrid-shrink',
12724
12942
  ].concat(classNames).join(' ') },
@@ -12758,7 +12976,7 @@ var TimeColsView = /** @class */ (function (_super) {
12758
12976
  type: 'body',
12759
12977
  key: 'all-day-divider',
12760
12978
  outerContent: ( // TODO: rename to cellContent so don't need to define <tr>?
12761
- createElement("tr", { className: "fc-scrollgrid-section" },
12979
+ createElement("tr", { role: "presentation", className: "fc-scrollgrid-section" },
12762
12980
  createElement("td", { className: 'fc-timegrid-divider ' + context.theme.getClass('tableCellShaded') }))),
12763
12981
  });
12764
12982
  }
@@ -12794,7 +13012,7 @@ var TimeColsView = /** @class */ (function (_super) {
12794
13012
  chunks: [
12795
13013
  {
12796
13014
  key: 'axis',
12797
- rowContent: function (arg) { return (createElement("tr", null, _this.renderHeadAxis('day', arg.rowSyncHeights[0]))); },
13015
+ rowContent: function (arg) { return (createElement("tr", { role: "presentation" }, _this.renderHeadAxis('day', arg.rowSyncHeights[0]))); },
12798
13016
  },
12799
13017
  {
12800
13018
  key: 'cols',
@@ -12813,7 +13031,7 @@ var TimeColsView = /** @class */ (function (_super) {
12813
13031
  chunks: [
12814
13032
  {
12815
13033
  key: 'axis',
12816
- rowContent: function (contentArg) { return (createElement("tr", null, _this.renderTableRowAxis(contentArg.rowSyncHeights[0]))); },
13034
+ rowContent: function (contentArg) { return (createElement("tr", { role: "presentation" }, _this.renderTableRowAxis(contentArg.rowSyncHeights[0]))); },
12817
13035
  },
12818
13036
  {
12819
13037
  key: 'cols',
@@ -12825,7 +13043,7 @@ var TimeColsView = /** @class */ (function (_super) {
12825
13043
  key: 'all-day-divider',
12826
13044
  type: 'body',
12827
13045
  outerContent: ( // TODO: rename to cellContent so don't need to define <tr>?
12828
- createElement("tr", { className: "fc-scrollgrid-section" },
13046
+ createElement("tr", { role: "presentation", className: "fc-scrollgrid-section" },
12829
13047
  createElement("td", { colSpan: 2, className: 'fc-timegrid-divider ' + context.theme.getClass('tableCellShaded') }))),
12830
13048
  });
12831
13049
  }
@@ -12841,7 +13059,7 @@ var TimeColsView = /** @class */ (function (_super) {
12841
13059
  content: function (arg) { return (
12842
13060
  // TODO: make this now-indicator arrow more DRY with TimeColsContent
12843
13061
  createElement("div", { className: "fc-timegrid-axis-chunk" },
12844
- createElement("table", { style: { height: arg.expandRows ? arg.clientHeight : '' } },
13062
+ createElement("table", { "aria-hidden": true, style: { height: arg.expandRows ? arg.clientHeight : '' } },
12845
13063
  arg.tableColGroupNode,
12846
13064
  createElement("tbody", null,
12847
13065
  createElement(TimeBodyAxis, { slatMetas: slatMetas }))),
@@ -12997,8 +13215,8 @@ var TimeColsSlats = /** @class */ (function (_super) {
12997
13215
  }
12998
13216
  TimeColsSlats.prototype.render = function () {
12999
13217
  var _a = this, props = _a.props, context = _a.context;
13000
- return (createElement("div", { className: "fc-timegrid-slots", ref: this.rootElRef },
13001
- createElement("table", { className: context.theme.getClass('table'), style: {
13218
+ return (createElement("div", { ref: this.rootElRef, className: "fc-timegrid-slots" },
13219
+ createElement("table", { "aria-hidden": true, className: context.theme.getClass('table'), style: {
13002
13220
  minWidth: props.tableMinWidth,
13003
13221
  width: props.clientWidth,
13004
13222
  height: props.minHeight,
@@ -13080,10 +13298,10 @@ var TimeColMoreLink = /** @class */ (function (_super) {
13080
13298
  TimeColMoreLink.prototype.render = function () {
13081
13299
  var _this = this;
13082
13300
  var props = this.props;
13083
- return (createElement(MoreLinkRoot, { allDayDate: null, moreCnt: props.hiddenSegs.length, allSegs: props.hiddenSegs, hiddenSegs: props.hiddenSegs, alignmentElRef: this.rootElRef, defaultContent: renderMoreLinkInner, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, todayRange: props.todayRange, popoverContent: function () { return renderPlainFgSegs(props.hiddenSegs, props); } }, function (rootElRef, classNames, innerElRef, innerContent, handleClick) { return (createElement("a", { ref: function (el) {
13301
+ return (createElement(MoreLinkRoot, { allDayDate: null, moreCnt: props.hiddenSegs.length, allSegs: props.hiddenSegs, hiddenSegs: props.hiddenSegs, alignmentElRef: this.rootElRef, defaultContent: renderMoreLinkInner, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, todayRange: props.todayRange, popoverContent: function () { return renderPlainFgSegs(props.hiddenSegs, props); } }, function (rootElRef, classNames, innerElRef, innerContent, handleClick, title, isExpanded, popoverId) { return (createElement("a", { ref: function (el) {
13084
13302
  setRef(rootElRef, el);
13085
13303
  setRef(_this.rootElRef, el);
13086
- }, className: ['fc-timegrid-more-link'].concat(classNames).join(' '), style: { top: props.top, bottom: props.bottom }, onClick: handleClick },
13304
+ }, className: ['fc-timegrid-more-link'].concat(classNames).join(' '), style: { top: props.top, bottom: props.bottom }, onClick: handleClick, title: title, "aria-expanded": isExpanded, "aria-controls": popoverId },
13087
13305
  createElement("div", { ref: innerElRef, className: "fc-timegrid-more-link-inner fc-sticky" }, innerContent))); }));
13088
13306
  };
13089
13307
  return TimeColMoreLink;
@@ -13344,7 +13562,7 @@ var TimeCol = /** @class */ (function (_super) {
13344
13562
  (props.eventResize && props.eventResize.affectedInstances) ||
13345
13563
  {};
13346
13564
  var sortedFgSegs = this.sortEventSegs(props.fgEventSegs, context.options.eventOrder);
13347
- return (createElement(DayCellRoot, { elRef: props.elRef, date: props.date, dateProfile: props.dateProfile, todayRange: props.todayRange, extraHookProps: props.extraHookProps }, function (rootElRef, classNames, dataAttrs) { return (createElement("td", __assign({ ref: rootElRef, className: ['fc-timegrid-col'].concat(classNames, props.extraClassNames || []).join(' ') }, dataAttrs, props.extraDataAttrs),
13565
+ return (createElement(DayCellRoot, { elRef: props.elRef, date: props.date, dateProfile: props.dateProfile, todayRange: props.todayRange, extraHookProps: props.extraHookProps }, function (rootElRef, classNames, dataAttrs) { return (createElement("td", __assign({ ref: rootElRef, role: "gridcell", className: ['fc-timegrid-col'].concat(classNames, props.extraClassNames || []).join(' ') }, dataAttrs, props.extraDataAttrs),
13348
13566
  createElement("div", { className: "fc-timegrid-col-frame" },
13349
13567
  createElement("div", { className: "fc-timegrid-col-bg" },
13350
13568
  _this.renderFillSegs(props.businessHourSegs, 'non-business'),
@@ -13500,14 +13718,14 @@ var TimeColsContent = /** @class */ (function (_super) {
13500
13718
  var eventDragByRow = this.splitEventDrag(props.eventDrag, colCnt);
13501
13719
  var eventResizeByRow = this.splitEventResize(props.eventResize, colCnt);
13502
13720
  return (createElement("div", { className: "fc-timegrid-cols", ref: this.rootElRef },
13503
- createElement("table", { style: {
13721
+ createElement("table", { role: "presentation", style: {
13504
13722
  minWidth: props.tableMinWidth,
13505
13723
  width: props.clientWidth,
13506
13724
  } },
13507
13725
  props.tableColGroupNode,
13508
- createElement("tbody", null,
13509
- createElement("tr", null,
13510
- props.axis && (createElement("td", { className: "fc-timegrid-col fc-timegrid-axis" },
13726
+ createElement("tbody", { role: "presentation" },
13727
+ createElement("tr", { role: "row" },
13728
+ props.axis && (createElement("td", { "aria-hidden": true, className: "fc-timegrid-col fc-timegrid-axis" },
13511
13729
  createElement("div", { className: "fc-timegrid-col-frame" },
13512
13730
  createElement("div", { className: "fc-timegrid-now-indicator-container" }, typeof nowIndicatorTop === 'number' && (createElement(NowIndicatorRoot, { isAxis: true, date: props.nowDate }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement("div", { ref: rootElRef, className: ['fc-timegrid-now-indicator-arrow'].concat(classNames).join(' '), style: { top: nowIndicatorTop } }, innerContent)); })))))),
13513
13731
  props.cells.map(function (cell, i) { return (createElement(TimeCol, { key: cell.key, elRef: _this.cellElRefs.createRef(cell.key), dateProfile: props.dateProfile, date: cell.date, nowDate: props.nowDate, todayRange: props.todayRange, extraHookProps: cell.extraHookProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, fgEventSegs: fgEventSegsByRow[i], bgEventSegs: bgEventSegsByRow[i], businessHourSegs: businessHourSegsByRow[i], nowIndicatorSegs: nowIndicatorSegsByRow[i], dateSelectionSegs: dateSelectionSegsByRow[i], eventDrag: eventDragByRow[i], eventResize: eventResizeByRow[i], slatCoords: props.slatCoords, eventSelection: props.eventSelection, forPrint: props.forPrint })); }))))));
@@ -13820,6 +14038,16 @@ var enGb = {
13820
14038
  dow: 1, // Monday is the first day of the week.
13821
14039
  doy: 4, // The week that contains Jan 4th is the first week of the year.
13822
14040
  },
14041
+ buttonHints: {
14042
+ prev: 'Previous $0',
14043
+ next: 'Next $0',
14044
+ today: 'This $0',
14045
+ },
14046
+ viewHint: '$0 view',
14047
+ navLinkHint: 'Go to $0',
14048
+ moreLinkHint(eventCnt) {
14049
+ return `Show ${eventCnt} more event${eventCnt === 1 ? '' : 's'}`
14050
+ },
13823
14051
  };
13824
14052
 
13825
14053
  exports.default = enGb;
@@ -13846,10 +14074,29 @@ var es = {
13846
14074
  day: 'Día',
13847
14075
  list: 'Agenda',
13848
14076
  },
14077
+ buttonHints: {
14078
+ prev: '$0 antes',
14079
+ next: '$0 siguiente',
14080
+ today(buttonText) {
14081
+ return (buttonText === 'Día') ? 'Hoy' :
14082
+ ((buttonText === 'Semana') ? 'Esta' : 'Este') + ' ' + buttonText.toLocaleLowerCase()
14083
+ },
14084
+ },
14085
+ viewHint(buttonText) {
14086
+ return 'Vista ' + (buttonText === 'Semana' ? 'de la' : 'del') + ' ' + buttonText.toLocaleLowerCase()
14087
+ },
13849
14088
  weekText: 'Sm',
14089
+ weekTextLong: 'Semana',
13850
14090
  allDayText: 'Todo el día',
13851
14091
  moreLinkText: 'más',
14092
+ moreLinkHint(eventCnt) {
14093
+ return `Mostrar ${eventCnt} eventos más`
14094
+ },
13852
14095
  noEventsText: 'No hay eventos para mostrar',
14096
+ navLinkHint: 'Ir al $0',
14097
+ closeHint: 'Cerrar',
14098
+ timeHint: 'La hora',
14099
+ eventHint: 'Evento',
13853
14100
  };
13854
14101
 
13855
14102
  exports.default = es;
@@ -14021,17 +14268,10 @@ const zhLocale = /*@__PURE__*/getDefaultExportFromCjs(zhCn_1);
14021
14268
  */
14022
14269
  var KupCalendarProps;
14023
14270
  (function (KupCalendarProps) {
14271
+ KupCalendarProps["currentDate"] = "Sets the date of the calendar. Must be in ISO format (YYYY-MM-DD).";
14024
14272
  KupCalendarProps["customStyle"] = "Custom style of the component.";
14025
14273
  KupCalendarProps["data"] = " Actual data of the calendar.";
14026
- KupCalendarProps["dateCol"] = "Column containing events' dates.";
14027
- KupCalendarProps["descrCol"] = "Column containing events' descriptions.";
14028
- KupCalendarProps["endCol"] = "Column containing events' ending time.";
14029
14274
  KupCalendarProps["hideNavigation"] = "When disabled, the navigation toolbar won't be displayed.";
14030
- KupCalendarProps["iconCol"] = "Column containing events' icons. There can be multiple icons, divided by ';'.";
14031
- KupCalendarProps["imageCol"] = "Column containing events' images. There can be multiple images, divided by ';'.";
14032
- KupCalendarProps["initialDate"] = "Sets the initial date of the calendar. Must be in ISO format (YYYY-MM-DD).";
14033
- KupCalendarProps["startCol"] = "Column containing events' starting time.";
14034
- KupCalendarProps["styleCol"] = "Column containing events' CSS styles.";
14035
14275
  KupCalendarProps["viewType"] = "Type of the view.";
14036
14276
  })(KupCalendarProps || (KupCalendarProps = {}));
14037
14277
  /**
@@ -14044,19 +14284,37 @@ var KupCalendarViewTypes;
14044
14284
  KupCalendarViewTypes["MONTH"] = "dayGridMonth";
14045
14285
  KupCalendarViewTypes["WEEK"] = "timeGridWeek";
14046
14286
  })(KupCalendarViewTypes || (KupCalendarViewTypes = {}));
14047
-
14048
- const kupCalendarCss = ".fc-icon,.fc-unselectable{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc .fc-button:not(:disabled),.fc a[data-navlink],.fc-event.fc-event-draggable,.fc-event[href]{cursor:pointer}.fc-unselectable{user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.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{vertical-align:top;padding:0}.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 .fc-button,.fc-icon{font-weight:400;text-align:center;display:inline-block}.fc-theme-standard td,.fc-theme-standard th{border:1px solid #ddd;border:1px solid var(--fc-border-color,#ddd)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;src:url(\"data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBfAAAAC8AAAAYGNtYXAXVtKNAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5ZgYydxIAAAF4AAAFNGhlYWQUJ7cIAAAGrAAAADZoaGVhB20DzAAABuQAAAAkaG10eCIABhQAAAcIAAAALGxvY2ED4AU6AAAHNAAAABhtYXhwAA8AjAAAB0wAAAAgbmFtZXsr690AAAdsAAABhnBvc3QAAwAAAAAI9AAAACAAAwPAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpBgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6Qb//f//AAAAAAAg6QD//f//AAH/4xcEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAWIAjQKeAskAEwAAJSc3NjQnJiIHAQYUFwEWMjc2NCcCnuLiDQ0MJAz/AA0NAQAMJAwNDcni4gwjDQwM/wANIwz/AA0NDCMNAAAAAQFiAI0CngLJABMAACUBNjQnASYiBwYUHwEHBhQXFjI3AZ4BAA0N/wAMJAwNDeLiDQ0MJAyNAQAMIw0BAAwMDSMM4uINIwwNDQAAAAIA4gC3Ax4CngATACcAACUnNzY0JyYiDwEGFB8BFjI3NjQnISc3NjQnJiIPAQYUHwEWMjc2NCcB87e3DQ0MIw3VDQ3VDSMMDQ0BK7e3DQ0MJAzVDQ3VDCQMDQ3zuLcMJAwNDdUNIwzWDAwNIwy4twwkDA0N1Q0jDNYMDA0jDAAAAgDiALcDHgKeABMAJwAAJTc2NC8BJiIHBhQfAQcGFBcWMjchNzY0LwEmIgcGFB8BBwYUFxYyNwJJ1Q0N1Q0jDA0Nt7cNDQwjDf7V1Q0N1QwkDA0Nt7cNDQwkDLfWDCMN1Q0NDCQMt7gMIw0MDNYMIw3VDQ0MJAy3uAwjDQwMAAADAFUAAAOrA1UAMwBoAHcAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMhMjY1NCYjISIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAAVYRGRkR/qoRGRkRA1UFBAUOCQkVDAsZDf2rDRkLDBUJCA4FBQUFBQUOCQgVDAsZDQJVDRkLDBUJCQ4FBAVVAgECBQMCBwQECAX9qwQJAwQHAwMFAQICAgIBBQMDBwQDCQQCVQUIBAQHAgMFAgEC/oAZEhEZGRESGQAAAAADAFUAAAOrA1UAMwBoAIkAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMzFRQWMzI2PQEzMjY1NCYrATU0JiMiBh0BIyIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAgBkSEhmAERkZEYAZEhIZgBEZGREDVQUEBQ4JCRUMCxkN/asNGQsMFQkIDgUFBQUFBQ4JCBUMCxkNAlUNGQsMFQkJDgUEBVUCAQIFAwIHBAQIBf2rBAkDBAcDAwUBAgICAgEFAwMHBAMJBAJVBQgEBAcCAwUCAQL+gIASGRkSgBkSERmAEhkZEoAZERIZAAABAOIAjQMeAskAIAAAExcHBhQXFjI/ARcWMjc2NC8BNzY0JyYiDwEnJiIHBhQX4uLiDQ0MJAzi4gwkDA0N4uINDQwkDOLiDCQMDQ0CjeLiDSMMDQ3h4Q0NDCMN4uIMIw0MDOLiDAwNIwwAAAABAAAAAQAAa5n0y18PPPUACwQAAAAAANivOVsAAAAA2K85WwAAAAADqwNVAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAOrAAEAAAAAAAAAAAAAAAAAAAALBAAAAAAAAAAAAAAAAgAAAAQAAWIEAAFiBAAA4gQAAOIEAABVBAAAVQQAAOIAAAAAAAoAFAAeAEQAagCqAOoBngJkApoAAQAAAAsAigADAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGZjaWNvbnMAZgBjAGkAYwBvAG4Ac1ZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGZjaWNvbnMAZgBjAGkAYwBvAG4Ac2ZjaWNvbnMAZgBjAGkAYwBvAG4Ac1JlZ3VsYXIAUgBlAGcAdQBsAGEAcmZjaWNvbnMAZgBjAGkAYwBvAG4Ac0ZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\") format('truetype');font-weight:400;font-style:normal}.fc-icon{width:1em;height:1em;user-select:none;font-family:fcicons!important;speak:none;font-style:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fc .fc-scroller-harness-liquid,.fc .fc-scroller-liquid,.fc .fc-scrollgrid-liquid{height:100%}.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{overflow:visible;text-transform:none;margin:0;font-family:inherit}.fc .fc-button::-moz-focus-inner{padding:0;border-style:none}.fc .fc-button{-webkit-appearance:button;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.4em .65em;font-size:1em;line-height:1.5;border-radius:.25em}.fc .fc-button:hover{text-decoration:none}.fc .fc-button:focus{outline:0;box-shadow:0 0 0 .2rem rgba(44,62,80,.25)}.fc .fc-button-primary:focus,.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:disabled{opacity:.65}.fc .fc-button-primary{color:#fff;color:var(--fc-button-text-color,#fff);background-color:#2C3E50;background-color:var(--fc-button-bg-color,#2C3E50);border-color:#2C3E50;border-color:var(--fc-button-border-color,#2C3E50)}.fc .fc-button-primary:hover{color:#fff;color:var(--fc-button-text-color,#fff);background-color:#1e2b37;background-color:var(--fc-button-hover-bg-color,#1e2b37);border-color:#1a252f;border-color:var(--fc-button-hover-border-color,#1a252f)}.fc .fc-button-primary:disabled{color:#fff;color:var(--fc-button-text-color,#fff);background-color:#2C3E50;background-color:var(--fc-button-bg-color,#2C3E50);border-color:#2C3E50;border-color:var(--fc-button-border-color,#2C3E50)}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{color:#fff;color:var(--fc-button-text-color,#fff);background-color:#1a252f;background-color:var(--fc-button-active-bg-color,#1a252f);border-color:#151e27;border-color:var(--fc-button-active-border-color,#151e27)}.fc .fc-button .fc-icon{vertical-align:middle;font-size:1.5em}.fc .fc-button-group{position:relative;display:inline-flex;vertical-align:middle}.fc .fc-button-group>.fc-button{position:relative;flex:1 1 auto}.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){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-top-left-radius:0;border-bottom-left-radius:0}.fc .fc-toolbar{display:flex;justify-content:space-between;align-items:center}.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-absolute{position:absolute;top:0;right:0;left:0;bottom:0}.fc .fc-scroller-harness{position:relative;overflow:hidden;direction:ltr}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid #ddd;border:1px solid var(--fc-border-color,#ddd)}.fc .fc-scrollgrid,.fc .fc-scrollgrid-section-footer>*,.fc .fc-scrollgrid-section-header>*{border-bottom-width:0}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{width:100%;table-layout:fixed}.fc .fc-scrollgrid table{border-top-style:hidden;border-left-style:hidden;border-right-style:hidden}.fc .fc-scrollgrid{border-collapse:separate;border-right-width:0}.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-top-width:0;border-left-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,#fff);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-bg-event,.fc .fc-highlight,.fc .fc-non-business,.fc .fc-view-harness-active>.fc-view{position:absolute;top:0;left:0;right:0;bottom:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-non-business{background:rgba(215,215,215,.3);background:var(--fc-non-business-color,rgba(215,215,215,.3))}.fc .fc-bg-event{background:var(--fc-bg-event-color,#8fdf82);opacity:.3;opacity:var(--fc-bg-event-opacity,.3)}.fc .fc-bg-event .fc-event-title{margin:.5em;font-size:.85em;font-size:var(--fc-small-font-size,.85em);font-style:italic}.fc .fc-highlight{background:rgba(188,232,241,.3);background:var(--fc-highlight-color,rgba(188,232,241,.3))}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:rgba(208,208,208,.3);background:var(--fc-neutral-bg-color,rgba(208,208,208,.3))}a.fc-event,a.fc-event:hover{text-decoration:none}.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,.fc-h-event{display:block}.fc-event-selected .fc-event-resizer{border-radius:4px;border-radius:calc(var(--fc-event-resizer-dot-total-width,8px)/ 2);border-width:1px;border-width:var(--fc-event-resizer-dot-border-width,1px);width:8px;width:var(--fc-event-resizer-dot-total-width,8px);height:8px;height:var(--fc-event-resizer-dot-total-width,8px);border-style:solid;border-color:inherit;background:var(--fc-page-bg-color,#fff)}.fc-event-selected .fc-event-resizer:before{content:'';position:absolute;top:-20px;left:-20px;right:-20px;bottom:-20px}.fc-event-selected:after,.fc-event-selected:before{content:\"\";position:absolute}.fc-event-selected{box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event-selected:before{z-index:3;top:0;left:0;right:0;bottom:0}.fc-event-selected:after{background:rgba(0,0,0,.25);background:var(--fc-event-selected-overlay-color,rgba(0,0,0,.25));z-index:1;top:-1px;left:-1px;right:-1px;bottom:-1px}.fc-h-event{border:1px solid #3788d8;border:1px solid var(--fc-event-border-color,#3788d8);background-color:#3788d8;background-color:var(--fc-event-bg-color,#3788d8)}.fc-h-event .fc-event-main{color:#fff;color:var(--fc-event-text-color,#fff)}.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;vertical-align:top;left:0;right:0;max-width:100%;overflow:hidden}.fc-h-event.fc-event-selected:before{top:-10px;bottom:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-top-right-radius:0;border-bottom-right-radius:0;border-right-width:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{top:0;bottom:0;width:8px;width:var(--fc-event-resizer-thickness,8px)}.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:-4px;left:calc(var(--fc-event-resizer-thickness,8px)/ -2)}.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:-4px;right:calc(var(--fc-event-resizer-thickness,8px)/ -2)}.fc-h-event.fc-event-selected .fc-event-resizer{top:50%;margin-top:-4px;margin-top:calc(var(--fc-event-resizer-dot-total-width,8px)/ -2)}.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:-4px;left:calc(var(--fc-event-resizer-dot-total-width,8px)/ -2)}.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:-4px;right:calc(var(--fc-event-resizer-dot-total-width,8px)/ -2)}.fc .fc-popover{position:absolute;z-index:9999;box-shadow:0 2px 6px rgba(0,0,0,.15)}.fc .fc-popover-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .fc-popover-close{cursor:pointer;opacity:.65;font-size:1.1em}.fc-theme-standard .fc-popover{border:1px solid #ddd;border:1px solid var(--fc-border-color,#ddd);background:var(--fc-page-bg-color,#fff)}.fc-theme-standard .fc-popover-header{background:rgba(208,208,208,.3);background:var(--fc-neutral-bg-color,rgba(208,208,208,.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{content:\"\";clear:both;display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:rgba(255,220,40,.15);background-color:var(--fc-today-bg-color,rgba(255,220,40,.15))}.fc .fc-daygrid-day-frame{position:relative;min-height:100%}.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{position:relative;z-index:4;padding:4px}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{position:absolute;left:0;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{position:relative;min-height:2em}.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{position:absolute;top:0;left:0;right:0}.fc .fc-daygrid-bg-harness{position:absolute;top:0;bottom: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{z-index:6;margin-top:1px}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;padding:2px 3px 0}.fc .fc-daygrid-day-bottom:before{content:\"\";clear:both;display:table}.fc .fc-daygrid-more-link{position:relative;z-index:4;cursor:pointer}.fc .fc-daygrid-week-number{position:absolute;z-index:5;top:0;padding:2px;min-width:1.5em;text-align:center;background-color:rgba(208,208,208,.3);background-color:var(--fc-neutral-bg-color,rgba(208,208,208,.3));color:grey;color:var(--fc-neutral-text-color,grey)}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-week-number{left:0;border-radius:0 0 3px}.fc-direction-rtl .fc-daygrid-week-number{right:0;border-radius:0 0 0 3px}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{position:relative;white-space:nowrap;border-radius:3px;font-size:.85em;font-size:var(--fc-small-font-size,.85em)}.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{display:flex;align-items:center;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;min-width:0;overflow:hidden;font-weight:700}.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{top:-10px;bottom:-10px}.fc-daygrid-event-dot{margin:0 4px;box-sizing:content-box;width:0;height:0;border:4px solid #3788d8;border:calc(var(--fc-daygrid-event-dot-width,8px)/ 2) solid var(--fc-event-border-color,#3788d8);border-radius:4px;border-radius:calc(var(--fc-daygrid-event-dot-width,8px)/ 2)}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}:root{--fc-list-event-dot-width:10px;--fc-list-event-hover-bg-color:#f5f5f5}.fc-theme-standard .fc-list{border:1px solid #ddd;border:1px solid var(--fc-border-color,#ddd)}.fc .fc-list-empty{background-color:rgba(208,208,208,.3);background-color:var(--fc-neutral-bg-color,rgba(208,208,208,.3));height:100%;display:flex;justify-content:center;align-items:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{width:100%;border-style:hidden}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{position:sticky;top:0;background:var(--fc-page-bg-color,#fff)}.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{content:\"\";clear:both;display:table}.fc-theme-standard .fc-list-day-cushion{background-color:rgba(208,208,208,.3);background-color:var(--fc-neutral-bg-color,rgba(208,208,208,.3))}.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:#f5f5f5;background-color:var(--fc-list-event-hover-bg-color,#f5f5f5)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{display:inline-block;box-sizing:content-box;width:0;height:0;border:5px solid #3788d8;border:calc(var(--fc-list-event-dot-width,10px)/ 2) solid var(--fc-event-border-color,#3788d8);border-radius:5px;border-radius:calc(var(--fc-list-event-dot-width,10px)/ 2)}.fc .fc-list-event-title a{color:inherit;text-decoration:none}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline}.fc-v-event{display:block;border:1px solid #3788d8;border:1px solid var(--fc-event-border-color,#3788d8);background-color:#3788d8;background-color:var(--fc-event-bg-color,#3788d8)}.fc-v-event .fc-event-main{color:#fff;color:var(--fc-event-text-color,#fff);height:100%}.fc-v-event .fc-event-main-frame{height:100%;display:flex;flex-direction:column}.fc-v-event .fc-event-time{flex-grow:0;flex-shrink:0;max-height:100%;overflow:hidden}.fc-v-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-height:0}.fc-v-event .fc-event-title{top:0;bottom:0;max-height:100%;overflow:hidden}.fc-v-event:not(.fc-event-start){border-top-width:0;border-top-left-radius:0;border-top-right-radius:0}.fc-v-event:not(.fc-event-end){border-bottom-width:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.fc-v-event.fc-event-selected:before{left:-10px;right:-10px}.fc-v-event .fc-event-resizer-start{cursor:n-resize}.fc-v-event .fc-event-resizer-end{cursor:s-resize}.fc-v-event:not(.fc-event-selected) .fc-event-resizer{height:8px;height:var(--fc-event-resizer-thickness,8px);left:0;right:0}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start{top:-4px;top:calc(var(--fc-event-resizer-thickness,8px)/ -2)}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end{bottom:-4px;bottom:calc(var(--fc-event-resizer-thickness,8px)/ -2)}.fc-v-event.fc-event-selected .fc-event-resizer{left:50%;margin-left:-4px;margin-left:calc(var(--fc-event-resizer-dot-total-width,8px)/ -2)}.fc-v-event.fc-event-selected .fc-event-resizer-start{top:-4px;top:calc(var(--fc-event-resizer-dot-total-width,8px)/ -2)}.fc-v-event.fc-event-selected .fc-event-resizer-end{bottom:-4px;bottom:calc(var(--fc-event-resizer-dot-total-width,8px)/ -2)}.fc .fc-timegrid .fc-daygrid-body{z-index:2}.fc .fc-timegrid-axis-chunk>table,.fc .fc-timegrid-body,.fc .fc-timegrid-slots{position:relative;z-index:1}.fc .fc-timegrid-divider{padding:0 0 2px}.fc .fc-timegrid-body{min-height:100%}.fc .fc-timegrid-axis-chunk{position:relative}.fc .fc-timegrid-slot{height:1.5em;border-bottom:0}.fc .fc-timegrid-slot:empty:before{content:'\\00a0'}.fc .fc-timegrid-slot-minor{border-top-style:dotted}.fc .fc-timegrid-slot-label-cushion{display:inline-block;white-space:nowrap}.fc .fc-timegrid-slot-label{vertical-align:middle}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{padding:0 4px}.fc .fc-timegrid-axis-frame-liquid{height:100%}.fc .fc-timegrid-axis-frame{overflow:hidden;display:flex;align-items:center;justify-content:flex-end}.fc .fc-timegrid-axis-cushion{max-width:60px;flex-shrink:0}.fc-direction-ltr .fc-timegrid-slot-label-frame{text-align:right}.fc-direction-rtl .fc-timegrid-slot-label-frame{text-align:left}.fc-liquid-hack .fc-timegrid-axis-frame-liquid{height:auto;position:absolute;top:0;right:0;bottom:0;left:0}.fc .fc-timegrid-col.fc-day-today{background-color:rgba(255,220,40,.15);background-color:var(--fc-today-bg-color,rgba(255,220,40,.15))}.fc .fc-timegrid-col-frame{min-height:100%;position:relative}.fc-media-screen.fc-liquid-hack .fc-timegrid-col-frame{height:auto;position:absolute;top:0;right:0;bottom:0;left:0}.fc-media-screen .fc-timegrid-cols{position:absolute;top:0;left:0;right:0;bottom:0}.fc-media-screen .fc-timegrid-cols>table{height:100%}.fc-media-screen .fc-timegrid-col-bg,.fc-media-screen .fc-timegrid-col-events,.fc-media-screen .fc-timegrid-now-indicator-container{position:absolute;top:0;left:0;right:0}.fc .fc-timegrid-col-bg{z-index:2}.fc .fc-timegrid-col-bg .fc-non-business{z-index:1}.fc .fc-timegrid-col-bg .fc-bg-event{z-index:2}.fc .fc-timegrid-col-bg .fc-highlight,.fc .fc-timegrid-col-events{z-index:3}.fc .fc-timegrid-bg-harness{position:absolute;left:0;right:0}.fc .fc-timegrid-now-indicator-container{bottom:0;overflow:hidden}.fc-direction-ltr .fc-timegrid-col-events{margin:0 2.5% 0 2px}.fc-direction-rtl .fc-timegrid-col-events{margin:0 2px 0 2.5%}.fc-timegrid-event-harness{position:absolute}.fc-timegrid-event-harness>.fc-timegrid-event{position:absolute;top:0;bottom:0;left:0;right:0}.fc-timegrid-event-harness-inset .fc-timegrid-event,.fc-timegrid-event.fc-event-mirror,.fc-timegrid-more-link{box-shadow:0 0 0 1px #fff;box-shadow:0 0 0 1px var(--fc-page-bg-color,#fff)}.fc-timegrid-event,.fc-timegrid-more-link{font-size:.85em;font-size:var(--fc-small-font-size,.85em);border-radius:3px}.fc-timegrid-event{margin-bottom:1px}.fc-timegrid-event .fc-event-main{padding:1px 1px 0}.fc-timegrid-event .fc-event-time{white-space:nowrap;font-size:.85em;font-size:var(--fc-small-font-size,.85em);margin-bottom:1px}.fc-timegrid-event-short .fc-event-main-frame{flex-direction:row;overflow:hidden}.fc-timegrid-event-short .fc-event-time:after{content:'\\00a0-\\00a0'}.fc-timegrid-event-short .fc-event-title{font-size:.85em;font-size:var(--fc-small-font-size,.85em)}.fc-timegrid-more-link{position:absolute;z-index:9999;color:inherit;color:var(--fc-more-link-text-color,inherit);background:var(--fc-more-link-bg-color,#d0d0d0);cursor:pointer;margin-bottom:1px}.fc-timegrid-more-link-inner{padding:3px 2px;top:0}.fc-direction-ltr .fc-timegrid-more-link{right:0}.fc-direction-rtl .fc-timegrid-more-link{left:0}.fc .fc-timegrid-now-indicator-line{position:absolute;z-index:4;left:0;right:0;border-style:solid;border-color:red;border-color:var(--fc-now-indicator-color,red);border-width:1px 0 0}.fc .fc-timegrid-now-indicator-arrow{position:absolute;z-index:4;margin-top:-5px;border-style:solid;border-color:red;border-color:var(--fc-now-indicator-color,red)}.fc-direction-ltr .fc-timegrid-now-indicator-arrow{left:0;border-width:5px 0 5px 6px;border-top-color:transparent;border-bottom-color:transparent}.fc-direction-rtl .fc-timegrid-now-indicator-arrow{right:0;border-width:5px 6px 5px 0;border-top-color:transparent;border-bottom-color:transparent}:host{--kup_calendar_background_color:var(\n --kup-calendar-background-color,\n var(--kup-background-color)\n );--kup_calendar_border_color:var(\n --kup-calendar-border-color,\n var(--kup-border-color)\n );--kup_calendar_event_background_color:var(\n --kup-calendar-event-background-color,\n var(--kup-primary-color)\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-on-primary-color)\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-title-background-color)\n );--kup_calendar_header_color:var(\n --kup-calendar-header-color,\n var(--kup-title-color)\n );--kup_calendar_navigator_border:var(\n --kup-calendar-navigator-border,\n 2px solid var(--kup-border-color)\n );--kup_calendar_no_work_day_background_color:var(\n --kup-calendar-no-work-day-background-color,\n rgba(var(--kup-disabled-background-color-rgb), 0.5)\n );--kup_calendar_no_work_day_color:var(\n --kup-calendar-no-work-day-color,\n var(--kup-disabled-color)\n );--kup_calendar_today_background_color:var(\n --kup-calendar-today-background-color,\n rgba(var(--kup-primary-color-rgb), 0.125)\n );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;border-left:var(--kup_calendar_navigator_border);border-right:var(--kup_calendar_navigator_border);border-top:var(--kup_calendar_navigator_border);border-top-left-radius:8px;border-top-right-radius:8px;display:flex;justify-content:space-between}.navigation__left{--kup-font-size:0.875em;display:flex}.navigation__right{display:flex}.navigation__title{font-size:1.25em;font-weight:400;letter-spacing:0.1892857em;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-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)}#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-radius:var(--kup_calendar_event_border_radius);border:none;border-color:var(--kup_calendar_event_background_color);color:var(--kup_calendar_event_color)}#kup-component .fc-event-main{color:inherit}#kup-component .fc-event-title{padding:0.25em}#kup-component td.fc-day-today{background-color:var(--kup_calendar_today_background_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)}@media (max-width: 599px){.navigation{flex-direction:column}}";
14287
+ /**
14288
+ * Available view types.
14289
+ */
14290
+ var KupCalendarOptions;
14291
+ (function (KupCalendarOptions) {
14292
+ KupCalendarOptions["DATE"] = "date";
14293
+ KupCalendarOptions["DESCR"] = "descr";
14294
+ KupCalendarOptions["END"] = "end";
14295
+ KupCalendarOptions["ICON"] = "icon";
14296
+ KupCalendarOptions["IMAGE"] = "image";
14297
+ KupCalendarOptions["START"] = "start";
14298
+ KupCalendarOptions["STYLE"] = "style";
14299
+ })(KupCalendarOptions || (KupCalendarOptions = {}));
14300
+
14301
+ const kupCalendarCss = ".fc-icon,.fc-unselectable{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc .fc-button:not(:disabled),.fc a[data-navlink],.fc-event.fc-event-draggable,.fc-event[href]{cursor:pointer}.fc-unselectable{user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.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{vertical-align:top;padding:0}.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 .fc-button,.fc-icon{display:inline-block;font-weight:400;text-align:center}.fc-theme-standard td,.fc-theme-standard th{border:1px solid #ddd;border:1px solid var(--fc-border-color,#ddd)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;src:url(\"data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBfAAAAC8AAAAYGNtYXAXVtKNAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5ZgYydxIAAAF4AAAFNGhlYWQUJ7cIAAAGrAAAADZoaGVhB20DzAAABuQAAAAkaG10eCIABhQAAAcIAAAALGxvY2ED4AU6AAAHNAAAABhtYXhwAA8AjAAAB0wAAAAgbmFtZXsr690AAAdsAAABhnBvc3QAAwAAAAAI9AAAACAAAwPAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpBgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6Qb//f//AAAAAAAg6QD//f//AAH/4xcEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAWIAjQKeAskAEwAAJSc3NjQnJiIHAQYUFwEWMjc2NCcCnuLiDQ0MJAz/AA0NAQAMJAwNDcni4gwjDQwM/wANIwz/AA0NDCMNAAAAAQFiAI0CngLJABMAACUBNjQnASYiBwYUHwEHBhQXFjI3AZ4BAA0N/wAMJAwNDeLiDQ0MJAyNAQAMIw0BAAwMDSMM4uINIwwNDQAAAAIA4gC3Ax4CngATACcAACUnNzY0JyYiDwEGFB8BFjI3NjQnISc3NjQnJiIPAQYUHwEWMjc2NCcB87e3DQ0MIw3VDQ3VDSMMDQ0BK7e3DQ0MJAzVDQ3VDCQMDQ3zuLcMJAwNDdUNIwzWDAwNIwy4twwkDA0N1Q0jDNYMDA0jDAAAAgDiALcDHgKeABMAJwAAJTc2NC8BJiIHBhQfAQcGFBcWMjchNzY0LwEmIgcGFB8BBwYUFxYyNwJJ1Q0N1Q0jDA0Nt7cNDQwjDf7V1Q0N1QwkDA0Nt7cNDQwkDLfWDCMN1Q0NDCQMt7gMIw0MDNYMIw3VDQ0MJAy3uAwjDQwMAAADAFUAAAOrA1UAMwBoAHcAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMhMjY1NCYjISIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAAVYRGRkR/qoRGRkRA1UFBAUOCQkVDAsZDf2rDRkLDBUJCA4FBQUFBQUOCQgVDAsZDQJVDRkLDBUJCQ4FBAVVAgECBQMCBwQECAX9qwQJAwQHAwMFAQICAgIBBQMDBwQDCQQCVQUIBAQHAgMFAgEC/oAZEhEZGRESGQAAAAADAFUAAAOrA1UAMwBoAIkAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMzFRQWMzI2PQEzMjY1NCYrATU0JiMiBh0BIyIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAgBkSEhmAERkZEYAZEhIZgBEZGREDVQUEBQ4JCRUMCxkN/asNGQsMFQkIDgUFBQUFBQ4JCBUMCxkNAlUNGQsMFQkJDgUEBVUCAQIFAwIHBAQIBf2rBAkDBAcDAwUBAgICAgEFAwMHBAMJBAJVBQgEBAcCAwUCAQL+gIASGRkSgBkSERmAEhkZEoAZERIZAAABAOIAjQMeAskAIAAAExcHBhQXFjI/ARcWMjc2NC8BNzY0JyYiDwEnJiIHBhQX4uLiDQ0MJAzi4gwkDA0N4uINDQwkDOLiDCQMDQ0CjeLiDSMMDQ3h4Q0NDCMN4uIMIw0MDOLiDAwNIwwAAAABAAAAAQAAa5n0y18PPPUACwQAAAAAANivOVsAAAAA2K85WwAAAAADqwNVAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAOrAAEAAAAAAAAAAAAAAAAAAAALBAAAAAAAAAAAAAAAAgAAAAQAAWIEAAFiBAAA4gQAAOIEAABVBAAAVQQAAOIAAAAAAAoAFAAeAEQAagCqAOoBngJkApoAAQAAAAsAigADAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGZjaWNvbnMAZgBjAGkAYwBvAG4Ac1ZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGZjaWNvbnMAZgBjAGkAYwBvAG4Ac2ZjaWNvbnMAZgBjAGkAYwBvAG4Ac1JlZ3VsYXIAUgBlAGcAdQBsAGEAcmZjaWNvbnMAZgBjAGkAYwBvAG4Ac0ZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\") format('truetype');font-weight:400;font-style:normal}.fc-icon{width:1em;height:1em;user-select:none;font-family:fcicons!important;speak:none;font-style:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fc .fc-scroller-harness-liquid,.fc .fc-scroller-liquid,.fc .fc-scrollgrid-liquid{height:100%}.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{overflow:visible;text-transform:none;margin:0;font-family:inherit}.fc .fc-button::-moz-focus-inner{padding:0;border-style:none}.fc .fc-button{-webkit-appearance:button;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.4em .65em;font-size:1em;line-height:1.5;border-radius:.25em}.fc .fc-button:hover{text-decoration:none}.fc .fc-button:focus{outline:0;box-shadow:0 0 0 .2rem rgba(44,62,80,.25)}.fc .fc-button-primary:focus,.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:disabled{opacity:.65}.fc .fc-button-primary{color:#fff;color:var(--fc-button-text-color,#fff);background-color:#2C3E50;background-color:var(--fc-button-bg-color,#2C3E50);border-color:#2C3E50;border-color:var(--fc-button-border-color,#2C3E50)}.fc .fc-button-primary:hover{color:#fff;color:var(--fc-button-text-color,#fff);background-color:#1e2b37;background-color:var(--fc-button-hover-bg-color,#1e2b37);border-color:#1a252f;border-color:var(--fc-button-hover-border-color,#1a252f)}.fc .fc-button-primary:disabled{color:#fff;color:var(--fc-button-text-color,#fff);background-color:#2C3E50;background-color:var(--fc-button-bg-color,#2C3E50);border-color:#2C3E50;border-color:var(--fc-button-border-color,#2C3E50)}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{color:#fff;color:var(--fc-button-text-color,#fff);background-color:#1a252f;background-color:var(--fc-button-active-bg-color,#1a252f);border-color:#151e27;border-color:var(--fc-button-active-border-color,#151e27)}.fc .fc-button .fc-icon{vertical-align:middle;font-size:1.5em}.fc .fc-button-group{position:relative;display:inline-flex;vertical-align:middle}.fc .fc-button-group>.fc-button{position:relative;flex:1 1 auto}.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){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-top-left-radius:0;border-bottom-left-radius:0}.fc .fc-toolbar{display:flex;justify-content:space-between;align-items:center}.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-absolute{position:absolute;top:0;right:0;left:0;bottom:0}.fc .fc-scroller-harness{position:relative;overflow:hidden;direction:ltr}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid #ddd;border:1px solid var(--fc-border-color,#ddd)}.fc .fc-scrollgrid,.fc .fc-scrollgrid-section-footer>*,.fc .fc-scrollgrid-section-header>*{border-bottom-width:0}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{width:100%;table-layout:fixed}.fc .fc-scrollgrid table{border-top-style:hidden;border-left-style:hidden;border-right-style:hidden}.fc .fc-scrollgrid{border-collapse:separate;border-right-width:0}.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-top-width:0;border-left-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,#fff);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-bg-event,.fc .fc-highlight,.fc .fc-non-business,.fc .fc-view-harness-active>.fc-view{position:absolute;top:0;left:0;right:0;bottom:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-non-business{background:rgba(215,215,215,.3);background:var(--fc-non-business-color,rgba(215,215,215,.3))}.fc .fc-bg-event{background:var(--fc-bg-event-color,#8fdf82);opacity:.3;opacity:var(--fc-bg-event-opacity,.3)}.fc .fc-bg-event .fc-event-title{margin:.5em;font-size:.85em;font-size:var(--fc-small-font-size,.85em);font-style:italic}.fc .fc-highlight{background:rgba(188,232,241,.3);background:var(--fc-highlight-color,rgba(188,232,241,.3))}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:rgba(208,208,208,.3);background:var(--fc-neutral-bg-color,rgba(208,208,208,.3))}a.fc-event,a.fc-event:hover{text-decoration:none}.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,.fc-h-event{display:block}.fc-event-selected .fc-event-resizer{border-radius:4px;border-radius:calc(var(--fc-event-resizer-dot-total-width,8px)/ 2);border-width:1px;border-width:var(--fc-event-resizer-dot-border-width,1px);width:8px;width:var(--fc-event-resizer-dot-total-width,8px);height:8px;height:var(--fc-event-resizer-dot-total-width,8px);border-style:solid;border-color:inherit;background:var(--fc-page-bg-color,#fff)}.fc-event-selected .fc-event-resizer:before{content:'';position:absolute;top:-20px;left:-20px;right:-20px;bottom:-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{content:\"\";position:absolute;z-index:3;top:0;left:0;right:0;bottom:0}.fc-event-selected:after,.fc-event:focus:after{content:\"\";background:rgba(0,0,0,.25);background:var(--fc-event-selected-overlay-color,rgba(0,0,0,.25));position:absolute;z-index:1;top:-1px;left:-1px;right:-1px;bottom:-1px}.fc-h-event{border:1px solid #3788d8;border:1px solid var(--fc-event-border-color,#3788d8);background-color:#3788d8;background-color:var(--fc-event-bg-color,#3788d8)}.fc-h-event .fc-event-main{color:#fff;color:var(--fc-event-text-color,#fff)}.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;vertical-align:top;left:0;right:0;max-width:100%;overflow:hidden}.fc-h-event.fc-event-selected:before{top:-10px;bottom:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-top-right-radius:0;border-bottom-right-radius:0;border-right-width:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{top:0;bottom:0;width:8px;width:var(--fc-event-resizer-thickness,8px)}.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:-4px;left:calc(-.5 * var(--fc-event-resizer-thickness,8px))}.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:-4px;right:calc(-.5 * var(--fc-event-resizer-thickness,8px))}.fc-h-event.fc-event-selected .fc-event-resizer{top:50%;margin-top:-4px;margin-top:calc(-.5 * var(--fc-event-resizer-dot-total-width,8px))}.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:-4px;left:calc(-.5 * var(--fc-event-resizer-dot-total-width,8px))}.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:-4px;right:calc(-.5 * var(--fc-event-resizer-dot-total-width,8px))}.fc .fc-popover{position:absolute;z-index:9999;box-shadow:0 2px 6px rgba(0,0,0,.15)}.fc .fc-popover-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .fc-popover-close{cursor:pointer;opacity:.65;font-size:1.1em}.fc-theme-standard .fc-popover{border:1px solid #ddd;border:1px solid var(--fc-border-color,#ddd);background:var(--fc-page-bg-color,#fff)}.fc-theme-standard .fc-popover-header{background:rgba(208,208,208,.3);background:var(--fc-neutral-bg-color,rgba(208,208,208,.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{content:\"\";clear:both;display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:rgba(255,220,40,.15);background-color:var(--fc-today-bg-color,rgba(255,220,40,.15))}.fc .fc-daygrid-day-frame{position:relative;min-height:100%}.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{position:relative;z-index:4;padding:4px}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{position:absolute;left:0;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{position:relative;min-height:2em}.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{position:absolute;top:0;left:0;right:0}.fc .fc-daygrid-bg-harness{position:absolute;top:0;bottom: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{z-index:6;margin-top:1px}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;padding:2px 3px 0}.fc .fc-daygrid-day-bottom:before{content:\"\";clear:both;display:table}.fc .fc-daygrid-more-link{position:relative;z-index:4;cursor:pointer}.fc .fc-daygrid-week-number{position:absolute;z-index:5;top:0;padding:2px;min-width:1.5em;text-align:center;background-color:rgba(208,208,208,.3);background-color:var(--fc-neutral-bg-color,rgba(208,208,208,.3));color:grey;color:var(--fc-neutral-text-color,grey)}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-week-number{left:0;border-radius:0 0 3px}.fc-direction-rtl .fc-daygrid-week-number{right:0;border-radius:0 0 0 3px}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{position:relative;white-space:nowrap;border-radius:3px;font-size:.85em;font-size:var(--fc-small-font-size,.85em)}.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{display:flex;align-items:center;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;min-width:0;overflow:hidden;font-weight:700}.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{top:-10px;bottom:-10px}.fc-daygrid-event-dot{margin:0 4px;box-sizing:content-box;width:0;height:0;border:4px solid #3788d8;border:calc(var(--fc-daygrid-event-dot-width,8px)/ 2) solid var(--fc-event-border-color,#3788d8);border-radius:4px;border-radius:calc(var(--fc-daygrid-event-dot-width,8px)/ 2)}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}:root{--fc-list-event-dot-width:10px;--fc-list-event-hover-bg-color:#f5f5f5}.fc-theme-standard .fc-list{border:1px solid #ddd;border:1px solid var(--fc-border-color,#ddd)}.fc .fc-list-empty{background-color:rgba(208,208,208,.3);background-color:var(--fc-neutral-bg-color,rgba(208,208,208,.3));height:100%;display:flex;justify-content:center;align-items:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{width:100%;border-style:hidden}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{position:sticky;top:0;background:var(--fc-page-bg-color,#fff)}.fc .fc-list-table thead{position:absolute;left:-10000px}.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{content:\"\";clear:both;display:table}.fc-theme-standard .fc-list-day-cushion{background-color:rgba(208,208,208,.3);background-color:var(--fc-neutral-bg-color,rgba(208,208,208,.3))}.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:#f5f5f5;background-color:var(--fc-list-event-hover-bg-color,#f5f5f5)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{display:inline-block;box-sizing:content-box;width:0;height:0;border:5px solid #3788d8;border:calc(var(--fc-list-event-dot-width,10px)/ 2) solid var(--fc-event-border-color,#3788d8);border-radius:5px;border-radius:calc(var(--fc-list-event-dot-width,10px)/ 2)}.fc .fc-list-event-title a{color:inherit;text-decoration:none}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline}.fc-v-event{display:block;border:1px solid #3788d8;border:1px solid var(--fc-event-border-color,#3788d8);background-color:#3788d8;background-color:var(--fc-event-bg-color,#3788d8)}.fc-v-event .fc-event-main{color:#fff;color:var(--fc-event-text-color,#fff);height:100%}.fc-v-event .fc-event-main-frame{height:100%;display:flex;flex-direction:column}.fc-v-event .fc-event-time{flex-grow:0;flex-shrink:0;max-height:100%;overflow:hidden}.fc-v-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-height:0}.fc-v-event .fc-event-title{top:0;bottom:0;max-height:100%;overflow:hidden}.fc-v-event:not(.fc-event-start){border-top-width:0;border-top-left-radius:0;border-top-right-radius:0}.fc-v-event:not(.fc-event-end){border-bottom-width:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.fc-v-event.fc-event-selected:before{left:-10px;right:-10px}.fc-v-event .fc-event-resizer-start{cursor:n-resize}.fc-v-event .fc-event-resizer-end{cursor:s-resize}.fc-v-event:not(.fc-event-selected) .fc-event-resizer{height:8px;height:var(--fc-event-resizer-thickness,8px);left:0;right:0}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start{top:-4px;top:calc(var(--fc-event-resizer-thickness,8px)/ -2)}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end{bottom:-4px;bottom:calc(var(--fc-event-resizer-thickness,8px)/ -2)}.fc-v-event.fc-event-selected .fc-event-resizer{left:50%;margin-left:-4px;margin-left:calc(var(--fc-event-resizer-dot-total-width,8px)/ -2)}.fc-v-event.fc-event-selected .fc-event-resizer-start{top:-4px;top:calc(var(--fc-event-resizer-dot-total-width,8px)/ -2)}.fc-v-event.fc-event-selected .fc-event-resizer-end{bottom:-4px;bottom:calc(var(--fc-event-resizer-dot-total-width,8px)/ -2)}.fc .fc-timegrid .fc-daygrid-body{z-index:2}.fc .fc-timegrid-axis-chunk>table,.fc .fc-timegrid-body,.fc .fc-timegrid-slots{position:relative;z-index:1}.fc .fc-timegrid-divider{padding:0 0 2px}.fc .fc-timegrid-body{min-height:100%}.fc .fc-timegrid-axis-chunk{position:relative}.fc .fc-timegrid-slot{height:1.5em;border-bottom:0}.fc .fc-timegrid-slot:empty:before{content:'\\00a0'}.fc .fc-timegrid-slot-minor{border-top-style:dotted}.fc .fc-timegrid-slot-label-cushion{display:inline-block;white-space:nowrap}.fc .fc-timegrid-slot-label{vertical-align:middle}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{padding:0 4px}.fc .fc-timegrid-axis-frame-liquid{height:100%}.fc .fc-timegrid-axis-frame{overflow:hidden;display:flex;align-items:center;justify-content:flex-end}.fc .fc-timegrid-axis-cushion{max-width:60px;flex-shrink:0}.fc-direction-ltr .fc-timegrid-slot-label-frame{text-align:right}.fc-direction-rtl .fc-timegrid-slot-label-frame{text-align:left}.fc-liquid-hack .fc-timegrid-axis-frame-liquid{height:auto;position:absolute;top:0;right:0;bottom:0;left:0}.fc .fc-timegrid-col.fc-day-today{background-color:rgba(255,220,40,.15);background-color:var(--fc-today-bg-color,rgba(255,220,40,.15))}.fc .fc-timegrid-col-frame{min-height:100%;position:relative}.fc-media-screen.fc-liquid-hack .fc-timegrid-col-frame{height:auto;position:absolute;top:0;right:0;bottom:0;left:0}.fc-media-screen .fc-timegrid-cols{position:absolute;top:0;left:0;right:0;bottom:0}.fc-media-screen .fc-timegrid-cols>table{height:100%}.fc-media-screen .fc-timegrid-col-bg,.fc-media-screen .fc-timegrid-col-events,.fc-media-screen .fc-timegrid-now-indicator-container{position:absolute;top:0;left:0;right:0}.fc .fc-timegrid-col-bg{z-index:2}.fc .fc-timegrid-col-bg .fc-non-business{z-index:1}.fc .fc-timegrid-col-bg .fc-bg-event{z-index:2}.fc .fc-timegrid-col-bg .fc-highlight,.fc .fc-timegrid-col-events{z-index:3}.fc .fc-timegrid-bg-harness{position:absolute;left:0;right:0}.fc .fc-timegrid-now-indicator-container{bottom:0;overflow:hidden}.fc-direction-ltr .fc-timegrid-col-events{margin:0 2.5% 0 2px}.fc-direction-rtl .fc-timegrid-col-events{margin:0 2px 0 2.5%}.fc-timegrid-event-harness{position:absolute}.fc-timegrid-event-harness>.fc-timegrid-event{position:absolute;top:0;bottom:0;left:0;right:0}.fc-timegrid-event-harness-inset .fc-timegrid-event,.fc-timegrid-event.fc-event-mirror,.fc-timegrid-more-link{box-shadow:0 0 0 1px #fff;box-shadow:0 0 0 1px var(--fc-page-bg-color,#fff)}.fc-timegrid-event,.fc-timegrid-more-link{font-size:.85em;font-size:var(--fc-small-font-size,.85em);border-radius:3px}.fc-timegrid-event{margin-bottom:1px}.fc-timegrid-event .fc-event-main{padding:1px 1px 0}.fc-timegrid-event .fc-event-time{white-space:nowrap;font-size:.85em;font-size:var(--fc-small-font-size,.85em);margin-bottom:1px}.fc-timegrid-event-short .fc-event-main-frame{flex-direction:row;overflow:hidden}.fc-timegrid-event-short .fc-event-time:after{content:'\\00a0-\\00a0'}.fc-timegrid-event-short .fc-event-title{font-size:.85em;font-size:var(--fc-small-font-size,.85em)}.fc-timegrid-more-link{position:absolute;z-index:9999;color:inherit;color:var(--fc-more-link-text-color,inherit);background:var(--fc-more-link-bg-color,#d0d0d0);cursor:pointer;margin-bottom:1px}.fc-timegrid-more-link-inner{padding:3px 2px;top:0}.fc-direction-ltr .fc-timegrid-more-link{right:0}.fc-direction-rtl .fc-timegrid-more-link{left:0}.fc .fc-timegrid-now-indicator-line{position:absolute;z-index:4;left:0;right:0;border-style:solid;border-color:red;border-color:var(--fc-now-indicator-color,red);border-width:1px 0 0}.fc .fc-timegrid-now-indicator-arrow{position:absolute;z-index:4;margin-top:-5px;border-style:solid;border-color:red;border-color:var(--fc-now-indicator-color,red)}.fc-direction-ltr .fc-timegrid-now-indicator-arrow{left:0;border-width:5px 0 5px 6px;border-top-color:transparent;border-bottom-color:transparent}.fc-direction-rtl .fc-timegrid-now-indicator-arrow{right:0;border-width:5px 6px 5px 0;border-top-color:transparent;border-bottom-color:transparent}:host{--kup_calendar_background_color:var(\n --kup-calendar-background-color,\n var(--kup-background-color)\n );--kup_calendar_border_color:var(\n --kup-calendar-border-color,\n var(--kup-border-color)\n );--kup_calendar_event_background_color:var(\n --kup-calendar-event-background-color,\n var(--kup-primary-color)\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-on-primary-color)\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-title-background-color)\n );--kup_calendar_header_color:var(\n --kup-calendar-header-color,\n var(--kup-title-color)\n );--kup_calendar_navigator_border:var(\n --kup-calendar-navigator-border,\n 2px solid var(--kup-border-color)\n );--kup_calendar_no_work_day_background_color:var(\n --kup-calendar-no-work-day-background-color,\n rgba(var(--kup-disabled-background-color-rgb), 0.5)\n );--kup_calendar_no_work_day_color:var(\n --kup-calendar-no-work-day-color,\n var(--kup-disabled-color)\n );--kup_calendar_today_background_color:var(\n --kup-calendar-today-background-color,\n rgba(var(--kup-primary-color-rgb), 0.125)\n );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;border-left:var(--kup_calendar_navigator_border);border-right:var(--kup_calendar_navigator_border);border-top:var(--kup_calendar_navigator_border);border-top-left-radius:8px;border-top-right-radius:8px;display:flex;justify-content:space-between}.navigation__left{--kup-font-size:0.875em;display:flex}.navigation__right{display:flex}.navigation__title{font-size:1.25em;font-weight:400;letter-spacing:0.1892857em;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-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)}#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-radius:var(--kup_calendar_event_border_radius);border:none;border-color:var(--kup_calendar_event_background_color);color:var(--kup_calendar_event_color)}#kup-component .fc-event-main{color:inherit}#kup-component .fc-event-title{padding:0.25em}#kup-component td.fc-day-today{background-color:var(--kup_calendar_today_background_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)}@media (max-width: 599px){.navigation{flex-direction:column}}";
14049
14302
 
14050
14303
  let KupCalendar = class {
14051
14304
  constructor(hostRef) {
14052
14305
  registerInstance(this, hostRef);
14053
- this.kupCalendarEventClicked = createEvent(this, "kup-calendar-eventclick", 6);
14054
- this.kupCalendarDateClicked = createEvent(this, "kup-calendar-dateclick", 6);
14055
- this.kupCalendarEventDropped = createEvent(this, "kup-calendar-eventdrop", 6);
14056
- this.kupCalendarViewChanged = createEvent(this, "kup-calendar-viewchange", 6);
14306
+ this.kupCalendarEventClick = createEvent(this, "kup-calendar-eventclick", 6);
14307
+ this.kupCalendarDateClick = createEvent(this, "kup-calendar-dateclick", 6);
14308
+ this.kupCalendarEventDrop = createEvent(this, "kup-calendar-eventdrop", 6);
14309
+ this.kupCalendarViewChange = createEvent(this, "kup-calendar-viewchange", 6);
14057
14310
  /*-------------------------------------------------*/
14058
14311
  /* P r o p s */
14059
14312
  /*-------------------------------------------------*/
14313
+ /**
14314
+ * Sets the initial date of the calendar. Must be in ISO format (YYYY-MM-DD).
14315
+ * @default null
14316
+ */
14317
+ this.currentDate = null;
14060
14318
  /**
14061
14319
  * Custom style of the component.
14062
14320
  * @default ""
@@ -14068,51 +14326,11 @@ let KupCalendar = class {
14068
14326
  * @default null
14069
14327
  */
14070
14328
  this.data = null;
14071
- /**
14072
- * Column containing events' dates.
14073
- * @default null
14074
- */
14075
- this.dateCol = null;
14076
- /**
14077
- * Column containing events' descriptions.
14078
- * @default null
14079
- */
14080
- this.descrCol = null;
14081
- /**
14082
- * Column containing events' ending time.
14083
- * @default null
14084
- */
14085
- this.endCol = null;
14086
14329
  /**
14087
14330
  * When disabled, the navigation toolbar won't be displayed.
14088
14331
  * @default false
14089
14332
  */
14090
14333
  this.hideNavigation = false;
14091
- /**
14092
- * Column containing events' icons. There can be multiple icons, divided by ";".
14093
- * @default null
14094
- */
14095
- this.iconCol = null;
14096
- /**
14097
- * Column containing events' images. There can be multiple images, divided by ";".
14098
- * @default null
14099
- */
14100
- this.imageCol = null;
14101
- /**
14102
- * Sets the initial date of the calendar. Must be in ISO format (YYYY-MM-DD).
14103
- * @default null
14104
- */
14105
- this.initialDate = null;
14106
- /**
14107
- * Column containing events' starting time.
14108
- * @default null
14109
- */
14110
- this.startCol = null;
14111
- /**
14112
- * Column containing events' CSS styles.
14113
- * @default null
14114
- */
14115
- this.styleCol = null;
14116
14334
  /**
14117
14335
  * Type of the view.
14118
14336
  * @default KupCalendarViewTypes.MONTH
@@ -14122,6 +14340,142 @@ let KupCalendar = class {
14122
14340
  this.kupManager = kupManagerInstance();
14123
14341
  this.navTitle = null;
14124
14342
  this.resizeTimeout = null;
14343
+ this.dateCol = null;
14344
+ this.descrCol = null;
14345
+ this.endCol = null;
14346
+ this.iconCol = null;
14347
+ this.imageCol = null;
14348
+ this.startCol = null;
14349
+ this.styleCol = null;
14350
+ }
14351
+ /*-------------------------------------------------*/
14352
+ /* W a t c h e r s */
14353
+ /*-------------------------------------------------*/
14354
+ setCalendarData() {
14355
+ if (this.calendar) {
14356
+ this.calendar.destroy();
14357
+ }
14358
+ for (let index = 0; this.data && this.data.columns && index < this.data.columns.length; index++) {
14359
+ const column = this.data.columns[index];
14360
+ switch (column.calendarOption) {
14361
+ case KupCalendarOptions.DATE:
14362
+ this.dateCol = column.name;
14363
+ break;
14364
+ case KupCalendarOptions.DESCR:
14365
+ this.descrCol = column.name;
14366
+ break;
14367
+ case KupCalendarOptions.END:
14368
+ this.endCol = column.name;
14369
+ break;
14370
+ case KupCalendarOptions.ICON:
14371
+ this.iconCol = column.name;
14372
+ break;
14373
+ case KupCalendarOptions.IMAGE:
14374
+ this.imageCol = column.name;
14375
+ break;
14376
+ case KupCalendarOptions.START:
14377
+ this.startCol = column.name;
14378
+ break;
14379
+ case KupCalendarOptions.STYLE:
14380
+ this.styleCol = column.name;
14381
+ break;
14382
+ }
14383
+ }
14384
+ this.calendar = new Calendar(this.calendarContainer, {
14385
+ dateClick: ({ date }) => {
14386
+ this.kupCalendarDateClick.emit({
14387
+ comp: this,
14388
+ id: this.rootElement.id,
14389
+ date: date,
14390
+ });
14391
+ },
14392
+ editable: true,
14393
+ eventClick: ({ event }) => {
14394
+ this.kupCalendarEventClick.emit({
14395
+ comp: this,
14396
+ id: this.rootElement.id,
14397
+ row: event.extendedProps.row,
14398
+ });
14399
+ },
14400
+ eventDidMount: (info) => {
14401
+ if (this.iconCol) {
14402
+ const row = info.event.extendedProps.row;
14403
+ const cell = row.cells[this.iconCol];
14404
+ if (cell && cell.value) {
14405
+ const wrapper = document.createElement('div');
14406
+ wrapper.classList.add('icon-wrapper');
14407
+ cell.value.split(';').forEach((icon) => {
14408
+ const span = document.createElement('span');
14409
+ span.className = 'custom-icon';
14410
+ const path = getAssetPath(`./assets/svg/${icon}.svg`);
14411
+ span.style.mask = `url('${path}') no-repeat center`;
14412
+ span.style.webkitMask = `url('${path}') no-repeat center`;
14413
+ wrapper.appendChild(span);
14414
+ });
14415
+ info.el.appendChild(wrapper);
14416
+ }
14417
+ }
14418
+ if (this.imageCol) {
14419
+ const row = info.event.extendedProps.row;
14420
+ const cell = row.cells[this.imageCol];
14421
+ if (cell && cell.value) {
14422
+ const wrapper = document.createElement('div');
14423
+ wrapper.classList.add('image-wrapper');
14424
+ cell.value.split(';').forEach((icon) => {
14425
+ const img = document.createElement('img');
14426
+ img.src = icon;
14427
+ wrapper.appendChild(img);
14428
+ });
14429
+ info.el.appendChild(wrapper);
14430
+ }
14431
+ }
14432
+ if (this.styleCol) {
14433
+ const row = info.event.extendedProps.row;
14434
+ const cell = row.cells[this.styleCol];
14435
+ const eventCell = info.el.children[0];
14436
+ const parent = eventCell.parentElement;
14437
+ if (cell && cell.style) {
14438
+ Object.keys(cell.style).forEach((k) => {
14439
+ parent.style[k] = cell.style[k];
14440
+ });
14441
+ }
14442
+ }
14443
+ },
14444
+ eventDrop: ({ event, oldEvent }) => {
14445
+ this.kupCalendarEventDrop.emit({
14446
+ comp: this,
14447
+ id: this.rootElement.id,
14448
+ fromDate: {
14449
+ start: oldEvent.start,
14450
+ end: oldEvent.end,
14451
+ },
14452
+ toDate: {
14453
+ start: event.start,
14454
+ end: event.end,
14455
+ },
14456
+ });
14457
+ },
14458
+ events: this.getEvents(),
14459
+ headerToolbar: false,
14460
+ initialDate: this.currentDate,
14461
+ initialView: this.viewType,
14462
+ locale: this.getLocale(),
14463
+ locales: [
14464
+ esLocale,
14465
+ frLocale,
14466
+ itLocale,
14467
+ plLocale,
14468
+ ruLocale,
14469
+ zhLocale,
14470
+ ],
14471
+ plugins: [
14472
+ main$3,
14473
+ main$2,
14474
+ main$1,
14475
+ main,
14476
+ ],
14477
+ });
14478
+ this.calendar.render();
14125
14479
  }
14126
14480
  /*-------------------------------------------------*/
14127
14481
  /* P u b l i c M e t h o d s */
@@ -14204,9 +14558,9 @@ let KupCalendar = class {
14204
14558
  for (const key in KupCalendarViewTypes) {
14205
14559
  const view = KupCalendarViewTypes[key];
14206
14560
  const chipData = {
14207
- value: key,
14208
- label: this.kupManager.language.translate(KupLanguageGeneric[key]),
14209
14561
  checked: this.viewType === view ? true : false,
14562
+ value: this.kupManager.language.translate(KupLanguageGeneric[key]),
14563
+ id: key,
14210
14564
  };
14211
14565
  props.data.push(chipData);
14212
14566
  props.onClick.push(() => this.changeView(view));
@@ -14267,7 +14621,7 @@ let KupCalendar = class {
14267
14621
  const to = this.kupManager.dates
14268
14622
  .subtract(this.calendar.view.currentEnd, 1, 'day')
14269
14623
  .toDate();
14270
- this.kupCalendarViewChanged.emit({
14624
+ this.kupCalendarViewChange.emit({
14271
14625
  comp: this,
14272
14626
  id: this.rootElement.id,
14273
14627
  from: this.calendar.view.currentStart,
@@ -14285,105 +14639,13 @@ let KupCalendar = class {
14285
14639
  /* L i f e c y c l e H o o k s */
14286
14640
  /*-------------------------------------------------*/
14287
14641
  componentWillLoad() {
14642
+ this.kupManager.dates.register(this);
14288
14643
  this.kupManager.debug.logLoad(this, false);
14289
14644
  this.kupManager.language.register(this);
14290
14645
  this.kupManager.theme.register(this);
14291
14646
  }
14292
14647
  componentDidLoad() {
14293
- this.calendar = new Calendar(this.calendarContainer, {
14294
- dateClick: ({ date }) => {
14295
- this.kupCalendarDateClicked.emit({
14296
- comp: this,
14297
- id: this.rootElement.id,
14298
- date: date,
14299
- });
14300
- },
14301
- editable: true,
14302
- eventClick: ({ event }) => {
14303
- this.kupCalendarEventClicked.emit({
14304
- comp: this,
14305
- id: this.rootElement.id,
14306
- row: event.extendedProps.row,
14307
- });
14308
- },
14309
- eventDidMount: (info) => {
14310
- if (this.styleCol) {
14311
- const row = info.event.extendedProps.row;
14312
- const cell = row.cells[this.styleCol];
14313
- const eventCell = info.el.children[0];
14314
- if (cell && cell.style) {
14315
- Object.keys(cell.style).forEach((k) => {
14316
- eventCell.style[k] = cell.style[k];
14317
- });
14318
- }
14319
- }
14320
- if (this.iconCol) {
14321
- const row = info.event.extendedProps.row;
14322
- const cell = row.cells[this.iconCol];
14323
- if (cell && cell.value) {
14324
- const wrapper = document.createElement('div');
14325
- wrapper.classList.add('icon-wrapper');
14326
- cell.value.split(';').forEach((icon) => {
14327
- const span = document.createElement('span');
14328
- span.className = 'custom-icon';
14329
- const path = getAssetPath(`./assets/svg/${icon}.svg`);
14330
- span.style.mask = `url('${path}') no-repeat center`;
14331
- span.style.webkitMask = `url('${path}') no-repeat center`;
14332
- wrapper.appendChild(span);
14333
- });
14334
- info.el.appendChild(wrapper);
14335
- }
14336
- }
14337
- if (this.imageCol) {
14338
- const row = info.event.extendedProps.row;
14339
- const cell = row.cells[this.imageCol];
14340
- if (cell && cell.value) {
14341
- const wrapper = document.createElement('div');
14342
- wrapper.classList.add('image-wrapper');
14343
- cell.value.split(';').forEach((icon) => {
14344
- const img = document.createElement('img');
14345
- img.src = icon;
14346
- wrapper.appendChild(img);
14347
- });
14348
- info.el.appendChild(wrapper);
14349
- }
14350
- }
14351
- },
14352
- eventDrop: ({ event, oldEvent }) => {
14353
- this.kupCalendarEventDropped.emit({
14354
- comp: this,
14355
- id: this.rootElement.id,
14356
- fromDate: {
14357
- start: oldEvent.start,
14358
- end: oldEvent.end,
14359
- },
14360
- toDate: {
14361
- start: event.start,
14362
- end: event.end,
14363
- },
14364
- });
14365
- },
14366
- events: this.getEvents(),
14367
- headerToolbar: false,
14368
- initialDate: this.initialDate,
14369
- initialView: this.viewType,
14370
- locale: this.getLocale(),
14371
- locales: [
14372
- esLocale,
14373
- frLocale,
14374
- itLocale,
14375
- plLocale,
14376
- ruLocale,
14377
- zhLocale,
14378
- ],
14379
- plugins: [
14380
- main$3,
14381
- main$2,
14382
- main$1,
14383
- main,
14384
- ],
14385
- });
14386
- this.calendar.render();
14648
+ this.setCalendarData();
14387
14649
  this.updateCalendar();
14388
14650
  this.kupManager.resize.observe(this.rootElement);
14389
14651
  this.kupManager.debug.logLoad(this, true);
@@ -14406,11 +14668,16 @@ let KupCalendar = class {
14406
14668
  if (this.calendar) {
14407
14669
  this.calendar.destroy();
14408
14670
  }
14671
+ this.kupManager.dates.unregister(this);
14409
14672
  this.kupManager.language.unregister(this);
14410
14673
  this.kupManager.resize.unobserve(this.rootElement);
14411
14674
  this.kupManager.theme.unregister(this);
14412
14675
  }
14413
14676
  get rootElement() { return getElement(this); }
14677
+ static get watchers() { return {
14678
+ "data": ["setCalendarData"],
14679
+ "currentDate": ["setCalendarData"]
14680
+ }; }
14414
14681
  };
14415
14682
  KupCalendar.style = kupCalendarCss;
14416
14683