@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
@@ -2,22 +2,22 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-0416afab.js');
6
- const tslib_es6 = require('./tslib.es6-4360c099.js');
7
- const kupManager = require('./kup-manager-1a2688ca.js');
8
- const cellUtils = require('./cell-utils-dc0884a3.js');
5
+ const index = require('./index-ab119fad.js');
6
+ const tslib_es6 = require('./tslib.es6-0ee02c67.js');
7
+ const kupManager = require('./kup-manager-5877b2ee.js');
8
+ const cellUtils = require('./cell-utils-9b1d6563.js');
9
9
  const GenericVariables = require('./GenericVariables-9cd88034.js');
10
- const fButton = require('./f-button-2ba74fb5.js');
11
- const utils = require('./utils-0cc466b9.js');
12
- const fChip = require('./f-chip-90d95d22.js');
10
+ const fButton = require('./f-button-02a7cde4.js');
11
+ const utils = require('./utils-1b5c8c70.js');
12
+ const fChip = require('./f-chip-a50b9f00.js');
13
13
  require('./f-button-declarations-76b4fb4c.js');
14
- require('./f-image-d3bd4e08.js');
14
+ require('./f-image-db55ac49.js');
15
15
 
16
- 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;
16
+ 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;
17
17
 
18
- 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;}
18
+ 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;}
19
19
 
20
- 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;};
20
+ 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;};
21
21
 
22
22
  var globalObj = typeof globalThis !== 'undefined' ? globalThis : window; // // TODO: streamline when killing IE11 support
23
23
  if (globalObj.FullCalendarVDom) {
@@ -110,7 +110,7 @@ var flushToDom = FullCalendarVDom.flushToDom;
110
110
  var unmountComponentAtNode = FullCalendarVDom.unmountComponentAtNode;
111
111
 
112
112
  /*!
113
- FullCalendar v5.9.0
113
+ FullCalendar v5.10.1
114
114
  Docs & License: https://fullcalendar.io/
115
115
  (c) 2021 Adam Shaw
116
116
  */
@@ -234,6 +234,12 @@ function getEventTargetViaRoot(ev) {
234
234
  function getElRoot(el) {
235
235
  return el.getRootNode ? el.getRootNode() : document;
236
236
  }
237
+ // Unique ID for DOM attribute
238
+ var guid$1 = 0;
239
+ function getUniqueDomId() {
240
+ guid$1 += 1;
241
+ return 'fc-dom-' + guid$1;
242
+ }
237
243
 
238
244
  // Stops a mouse/touch event from doing it's native browser action
239
245
  function preventDefault(ev) {
@@ -293,6 +299,22 @@ function whenTransitionDone(el, callback) {
293
299
  el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes
294
300
  });
295
301
  }
302
+ // ARIA workarounds
303
+ // ----------------------------------------------------------------------------------------------------------------
304
+ function createAriaClickAttrs(handler) {
305
+ return tslib_es6.__assign({ onClick: handler }, createAriaKeyboardAttrs(handler));
306
+ }
307
+ function createAriaKeyboardAttrs(handler) {
308
+ return {
309
+ tabIndex: 0,
310
+ onKeyDown: function (ev) {
311
+ if (ev.key === 'Enter' || ev.key === ' ') {
312
+ handler(ev);
313
+ ev.preventDefault(); // if space, don't scroll down page
314
+ }
315
+ },
316
+ };
317
+ }
296
318
 
297
319
  var guidNumber = 0;
298
320
  function guid() {
@@ -393,6 +415,15 @@ function padStart(val, len) {
393
415
  var s = String(val);
394
416
  return '000'.substr(0, len - s.length) + s;
395
417
  }
418
+ function formatWithOrdinals(formatter, args, fallbackText) {
419
+ if (typeof formatter === 'function') {
420
+ return formatter.apply(void 0, args);
421
+ }
422
+ if (typeof formatter === 'string') { // non-blank string
423
+ return args.reduce(function (str, arg, index) { return (str.replace('$' + index, arg || '')); }, formatter);
424
+ }
425
+ return fallbackText;
426
+ }
396
427
  /* Number Utilities
397
428
  ----------------------------------------------------------------------------------------------------------------------*/
398
429
  function compareNumbers(a, b) {
@@ -1167,7 +1198,7 @@ function buildFormattingFunc(standardDateProps, extendedSettings, context) {
1167
1198
  return function (date) { return (formatTimeZoneOffset(date.timeZoneOffset)); };
1168
1199
  }
1169
1200
  if (standardDatePropCnt === 0 && extendedSettings.week) {
1170
- return function (date) { return (formatWeekNumber(context.computeWeekNumber(date.marker), context.weekText, context.locale, extendedSettings.week)); };
1201
+ return function (date) { return (formatWeekNumber(context.computeWeekNumber(date.marker), context.weekText, context.weekTextLong, context.locale, extendedSettings.week)); };
1171
1202
  }
1172
1203
  return buildNativeFormattingFunc(standardDateProps, extendedSettings, context);
1173
1204
  }
@@ -1259,15 +1290,17 @@ function injectTzoStr(s, tzoStr) {
1259
1290
  }
1260
1291
  return s;
1261
1292
  }
1262
- function formatWeekNumber(num, weekText, locale, display) {
1293
+ function formatWeekNumber(num, weekText, weekTextLong, locale, display) {
1263
1294
  var parts = [];
1264
- if (display === 'narrow') {
1295
+ if (display === 'long') {
1296
+ parts.push(weekTextLong);
1297
+ }
1298
+ else if (display === 'short' || display === 'narrow') {
1265
1299
  parts.push(weekText);
1266
1300
  }
1267
- else if (display === 'short') {
1268
- parts.push(weekText, ' ');
1301
+ if (display === 'long' || display === 'short') {
1302
+ parts.push(' ');
1269
1303
  }
1270
- // otherwise, considered 'numeric'
1271
1304
  parts.push(locale.simpleNumberFormat.format(num));
1272
1305
  if (locale.options.direction === 'rtl') { // TODO: use control characters instead?
1273
1306
  parts.reverse();
@@ -1489,6 +1522,7 @@ var BASE_OPTION_REFINERS = {
1489
1522
  displayEventTime: Boolean,
1490
1523
  displayEventEnd: Boolean,
1491
1524
  weekText: String,
1525
+ weekTextLong: String,
1492
1526
  progressiveEventRendering: Boolean,
1493
1527
  businessHours: identity,
1494
1528
  initialDate: identity,
@@ -1542,6 +1576,7 @@ var BASE_OPTION_REFINERS = {
1542
1576
  eventTimeFormat: createFormatter,
1543
1577
  rerenderDelay: Number,
1544
1578
  moreLinkText: identity,
1579
+ moreLinkHint: identity,
1545
1580
  selectMinDistance: Number,
1546
1581
  selectable: Boolean,
1547
1582
  selectLongPressDelay: Number,
@@ -1563,8 +1598,14 @@ var BASE_OPTION_REFINERS = {
1563
1598
  validRange: identity,
1564
1599
  visibleRange: identity,
1565
1600
  titleFormat: identity,
1601
+ eventInteractive: Boolean,
1566
1602
  // only used by list-view, but languages define the value, so we need it in base options
1567
1603
  noEventsText: String,
1604
+ viewHint: identity,
1605
+ navLinkHint: identity,
1606
+ closeHint: String,
1607
+ timeHint: String,
1608
+ eventHint: String,
1568
1609
  moreLinkClick: identity,
1569
1610
  moreLinkClassNames: identity,
1570
1611
  moreLinkContent: identity,
@@ -1653,6 +1694,7 @@ var CALENDAR_LISTENER_REFINERS = {
1653
1694
  // -------------------------
1654
1695
  var CALENDAR_OPTION_REFINERS = {
1655
1696
  buttonText: identity,
1697
+ buttonHints: identity,
1656
1698
  views: identity,
1657
1699
  plugins: identity,
1658
1700
  initialEvents: identity,
@@ -1663,6 +1705,7 @@ var COMPLEX_OPTION_COMPARATORS = {
1663
1705
  headerToolbar: isBoolComplexEqual,
1664
1706
  footerToolbar: isBoolComplexEqual,
1665
1707
  buttonText: isBoolComplexEqual,
1708
+ buttonHints: isBoolComplexEqual,
1666
1709
  buttonIcons: isBoolComplexEqual,
1667
1710
  };
1668
1711
  function isBoolComplexEqual(a, b) {
@@ -1878,6 +1921,7 @@ var EVENT_NON_DATE_REFINERS = {
1878
1921
  groupId: String,
1879
1922
  title: String,
1880
1923
  url: String,
1924
+ interactive: Boolean,
1881
1925
  };
1882
1926
  var EVENT_DATE_REFINERS = {
1883
1927
  start: identity,
@@ -1930,6 +1974,7 @@ function parseEventDef(refined, extra, sourceId, allDay, hasEnd, context) {
1930
1974
  sourceId: sourceId,
1931
1975
  allDay: allDay,
1932
1976
  hasEnd: hasEnd,
1977
+ interactive: refined.interactive,
1933
1978
  ui: createEventUi(refined, context),
1934
1979
  extendedProps: tslib_es6.__assign(tslib_es6.__assign({}, (refined.extendedProps || {})), extra),
1935
1980
  };
@@ -2389,6 +2434,34 @@ function buildEventRangeKey(eventRange) {
2389
2434
  : eventRange.def.defId + ":" + eventRange.range.start.toISOString();
2390
2435
  // inverse-background events don't have specific instances. TODO: better solution
2391
2436
  }
2437
+ function getSegAnchorAttrs(seg, context) {
2438
+ var _a = seg.eventRange, def = _a.def, instance = _a.instance;
2439
+ var url = def.url;
2440
+ if (url) {
2441
+ return { href: url };
2442
+ }
2443
+ var emitter = context.emitter, options = context.options;
2444
+ var eventInteractive = options.eventInteractive;
2445
+ if (eventInteractive == null) {
2446
+ eventInteractive = def.interactive;
2447
+ if (eventInteractive == null) {
2448
+ eventInteractive = Boolean(emitter.hasHandlers('eventClick'));
2449
+ }
2450
+ }
2451
+ // mock what happens in EventClicking
2452
+ if (eventInteractive) {
2453
+ // only attach keyboard-related handlers because click handler is already done in EventClicking
2454
+ return createAriaKeyboardAttrs(function (ev) {
2455
+ emitter.trigger('eventClick', {
2456
+ el: ev.target,
2457
+ event: new EventApi(context, def, instance),
2458
+ jsEvent: ev,
2459
+ view: context.viewApi,
2460
+ });
2461
+ });
2462
+ }
2463
+ return {};
2464
+ }
2392
2465
 
2393
2466
  var STANDARD_PROPS = {
2394
2467
  start: identity,
@@ -2863,7 +2936,7 @@ var CalendarApi = /** @class */ (function () {
2863
2936
  // Preference is given to views that have corresponding buttons.
2864
2937
  CalendarApi.prototype.getUnitViewSpec = function (unit) {
2865
2938
  var _a = this.getCurrentData(), viewSpecs = _a.viewSpecs, toolbarConfig = _a.toolbarConfig;
2866
- var viewTypes = [].concat(toolbarConfig.viewsWithButtons);
2939
+ var viewTypes = [].concat(toolbarConfig.header ? toolbarConfig.header.viewsWithButtons : [], toolbarConfig.footer ? toolbarConfig.footer.viewsWithButtons : []);
2867
2940
  var i;
2868
2941
  var spec;
2869
2942
  for (var viewType in viewSpecs) {
@@ -3667,6 +3740,7 @@ var DateEnv = /** @class */ (function () {
3667
3740
  this.weekNumberFunc = settings.weekNumberCalculation;
3668
3741
  }
3669
3742
  this.weekText = settings.weekText != null ? settings.weekText : settings.locale.options.weekText;
3743
+ this.weekTextLong = (settings.weekTextLong != null ? settings.weekTextLong : settings.locale.options.weekTextLong) || this.weekText;
3670
3744
  this.cmdFormatter = settings.cmdFormatter;
3671
3745
  this.defaultSeparator = settings.defaultSeparator;
3672
3746
  }
@@ -3969,7 +4043,7 @@ var DateEnv = /** @class */ (function () {
3969
4043
 
3970
4044
  var globalLocales = [];
3971
4045
 
3972
- var RAW_EN_LOCALE = {
4046
+ var MINIMAL_RAW_EN_LOCALE = {
3973
4047
  code: 'en',
3974
4048
  week: {
3975
4049
  dow: 0,
@@ -3989,15 +4063,33 @@ var RAW_EN_LOCALE = {
3989
4063
  list: 'list',
3990
4064
  },
3991
4065
  weekText: 'W',
4066
+ weekTextLong: 'Week',
4067
+ closeHint: 'Close',
4068
+ timeHint: 'Time',
4069
+ eventHint: 'Event',
3992
4070
  allDayText: 'all-day',
3993
4071
  moreLinkText: 'more',
3994
4072
  noEventsText: 'No events to display',
3995
4073
  };
4074
+ var RAW_EN_LOCALE = tslib_es6.__assign(tslib_es6.__assign({}, MINIMAL_RAW_EN_LOCALE), {
4075
+ // Includes things we don't want other locales to inherit,
4076
+ // things that derive from other translatable strings.
4077
+ buttonHints: {
4078
+ prev: 'Previous $0',
4079
+ next: 'Next $0',
4080
+ today: function (buttonText, unit) {
4081
+ return (unit === 'day')
4082
+ ? 'Today'
4083
+ : "This " + buttonText;
4084
+ },
4085
+ }, viewHint: '$0 view', navLinkHint: 'Go to $0', moreLinkHint: function (eventCnt) {
4086
+ return "Show " + eventCnt + " more event" + (eventCnt === 1 ? '' : 's');
4087
+ } });
3996
4088
  function organizeRawLocales(explicitRawLocales) {
3997
4089
  var defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en';
3998
4090
  var allRawLocales = globalLocales.concat(explicitRawLocales);
3999
4091
  var rawLocaleMap = {
4000
- en: RAW_EN_LOCALE, // necessary?
4092
+ en: RAW_EN_LOCALE,
4001
4093
  };
4002
4094
  for (var _i = 0, allRawLocales_1 = allRawLocales; _i < allRawLocales_1.length; _i++) {
4003
4095
  var rawLocale = allRawLocales_1[_i];
@@ -4032,7 +4124,7 @@ function queryRawLocale(codes, available) {
4032
4124
  return null;
4033
4125
  }
4034
4126
  function parseLocale(codeArg, codes, raw) {
4035
- var merged = mergeProps([RAW_EN_LOCALE, raw], ['buttonText']);
4127
+ var merged = mergeProps([MINIMAL_RAW_EN_LOCALE, raw], ['buttonText']);
4036
4128
  delete merged.code; // don't want this part of the options
4037
4129
  var week = merged.week;
4038
4130
  delete merged.week;
@@ -4317,12 +4409,33 @@ function getDayClassNames(meta, theme) {
4317
4409
  return classNames;
4318
4410
  }
4319
4411
 
4320
- function buildNavLinkData(date, type) {
4321
- if (type === void 0) { type = 'day'; }
4322
- return JSON.stringify({
4323
- date: formatDayString(date),
4324
- type: type,
4325
- });
4412
+ var DAY_FORMAT = createFormatter({ year: 'numeric', month: 'long', day: 'numeric' });
4413
+ var WEEK_FORMAT = createFormatter({ week: 'long' });
4414
+ function buildNavLinkAttrs(context, dateMarker, viewType, isTabbable) {
4415
+ if (viewType === void 0) { viewType = 'day'; }
4416
+ if (isTabbable === void 0) { isTabbable = true; }
4417
+ var dateEnv = context.dateEnv, options = context.options, calendarApi = context.calendarApi;
4418
+ var dateStr = dateEnv.format(dateMarker, viewType === 'week' ? WEEK_FORMAT : DAY_FORMAT);
4419
+ if (options.navLinks) {
4420
+ var zonedDate = dateEnv.toDate(dateMarker);
4421
+ var handleInteraction = function (ev) {
4422
+ var customAction = viewType === 'day' ? options.navLinkDayClick :
4423
+ viewType === 'week' ? options.navLinkWeekClick : null;
4424
+ if (typeof customAction === 'function') {
4425
+ customAction.call(calendarApi, dateEnv.toDate(dateMarker), ev);
4426
+ }
4427
+ else {
4428
+ if (typeof customAction === 'string') {
4429
+ viewType = customAction;
4430
+ }
4431
+ calendarApi.zoomTo(dateMarker, viewType);
4432
+ }
4433
+ };
4434
+ return tslib_es6.__assign({ title: formatWithOrdinals(options.navLinkHint, [dateStr, zonedDate], dateStr), 'data-navlink': '' }, (isTabbable
4435
+ ? createAriaClickAttrs(handleInteraction)
4436
+ : { onClick: handleInteraction }));
4437
+ }
4438
+ return { 'aria-label': dateStr };
4326
4439
  }
4327
4440
 
4328
4441
  var _isRtlScrollbarOnLeft = null;
@@ -4527,8 +4640,8 @@ var Emitter = /** @class */ (function () {
4527
4640
  }
4528
4641
  };
4529
4642
  Emitter.prototype.hasHandlers = function (type) {
4530
- return (this.handlers[type] && this.handlers[type].length) ||
4531
- (this.options && this.options[type]);
4643
+ return Boolean((this.handlers[type] && this.handlers[type].length) ||
4644
+ (this.options && this.options[type]));
4532
4645
  };
4533
4646
  return Emitter;
4534
4647
  }());
@@ -5409,6 +5522,20 @@ function buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionO
5409
5522
  }
5410
5523
  return null;
5411
5524
  };
5525
+ var queryButtonTitle = function (optionsSubset) {
5526
+ var buttonHints = optionsSubset.buttonHints || {};
5527
+ var buttonKey = viewDef.defaults.buttonTextKey; // use same key as text
5528
+ if (buttonKey != null && buttonHints[buttonKey] != null) {
5529
+ return buttonHints[buttonKey];
5530
+ }
5531
+ if (buttonHints[viewDef.type] != null) {
5532
+ return buttonHints[viewDef.type];
5533
+ }
5534
+ if (buttonHints[singleUnit] != null) {
5535
+ return buttonHints[singleUnit];
5536
+ }
5537
+ return null;
5538
+ };
5412
5539
  return {
5413
5540
  type: viewDef.type,
5414
5541
  component: viewDef.component,
@@ -5423,7 +5550,15 @@ function buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionO
5423
5550
  buttonTextDefault: queryButtonText(localeDefaults) ||
5424
5551
  viewDef.defaults.buttonText ||
5425
5552
  queryButtonText(BASE_OPTION_DEFAULTS) ||
5426
- viewDef.type, // fall back to given view name
5553
+ viewDef.type,
5554
+ // not DRY
5555
+ buttonTitleOverride: queryButtonTitle(dynamicOptionOverrides) ||
5556
+ queryButtonTitle(optionOverrides) ||
5557
+ viewDef.overrides.buttonHint,
5558
+ buttonTitleDefault: queryButtonTitle(localeDefaults) ||
5559
+ viewDef.defaults.buttonHint ||
5560
+ queryButtonTitle(BASE_OPTION_DEFAULTS),
5561
+ // will eventually fall back to buttonText
5427
5562
  };
5428
5563
  }
5429
5564
  // hack to get memoization working
@@ -6114,25 +6249,41 @@ function reduceEventResize(currentResize, action) {
6114
6249
  }
6115
6250
 
6116
6251
  function parseToolbars(calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {
6117
- var viewsWithButtons = [];
6118
- var headerToolbar = calendarOptions.headerToolbar ? parseToolbar(calendarOptions.headerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi, viewsWithButtons) : null;
6119
- var footerToolbar = calendarOptions.footerToolbar ? parseToolbar(calendarOptions.footerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi, viewsWithButtons) : null;
6120
- return { headerToolbar: headerToolbar, footerToolbar: footerToolbar, viewsWithButtons: viewsWithButtons };
6252
+ var header = calendarOptions.headerToolbar ? parseToolbar(calendarOptions.headerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;
6253
+ var footer = calendarOptions.footerToolbar ? parseToolbar(calendarOptions.footerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;
6254
+ return { header: header, footer: footer };
6121
6255
  }
6122
- function parseToolbar(sectionStrHash, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi, viewsWithButtons) {
6123
- return mapHash(sectionStrHash, function (sectionStr) { return parseSection(sectionStr, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi, viewsWithButtons); });
6256
+ function parseToolbar(sectionStrHash, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {
6257
+ var sectionWidgets = {};
6258
+ var viewsWithButtons = [];
6259
+ var hasTitle = false;
6260
+ for (var sectionName in sectionStrHash) {
6261
+ var sectionStr = sectionStrHash[sectionName];
6262
+ var sectionRes = parseSection(sectionStr, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi);
6263
+ sectionWidgets[sectionName] = sectionRes.widgets;
6264
+ viewsWithButtons.push.apply(viewsWithButtons, sectionRes.viewsWithButtons);
6265
+ hasTitle = hasTitle || sectionRes.hasTitle;
6266
+ }
6267
+ return { sectionWidgets: sectionWidgets, viewsWithButtons: viewsWithButtons, hasTitle: hasTitle };
6124
6268
  }
6125
6269
  /*
6126
6270
  BAD: querying icons and text here. should be done at render time
6127
6271
  */
6128
- function parseSection(sectionStr, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi, viewsWithButtons) {
6272
+ function parseSection(sectionStr, calendarOptions, // defaults+overrides, then refined
6273
+ calendarOptionOverrides, // overrides only!, unrefined :(
6274
+ theme, viewSpecs, calendarApi) {
6129
6275
  var isRtl = calendarOptions.direction === 'rtl';
6130
6276
  var calendarCustomButtons = calendarOptions.customButtons || {};
6131
6277
  var calendarButtonTextOverrides = calendarOptionOverrides.buttonText || {};
6132
6278
  var calendarButtonText = calendarOptions.buttonText || {};
6279
+ var calendarButtonHintOverrides = calendarOptionOverrides.buttonHints || {};
6280
+ var calendarButtonHints = calendarOptions.buttonHints || {};
6133
6281
  var sectionSubstrs = sectionStr ? sectionStr.split(' ') : [];
6134
- return sectionSubstrs.map(function (buttonGroupStr) { return (buttonGroupStr.split(',').map(function (buttonName) {
6282
+ var viewsWithButtons = [];
6283
+ var hasTitle = false;
6284
+ var widgets = sectionSubstrs.map(function (buttonGroupStr) { return (buttonGroupStr.split(',').map(function (buttonName) {
6135
6285
  if (buttonName === 'title') {
6286
+ hasTitle = true;
6136
6287
  return { buttonName: buttonName };
6137
6288
  }
6138
6289
  var customButtonProps;
@@ -6140,6 +6291,8 @@ function parseSection(sectionStr, calendarOptions, calendarOptionOverrides, them
6140
6291
  var buttonClick;
6141
6292
  var buttonIcon; // only one of these will be set
6142
6293
  var buttonText; // "
6294
+ var buttonHint;
6295
+ // ^ for the title="" attribute, for accessibility
6143
6296
  if ((customButtonProps = calendarCustomButtons[buttonName])) {
6144
6297
  buttonClick = function (ev) {
6145
6298
  if (customButtonProps.click) {
@@ -6149,6 +6302,7 @@ function parseSection(sectionStr, calendarOptions, calendarOptionOverrides, them
6149
6302
  (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) ||
6150
6303
  (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||
6151
6304
  (buttonText = customButtonProps.text);
6305
+ buttonHint = customButtonProps.hint || customButtonProps.text;
6152
6306
  }
6153
6307
  else if ((viewSpec = viewSpecs[buttonName])) {
6154
6308
  viewsWithButtons.push(buttonName);
@@ -6158,6 +6312,12 @@ function parseSection(sectionStr, calendarOptions, calendarOptionOverrides, them
6158
6312
  (buttonText = viewSpec.buttonTextOverride) ||
6159
6313
  (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||
6160
6314
  (buttonText = viewSpec.buttonTextDefault);
6315
+ var textFallback = viewSpec.buttonTextOverride ||
6316
+ viewSpec.buttonTextDefault;
6317
+ buttonHint = formatWithOrdinals(viewSpec.buttonTitleOverride ||
6318
+ viewSpec.buttonTitleDefault ||
6319
+ calendarOptions.viewHint, [textFallback, buttonName], // view-name = buttonName
6320
+ textFallback);
6161
6321
  }
6162
6322
  else if (calendarApi[buttonName]) { // a calendarApi method
6163
6323
  buttonClick = function () {
@@ -6165,11 +6325,26 @@ function parseSection(sectionStr, calendarOptions, calendarOptionOverrides, them
6165
6325
  };
6166
6326
  (buttonText = calendarButtonTextOverrides[buttonName]) ||
6167
6327
  (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||
6168
- (buttonText = calendarButtonText[buttonName]);
6169
- // ^ everything else is considered default
6328
+ (buttonText = calendarButtonText[buttonName]); // everything else is considered default
6329
+ if (buttonName === 'prevYear' || buttonName === 'nextYear') {
6330
+ var prevOrNext = buttonName === 'prevYear' ? 'prev' : 'next';
6331
+ buttonHint = formatWithOrdinals(calendarButtonHintOverrides[prevOrNext] ||
6332
+ calendarButtonHints[prevOrNext], [
6333
+ calendarButtonText.year || 'year',
6334
+ 'year',
6335
+ ], calendarButtonText[buttonName]);
6336
+ }
6337
+ else {
6338
+ buttonHint = function (navUnit) { return formatWithOrdinals(calendarButtonHintOverrides[buttonName] ||
6339
+ calendarButtonHints[buttonName], [
6340
+ calendarButtonText[navUnit] || navUnit,
6341
+ navUnit,
6342
+ ], calendarButtonText[buttonName]); };
6343
+ }
6170
6344
  }
6171
- return { buttonName: buttonName, buttonClick: buttonClick, buttonIcon: buttonIcon, buttonText: buttonText };
6345
+ return { buttonName: buttonName, buttonClick: buttonClick, buttonIcon: buttonIcon, buttonText: buttonText, buttonHint: buttonHint };
6172
6346
  })); });
6347
+ return { widgets: widgets, viewsWithButtons: viewsWithButtons, hasTitle: hasTitle };
6173
6348
  }
6174
6349
 
6175
6350
  var eventSourceDef$2 = {
@@ -6474,8 +6649,8 @@ var globalPlugins = [
6474
6649
  function (state) { return computeEventSourcesLoading(state.eventSources); },
6475
6650
  ],
6476
6651
  contentTypeHandlers: {
6477
- html: function () { return ({ render: injectHtml }); },
6478
- domNodes: function () { return ({ render: injectDomNodes }); },
6652
+ html: buildHtmlRenderer,
6653
+ domNodes: buildDomNodeRenderer,
6479
6654
  },
6480
6655
  propSetHandlers: {
6481
6656
  dateProfile: handleDateProfile,
@@ -6483,19 +6658,45 @@ var globalPlugins = [
6483
6658
  },
6484
6659
  }),
6485
6660
  ];
6486
- function injectHtml(el, html) {
6487
- el.innerHTML = html;
6661
+ function buildHtmlRenderer() {
6662
+ var currentEl = null;
6663
+ var currentHtml = '';
6664
+ function render(el, html) {
6665
+ if (el !== currentEl || html !== currentHtml) {
6666
+ el.innerHTML = html;
6667
+ }
6668
+ currentEl = el;
6669
+ currentHtml = html;
6670
+ }
6671
+ function destroy() {
6672
+ currentEl.innerHTML = '';
6673
+ currentEl = null;
6674
+ currentHtml = '';
6675
+ }
6676
+ return { render: render, destroy: destroy };
6488
6677
  }
6489
- function injectDomNodes(el, domNodes) {
6490
- var oldNodes = Array.prototype.slice.call(el.childNodes); // TODO: use array util
6491
- var newNodes = Array.prototype.slice.call(domNodes); // TODO: use array util
6492
- if (!isArraysEqual(oldNodes, newNodes)) {
6493
- for (var _i = 0, newNodes_1 = newNodes; _i < newNodes_1.length; _i++) {
6494
- var newNode = newNodes_1[_i];
6495
- el.appendChild(newNode);
6678
+ function buildDomNodeRenderer() {
6679
+ var currentEl = null;
6680
+ var currentDomNodes = [];
6681
+ function render(el, domNodes) {
6682
+ var newDomNodes = Array.prototype.slice.call(domNodes);
6683
+ if (el !== currentEl || !isArraysEqual(currentDomNodes, newDomNodes)) {
6684
+ // append first, remove second (for scroll resetting)
6685
+ for (var _i = 0, newDomNodes_1 = newDomNodes; _i < newDomNodes_1.length; _i++) {
6686
+ var newNode = newDomNodes_1[_i];
6687
+ el.appendChild(newNode);
6688
+ }
6689
+ destroy();
6496
6690
  }
6497
- oldNodes.forEach(removeElement);
6691
+ currentEl = el;
6692
+ currentDomNodes = newDomNodes;
6693
+ }
6694
+ function destroy() {
6695
+ currentDomNodes.forEach(removeElement);
6696
+ currentDomNodes = [];
6697
+ currentEl = null;
6498
6698
  }
6699
+ return { render: render, destroy: destroy };
6499
6700
  }
6500
6701
 
6501
6702
  var DelayedRunner = /** @class */ (function () {
@@ -7429,21 +7630,21 @@ var ToolbarSection = /** @class */ (function (_super) {
7429
7630
  var isOnlyButtons = true;
7430
7631
  for (var _i = 0, widgetGroup_1 = widgetGroup; _i < widgetGroup_1.length; _i++) {
7431
7632
  var widget = widgetGroup_1[_i];
7432
- var buttonName = widget.buttonName, buttonClick = widget.buttonClick, buttonText = widget.buttonText, buttonIcon = widget.buttonIcon;
7633
+ var buttonName = widget.buttonName, buttonClick = widget.buttonClick, buttonText = widget.buttonText, buttonIcon = widget.buttonIcon, buttonHint = widget.buttonHint;
7433
7634
  if (buttonName === 'title') {
7434
7635
  isOnlyButtons = false;
7435
- children.push(createElement("h2", { className: "fc-toolbar-title" }, props.title));
7636
+ children.push(createElement("h2", { className: "fc-toolbar-title", id: props.titleId }, props.title));
7436
7637
  }
7437
7638
  else {
7438
- var ariaAttrs = buttonIcon ? { 'aria-label': buttonName } : {};
7439
- var buttonClasses = ["fc-" + buttonName + "-button", theme.getClass('button')];
7440
- if (buttonName === props.activeButton) {
7441
- buttonClasses.push(theme.getClass('buttonActive'));
7442
- }
7639
+ var isPressed = buttonName === props.activeButton;
7443
7640
  var isDisabled = (!props.isTodayEnabled && buttonName === 'today') ||
7444
7641
  (!props.isPrevEnabled && buttonName === 'prev') ||
7445
7642
  (!props.isNextEnabled && buttonName === 'next');
7446
- children.push(createElement("button", tslib_es6.__assign({ disabled: isDisabled, className: buttonClasses.join(' '), onClick: buttonClick, type: "button" }, ariaAttrs), buttonText || (buttonIcon ? createElement("span", { className: buttonIcon }) : '')));
7643
+ var buttonClasses = ["fc-" + buttonName + "-button", theme.getClass('button')];
7644
+ if (isPressed) {
7645
+ buttonClasses.push(theme.getClass('buttonActive'));
7646
+ }
7647
+ 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 }) : '')));
7447
7648
  }
7448
7649
  }
7449
7650
  if (children.length > 1) {
@@ -7465,20 +7666,21 @@ var Toolbar = /** @class */ (function (_super) {
7465
7666
  var forceLtr = false;
7466
7667
  var startContent;
7467
7668
  var endContent;
7468
- var centerContent = model.center;
7469
- if (model.left) {
7669
+ var sectionWidgets = model.sectionWidgets;
7670
+ var centerContent = sectionWidgets.center;
7671
+ if (sectionWidgets.left) {
7470
7672
  forceLtr = true;
7471
- startContent = model.left;
7673
+ startContent = sectionWidgets.left;
7472
7674
  }
7473
7675
  else {
7474
- startContent = model.start;
7676
+ startContent = sectionWidgets.start;
7475
7677
  }
7476
- if (model.right) {
7678
+ if (sectionWidgets.right) {
7477
7679
  forceLtr = true;
7478
- endContent = model.right;
7680
+ endContent = sectionWidgets.right;
7479
7681
  }
7480
7682
  else {
7481
- endContent = model.end;
7683
+ endContent = sectionWidgets.end;
7482
7684
  }
7483
7685
  var classNames = [
7484
7686
  extraClassName || '',
@@ -7492,7 +7694,7 @@ var Toolbar = /** @class */ (function (_super) {
7492
7694
  };
7493
7695
  Toolbar.prototype.renderSection = function (key, widgetGroups) {
7494
7696
  var props = this.props;
7495
- return (createElement(ToolbarSection, { key: key, widgetGroups: widgetGroups, title: props.title, activeButton: props.activeButton, isTodayEnabled: props.isTodayEnabled, isPrevEnabled: props.isPrevEnabled, isNextEnabled: props.isNextEnabled }));
7697
+ 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 }));
7496
7698
  };
7497
7699
  return Toolbar;
7498
7700
  }(BaseComponent));
@@ -7541,7 +7743,7 @@ var ViewContainer = /** @class */ (function (_super) {
7541
7743
  else {
7542
7744
  height = props.height || '';
7543
7745
  }
7544
- return (createElement("div", { ref: this.handleEl, onClick: props.onClick, className: classNames.join(' '), style: { height: height, paddingBottom: paddingBottom } }, props.children));
7746
+ return (createElement("div", { "aria-labelledby": props.labeledById, ref: this.handleEl, className: classNames.join(' '), style: { height: height, paddingBottom: paddingBottom } }, props.children));
7545
7747
  };
7546
7748
  ViewContainer.prototype.componentDidMount = function () {
7547
7749
  this.context.addResizeHandler(this.handleResize);
@@ -7650,10 +7852,13 @@ var CalendarContent = /** @class */ (function (_super) {
7650
7852
  _this.buildViewContext = memoize(buildViewContext);
7651
7853
  _this.buildViewPropTransformers = memoize(buildViewPropTransformers);
7652
7854
  _this.buildToolbarProps = memoize(buildToolbarProps);
7653
- _this.handleNavLinkClick = buildDelegationHandler('a[data-navlink]', _this._handleNavLinkClick.bind(_this));
7654
7855
  _this.headerRef = createRef();
7655
7856
  _this.footerRef = createRef();
7656
7857
  _this.interactionsStore = {};
7858
+ // eslint-disable-next-line
7859
+ _this.state = {
7860
+ viewLabelId: getUniqueDomId(),
7861
+ };
7657
7862
  // Component Registration
7658
7863
  // -----------------------------------------------------------------------------------------------------------------
7659
7864
  _this.registerInteractiveComponent = function (component, settingsInput) {
@@ -7715,12 +7920,15 @@ var CalendarContent = /** @class */ (function (_super) {
7715
7920
  viewAspectRatio = Math.max(options.aspectRatio, 0.5); // prevent from getting too tall
7716
7921
  }
7717
7922
  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);
7923
+ var viewLabelId = (toolbarConfig.header && toolbarConfig.header.hasTitle)
7924
+ ? this.state.viewLabelId
7925
+ : '';
7718
7926
  return (createElement(ViewContextType.Provider, { value: viewContext },
7719
- toolbarConfig.headerToolbar && (createElement(Toolbar, tslib_es6.__assign({ ref: this.headerRef, extraClassName: "fc-header-toolbar", model: toolbarConfig.headerToolbar }, toolbarProps))),
7720
- createElement(ViewContainer, { liquid: viewVGrow, height: viewHeight, aspectRatio: viewAspectRatio, onClick: this.handleNavLinkClick },
7927
+ toolbarConfig.header && (createElement(Toolbar, tslib_es6.__assign({ ref: this.headerRef, extraClassName: "fc-header-toolbar", model: toolbarConfig.header, titleId: viewLabelId }, toolbarProps))),
7928
+ createElement(ViewContainer, { liquid: viewVGrow, height: viewHeight, aspectRatio: viewAspectRatio, labeledById: viewLabelId },
7721
7929
  this.renderView(props),
7722
7930
  this.buildAppendContent()),
7723
- toolbarConfig.footerToolbar && (createElement(Toolbar, tslib_es6.__assign({ ref: this.footerRef, extraClassName: "fc-footer-toolbar", model: toolbarConfig.footerToolbar }, toolbarProps)))));
7931
+ toolbarConfig.footer && (createElement(Toolbar, tslib_es6.__assign({ ref: this.footerRef, extraClassName: "fc-footer-toolbar", model: toolbarConfig.footer, titleId: "" }, toolbarProps)))));
7724
7932
  };
7725
7933
  CalendarContent.prototype.componentDidMount = function () {
7726
7934
  var props = this.props;
@@ -7750,24 +7958,6 @@ var CalendarContent = /** @class */ (function (_super) {
7750
7958
  }
7751
7959
  this.props.emitter.trigger('_unmount');
7752
7960
  };
7753
- CalendarContent.prototype._handleNavLinkClick = function (ev, anchorEl) {
7754
- var _a = this.props, dateEnv = _a.dateEnv, options = _a.options, calendarApi = _a.calendarApi;
7755
- var navLinkOptions = anchorEl.getAttribute('data-navlink');
7756
- navLinkOptions = navLinkOptions ? JSON.parse(navLinkOptions) : {};
7757
- var dateMarker = dateEnv.createMarker(navLinkOptions.date);
7758
- var viewType = navLinkOptions.type;
7759
- var customAction = viewType === 'day' ? options.navLinkDayClick :
7760
- viewType === 'week' ? options.navLinkWeekClick : null;
7761
- if (typeof customAction === 'function') {
7762
- customAction.call(calendarApi, dateEnv.toDate(dateMarker), ev);
7763
- }
7764
- else {
7765
- if (typeof customAction === 'string') {
7766
- viewType = customAction;
7767
- }
7768
- calendarApi.zoomTo(dateMarker, viewType);
7769
- }
7770
- };
7771
7961
  CalendarContent.prototype.buildAppendContent = function () {
7772
7962
  var props = this.props;
7773
7963
  var children = props.pluginHooks.viewContainerAppends.map(function (buildAppendContent) { return buildAppendContent(props); });
@@ -7806,6 +7996,7 @@ function buildToolbarProps(viewSpec, dateProfile, dateProfileGenerator, currentD
7806
7996
  return {
7807
7997
  title: title,
7808
7998
  activeButton: viewSpec.type,
7999
+ navUnit: viewSpec.singleUnit,
7809
8000
  isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now),
7810
8001
  isPrevEnabled: prevInfo.isValid,
7811
8002
  isNextEnabled: nextInfo.isValid,
@@ -7893,11 +8084,11 @@ var TableDateCell = /** @class */ (function (_super) {
7893
8084
  var classNames = [CLASS_NAME].concat(getDayClassNames(dayMeta, theme));
7894
8085
  var text = dateEnv.format(date, props.dayHeaderFormat);
7895
8086
  // if colCnt is 1, we are already in a day-view and don't need a navlink
7896
- var navLinkAttrs = (options.navLinks && !dayMeta.isDisabled && props.colCnt > 1)
7897
- ? { 'data-navlink': buildNavLinkData(date), tabIndex: 0 }
8087
+ var navLinkAttrs = (!dayMeta.isDisabled && props.colCnt > 1)
8088
+ ? buildNavLinkAttrs(this.context, date)
7898
8089
  : {};
7899
8090
  var hookProps = tslib_es6.__assign(tslib_es6.__assign(tslib_es6.__assign({ date: dateEnv.toDate(date), view: viewApi }, props.extraHookProps), { text: text }), dayMeta);
7900
- 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", tslib_es6.__assign({ ref: rootElRef, className: classNames.concat(customClassNames).join(' '), "data-date": !dayMeta.isDisabled ? formatDayString(date) : undefined, colSpan: props.colSpan }, props.extraDataAttrs),
8091
+ 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", tslib_es6.__assign({ ref: rootElRef, role: "columnheader", className: classNames.concat(customClassNames).join(' '), "data-date": !dayMeta.isDisabled ? formatDayString(date) : undefined, colSpan: props.colSpan }, props.extraDataAttrs),
7901
8092
  createElement("div", { className: "fc-scrollgrid-sync-inner" }, !dayMeta.isDisabled && (createElement("a", tslib_es6.__assign({ ref: innerElRef, className: [
7902
8093
  'fc-col-header-cell-cushion',
7903
8094
  props.isSticky ? 'fc-sticky' : '',
@@ -7906,6 +8097,7 @@ var TableDateCell = /** @class */ (function (_super) {
7906
8097
  return TableDateCell;
7907
8098
  }(BaseComponent));
7908
8099
 
8100
+ var WEEKDAY_FORMAT = createFormatter({ weekday: 'long' });
7909
8101
  var TableDowCell = /** @class */ (function (_super) {
7910
8102
  tslib_es6.__extends(TableDowCell, _super);
7911
8103
  function TableDowCell() {
@@ -7927,9 +8119,9 @@ var TableDowCell = /** @class */ (function (_super) {
7927
8119
  var text = dateEnv.format(date, props.dayHeaderFormat);
7928
8120
  var hookProps = tslib_es6.__assign(tslib_es6.__assign(tslib_es6.__assign(tslib_es6.__assign({ // TODO: make this public?
7929
8121
  date: date }, dateMeta), { view: viewApi }), props.extraHookProps), { text: text });
7930
- 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", tslib_es6.__assign({ ref: rootElRef, className: classNames.concat(customClassNames).join(' '), colSpan: props.colSpan }, props.extraDataAttrs),
8122
+ 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", tslib_es6.__assign({ ref: rootElRef, role: "columnheader", className: classNames.concat(customClassNames).join(' '), colSpan: props.colSpan }, props.extraDataAttrs),
7931
8123
  createElement("div", { className: "fc-scrollgrid-sync-inner" },
7932
- createElement("a", { className: [
8124
+ createElement("a", { "aria-label": dateEnv.format(date, WEEKDAY_FORMAT), className: [
7933
8125
  'fc-col-header-cell-cushion',
7934
8126
  props.isSticky ? 'fc-sticky' : '',
7935
8127
  ].join(' '), ref: innerElRef }, innerContent)))); }));
@@ -8011,7 +8203,7 @@ var DayHeader = /** @class */ (function (_super) {
8011
8203
  var context = this.context;
8012
8204
  var _a = this.props, dates = _a.dates, dateProfile = _a.dateProfile, datesRepDistinctDays = _a.datesRepDistinctDays, renderIntro = _a.renderIntro;
8013
8205
  var dayHeaderFormat = this.createDayHeaderFormatter(context.options.dayHeaderFormat, datesRepDistinctDays, dates.length);
8014
- return (createElement(NowTimer, { unit: "day" }, function (nowDate, todayRange) { return (createElement("tr", null,
8206
+ return (createElement(NowTimer, { unit: "day" }, function (nowDate, todayRange) { return (createElement("tr", { role: "row" },
8015
8207
  renderIntro && renderIntro('day'),
8016
8208
  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 }))); }))); }));
8017
8209
  };
@@ -8655,11 +8847,12 @@ function getAllowYScrolling(props, sectionConfig) {
8655
8847
  getSectionHasLiquidHeight(props, sectionConfig); // if the section is liquid height, it might condense enough to require scrollbars
8656
8848
  }
8657
8849
  // TODO: ONLY use `arg`. force out internal function to use same API
8658
- function renderChunkContent(sectionConfig, chunkConfig, arg) {
8850
+ function renderChunkContent(sectionConfig, chunkConfig, arg, isHeader) {
8659
8851
  var expandRows = arg.expandRows;
8660
8852
  var content = typeof chunkConfig.content === 'function' ?
8661
8853
  chunkConfig.content(arg) :
8662
8854
  createElement('table', {
8855
+ role: 'presentation',
8663
8856
  className: [
8664
8857
  chunkConfig.tableClassName,
8665
8858
  sectionConfig.syncRowHeights ? 'fc-scrollgrid-sync-table' : '',
@@ -8669,7 +8862,11 @@ function renderChunkContent(sectionConfig, chunkConfig, arg) {
8669
8862
  width: arg.clientWidth,
8670
8863
  height: expandRows ? arg.clientHeight : '', // css `height` on a <table> serves as a min-height
8671
8864
  },
8672
- }, arg.tableColGroupNode, createElement('tbody', {}, typeof chunkConfig.rowContent === 'function' ? chunkConfig.rowContent(arg) : chunkConfig.rowContent));
8865
+ }, arg.tableColGroupNode, createElement(isHeader ? 'thead' : 'tbody', {
8866
+ role: 'presentation',
8867
+ }, typeof chunkConfig.rowContent === 'function'
8868
+ ? chunkConfig.rowContent(arg)
8869
+ : chunkConfig.rowContent));
8673
8870
  return content;
8674
8871
  }
8675
8872
  function isColPropsEqual(cols0, cols1) {
@@ -8791,15 +8988,15 @@ var SimpleScrollGrid = /** @class */ (function (_super) {
8791
8988
  var bodySectionNodes = [];
8792
8989
  var footSectionNodes = [];
8793
8990
  while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'header') {
8794
- headSectionNodes.push(this.renderSection(currentConfig, microColGroupNode));
8991
+ headSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));
8795
8992
  configI += 1;
8796
8993
  }
8797
8994
  while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'body') {
8798
- bodySectionNodes.push(this.renderSection(currentConfig, microColGroupNode));
8995
+ bodySectionNodes.push(this.renderSection(currentConfig, microColGroupNode, false));
8799
8996
  configI += 1;
8800
8997
  }
8801
8998
  while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'footer') {
8802
- footSectionNodes.push(this.renderSection(currentConfig, microColGroupNode));
8999
+ footSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));
8803
9000
  configI += 1;
8804
9001
  }
8805
9002
  // firefox bug: when setting height on table and there is a thead or tfoot,
@@ -8807,18 +9004,20 @@ var SimpleScrollGrid = /** @class */ (function (_super) {
8807
9004
  // use getCanVGrowWithinCell as a way to detect table-stupid firefox.
8808
9005
  // if so, use a simpler dom structure, jam everything into a lone tbody.
8809
9006
  var isBuggy = !getCanVGrowWithinCell();
9007
+ var roleAttrs = { role: 'rowgroup' };
8810
9008
  return createElement('table', {
9009
+ role: 'grid',
8811
9010
  className: classNames.join(' '),
8812
9011
  style: { height: props.height },
8813
- }, Boolean(!isBuggy && headSectionNodes.length) && createElement.apply(void 0, tslib_es6.__spreadArray(['thead', {}], headSectionNodes)), Boolean(!isBuggy && bodySectionNodes.length) && createElement.apply(void 0, tslib_es6.__spreadArray(['tbody', {}], bodySectionNodes)), Boolean(!isBuggy && footSectionNodes.length) && createElement.apply(void 0, tslib_es6.__spreadArray(['tfoot', {}], footSectionNodes)), isBuggy && createElement.apply(void 0, tslib_es6.__spreadArray(tslib_es6.__spreadArray(tslib_es6.__spreadArray(['tbody', {}], headSectionNodes), bodySectionNodes), footSectionNodes)));
9012
+ }, Boolean(!isBuggy && headSectionNodes.length) && createElement.apply(void 0, tslib_es6.__spreadArray(['thead', roleAttrs], headSectionNodes)), Boolean(!isBuggy && bodySectionNodes.length) && createElement.apply(void 0, tslib_es6.__spreadArray(['tbody', roleAttrs], bodySectionNodes)), Boolean(!isBuggy && footSectionNodes.length) && createElement.apply(void 0, tslib_es6.__spreadArray(['tfoot', roleAttrs], footSectionNodes)), isBuggy && createElement.apply(void 0, tslib_es6.__spreadArray(tslib_es6.__spreadArray(tslib_es6.__spreadArray(['tbody', roleAttrs], headSectionNodes), bodySectionNodes), footSectionNodes)));
8814
9013
  };
8815
- SimpleScrollGrid.prototype.renderSection = function (sectionConfig, microColGroupNode) {
9014
+ SimpleScrollGrid.prototype.renderSection = function (sectionConfig, microColGroupNode, isHeader) {
8816
9015
  if ('outerContent' in sectionConfig) {
8817
9016
  return (createElement(Fragment, { key: sectionConfig.key }, sectionConfig.outerContent));
8818
9017
  }
8819
- return (createElement("tr", { key: sectionConfig.key, className: getSectionClassNames(sectionConfig, this.props.liquid).join(' ') }, this.renderChunkTd(sectionConfig, microColGroupNode, sectionConfig.chunk)));
9018
+ return (createElement("tr", { key: sectionConfig.key, role: "presentation", className: getSectionClassNames(sectionConfig, this.props.liquid).join(' ') }, this.renderChunkTd(sectionConfig, microColGroupNode, sectionConfig.chunk, isHeader)));
8820
9019
  };
8821
- SimpleScrollGrid.prototype.renderChunkTd = function (sectionConfig, microColGroupNode, chunkConfig) {
9020
+ SimpleScrollGrid.prototype.renderChunkTd = function (sectionConfig, microColGroupNode, chunkConfig, isHeader) {
8822
9021
  if ('outerContent' in chunkConfig) {
8823
9022
  return chunkConfig.outerContent;
8824
9023
  }
@@ -8842,11 +9041,13 @@ var SimpleScrollGrid = /** @class */ (function (_super) {
8842
9041
  syncRowHeights: false,
8843
9042
  rowSyncHeights: [],
8844
9043
  reportRowHeightChange: function () { },
8845
- });
8846
- return (createElement("td", { ref: chunkConfig.elRef },
8847
- createElement("div", { className: "fc-scroller-harness" + (isLiquid ? ' fc-scroller-harness-liquid' : '') },
8848
- 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
8849
- : true }, content))));
9044
+ }, isHeader);
9045
+ return createElement(isHeader ? 'th' : 'td', {
9046
+ ref: chunkConfig.elRef,
9047
+ role: 'presentation',
9048
+ }, createElement("div", { className: "fc-scroller-harness" + (isLiquid ? ' fc-scroller-harness-liquid' : '') },
9049
+ 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
9050
+ : true }, content)));
8850
9051
  };
8851
9052
  SimpleScrollGrid.prototype._handleScrollerEl = function (scrollerEl, key) {
8852
9053
  var section = getSectionByKey(this.props.sections, key);
@@ -8978,7 +9179,7 @@ var StandardEvent = /** @class */ (function (_super) {
8978
9179
  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", tslib_es6.__assign({ className: props.extraClassNames.concat(classNames).join(' '), style: {
8979
9180
  borderColor: hookProps.borderColor,
8980
9181
  backgroundColor: hookProps.backgroundColor,
8981
- }, ref: rootElRef }, getSegAnchorAttrs$1(seg)),
9182
+ }, ref: rootElRef }, getSegAnchorAttrs(seg, context)),
8982
9183
  createElement("div", { className: "fc-event-main", ref: innerElRef, style: { color: hookProps.textColor } }, innerContent),
8983
9184
  hookProps.isStartResizable &&
8984
9185
  createElement("div", { className: "fc-event-resizer fc-event-resizer-start" }),
@@ -8993,10 +9194,6 @@ function renderInnerContent$1$1(innerProps) {
8993
9194
  createElement("div", { className: "fc-event-title-container" },
8994
9195
  createElement("div", { className: "fc-event-title fc-sticky" }, innerProps.event.title || createElement(Fragment, null, "\u00A0")))));
8995
9196
  }
8996
- function getSegAnchorAttrs$1(seg) {
8997
- var url = seg.eventRange.def.url;
8998
- return url ? { href: url } : {};
8999
- }
9000
9197
 
9001
9198
  var NowIndicatorRoot = function (props) { return (createElement(ViewContextType.Consumer, null, function (context) {
9002
9199
  var options = context.options;
@@ -9096,6 +9293,9 @@ var Popover = /** @class */ (function (_super) {
9096
9293
  tslib_es6.__extends(Popover, _super);
9097
9294
  function Popover() {
9098
9295
  var _this = _super !== null && _super.apply(this, arguments) || this;
9296
+ _this.state = {
9297
+ titleId: getUniqueDomId(),
9298
+ };
9099
9299
  _this.handleRootEl = function (el) {
9100
9300
  _this.rootEl = el;
9101
9301
  if (_this.props.elRef) {
@@ -9103,13 +9303,18 @@ var Popover = /** @class */ (function (_super) {
9103
9303
  }
9104
9304
  };
9105
9305
  // Triggered when the user clicks *anywhere* in the document, for the autoHide feature
9106
- _this.handleDocumentMousedown = function (ev) {
9306
+ _this.handleDocumentMouseDown = function (ev) {
9107
9307
  // only hide the popover if the click happened outside the popover
9108
9308
  var target = getEventTargetViaRoot(ev);
9109
9309
  if (!_this.rootEl.contains(target)) {
9110
9310
  _this.handleCloseClick();
9111
9311
  }
9112
9312
  };
9313
+ _this.handleDocumentKeyDown = function (ev) {
9314
+ if (ev.key === 'Escape') {
9315
+ _this.handleCloseClick();
9316
+ }
9317
+ };
9113
9318
  _this.handleCloseClick = function () {
9114
9319
  var onClose = _this.props.onClose;
9115
9320
  if (onClose) {
@@ -9119,24 +9324,26 @@ var Popover = /** @class */ (function (_super) {
9119
9324
  return _this;
9120
9325
  }
9121
9326
  Popover.prototype.render = function () {
9122
- var theme = this.context.theme;
9123
- var props = this.props;
9327
+ var _a = this.context, theme = _a.theme, options = _a.options;
9328
+ var _b = this, props = _b.props, state = _b.state;
9124
9329
  var classNames = [
9125
9330
  'fc-popover',
9126
9331
  theme.getClass('popover'),
9127
9332
  ].concat(props.extraClassNames || []);
9128
- return createPortal(createElement("div", tslib_es6.__assign({ className: classNames.join(' ') }, props.extraAttrs, { ref: this.handleRootEl }),
9333
+ return createPortal(createElement("div", tslib_es6.__assign({ id: props.id, className: classNames.join(' '), "aria-labelledby": state.titleId }, props.extraAttrs, { ref: this.handleRootEl }),
9129
9334
  createElement("div", { className: 'fc-popover-header ' + theme.getClass('popoverHeader') },
9130
- createElement("span", { className: "fc-popover-title" }, props.title),
9131
- createElement("span", { className: 'fc-popover-close ' + theme.getIconClass('close'), onClick: this.handleCloseClick })),
9335
+ createElement("span", { className: "fc-popover-title", id: state.titleId }, props.title),
9336
+ createElement("span", { className: 'fc-popover-close ' + theme.getIconClass('close'), title: options.closeHint, onClick: this.handleCloseClick })),
9132
9337
  createElement("div", { className: 'fc-popover-body ' + theme.getClass('popoverContent') }, props.children)), props.parentEl);
9133
9338
  };
9134
9339
  Popover.prototype.componentDidMount = function () {
9135
- document.addEventListener('mousedown', this.handleDocumentMousedown);
9340
+ document.addEventListener('mousedown', this.handleDocumentMouseDown);
9341
+ document.addEventListener('keydown', this.handleDocumentKeyDown);
9136
9342
  this.updateSize();
9137
9343
  };
9138
9344
  Popover.prototype.componentWillUnmount = function () {
9139
- document.removeEventListener('mousedown', this.handleDocumentMousedown);
9345
+ document.removeEventListener('mousedown', this.handleDocumentMouseDown);
9346
+ document.removeEventListener('keydown', this.handleDocumentKeyDown);
9140
9347
  };
9141
9348
  Popover.prototype.updateSize = function () {
9142
9349
  var isRtl = this.context.isRtl;
@@ -9187,7 +9394,7 @@ var MorePopover = /** @class */ (function (_super) {
9187
9394
  var props = this.props;
9188
9395
  var startDate = props.startDate, todayRange = props.todayRange, dateProfile = props.dateProfile;
9189
9396
  var title = dateEnv.format(startDate, options.dayPopoverFormat);
9190
- 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 },
9397
+ 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 },
9191
9398
  createElement(DayCellContent, { date: startDate, dateProfile: dateProfile, todayRange: todayRange }, function (innerElRef, innerContent) { return (innerContent &&
9192
9399
  createElement("div", { className: "fc-more-popover-misc", ref: innerElRef }, innerContent)); }),
9193
9400
  props.children)); }));
@@ -9224,6 +9431,7 @@ var MoreLinkRoot = /** @class */ (function (_super) {
9224
9431
  _this.linkElRef = createRef();
9225
9432
  _this.state = {
9226
9433
  isPopoverOpen: false,
9434
+ popoverId: getUniqueDomId(),
9227
9435
  };
9228
9436
  _this.handleClick = function (ev) {
9229
9437
  var _a = _this, props = _a.props, context = _a.context;
@@ -9263,23 +9471,25 @@ var MoreLinkRoot = /** @class */ (function (_super) {
9263
9471
  }
9264
9472
  MoreLinkRoot.prototype.render = function () {
9265
9473
  var _this = this;
9266
- var props = this.props;
9474
+ var _a = this, props = _a.props, state = _a.state;
9267
9475
  return (createElement(ViewContextType.Consumer, null, function (context) {
9268
9476
  var viewApi = context.viewApi, options = context.options, calendarApi = context.calendarApi;
9269
9477
  var moreLinkText = options.moreLinkText;
9270
9478
  var moreCnt = props.moreCnt;
9271
9479
  var range = computeRange(props);
9480
+ var text = typeof moreLinkText === 'function' // TODO: eventually use formatWithOrdinals
9481
+ ? moreLinkText.call(calendarApi, moreCnt)
9482
+ : "+" + moreCnt + " " + moreLinkText;
9483
+ var title = formatWithOrdinals(options.moreLinkHint, [moreCnt], text);
9272
9484
  var hookProps = {
9273
9485
  num: moreCnt,
9274
9486
  shortText: "+" + moreCnt,
9275
- text: typeof moreLinkText === 'function'
9276
- ? moreLinkText.call(calendarApi, moreCnt)
9277
- : "+" + moreCnt + " " + moreLinkText,
9487
+ text: text,
9278
9488
  view: viewApi,
9279
9489
  };
9280
9490
  return (createElement(Fragment, null,
9281
- 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); })),
9282
- _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()))));
9491
+ 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 : ''); })),
9492
+ 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()))));
9283
9493
  }));
9284
9494
  };
9285
9495
  MoreLinkRoot.prototype.componentDidMount = function () {
@@ -9325,7 +9535,7 @@ function pickLatestEnd(seg0, seg1) {
9325
9535
  }
9326
9536
 
9327
9537
  /*!
9328
- FullCalendar v5.9.0
9538
+ FullCalendar v5.10.1
9329
9539
  Docs & License: https://fullcalendar.io/
9330
9540
  (c) 2021 Adam Shaw
9331
9541
  */
@@ -9444,7 +9654,7 @@ var Calendar = /** @class */ (function (_super) {
9444
9654
  }(CalendarApi));
9445
9655
 
9446
9656
  /*!
9447
- FullCalendar v5.9.0
9657
+ FullCalendar v5.10.1
9448
9658
  Docs & License: https://fullcalendar.io/
9449
9659
  (c) 2021 Adam Shaw
9450
9660
  */
@@ -9585,11 +9795,9 @@ var TableCellTop = /** @class */ (function (_super) {
9585
9795
  }
9586
9796
  TableCellTop.prototype.render = function () {
9587
9797
  var props = this.props;
9588
- var navLinkAttrs = this.context.options.navLinks
9589
- ? { 'data-navlink': buildNavLinkData(props.date), tabIndex: 0 }
9590
- : {};
9798
+ var navLinkAttrs = buildNavLinkAttrs(this.context, props.date);
9591
9799
  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 },
9592
- createElement("a", tslib_es6.__assign({ className: "fc-daygrid-day-number" }, navLinkAttrs), innerContent || createElement(Fragment, null, "\u00A0"))))); }));
9800
+ createElement("a", tslib_es6.__assign({ id: props.dayNumberId, className: "fc-daygrid-day-number" }, navLinkAttrs), innerContent || createElement(Fragment, null, "\u00A0"))))); }));
9593
9801
  };
9594
9802
  return TableCellTop;
9595
9803
  }(BaseComponent));
@@ -9635,7 +9843,7 @@ var TableListItemEvent = /** @class */ (function (_super) {
9635
9843
  var timeFormat = context.options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;
9636
9844
  var timeText = buildSegTimeText(props.seg, timeFormat, context, true, props.defaultDisplayEventEnd);
9637
9845
  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!
9638
- createElement("a", tslib_es6.__assign({ className: ['fc-daygrid-event', 'fc-daygrid-dot-event'].concat(classNames).join(' '), ref: rootElRef }, getSegAnchorAttrs(props.seg)), innerContent)); }));
9846
+ createElement("a", tslib_es6.__assign({ className: ['fc-daygrid-event', 'fc-daygrid-dot-event'].concat(classNames).join(' '), ref: rootElRef }, getSegAnchorAttrs(props.seg, context)), innerContent)); }));
9639
9847
  };
9640
9848
  return TableListItemEvent;
9641
9849
  }(BaseComponent));
@@ -9645,10 +9853,6 @@ function renderInnerContent$2(innerProps) {
9645
9853
  innerProps.timeText && (createElement("div", { className: "fc-event-time" }, innerProps.timeText)),
9646
9854
  createElement("div", { className: "fc-event-title" }, innerProps.event.title || createElement(Fragment, null, "\u00A0"))));
9647
9855
  }
9648
- function getSegAnchorAttrs(seg) {
9649
- var url = seg.eventRange.def.url;
9650
- return url ? { href: url } : {};
9651
- }
9652
9856
 
9653
9857
  var TableCellMoreLink = /** @class */ (function (_super) {
9654
9858
  tslib_es6.__extends(TableCellMoreLink, _super);
@@ -9670,7 +9874,7 @@ var TableCellMoreLink = /** @class */ (function (_super) {
9670
9874
  visibility: isForcedInvisible[instanceId] ? 'hidden' : '',
9671
9875
  } }, hasListItemDisplay(seg) ? (createElement(TableListItemEvent, tslib_es6.__assign({ seg: seg, isDragging: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange)))) : (createElement(TableBlockEvent, tslib_es6.__assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange))))));
9672
9876
  })));
9673
- } }, function (rootElRef, classNames, innerElRef, innerContent, handleClick) { return (createElement("a", { ref: rootElRef, className: ['fc-daygrid-more-link'].concat(classNames).join(' '), onClick: handleClick }, innerContent)); }));
9877
+ } }, function (rootElRef, classNames, innerElRef, innerContent, handleClick, title, isExpanded, popoverId) { return (createElement("a", tslib_es6.__assign({ ref: rootElRef, className: ['fc-daygrid-more-link'].concat(classNames).join(' '), title: title, "aria-expanded": isExpanded, "aria-controls": popoverId }, createAriaClickAttrs(handleClick)), innerContent)); }));
9674
9878
  };
9675
9879
  return TableCellMoreLink;
9676
9880
  }(BaseComponent));
@@ -9693,6 +9897,9 @@ var TableCell = /** @class */ (function (_super) {
9693
9897
  function TableCell() {
9694
9898
  var _this = _super !== null && _super.apply(this, arguments) || this;
9695
9899
  _this.rootElRef = createRef();
9900
+ _this.state = {
9901
+ dayNumberId: getUniqueDomId(),
9902
+ };
9696
9903
  _this.handleRootEl = function (el) {
9697
9904
  setRef(_this.rootElRef, el);
9698
9905
  setRef(_this.props.elRef, el);
@@ -9700,16 +9907,13 @@ var TableCell = /** @class */ (function (_super) {
9700
9907
  return _this;
9701
9908
  }
9702
9909
  TableCell.prototype.render = function () {
9703
- var _a = this, props = _a.props, context = _a.context, rootElRef = _a.rootElRef;
9704
- var options = context.options;
9910
+ var _a = this, context = _a.context, props = _a.props, state = _a.state, rootElRef = _a.rootElRef;
9705
9911
  var date = props.date, dateProfile = props.dateProfile;
9706
- var navLinkAttrs = options.navLinks
9707
- ? { 'data-navlink': buildNavLinkData(date, 'week'), tabIndex: 0 }
9708
- : {};
9709
- 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", tslib_es6.__assign({ ref: dayElRef, className: ['fc-daygrid-day'].concat(dayClassNames, props.extraClassNames || []).join(' ') }, rootDataAttrs, props.extraDataAttrs),
9912
+ var navLinkAttrs = buildNavLinkAttrs(context, date, 'week');
9913
+ 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", tslib_es6.__assign({ ref: dayElRef, role: "gridcell", className: ['fc-daygrid-day'].concat(dayClassNames, props.extraClassNames || []).join(' ') }, rootDataAttrs, props.extraDataAttrs, (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})),
9710
9914
  createElement("div", { className: "fc-daygrid-day-frame fc-scrollgrid-sync-inner", ref: props.innerElRef /* different from hook system! RENAME */ },
9711
9915
  props.showWeekNumber && (createElement(WeekNumberRoot, { date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT$1 }, function (weekElRef, weekClassNames, innerElRef, innerContent) { return (createElement("a", tslib_es6.__assign({ ref: weekElRef, className: ['fc-daygrid-week-number'].concat(weekClassNames).join(' ') }, navLinkAttrs), innerContent)); })),
9712
- !isDisabled && (createElement(TableCellTop, { date: date, dateProfile: dateProfile, showDayNumber: props.showDayNumber, forceDayTop: props.forceDayTop, todayRange: props.todayRange, extraHookProps: props.extraHookProps })),
9916
+ !isDisabled && (createElement(TableCellTop, { date: date, dateProfile: dateProfile, showDayNumber: props.showDayNumber, dayNumberId: state.dayNumberId, forceDayTop: props.forceDayTop, todayRange: props.todayRange, extraHookProps: props.extraHookProps })),
9713
9917
  createElement("div", { className: "fc-daygrid-day-events", ref: props.fgContentElRef },
9714
9918
  props.fgContent,
9715
9919
  createElement("div", { className: "fc-daygrid-day-bottom", style: { marginTop: props.moreMarginTop } },
@@ -9983,7 +10187,7 @@ var TableRow = /** @class */ (function (_super) {
9983
10187
  (props.eventDrag && props.eventDrag.affectedInstances) ||
9984
10188
  (props.eventResize && props.eventResize.affectedInstances) ||
9985
10189
  {};
9986
- return (createElement("tr", { ref: this.rootElRef },
10190
+ return (createElement("tr", { ref: this.rootElRef, role: "row" },
9987
10191
  props.renderIntro && props.renderIntro(),
9988
10192
  props.cells.map(function (cell, col) {
9989
10193
  var normalFgNodes = _this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);
@@ -10101,9 +10305,14 @@ var TableRow = /** @class */ (function (_super) {
10101
10305
  });
10102
10306
  }
10103
10307
  }
10308
+ var oldInstanceHeights = this.state.eventInstanceHeights;
10309
+ var newInstanceHeights = this.queryEventInstanceHeights();
10104
10310
  var limitByContentHeight = props.dayMaxEvents === true || props.dayMaxEventRows === true;
10105
10311
  this.setState({
10106
- eventInstanceHeights: this.queryEventInstanceHeights(),
10312
+ // HACK to prevent oscillations of events being shown/hidden from max-event-rows
10313
+ // Essentially, once you compute an element's height, never null-out.
10314
+ // TODO: always display all events, as visibility:hidden?
10315
+ eventInstanceHeights: tslib_es6.__assign(tslib_es6.__assign({}, oldInstanceHeights), newInstanceHeights),
10107
10316
  maxContentHeight: limitByContentHeight ? this.computeMaxContentHeight() : null,
10108
10317
  });
10109
10318
  }
@@ -10215,13 +10424,13 @@ var Table = /** @class */ (function (_super) {
10215
10424
  minWidth: props.tableMinWidth,
10216
10425
  } },
10217
10426
  createElement(NowTimer, { unit: "day" }, function (nowDate, todayRange) { return (createElement(Fragment, null,
10218
- createElement("table", { className: "fc-scrollgrid-sync-table", style: {
10427
+ createElement("table", { role: "presentation", className: "fc-scrollgrid-sync-table", style: {
10219
10428
  width: props.clientWidth,
10220
10429
  minWidth: props.tableMinWidth,
10221
10430
  height: expandRows ? props.clientHeight : '',
10222
10431
  } },
10223
10432
  props.colGroupNode,
10224
- createElement("tbody", null, props.cells.map(function (cells, row) { return (createElement(TableRow, { ref: _this.rowRefs.createRef(row), key: cells.length
10433
+ createElement("tbody", { role: "presentation" }, props.cells.map(function (cells, row) { return (createElement(TableRow, { ref: _this.rowRefs.createRef(row), key: cells.length
10225
10434
  ? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */
10226
10435
  : row // in case there are no cells (like when resource view is loading)
10227
10436
  , 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 })); }))))); })));
@@ -10383,7 +10592,7 @@ var main$3 = createPlugin({
10383
10592
  });
10384
10593
 
10385
10594
  /*!
10386
- FullCalendar v5.9.0
10595
+ FullCalendar v5.10.1
10387
10596
  Docs & License: https://fullcalendar.io/
10388
10597
  (c) 2021 Adam Shaw
10389
10598
  */
@@ -12284,7 +12493,7 @@ var main$2 = createPlugin({
12284
12493
  });
12285
12494
 
12286
12495
  /*!
12287
- FullCalendar v5.9.0
12496
+ FullCalendar v5.10.1
12288
12497
  Docs & License: https://fullcalendar.io/
12289
12498
  (c) 2021 Adam Shaw
12290
12499
  */
@@ -12292,37 +12501,36 @@ Docs & License: https://fullcalendar.io/
12292
12501
  var ListViewHeaderRow = /** @class */ (function (_super) {
12293
12502
  tslib_es6.__extends(ListViewHeaderRow, _super);
12294
12503
  function ListViewHeaderRow() {
12295
- return _super !== null && _super.apply(this, arguments) || this;
12504
+ var _this = _super !== null && _super.apply(this, arguments) || this;
12505
+ _this.state = {
12506
+ textId: getUniqueDomId(),
12507
+ };
12508
+ return _this;
12296
12509
  }
12297
12510
  ListViewHeaderRow.prototype.render = function () {
12298
- var _a = this.props, dayDate = _a.dayDate, todayRange = _a.todayRange;
12299
- var _b = this.context, theme = _b.theme, dateEnv = _b.dateEnv, options = _b.options, viewApi = _b.viewApi;
12511
+ var _a = this.context, theme = _a.theme, dateEnv = _a.dateEnv, options = _a.options, viewApi = _a.viewApi;
12512
+ var _b = this.props, cellId = _b.cellId, dayDate = _b.dayDate, todayRange = _b.todayRange;
12513
+ var textId = this.state.textId;
12300
12514
  var dayMeta = getDateMeta(dayDate, todayRange);
12301
12515
  // will ever be falsy?
12302
12516
  var text = options.listDayFormat ? dateEnv.format(dayDate, options.listDayFormat) : '';
12303
12517
  // will ever be falsy? also, BAD NAME "alt"
12304
12518
  var sideText = options.listDaySideFormat ? dateEnv.format(dayDate, options.listDaySideFormat) : '';
12305
- var navLinkData = options.navLinks
12306
- ? buildNavLinkData(dayDate)
12307
- : null;
12308
- var hookProps = tslib_es6.__assign({ date: dateEnv.toDate(dayDate), view: viewApi, text: text,
12309
- sideText: sideText,
12310
- navLinkData: navLinkData }, dayMeta);
12519
+ var hookProps = tslib_es6.__assign({ date: dateEnv.toDate(dayDate), view: viewApi, textId: textId,
12520
+ text: text,
12521
+ sideText: sideText, navLinkAttrs: buildNavLinkAttrs(this.context, dayDate), sideNavLinkAttrs: buildNavLinkAttrs(this.context, dayDate, 'day', false) }, dayMeta);
12311
12522
  var classNames = ['fc-list-day'].concat(getDayClassNames(dayMeta, theme));
12312
12523
  // TODO: make a reusable HOC for dayHeader (used in daygrid/timegrid too)
12313
12524
  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) },
12314
- createElement("th", { colSpan: 3 },
12525
+ createElement("th", { scope: "colgroup", colSpan: 3, id: cellId, "aria-labelledby": textId },
12315
12526
  createElement("div", { className: 'fc-list-day-cushion ' + theme.getClass('tableCellShaded'), ref: innerElRef }, innerContent)))); }));
12316
12527
  };
12317
12528
  return ListViewHeaderRow;
12318
12529
  }(BaseComponent));
12319
12530
  function renderInnerContent$1(props) {
12320
- var navLinkAttrs = props.navLinkData // is there a type for this?
12321
- ? { 'data-navlink': props.navLinkData, tabIndex: 0 }
12322
- : {};
12323
12531
  return (createElement(Fragment, null,
12324
- props.text && (createElement("a", tslib_es6.__assign({ className: "fc-list-day-text" }, navLinkAttrs), props.text)),
12325
- props.sideText && (createElement("a", tslib_es6.__assign({ className: "fc-list-day-side-text" }, navLinkAttrs), props.sideText))));
12532
+ props.text && (createElement("a", tslib_es6.__assign({ id: props.textId, className: "fc-list-day-text" }, props.navLinkAttrs), props.text)),
12533
+ props.sideText && ( /* not keyboard tabbable */createElement("a", tslib_es6.__assign({ "aria-hidden": true, className: "fc-list-day-side-text" }, props.sideNavLinkAttrs), props.sideText))));
12326
12534
  }
12327
12535
 
12328
12536
  var DEFAULT_TIME_FORMAT$1 = createFormatter({
@@ -12337,24 +12545,22 @@ var ListViewEventRow = /** @class */ (function (_super) {
12337
12545
  }
12338
12546
  ListViewEventRow.prototype.render = function () {
12339
12547
  var _a = this, props = _a.props, context = _a.context;
12340
- var seg = props.seg;
12548
+ var seg = props.seg, timeHeaderId = props.timeHeaderId, eventHeaderId = props.eventHeaderId, dateHeaderId = props.dateHeaderId;
12341
12549
  var timeFormat = context.options.eventTimeFormat || DEFAULT_TIME_FORMAT$1;
12342
12550
  return (createElement(EventRoot, { seg: seg, timeText: "" // BAD. because of all-day content
12343
- , 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 },
12344
- buildTimeContent(seg, timeFormat, context),
12345
- createElement("td", { className: "fc-list-event-graphic" },
12551
+ , 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 },
12552
+ buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId),
12553
+ createElement("td", { "aria-hidden": true, className: "fc-list-event-graphic" },
12346
12554
  createElement("span", { className: "fc-list-event-dot", style: { borderColor: hookProps.borderColor || hookProps.backgroundColor } })),
12347
- createElement("td", { className: "fc-list-event-title", ref: innerElRef }, innerContent))); }));
12555
+ createElement("td", { ref: innerElRef, headers: eventHeaderId + " " + dateHeaderId, className: "fc-list-event-title" }, innerContent))); }));
12348
12556
  };
12349
12557
  return ListViewEventRow;
12350
12558
  }(BaseComponent));
12351
- function renderEventInnerContent(props) {
12352
- var event = props.event;
12353
- var url = event.url;
12354
- var anchorAttrs = url ? { href: url } : {};
12355
- return (createElement("a", tslib_es6.__assign({}, anchorAttrs), event.title));
12559
+ function renderEventInnerContent(seg, context) {
12560
+ var interactiveAttrs = getSegAnchorAttrs(seg, context);
12561
+ return (createElement("a", tslib_es6.__assign({}, interactiveAttrs), seg.eventRange.def.title));
12356
12562
  }
12357
- function buildTimeContent(seg, timeFormat, context) {
12563
+ function buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId) {
12358
12564
  var options = context.options;
12359
12565
  if (options.displayEventTime !== false) {
12360
12566
  var eventDef = seg.eventRange.def;
@@ -12383,7 +12589,7 @@ function buildTimeContent(seg, timeFormat, context) {
12383
12589
  text: context.options.allDayText,
12384
12590
  view: context.viewApi,
12385
12591
  };
12386
- 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)); }));
12592
+ 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)); }));
12387
12593
  }
12388
12594
  return (createElement("td", { className: "fc-list-event-time" }, timeText));
12389
12595
  }
@@ -12402,6 +12608,11 @@ var ListView = /** @class */ (function (_super) {
12402
12608
  var _this = _super !== null && _super.apply(this, arguments) || this;
12403
12609
  _this.computeDateVars = memoize(computeDateVars);
12404
12610
  _this.eventStoreToSegs = memoize(_this._eventStoreToSegs);
12611
+ _this.state = {
12612
+ timeHeaderId: getUniqueDomId(),
12613
+ eventHeaderId: getUniqueDomId(),
12614
+ dateHeaderIdRoot: getUniqueDomId(),
12615
+ };
12405
12616
  _this.setRootEl = function (rootEl) {
12406
12617
  if (rootEl) {
12407
12618
  _this.context.registerInteractiveComponent(_this, {
@@ -12440,23 +12651,30 @@ var ListView = /** @class */ (function (_super) {
12440
12651
  };
12441
12652
  ListView.prototype.renderSegList = function (allSegs, dayDates) {
12442
12653
  var _a = this.context, theme = _a.theme, options = _a.options;
12654
+ var _b = this.state, timeHeaderId = _b.timeHeaderId, eventHeaderId = _b.eventHeaderId, dateHeaderIdRoot = _b.dateHeaderIdRoot;
12443
12655
  var segsByDay = groupSegsByDay(allSegs); // sparse array
12444
12656
  return (createElement(NowTimer, { unit: "day" }, function (nowDate, todayRange) {
12445
12657
  var innerNodes = [];
12446
12658
  for (var dayIndex = 0; dayIndex < segsByDay.length; dayIndex += 1) {
12447
12659
  var daySegs = segsByDay[dayIndex];
12448
12660
  if (daySegs) { // sparse array, so might be undefined
12449
- var dayStr = dayDates[dayIndex].toISOString();
12661
+ var dayStr = formatDayString(dayDates[dayIndex]);
12662
+ var dateHeaderId = dateHeaderIdRoot + '-' + dayStr;
12450
12663
  // append a day header
12451
- innerNodes.push(createElement(ListViewHeaderRow, { key: dayStr, dayDate: dayDates[dayIndex], todayRange: todayRange }));
12664
+ innerNodes.push(createElement(ListViewHeaderRow, { key: dayStr, cellId: dateHeaderId, dayDate: dayDates[dayIndex], todayRange: todayRange }));
12452
12665
  daySegs = sortEventSegs(daySegs, options.eventOrder);
12453
12666
  for (var _i = 0, daySegs_1 = daySegs; _i < daySegs_1.length; _i++) {
12454
12667
  var seg = daySegs_1[_i];
12455
- innerNodes.push(createElement(ListViewEventRow, tslib_es6.__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))));
12668
+ innerNodes.push(createElement(ListViewEventRow, tslib_es6.__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))));
12456
12669
  }
12457
12670
  }
12458
12671
  }
12459
12672
  return (createElement("table", { className: 'fc-list-table ' + theme.getClass('table') },
12673
+ createElement("thead", null,
12674
+ createElement("tr", null,
12675
+ createElement("th", { scope: "col", id: timeHeaderId }, options.timeHint),
12676
+ createElement("th", { scope: "col", "aria-hidden": true }),
12677
+ createElement("th", { scope: "col", id: eventHeaderId }, options.eventHint))),
12460
12678
  createElement("tbody", null, innerNodes)));
12461
12679
  }));
12462
12680
  };
@@ -12586,7 +12804,7 @@ var main$1 = createPlugin({
12586
12804
  });
12587
12805
 
12588
12806
  /*!
12589
- FullCalendar v5.9.0
12807
+ FullCalendar v5.10.1
12590
12808
  Docs & License: https://fullcalendar.io/
12591
12809
  (c) 2021 Adam Shaw
12592
12810
  */
@@ -12696,18 +12914,18 @@ var TimeColsView = /** @class */ (function (_super) {
12696
12914
  var dateProfile = _this.props.dateProfile;
12697
12915
  var range = dateProfile.renderRange;
12698
12916
  var dayCnt = diffDays(range.start, range.end);
12699
- var navLinkAttrs = (options.navLinks && dayCnt === 1) // only do in day views (to avoid doing in week views that dont need it)
12700
- ? { 'data-navlink': buildNavLinkData(range.start, 'week'), tabIndex: 0 }
12917
+ var navLinkAttrs = (dayCnt === 1) // only do in day views (to avoid doing in week views that dont need it)
12918
+ ? buildNavLinkAttrs(_this.context, range.start, 'week')
12701
12919
  : {};
12702
12920
  if (options.weekNumbers && rowKey === 'day') {
12703
- return (createElement(WeekNumberRoot, { date: range.start, defaultFormat: DEFAULT_WEEK_NUM_FORMAT }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement("th", { ref: rootElRef, className: [
12921
+ 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: [
12704
12922
  'fc-timegrid-axis',
12705
12923
  'fc-scrollgrid-shrink',
12706
12924
  ].concat(classNames).join(' ') },
12707
12925
  createElement("div", { className: "fc-timegrid-axis-frame fc-scrollgrid-shrink-frame fc-timegrid-axis-frame-liquid", style: { height: frameHeight } },
12708
12926
  createElement("a", tslib_es6.__assign({ ref: innerElRef, className: "fc-timegrid-axis-cushion fc-scrollgrid-shrink-cushion fc-scrollgrid-sync-inner" }, navLinkAttrs), innerContent)))); }));
12709
12927
  }
12710
- return (createElement("th", { className: "fc-timegrid-axis" },
12928
+ return (createElement("th", { "aria-hidden": true, className: "fc-timegrid-axis" },
12711
12929
  createElement("div", { className: "fc-timegrid-axis-frame", style: { height: frameHeight } })));
12712
12930
  };
12713
12931
  /* Table Component Render Methods
@@ -12722,7 +12940,7 @@ var TimeColsView = /** @class */ (function (_super) {
12722
12940
  };
12723
12941
  return (
12724
12942
  // TODO: make reusable hook. used in list view too
12725
- 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: [
12943
+ 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: [
12726
12944
  'fc-timegrid-axis',
12727
12945
  'fc-scrollgrid-shrink',
12728
12946
  ].concat(classNames).join(' ') },
@@ -12762,7 +12980,7 @@ var TimeColsView = /** @class */ (function (_super) {
12762
12980
  type: 'body',
12763
12981
  key: 'all-day-divider',
12764
12982
  outerContent: ( // TODO: rename to cellContent so don't need to define <tr>?
12765
- createElement("tr", { className: "fc-scrollgrid-section" },
12983
+ createElement("tr", { role: "presentation", className: "fc-scrollgrid-section" },
12766
12984
  createElement("td", { className: 'fc-timegrid-divider ' + context.theme.getClass('tableCellShaded') }))),
12767
12985
  });
12768
12986
  }
@@ -12798,7 +13016,7 @@ var TimeColsView = /** @class */ (function (_super) {
12798
13016
  chunks: [
12799
13017
  {
12800
13018
  key: 'axis',
12801
- rowContent: function (arg) { return (createElement("tr", null, _this.renderHeadAxis('day', arg.rowSyncHeights[0]))); },
13019
+ rowContent: function (arg) { return (createElement("tr", { role: "presentation" }, _this.renderHeadAxis('day', arg.rowSyncHeights[0]))); },
12802
13020
  },
12803
13021
  {
12804
13022
  key: 'cols',
@@ -12817,7 +13035,7 @@ var TimeColsView = /** @class */ (function (_super) {
12817
13035
  chunks: [
12818
13036
  {
12819
13037
  key: 'axis',
12820
- rowContent: function (contentArg) { return (createElement("tr", null, _this.renderTableRowAxis(contentArg.rowSyncHeights[0]))); },
13038
+ rowContent: function (contentArg) { return (createElement("tr", { role: "presentation" }, _this.renderTableRowAxis(contentArg.rowSyncHeights[0]))); },
12821
13039
  },
12822
13040
  {
12823
13041
  key: 'cols',
@@ -12829,7 +13047,7 @@ var TimeColsView = /** @class */ (function (_super) {
12829
13047
  key: 'all-day-divider',
12830
13048
  type: 'body',
12831
13049
  outerContent: ( // TODO: rename to cellContent so don't need to define <tr>?
12832
- createElement("tr", { className: "fc-scrollgrid-section" },
13050
+ createElement("tr", { role: "presentation", className: "fc-scrollgrid-section" },
12833
13051
  createElement("td", { colSpan: 2, className: 'fc-timegrid-divider ' + context.theme.getClass('tableCellShaded') }))),
12834
13052
  });
12835
13053
  }
@@ -12845,7 +13063,7 @@ var TimeColsView = /** @class */ (function (_super) {
12845
13063
  content: function (arg) { return (
12846
13064
  // TODO: make this now-indicator arrow more DRY with TimeColsContent
12847
13065
  createElement("div", { className: "fc-timegrid-axis-chunk" },
12848
- createElement("table", { style: { height: arg.expandRows ? arg.clientHeight : '' } },
13066
+ createElement("table", { "aria-hidden": true, style: { height: arg.expandRows ? arg.clientHeight : '' } },
12849
13067
  arg.tableColGroupNode,
12850
13068
  createElement("tbody", null,
12851
13069
  createElement(TimeBodyAxis, { slatMetas: slatMetas }))),
@@ -13001,8 +13219,8 @@ var TimeColsSlats = /** @class */ (function (_super) {
13001
13219
  }
13002
13220
  TimeColsSlats.prototype.render = function () {
13003
13221
  var _a = this, props = _a.props, context = _a.context;
13004
- return (createElement("div", { className: "fc-timegrid-slots", ref: this.rootElRef },
13005
- createElement("table", { className: context.theme.getClass('table'), style: {
13222
+ return (createElement("div", { ref: this.rootElRef, className: "fc-timegrid-slots" },
13223
+ createElement("table", { "aria-hidden": true, className: context.theme.getClass('table'), style: {
13006
13224
  minWidth: props.tableMinWidth,
13007
13225
  width: props.clientWidth,
13008
13226
  height: props.minHeight,
@@ -13084,10 +13302,10 @@ var TimeColMoreLink = /** @class */ (function (_super) {
13084
13302
  TimeColMoreLink.prototype.render = function () {
13085
13303
  var _this = this;
13086
13304
  var props = this.props;
13087
- 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) {
13305
+ 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) {
13088
13306
  setRef(rootElRef, el);
13089
13307
  setRef(_this.rootElRef, el);
13090
- }, className: ['fc-timegrid-more-link'].concat(classNames).join(' '), style: { top: props.top, bottom: props.bottom }, onClick: handleClick },
13308
+ }, 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 },
13091
13309
  createElement("div", { ref: innerElRef, className: "fc-timegrid-more-link-inner fc-sticky" }, innerContent))); }));
13092
13310
  };
13093
13311
  return TimeColMoreLink;
@@ -13348,7 +13566,7 @@ var TimeCol = /** @class */ (function (_super) {
13348
13566
  (props.eventResize && props.eventResize.affectedInstances) ||
13349
13567
  {};
13350
13568
  var sortedFgSegs = this.sortEventSegs(props.fgEventSegs, context.options.eventOrder);
13351
- 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", tslib_es6.__assign({ ref: rootElRef, className: ['fc-timegrid-col'].concat(classNames, props.extraClassNames || []).join(' ') }, dataAttrs, props.extraDataAttrs),
13569
+ 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", tslib_es6.__assign({ ref: rootElRef, role: "gridcell", className: ['fc-timegrid-col'].concat(classNames, props.extraClassNames || []).join(' ') }, dataAttrs, props.extraDataAttrs),
13352
13570
  createElement("div", { className: "fc-timegrid-col-frame" },
13353
13571
  createElement("div", { className: "fc-timegrid-col-bg" },
13354
13572
  _this.renderFillSegs(props.businessHourSegs, 'non-business'),
@@ -13504,14 +13722,14 @@ var TimeColsContent = /** @class */ (function (_super) {
13504
13722
  var eventDragByRow = this.splitEventDrag(props.eventDrag, colCnt);
13505
13723
  var eventResizeByRow = this.splitEventResize(props.eventResize, colCnt);
13506
13724
  return (createElement("div", { className: "fc-timegrid-cols", ref: this.rootElRef },
13507
- createElement("table", { style: {
13725
+ createElement("table", { role: "presentation", style: {
13508
13726
  minWidth: props.tableMinWidth,
13509
13727
  width: props.clientWidth,
13510
13728
  } },
13511
13729
  props.tableColGroupNode,
13512
- createElement("tbody", null,
13513
- createElement("tr", null,
13514
- props.axis && (createElement("td", { className: "fc-timegrid-col fc-timegrid-axis" },
13730
+ createElement("tbody", { role: "presentation" },
13731
+ createElement("tr", { role: "row" },
13732
+ props.axis && (createElement("td", { "aria-hidden": true, className: "fc-timegrid-col fc-timegrid-axis" },
13515
13733
  createElement("div", { className: "fc-timegrid-col-frame" },
13516
13734
  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)); })))))),
13517
13735
  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 })); }))))));
@@ -13824,6 +14042,16 @@ var enGb = {
13824
14042
  dow: 1, // Monday is the first day of the week.
13825
14043
  doy: 4, // The week that contains Jan 4th is the first week of the year.
13826
14044
  },
14045
+ buttonHints: {
14046
+ prev: 'Previous $0',
14047
+ next: 'Next $0',
14048
+ today: 'This $0',
14049
+ },
14050
+ viewHint: '$0 view',
14051
+ navLinkHint: 'Go to $0',
14052
+ moreLinkHint(eventCnt) {
14053
+ return `Show ${eventCnt} more event${eventCnt === 1 ? '' : 's'}`
14054
+ },
13827
14055
  };
13828
14056
 
13829
14057
  exports.default = enGb;
@@ -13850,10 +14078,29 @@ var es = {
13850
14078
  day: 'Día',
13851
14079
  list: 'Agenda',
13852
14080
  },
14081
+ buttonHints: {
14082
+ prev: '$0 antes',
14083
+ next: '$0 siguiente',
14084
+ today(buttonText) {
14085
+ return (buttonText === 'Día') ? 'Hoy' :
14086
+ ((buttonText === 'Semana') ? 'Esta' : 'Este') + ' ' + buttonText.toLocaleLowerCase()
14087
+ },
14088
+ },
14089
+ viewHint(buttonText) {
14090
+ return 'Vista ' + (buttonText === 'Semana' ? 'de la' : 'del') + ' ' + buttonText.toLocaleLowerCase()
14091
+ },
13853
14092
  weekText: 'Sm',
14093
+ weekTextLong: 'Semana',
13854
14094
  allDayText: 'Todo el día',
13855
14095
  moreLinkText: 'más',
14096
+ moreLinkHint(eventCnt) {
14097
+ return `Mostrar ${eventCnt} eventos más`
14098
+ },
13856
14099
  noEventsText: 'No hay eventos para mostrar',
14100
+ navLinkHint: 'Ir al $0',
14101
+ closeHint: 'Cerrar',
14102
+ timeHint: 'La hora',
14103
+ eventHint: 'Evento',
13857
14104
  };
13858
14105
 
13859
14106
  exports.default = es;
@@ -14025,17 +14272,10 @@ const zhLocale = /*@__PURE__*/kupManager.getDefaultExportFromCjs(zhCn_1);
14025
14272
  */
14026
14273
  var KupCalendarProps;
14027
14274
  (function (KupCalendarProps) {
14275
+ KupCalendarProps["currentDate"] = "Sets the date of the calendar. Must be in ISO format (YYYY-MM-DD).";
14028
14276
  KupCalendarProps["customStyle"] = "Custom style of the component.";
14029
14277
  KupCalendarProps["data"] = " Actual data of the calendar.";
14030
- KupCalendarProps["dateCol"] = "Column containing events' dates.";
14031
- KupCalendarProps["descrCol"] = "Column containing events' descriptions.";
14032
- KupCalendarProps["endCol"] = "Column containing events' ending time.";
14033
14278
  KupCalendarProps["hideNavigation"] = "When disabled, the navigation toolbar won't be displayed.";
14034
- KupCalendarProps["iconCol"] = "Column containing events' icons. There can be multiple icons, divided by ';'.";
14035
- KupCalendarProps["imageCol"] = "Column containing events' images. There can be multiple images, divided by ';'.";
14036
- KupCalendarProps["initialDate"] = "Sets the initial date of the calendar. Must be in ISO format (YYYY-MM-DD).";
14037
- KupCalendarProps["startCol"] = "Column containing events' starting time.";
14038
- KupCalendarProps["styleCol"] = "Column containing events' CSS styles.";
14039
14279
  KupCalendarProps["viewType"] = "Type of the view.";
14040
14280
  })(KupCalendarProps || (KupCalendarProps = {}));
14041
14281
  /**
@@ -14048,19 +14288,37 @@ var KupCalendarViewTypes;
14048
14288
  KupCalendarViewTypes["MONTH"] = "dayGridMonth";
14049
14289
  KupCalendarViewTypes["WEEK"] = "timeGridWeek";
14050
14290
  })(KupCalendarViewTypes || (KupCalendarViewTypes = {}));
14051
-
14052
- 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}}";
14291
+ /**
14292
+ * Available view types.
14293
+ */
14294
+ var KupCalendarOptions;
14295
+ (function (KupCalendarOptions) {
14296
+ KupCalendarOptions["DATE"] = "date";
14297
+ KupCalendarOptions["DESCR"] = "descr";
14298
+ KupCalendarOptions["END"] = "end";
14299
+ KupCalendarOptions["ICON"] = "icon";
14300
+ KupCalendarOptions["IMAGE"] = "image";
14301
+ KupCalendarOptions["START"] = "start";
14302
+ KupCalendarOptions["STYLE"] = "style";
14303
+ })(KupCalendarOptions || (KupCalendarOptions = {}));
14304
+
14305
+ 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}}";
14053
14306
 
14054
14307
  let KupCalendar = class {
14055
14308
  constructor(hostRef) {
14056
14309
  index.registerInstance(this, hostRef);
14057
- this.kupCalendarEventClicked = index.createEvent(this, "kup-calendar-eventclick", 6);
14058
- this.kupCalendarDateClicked = index.createEvent(this, "kup-calendar-dateclick", 6);
14059
- this.kupCalendarEventDropped = index.createEvent(this, "kup-calendar-eventdrop", 6);
14060
- this.kupCalendarViewChanged = index.createEvent(this, "kup-calendar-viewchange", 6);
14310
+ this.kupCalendarEventClick = index.createEvent(this, "kup-calendar-eventclick", 6);
14311
+ this.kupCalendarDateClick = index.createEvent(this, "kup-calendar-dateclick", 6);
14312
+ this.kupCalendarEventDrop = index.createEvent(this, "kup-calendar-eventdrop", 6);
14313
+ this.kupCalendarViewChange = index.createEvent(this, "kup-calendar-viewchange", 6);
14061
14314
  /*-------------------------------------------------*/
14062
14315
  /* P r o p s */
14063
14316
  /*-------------------------------------------------*/
14317
+ /**
14318
+ * Sets the initial date of the calendar. Must be in ISO format (YYYY-MM-DD).
14319
+ * @default null
14320
+ */
14321
+ this.currentDate = null;
14064
14322
  /**
14065
14323
  * Custom style of the component.
14066
14324
  * @default ""
@@ -14072,51 +14330,11 @@ let KupCalendar = class {
14072
14330
  * @default null
14073
14331
  */
14074
14332
  this.data = null;
14075
- /**
14076
- * Column containing events' dates.
14077
- * @default null
14078
- */
14079
- this.dateCol = null;
14080
- /**
14081
- * Column containing events' descriptions.
14082
- * @default null
14083
- */
14084
- this.descrCol = null;
14085
- /**
14086
- * Column containing events' ending time.
14087
- * @default null
14088
- */
14089
- this.endCol = null;
14090
14333
  /**
14091
14334
  * When disabled, the navigation toolbar won't be displayed.
14092
14335
  * @default false
14093
14336
  */
14094
14337
  this.hideNavigation = false;
14095
- /**
14096
- * Column containing events' icons. There can be multiple icons, divided by ";".
14097
- * @default null
14098
- */
14099
- this.iconCol = null;
14100
- /**
14101
- * Column containing events' images. There can be multiple images, divided by ";".
14102
- * @default null
14103
- */
14104
- this.imageCol = null;
14105
- /**
14106
- * Sets the initial date of the calendar. Must be in ISO format (YYYY-MM-DD).
14107
- * @default null
14108
- */
14109
- this.initialDate = null;
14110
- /**
14111
- * Column containing events' starting time.
14112
- * @default null
14113
- */
14114
- this.startCol = null;
14115
- /**
14116
- * Column containing events' CSS styles.
14117
- * @default null
14118
- */
14119
- this.styleCol = null;
14120
14338
  /**
14121
14339
  * Type of the view.
14122
14340
  * @default KupCalendarViewTypes.MONTH
@@ -14126,6 +14344,142 @@ let KupCalendar = class {
14126
14344
  this.kupManager = kupManager.kupManagerInstance();
14127
14345
  this.navTitle = null;
14128
14346
  this.resizeTimeout = null;
14347
+ this.dateCol = null;
14348
+ this.descrCol = null;
14349
+ this.endCol = null;
14350
+ this.iconCol = null;
14351
+ this.imageCol = null;
14352
+ this.startCol = null;
14353
+ this.styleCol = null;
14354
+ }
14355
+ /*-------------------------------------------------*/
14356
+ /* W a t c h e r s */
14357
+ /*-------------------------------------------------*/
14358
+ setCalendarData() {
14359
+ if (this.calendar) {
14360
+ this.calendar.destroy();
14361
+ }
14362
+ for (let index = 0; this.data && this.data.columns && index < this.data.columns.length; index++) {
14363
+ const column = this.data.columns[index];
14364
+ switch (column.calendarOption) {
14365
+ case KupCalendarOptions.DATE:
14366
+ this.dateCol = column.name;
14367
+ break;
14368
+ case KupCalendarOptions.DESCR:
14369
+ this.descrCol = column.name;
14370
+ break;
14371
+ case KupCalendarOptions.END:
14372
+ this.endCol = column.name;
14373
+ break;
14374
+ case KupCalendarOptions.ICON:
14375
+ this.iconCol = column.name;
14376
+ break;
14377
+ case KupCalendarOptions.IMAGE:
14378
+ this.imageCol = column.name;
14379
+ break;
14380
+ case KupCalendarOptions.START:
14381
+ this.startCol = column.name;
14382
+ break;
14383
+ case KupCalendarOptions.STYLE:
14384
+ this.styleCol = column.name;
14385
+ break;
14386
+ }
14387
+ }
14388
+ this.calendar = new Calendar(this.calendarContainer, {
14389
+ dateClick: ({ date }) => {
14390
+ this.kupCalendarDateClick.emit({
14391
+ comp: this,
14392
+ id: this.rootElement.id,
14393
+ date: date,
14394
+ });
14395
+ },
14396
+ editable: true,
14397
+ eventClick: ({ event }) => {
14398
+ this.kupCalendarEventClick.emit({
14399
+ comp: this,
14400
+ id: this.rootElement.id,
14401
+ row: event.extendedProps.row,
14402
+ });
14403
+ },
14404
+ eventDidMount: (info) => {
14405
+ if (this.iconCol) {
14406
+ const row = info.event.extendedProps.row;
14407
+ const cell = row.cells[this.iconCol];
14408
+ if (cell && cell.value) {
14409
+ const wrapper = document.createElement('div');
14410
+ wrapper.classList.add('icon-wrapper');
14411
+ cell.value.split(';').forEach((icon) => {
14412
+ const span = document.createElement('span');
14413
+ span.className = 'custom-icon';
14414
+ const path = index.getAssetPath(`./assets/svg/${icon}.svg`);
14415
+ span.style.mask = `url('${path}') no-repeat center`;
14416
+ span.style.webkitMask = `url('${path}') no-repeat center`;
14417
+ wrapper.appendChild(span);
14418
+ });
14419
+ info.el.appendChild(wrapper);
14420
+ }
14421
+ }
14422
+ if (this.imageCol) {
14423
+ const row = info.event.extendedProps.row;
14424
+ const cell = row.cells[this.imageCol];
14425
+ if (cell && cell.value) {
14426
+ const wrapper = document.createElement('div');
14427
+ wrapper.classList.add('image-wrapper');
14428
+ cell.value.split(';').forEach((icon) => {
14429
+ const img = document.createElement('img');
14430
+ img.src = icon;
14431
+ wrapper.appendChild(img);
14432
+ });
14433
+ info.el.appendChild(wrapper);
14434
+ }
14435
+ }
14436
+ if (this.styleCol) {
14437
+ const row = info.event.extendedProps.row;
14438
+ const cell = row.cells[this.styleCol];
14439
+ const eventCell = info.el.children[0];
14440
+ const parent = eventCell.parentElement;
14441
+ if (cell && cell.style) {
14442
+ Object.keys(cell.style).forEach((k) => {
14443
+ parent.style[k] = cell.style[k];
14444
+ });
14445
+ }
14446
+ }
14447
+ },
14448
+ eventDrop: ({ event, oldEvent }) => {
14449
+ this.kupCalendarEventDrop.emit({
14450
+ comp: this,
14451
+ id: this.rootElement.id,
14452
+ fromDate: {
14453
+ start: oldEvent.start,
14454
+ end: oldEvent.end,
14455
+ },
14456
+ toDate: {
14457
+ start: event.start,
14458
+ end: event.end,
14459
+ },
14460
+ });
14461
+ },
14462
+ events: this.getEvents(),
14463
+ headerToolbar: false,
14464
+ initialDate: this.currentDate,
14465
+ initialView: this.viewType,
14466
+ locale: this.getLocale(),
14467
+ locales: [
14468
+ esLocale,
14469
+ frLocale,
14470
+ itLocale,
14471
+ plLocale,
14472
+ ruLocale,
14473
+ zhLocale,
14474
+ ],
14475
+ plugins: [
14476
+ main$3,
14477
+ main$2,
14478
+ main$1,
14479
+ main,
14480
+ ],
14481
+ });
14482
+ this.calendar.render();
14129
14483
  }
14130
14484
  /*-------------------------------------------------*/
14131
14485
  /* P u b l i c M e t h o d s */
@@ -14208,9 +14562,9 @@ let KupCalendar = class {
14208
14562
  for (const key in KupCalendarViewTypes) {
14209
14563
  const view = KupCalendarViewTypes[key];
14210
14564
  const chipData = {
14211
- value: key,
14212
- label: this.kupManager.language.translate(kupManager.KupLanguageGeneric[key]),
14213
14565
  checked: this.viewType === view ? true : false,
14566
+ value: this.kupManager.language.translate(kupManager.KupLanguageGeneric[key]),
14567
+ id: key,
14214
14568
  };
14215
14569
  props.data.push(chipData);
14216
14570
  props.onClick.push(() => this.changeView(view));
@@ -14271,7 +14625,7 @@ let KupCalendar = class {
14271
14625
  const to = this.kupManager.dates
14272
14626
  .subtract(this.calendar.view.currentEnd, 1, 'day')
14273
14627
  .toDate();
14274
- this.kupCalendarViewChanged.emit({
14628
+ this.kupCalendarViewChange.emit({
14275
14629
  comp: this,
14276
14630
  id: this.rootElement.id,
14277
14631
  from: this.calendar.view.currentStart,
@@ -14289,105 +14643,13 @@ let KupCalendar = class {
14289
14643
  /* L i f e c y c l e H o o k s */
14290
14644
  /*-------------------------------------------------*/
14291
14645
  componentWillLoad() {
14646
+ this.kupManager.dates.register(this);
14292
14647
  this.kupManager.debug.logLoad(this, false);
14293
14648
  this.kupManager.language.register(this);
14294
14649
  this.kupManager.theme.register(this);
14295
14650
  }
14296
14651
  componentDidLoad() {
14297
- this.calendar = new Calendar(this.calendarContainer, {
14298
- dateClick: ({ date }) => {
14299
- this.kupCalendarDateClicked.emit({
14300
- comp: this,
14301
- id: this.rootElement.id,
14302
- date: date,
14303
- });
14304
- },
14305
- editable: true,
14306
- eventClick: ({ event }) => {
14307
- this.kupCalendarEventClicked.emit({
14308
- comp: this,
14309
- id: this.rootElement.id,
14310
- row: event.extendedProps.row,
14311
- });
14312
- },
14313
- eventDidMount: (info) => {
14314
- if (this.styleCol) {
14315
- const row = info.event.extendedProps.row;
14316
- const cell = row.cells[this.styleCol];
14317
- const eventCell = info.el.children[0];
14318
- if (cell && cell.style) {
14319
- Object.keys(cell.style).forEach((k) => {
14320
- eventCell.style[k] = cell.style[k];
14321
- });
14322
- }
14323
- }
14324
- if (this.iconCol) {
14325
- const row = info.event.extendedProps.row;
14326
- const cell = row.cells[this.iconCol];
14327
- if (cell && cell.value) {
14328
- const wrapper = document.createElement('div');
14329
- wrapper.classList.add('icon-wrapper');
14330
- cell.value.split(';').forEach((icon) => {
14331
- const span = document.createElement('span');
14332
- span.className = 'custom-icon';
14333
- const path = index.getAssetPath(`./assets/svg/${icon}.svg`);
14334
- span.style.mask = `url('${path}') no-repeat center`;
14335
- span.style.webkitMask = `url('${path}') no-repeat center`;
14336
- wrapper.appendChild(span);
14337
- });
14338
- info.el.appendChild(wrapper);
14339
- }
14340
- }
14341
- if (this.imageCol) {
14342
- const row = info.event.extendedProps.row;
14343
- const cell = row.cells[this.imageCol];
14344
- if (cell && cell.value) {
14345
- const wrapper = document.createElement('div');
14346
- wrapper.classList.add('image-wrapper');
14347
- cell.value.split(';').forEach((icon) => {
14348
- const img = document.createElement('img');
14349
- img.src = icon;
14350
- wrapper.appendChild(img);
14351
- });
14352
- info.el.appendChild(wrapper);
14353
- }
14354
- }
14355
- },
14356
- eventDrop: ({ event, oldEvent }) => {
14357
- this.kupCalendarEventDropped.emit({
14358
- comp: this,
14359
- id: this.rootElement.id,
14360
- fromDate: {
14361
- start: oldEvent.start,
14362
- end: oldEvent.end,
14363
- },
14364
- toDate: {
14365
- start: event.start,
14366
- end: event.end,
14367
- },
14368
- });
14369
- },
14370
- events: this.getEvents(),
14371
- headerToolbar: false,
14372
- initialDate: this.initialDate,
14373
- initialView: this.viewType,
14374
- locale: this.getLocale(),
14375
- locales: [
14376
- esLocale,
14377
- frLocale,
14378
- itLocale,
14379
- plLocale,
14380
- ruLocale,
14381
- zhLocale,
14382
- ],
14383
- plugins: [
14384
- main$3,
14385
- main$2,
14386
- main$1,
14387
- main,
14388
- ],
14389
- });
14390
- this.calendar.render();
14652
+ this.setCalendarData();
14391
14653
  this.updateCalendar();
14392
14654
  this.kupManager.resize.observe(this.rootElement);
14393
14655
  this.kupManager.debug.logLoad(this, true);
@@ -14410,11 +14672,16 @@ let KupCalendar = class {
14410
14672
  if (this.calendar) {
14411
14673
  this.calendar.destroy();
14412
14674
  }
14675
+ this.kupManager.dates.unregister(this);
14413
14676
  this.kupManager.language.unregister(this);
14414
14677
  this.kupManager.resize.unobserve(this.rootElement);
14415
14678
  this.kupManager.theme.unregister(this);
14416
14679
  }
14417
14680
  get rootElement() { return index.getElement(this); }
14681
+ static get watchers() { return {
14682
+ "data": ["setCalendarData"],
14683
+ "currentDate": ["setCalendarData"]
14684
+ }; }
14418
14685
  };
14419
14686
  KupCalendar.style = kupCalendarCss;
14420
14687