@iamproperty/components 7.4.0 → 7.5.1--beta1

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 (349) hide show
  1. package/README.md +1 -1
  2. package/assets/css/components/actionbar.component.css +1 -1
  3. package/assets/css/components/actionbar.component.css.map +1 -1
  4. package/assets/css/components/actionbar.global.css +1 -1
  5. package/assets/css/components/actionbar.global.css.map +1 -1
  6. package/assets/css/components/address-lookup.component.css +1 -0
  7. package/assets/css/components/address-lookup.component.css.map +1 -0
  8. package/assets/css/components/applied-filters.css +1 -1
  9. package/assets/css/components/applied-filters.css.map +1 -1
  10. package/assets/css/components/barchart.component.css +1 -1
  11. package/assets/css/components/barchart.component.css.map +1 -1
  12. package/assets/css/components/calendar.component.css +1 -1
  13. package/assets/css/components/calendar.component.css.map +1 -1
  14. package/assets/css/components/calendar.config.css.map +1 -1
  15. package/assets/css/components/card.component.css +1 -1
  16. package/assets/css/components/card.component.css.map +1 -1
  17. package/assets/css/components/carousel.component.css +1 -1
  18. package/assets/css/components/carousel.component.css.map +1 -1
  19. package/assets/css/components/charts.css +1 -1
  20. package/assets/css/components/charts.css.map +1 -1
  21. package/assets/css/components/collapsible-side.css +1 -1
  22. package/assets/css/components/collapsible-side.css.map +1 -1
  23. package/assets/css/components/content.component.css +1 -1
  24. package/assets/css/components/content.component.css.map +1 -1
  25. package/assets/css/components/darkmode.component.css +1 -0
  26. package/assets/css/components/darkmode.component.css.map +1 -0
  27. package/assets/css/components/doughnutchart.component.css +1 -1
  28. package/assets/css/components/doughnutchart.component.css.map +1 -1
  29. package/assets/css/components/fileupload.css +1 -1
  30. package/assets/css/components/fileupload.css.map +1 -1
  31. package/assets/css/components/header.css +1 -1
  32. package/assets/css/components/header.css.map +1 -1
  33. package/assets/css/components/inline-edit.css +1 -1
  34. package/assets/css/components/inline-edit.css.map +1 -1
  35. package/assets/css/components/inline-edit.preload.css +1 -1
  36. package/assets/css/components/inline-edit.preload.css.map +1 -1
  37. package/assets/css/components/{menu.css → menu.global.css} +1 -1
  38. package/assets/css/components/menu.global.css.map +1 -0
  39. package/assets/css/components/milestone.css +1 -1
  40. package/assets/css/components/milestone.css.map +1 -1
  41. package/assets/css/components/multi-step.component.css +1 -1
  42. package/assets/css/components/multi-step.component.css.map +1 -1
  43. package/assets/css/components/multiselect.css +1 -1
  44. package/assets/css/components/multiselect.css.map +1 -1
  45. package/assets/css/components/multiselect.preload.css +1 -1
  46. package/assets/css/components/multiselect.preload.css.map +1 -1
  47. package/assets/css/components/nav.component.css +1 -1
  48. package/assets/css/components/nav.component.css.map +1 -1
  49. package/assets/css/components/nav.global.css +1 -1
  50. package/assets/css/components/nav.global.css.map +1 -1
  51. package/assets/css/components/notification.css +1 -1
  52. package/assets/css/components/notification.css.map +1 -1
  53. package/assets/css/components/pagination.css +1 -1
  54. package/assets/css/components/pagination.css.map +1 -1
  55. package/assets/css/components/property-searchbar.css +1 -1
  56. package/assets/css/components/property-searchbar.css.map +1 -1
  57. package/assets/css/components/rank.component.css +1 -1
  58. package/assets/css/components/rank.component.css.map +1 -1
  59. package/assets/css/components/rankings.component.css +1 -1
  60. package/assets/css/components/rankings.component.css.map +1 -1
  61. package/assets/css/components/rankings.global.css +1 -1
  62. package/assets/css/components/rankings.global.css.map +1 -1
  63. package/assets/css/components/slider.css +1 -1
  64. package/assets/css/components/slider.css.map +1 -1
  65. package/assets/css/components/split-button.component.css +1 -1
  66. package/assets/css/components/split-button.component.css.map +1 -1
  67. package/assets/css/components/table-basic.global.css +1 -1
  68. package/assets/css/components/table-basic.global.css.map +1 -1
  69. package/assets/css/components/table.global.css +1 -1
  70. package/assets/css/components/table.global.css.map +1 -1
  71. package/assets/css/components/tabs.component.css +1 -1
  72. package/assets/css/components/tabs.component.css.map +1 -1
  73. package/assets/css/components/tabs.config.css +1 -1
  74. package/assets/css/components/tabs.config.css.map +1 -1
  75. package/assets/css/components/word-count.component.css +1 -0
  76. package/assets/css/components/word-count.component.css.map +1 -0
  77. package/assets/css/core.min.css +1 -1
  78. package/assets/css/core.min.css.map +1 -1
  79. package/assets/css/mobile-core.min.css +1 -1
  80. package/assets/css/mobile-core.min.css.map +1 -1
  81. package/assets/css/mobile.min.css +1 -1
  82. package/assets/css/mobile.min.css.map +1 -1
  83. package/assets/css/style.min.css +1 -1
  84. package/assets/css/style.min.css.map +1 -1
  85. package/assets/js/components/accordion/accordion.component.js +39 -25
  86. package/assets/js/components/accordion/accordion.component.min.js +14 -15
  87. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  88. package/assets/js/components/actionbar/actionbar.component.js +16 -9
  89. package/assets/js/components/actionbar/actionbar.component.min.js +13 -5
  90. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  91. package/assets/js/components/address-lookup/address-lookup.component.js +6 -11
  92. package/assets/js/components/address-lookup/address-lookup.component.min.js +10 -12
  93. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  94. package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
  95. package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -1
  96. package/assets/js/components/applied-filters/applied-filters.component.js +2 -5
  97. package/assets/js/components/applied-filters/applied-filters.component.min.js +7 -7
  98. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  99. package/assets/js/components/barchart/barchart.component.min.js +2 -2
  100. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  101. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  102. package/assets/js/components/bento-grid/bento-grid.component.min.js.map +1 -1
  103. package/assets/js/components/calendar/calendar.component.js +153 -136
  104. package/assets/js/components/calendar/calendar.component.min.js +3 -3
  105. package/assets/js/components/calendar/calendar.component.min.js.map +1 -1
  106. package/assets/js/components/card/card.component.js +3 -9
  107. package/assets/js/components/card/card.component.min.js +13 -7
  108. package/assets/js/components/card/card.component.min.js.map +1 -1
  109. package/assets/js/components/carousel/carousel.component.js +17 -19
  110. package/assets/js/components/carousel/carousel.component.min.js +17 -19
  111. package/assets/js/components/carousel/carousel.component.min.js.map +1 -1
  112. package/assets/js/components/collapsible-side/collapsible-side.component.js +0 -5
  113. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +4 -6
  114. package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
  115. package/assets/js/components/content/content.component.min.js +2 -2
  116. package/assets/js/components/content/content.component.min.js.map +1 -1
  117. package/assets/js/components/darkmode/darkmode.component.js +70 -0
  118. package/assets/js/components/darkmode/darkmode.component.min.js +10 -0
  119. package/assets/js/components/darkmode/darkmode.component.min.js.map +1 -0
  120. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +2 -2
  121. package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -1
  122. package/assets/js/components/fileupload/fileupload.component.js +1 -5
  123. package/assets/js/components/fileupload/fileupload.component.min.js +5 -6
  124. package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
  125. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  126. package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
  127. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  128. package/assets/js/components/filterlist/filterlist.component.min.js.map +1 -1
  129. package/assets/js/components/header/header.component.js +0 -5
  130. package/assets/js/components/header/header.component.min.js +4 -6
  131. package/assets/js/components/header/header.component.min.js.map +1 -1
  132. package/assets/js/components/inline-edit/inline-edit.component.js +61 -60
  133. package/assets/js/components/inline-edit/inline-edit.component.min.js +5 -5
  134. package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
  135. package/assets/js/components/marketing/marketing.component.js +0 -4
  136. package/assets/js/components/marketing/marketing.component.min.js +3 -4
  137. package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
  138. package/assets/js/components/menu/menu.component.js +2 -2
  139. package/assets/js/components/menu/menu.component.min.js +4 -5
  140. package/assets/js/components/menu/menu.component.min.js.map +1 -1
  141. package/assets/js/components/milestone/milestone.component.js +12 -14
  142. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  143. package/assets/js/components/milestone/milestone.component.min.js.map +1 -1
  144. package/assets/js/components/milestone-group/milestone-group.component.js +10 -12
  145. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  146. package/assets/js/components/milestone-group/milestone-group.component.min.js.map +1 -1
  147. package/assets/js/components/multi-step/multi-step.component.min.js +3 -3
  148. package/assets/js/components/multi-step/multi-step.component.min.js.map +1 -1
  149. package/assets/js/components/multiselect/multiselect.component.js +90 -13
  150. package/assets/js/components/multiselect/multiselect.component.min.js +5 -5
  151. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  152. package/assets/js/components/nav/nav.component.js +4 -7
  153. package/assets/js/components/nav/nav.component.min.js +8 -7
  154. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  155. package/assets/js/components/notification/notification.component.js +2 -7
  156. package/assets/js/components/notification/notification.component.min.js +6 -6
  157. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  158. package/assets/js/components/pagination/pagination.component.js +3 -8
  159. package/assets/js/components/pagination/pagination.component.min.js +7 -8
  160. package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
  161. package/assets/js/components/password-indicator/password-indicator.component.js +19 -0
  162. package/assets/js/components/password-indicator/password-indicator.component.min.js +7 -0
  163. package/assets/js/components/password-indicator/password-indicator.component.min.js.map +1 -0
  164. package/assets/js/components/rank/rank.component.js +2 -2
  165. package/assets/js/components/rank/rank.component.min.js +4 -5
  166. package/assets/js/components/rank/rank.component.min.js.map +1 -1
  167. package/assets/js/components/rankings/rankings.component.js +3 -0
  168. package/assets/js/components/rankings/rankings.component.min.js +364 -5
  169. package/assets/js/components/rankings/rankings.component.min.js.map +1 -1
  170. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  171. package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
  172. package/assets/js/components/search/search.component.js +0 -4
  173. package/assets/js/components/search/search.component.min.js +5 -6
  174. package/assets/js/components/search/search.component.min.js.map +1 -1
  175. package/assets/js/components/slider/slider.component.js +0 -4
  176. package/assets/js/components/slider/slider.component.min.js +4 -5
  177. package/assets/js/components/slider/slider.component.min.js.map +1 -1
  178. package/assets/js/components/split-button/split-button.component.js +1 -3
  179. package/assets/js/components/split-button/split-button.component.min.js +8 -11
  180. package/assets/js/components/split-button/split-button.component.min.js.map +1 -1
  181. package/assets/js/components/table/table.component.min.js +4 -4
  182. package/assets/js/components/table/table.component.min.js.map +1 -1
  183. package/assets/js/components/table-ajax/table-ajax.component.js +11 -9
  184. package/assets/js/components/table-ajax/table-ajax.component.min.js +4 -4
  185. package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
  186. package/assets/js/components/table-basic/table-basic.component.min.js +4 -4
  187. package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
  188. package/assets/js/components/table-no-submit/table-no-submit.component.js +15 -30
  189. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +4 -4
  190. package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
  191. package/assets/js/components/table-submit/table-submit.component.min.js +4 -4
  192. package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
  193. package/assets/js/components/tabs/tabs.component.js +1 -4
  194. package/assets/js/components/tabs/tabs.component.min.js +5 -5
  195. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  196. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  197. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  198. package/assets/js/components/word-count/word-count.component.js +81 -0
  199. package/assets/js/components/word-count/word-count.component.min.js +12 -0
  200. package/assets/js/components/word-count/word-count.component.min.js.map +1 -0
  201. package/assets/js/components.js +1 -0
  202. package/assets/js/modules/advanced-select.js +1 -1
  203. package/assets/js/modules/dynamicEvents.js +3 -3
  204. package/assets/js/modules/inputs.js +0 -26
  205. package/assets/js/modules/milestone.js +2 -2
  206. package/assets/js/modules/password-indicator.js +21 -0
  207. package/assets/js/modules/table.js +28 -2
  208. package/assets/js/scripts.bundle.js +3 -3
  209. package/assets/js/scripts.bundle.js.map +1 -1
  210. package/assets/js/scripts.bundle.min.js +2 -2
  211. package/assets/js/scripts.bundle.min.js.map +1 -1
  212. package/assets/js/scripts.js +3 -1
  213. package/assets/sass/_components.scss +6 -5
  214. package/assets/sass/_elements.scss +5 -0
  215. package/assets/sass/_example.scss +1 -1
  216. package/assets/sass/_functions/utility-mixins.scss +21 -1
  217. package/assets/sass/_functions/variables.scss +14 -0
  218. package/assets/sass/components/actionbar.component.scss +38 -1
  219. package/assets/sass/components/actionbar.global.scss +1 -1
  220. package/assets/sass/components/{address-lookup.scss → address-lookup.component.scss} +10 -0
  221. package/assets/sass/components/applied-filters.scss +1 -0
  222. package/assets/sass/components/calendar.component.scss +163 -271
  223. package/assets/sass/components/calendar.config.scss +69 -122
  224. package/assets/sass/components/collapsible-side.scss +2 -0
  225. package/assets/sass/components/darkmode.component.scss +22 -0
  226. package/assets/sass/components/fileupload.scss +18 -0
  227. package/assets/sass/components/header.scss +9 -0
  228. package/assets/sass/components/inline-edit.preload.scss +68 -2
  229. package/assets/sass/components/inline-edit.scss +7 -0
  230. package/assets/sass/components/milestone.scss +69 -60
  231. package/assets/sass/components/multi-step.component.scss +1 -1
  232. package/assets/sass/components/multiselect.preload.scss +11 -1
  233. package/assets/sass/components/multiselect.scss +62 -5
  234. package/assets/sass/components/nav.component.scss +31 -6
  235. package/assets/sass/components/nav.global.scss +8 -12
  236. package/assets/sass/components/notification.scss +38 -17
  237. package/assets/sass/components/pagination.scss +6 -0
  238. package/assets/sass/components/slider.scss +1 -0
  239. package/assets/sass/components/split-button.component.scss +3 -1
  240. package/assets/sass/components/table-basic.global.scss +33 -33
  241. package/assets/sass/components/table.global.scss +9 -4
  242. package/assets/sass/components/tabs.component.scss +4 -0
  243. package/assets/sass/components/tabs.config.scss +231 -4
  244. package/assets/sass/components/word-count.component.scss +26 -0
  245. package/assets/sass/elements/admin-panel.scss +38 -10
  246. package/assets/sass/elements/buttons--compact.scss +1 -1
  247. package/assets/sass/elements/buttons--global.scss +3 -3
  248. package/assets/sass/elements/details.scss +33 -6
  249. package/assets/sass/elements/forms.scss +23 -31
  250. package/assets/sass/elements/hr.scss +50 -0
  251. package/assets/sass/elements/icons.scss +5 -0
  252. package/assets/sass/elements/links.scss +2 -2
  253. package/assets/sass/elements/lists.scss +1 -1
  254. package/assets/sass/elements/modal.scss +1 -5
  255. package/assets/sass/elements/toggle-button.scss +1 -0
  256. package/assets/sass/elements/type.scss +6 -9
  257. package/assets/sass/foundations/colours.scss +0 -0
  258. package/assets/sass/foundations/reboot.scss +14 -18
  259. package/assets/sass/foundations/root.scss +43 -51
  260. package/assets/sass/templates/form.scss +5 -0
  261. package/assets/ts/components/accordion/accordion.component.ts +46 -33
  262. package/assets/ts/components/actionbar/actionbar.component.ts +29 -10
  263. package/assets/ts/components/address-lookup/address-lookup.component.ts +7 -11
  264. package/assets/ts/components/applied-filters/applied-filters.component.ts +2 -5
  265. package/assets/ts/components/calendar/calendar.component.ts +368 -498
  266. package/assets/ts/components/card/card.component.ts +2 -9
  267. package/assets/ts/components/carousel/carousel.component.ts +17 -19
  268. package/assets/ts/components/collapsible-side/collapsible-side.component.ts +1 -5
  269. package/assets/ts/components/darkmode/darkmode.component.ts +85 -0
  270. package/assets/ts/components/fileupload/fileupload.component.ts +2 -5
  271. package/assets/ts/components/header/header.component.ts +1 -5
  272. package/assets/ts/components/inline-edit/inline-edit.component.ts +74 -75
  273. package/assets/ts/components/marketing/marketing.component.ts +0 -4
  274. package/assets/ts/components/menu/menu.component.ts +2 -2
  275. package/assets/ts/components/milestone/milestone.component.ts +43 -45
  276. package/assets/ts/components/milestone-group/milestone-group.component.ts +39 -41
  277. package/assets/ts/components/multiselect/multiselect.component.ts +103 -27
  278. package/assets/ts/components/nav/nav.component.ts +10 -19
  279. package/assets/ts/components/notification/notification.component.ts +3 -9
  280. package/assets/ts/components/pagination/pagination.component.ts +6 -8
  281. package/assets/ts/components/password-indicator/password-indicator.component.ts +24 -0
  282. package/assets/ts/components/rank/rank.component.ts +2 -2
  283. package/assets/ts/components/rankings/rankings.component.ts +4 -0
  284. package/assets/ts/components/search/search.component.ts +0 -4
  285. package/assets/ts/components/slider/slider.component.ts +1 -4
  286. package/assets/ts/components/split-button/split-button.component.ts +1 -3
  287. package/assets/ts/components/table-ajax/table-ajax.component.ts +5 -5
  288. package/assets/ts/components/table-no-submit/table-no-submit.component.ts +10 -21
  289. package/assets/ts/components/tabs/tabs.component.ts +2 -4
  290. package/assets/ts/components/word-count/word-count.component.ts +91 -0
  291. package/assets/ts/components.ts +1 -0
  292. package/assets/ts/modules/advanced-select.ts +11 -16
  293. package/assets/ts/modules/data-layer.md +0 -5
  294. package/assets/ts/modules/dynamicEvents.ts +6 -7
  295. package/assets/ts/modules/inputs.ts +0 -31
  296. package/assets/ts/modules/milestone-group.ts +39 -42
  297. package/assets/ts/modules/milestone.ts +119 -122
  298. package/assets/ts/modules/password-indicator.ts +29 -0
  299. package/assets/ts/modules/table.ts +41 -3
  300. package/assets/ts/scripts.ts +4 -1
  301. package/dist/components.es.js +1691 -41
  302. package/dist/components.umd.js +1398 -231
  303. package/package.json +6 -6
  304. package/src/components/Accordion/Accordion.vue +14 -23
  305. package/src/components/Accordion/AccordionItem.vue +27 -43
  306. package/src/components/Actionbar/Actionbar.vue +17 -19
  307. package/src/components/AddressLookup/AddressLookup.vue +17 -18
  308. package/src/components/AdvancedSelect/AdvancedSelect.vue +17 -18
  309. package/src/components/AppliedFilters/AppliedFilters.vue +16 -18
  310. package/src/components/Banner/Banner.vue +18 -21
  311. package/src/components/BarChart/BarChart.vue +17 -18
  312. package/src/components/Calendar/Calendar.vue +14 -20
  313. package/src/components/Card/Card.vue +17 -17
  314. package/src/components/Carousel/Carousel.vue +17 -20
  315. package/src/components/Content/Content.vue +17 -18
  316. package/src/components/DarkMode/DarkMode.vue +19 -0
  317. package/src/components/DoughnutChart/DoughnutChart.vue +17 -18
  318. package/src/components/FileUpload/FileUpload.vue +22 -28
  319. package/src/components/FilterCard/FilterCard.vue +17 -18
  320. package/src/components/Filterlist/Filterlist.vue +17 -0
  321. package/src/components/Header/Header.vue +28 -29
  322. package/src/components/InlineEdit/InlineEdit.vue +11 -19
  323. package/src/components/Menu/Menu.vue +17 -17
  324. package/src/components/Milestones/Milestone.vue +22 -27
  325. package/src/components/Milestones/MilestoneGroup.vue +24 -27
  326. package/src/components/Multiselect/Multiselect.vue +17 -18
  327. package/src/components/Nav/Nav.vue +17 -19
  328. package/src/components/Notification/Notification.vue +17 -15
  329. package/src/components/Pagination/Pagination.vue +16 -16
  330. package/src/components/PasswordIndicator/PasswordIndicator.vue +23 -0
  331. package/src/components/Rank/Rank.vue +17 -18
  332. package/src/components/Rankings/Rankings.vue +17 -27
  333. package/src/components/RecordCard/RecordCard.vue +17 -18
  334. package/src/components/Search/Search.vue +17 -17
  335. package/src/components/Slider/Slider.vue +17 -17
  336. package/src/components/SplitButton/SplitButton.vue +17 -20
  337. package/src/components/Tabs/Tabs.vue +17 -17
  338. package/src/components/VideoCard/VideoCard.vue +17 -18
  339. package/src/components/WordCount/WordCount.vue +22 -0
  340. package/src/index.js +43 -44
  341. package/assets/css/components/address-lookup.css +0 -1
  342. package/assets/css/components/address-lookup.css.map +0 -1
  343. package/assets/css/components/menu.css.map +0 -1
  344. package/assets/css/components/tabs.css +0 -1
  345. package/assets/css/components/tabs.css.map +0 -1
  346. package/assets/sass/components/tabs.scss +0 -254
  347. package/assets/ts/components/accordion/README.md +0 -31
  348. package/assets/ts/components/fileupload/README.md +0 -28
  349. /package/assets/sass/components/{menu.scss → menu.global.scss} +0 -0
@@ -151,14 +151,27 @@ class iamCalendar extends HTMLElement {
151
151
  </div>
152
152
  `;
153
153
  this.shadowRoot.appendChild(template.content.cloneNode(true));
154
- this.monthArray = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
155
- this.dayArray = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
156
- this.english_ordinal_rules = new Intl.PluralRules("en", { type: "ordinal" });
154
+ this.monthArray = [
155
+ 'January',
156
+ 'February',
157
+ 'March',
158
+ 'April',
159
+ 'May',
160
+ 'June',
161
+ 'July',
162
+ 'August',
163
+ 'September',
164
+ 'October',
165
+ 'November',
166
+ 'December',
167
+ ];
168
+ this.dayArray = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
169
+ this.english_ordinal_rules = new Intl.PluralRules('en', { type: 'ordinal' });
157
170
  this.suffixes = {
158
- one: "st",
159
- two: "nd",
160
- few: "rd",
161
- other: "th"
171
+ one: 'st',
172
+ two: 'nd',
173
+ few: 'rd',
174
+ other: 'th',
162
175
  };
163
176
  this.calendars = ['Default']; // TO DO allow for these to be set via the component data attributes
164
177
  this.eventTypes = []; // TO DO allow for these to be set via the component data attributes
@@ -191,7 +204,7 @@ class iamCalendar extends HTMLElement {
191
204
  getOrdinalNumber(number) {
192
205
  const category = this.english_ordinal_rules.select(number);
193
206
  const suffix = this.suffixes[category];
194
- return (number + suffix);
207
+ return number + suffix;
195
208
  }
196
209
  setToMonday(date) {
197
210
  const day = date.getDay() || 7;
@@ -211,7 +224,7 @@ class iamCalendar extends HTMLElement {
211
224
  const year = date.getFullYear();
212
225
  const day = date.getDate();
213
226
  const dayOfWeek = date.getDay() ? date.getDay() : 7;
214
- if (view == "week") {
227
+ if (view == 'week') {
215
228
  const monday = this.setToMonday(new Date(dateStr));
216
229
  const sunday = this.setToSunday(new Date(dateStr));
217
230
  const mondayMonth = monday.getMonth();
@@ -222,10 +235,10 @@ class iamCalendar extends HTMLElement {
222
235
  const sundayDay = sunday.getDate();
223
236
  return `${this.getOrdinalNumber(mondayDay)} ${mondayMonth != sundayMonth ? this.monthArray[sundayMonth] : ''} ${mondayYear != sundayYear ? mondayYear : ''} - ${this.getOrdinalNumber(sundayDay)} ${this.monthArray[sundayMonth]} ${sundayYear}`;
224
237
  }
225
- else if (view == "day") {
238
+ else if (view == 'day') {
226
239
  return `${this.dayArray[dayOfWeek]} ${this.getOrdinalNumber(day)} ${this.monthArray[month]} ${year}`;
227
240
  }
228
- else if (view == "year") {
241
+ else if (view == 'year') {
229
242
  return `${year}`;
230
243
  }
231
244
  return `${this.monthArray[month]} ${year}`;
@@ -235,10 +248,10 @@ class iamCalendar extends HTMLElement {
235
248
  const month = date.getMonth();
236
249
  const year = date.getFullYear();
237
250
  const day = date.getDate();
238
- const selectedDateStr = `${year}-${String(month + 1).padStart(2, "0")}-${String(day).padStart(2, "0")}`;
251
+ const selectedDateStr = `${year}-${String(month + 1).padStart(2, '0')}-${String(day).padStart(2, '0')}`;
239
252
  const daysThisMonth = this.numberDaysInMonth(year, month + 1);
240
- const startOfMonth = new Date(`${year}-${String(month + 1).padStart(2, "0")}-01`);
241
- const endOfMonth = new Date(`${year}-${String(month + 1).padStart(2, "0")}-${daysThisMonth}`);
253
+ const startOfMonth = new Date(`${year}-${String(month + 1).padStart(2, '0')}-01`);
254
+ const endOfMonth = new Date(`${year}-${String(month + 1).padStart(2, '0')}-${daysThisMonth}`);
242
255
  const startDay = startOfMonth.getDay() != 0 ? startOfMonth.getDay() : 7;
243
256
  const endDay = endOfMonth.getDay() != 0 ? endOfMonth.getDay() : 7;
244
257
  const loopDays = daysThisMonth + startDay + (7 - endDay - 1);
@@ -257,21 +270,21 @@ class iamCalendar extends HTMLElement {
257
270
  if (!this.hasAttribute('data-calendars')) {
258
271
  Array.from(this.querySelectorAll('button[data-calendar]')).forEach((element) => {
259
272
  // Scan through the buttons and look forunique calendar names
260
- if (!(this.calendars.includes(element.getAttribute('data-calendar'))))
273
+ if (!this.calendars.includes(element.getAttribute('data-calendar')))
261
274
  this.calendars.push(element.getAttribute('data-calendar'));
262
275
  });
263
276
  }
264
277
  // Create tbody string by looping through the number of days in month plus some days before and after
265
278
  let tbodyContent = `<tr>`;
266
- for (let i = (sundayFirst ? 0 : 1); i <= loopDays; i++) {
279
+ for (let i = sundayFirst ? 0 : 1; i <= loopDays; i++) {
267
280
  const loopDay = i - (startDay - 1);
268
- const loopDate = `${year}-${String(month + 1).padStart(2, "0")}-${String(loopDay).padStart(2, "0")}`;
281
+ const loopDate = `${year}-${String(month + 1).padStart(2, '0')}-${String(loopDay).padStart(2, '0')}`;
269
282
  const dayOfWeek = i % 7;
270
283
  tbodyContent += `<td class="day--${this.dayArray[dayOfWeek].toLowerCase()} ${loopDate == today ? 'today' : ''} ${loopDate == selectedDateStr ? 'selected' : ''} ${i < startDay ? 'prev-month' : ''} ${loopDay > daysThisMonth ? 'next-month' : ''}">`;
271
284
  // prev month days
272
285
  if (i < startDay) {
273
286
  const adjustedLoopDay = daysPrevMonth - (startDay - 1 - i);
274
- const adjustedLoopDate = `${prevMonthYear}-${String(prevMonth + 1).padStart(2, "0")}-${String(adjustedLoopDay).padStart(2, "0")}`;
287
+ const adjustedLoopDate = `${prevMonthYear}-${String(prevMonth + 1).padStart(2, '0')}-${String(adjustedLoopDay).padStart(2, '0')}`;
275
288
  tbodyContent += `<time class="column-header" datetime="${adjustedLoopDate}" title="${this.dayArray[dayOfWeek]} ${loopDay} ${this.monthArray[prevMonth]} ${year}"><span class="day-of-week">${this.dayArray[dayOfWeek]} </span><span class="day">${adjustedLoopDay}</span> <span class="month">${this.monthArray[prevMonth]}</span></time>`;
276
289
  tbodyContent += this.addDay(adjustedLoopDate, this.calendars);
277
290
  }
@@ -282,13 +295,13 @@ class iamCalendar extends HTMLElement {
282
295
  // next month days
283
296
  if (loopDay > daysThisMonth) {
284
297
  const adjustedLoopDay = i - (startDay - 1) - daysThisMonth;
285
- const adjustedLoopDate = `${nextMonthYear}-${String(nextMonth + 1).padStart(2, "0")}-${String(adjustedLoopDay).padStart(2, "0")}`;
298
+ const adjustedLoopDate = `${nextMonthYear}-${String(nextMonth + 1).padStart(2, '0')}-${String(adjustedLoopDay).padStart(2, '0')}`;
286
299
  tbodyContent += `<time class="column-header" datetime="${adjustedLoopDate}" title="${this.dayArray[dayOfWeek]} ${loopDay} ${this.monthArray[nextMonth]} ${year}"><span class="day-of-week">${this.dayArray[dayOfWeek]} </span><span class="day">${adjustedLoopDay}</span> <span class="month">${this.monthArray[nextMonth]}</span></time>`;
287
300
  tbodyContent += this.addDay(adjustedLoopDate, this.calendars);
288
301
  }
289
302
  tbodyContent += '</td>';
290
303
  // Close row and start a new one
291
- if (((sundayFirst ? i + 1 : i) % 7) === 0 && i != loopDays) {
304
+ if ((sundayFirst ? i + 1 : i) % 7 === 0 && i != loopDays) {
292
305
  tbodyContent += `</tr><tr>`;
293
306
  }
294
307
  }
@@ -298,20 +311,20 @@ class iamCalendar extends HTMLElement {
298
311
  addDay(day, calendars) {
299
312
  let htmlTable = '<table class="table--day">';
300
313
  htmlTable += `<thead><tr><th>time</th>`;
301
- calendars.forEach(calendarTitle => {
314
+ calendars.forEach((calendarTitle) => {
302
315
  htmlTable += `<th class="column-header">${calendarTitle}</th>`;
303
316
  });
304
317
  htmlTable += `</tr></thead>`;
305
318
  htmlTable += `<tbody>`;
306
319
  htmlTable += `<tr class="allday"><th>All day</th>`;
307
- calendars.forEach(calendarTitle => {
320
+ calendars.forEach((calendarTitle) => {
308
321
  htmlTable += `<td datetime="${day}" data-calendar="${calendarTitle}"><span datetime="${day}"></span></td>`;
309
322
  });
310
323
  htmlTable += `</tr>`;
311
324
  for (let i = 0; i < 24; i++) {
312
325
  htmlTable += `<tr class="hour${i}"><th data-hour="${i}">${i}${i < 12 ? 'am' : 'pm'}</th>`;
313
- calendars.forEach(calendarTitle => {
314
- htmlTable += `<td datetime="${day}T${String(i).padStart(2, "0")}:00" data-calendar="${calendarTitle}"><span datetime="${day}T${String(i).padStart(2, "0")}:00"></span><span datetime="${day}T${String(i).padStart(2, "0")}:15"></span><span datetime="${day}T${String(i).padStart(2, "0")}:30"></span><span datetime="${day}T${String(i).padStart(2, "0")}:45"></span></td>`;
326
+ calendars.forEach((calendarTitle) => {
327
+ htmlTable += `<td datetime="${day}T${String(i).padStart(2, '0')}:00" data-calendar="${calendarTitle}"><span datetime="${day}T${String(i).padStart(2, '0')}:00"></span><span datetime="${day}T${String(i).padStart(2, '0')}:15"></span><span datetime="${day}T${String(i).padStart(2, '0')}:30"></span><span datetime="${day}T${String(i).padStart(2, '0')}:45"></span></td>`;
315
328
  });
316
329
  htmlTable += `</tr>`;
317
330
  }
@@ -358,15 +371,15 @@ class iamCalendar extends HTMLElement {
358
371
  element.setAttribute('data-days', 1);
359
372
  }
360
373
  }
361
- let getRoundedDate = (minutes, d = new Date()) => {
362
- let ms = 1000 * 60 * minutes; // convert minutes to ms
363
- let roundedDate = new Date(Math.round(d.getTime() / ms) * ms);
374
+ const getRoundedDate = (minutes, d = new Date()) => {
375
+ const ms = 1000 * 60 * minutes; // convert minutes to ms
376
+ const roundedDate = new Date(Math.round(d.getTime() / ms) * ms);
364
377
  const newMonth = roundedDate.getMonth();
365
378
  const newYear = roundedDate.getFullYear();
366
379
  const newDay = roundedDate.getDate();
367
380
  const newMinutes = roundedDate.getMinutes();
368
381
  const newHour = roundedDate.getHours();
369
- const strRoundedDate = `${newYear}-${String(newMonth + 1).padStart(2, "0")}-${String(newDay).padStart(2, "0")}T${String(newHour).padStart(2, "0")}:${String(newMinutes).padStart(2, "0")}`;
382
+ const strRoundedDate = `${newYear}-${String(newMonth + 1).padStart(2, '0')}-${String(newDay).padStart(2, '0')}T${String(newHour).padStart(2, '0')}:${String(newMinutes).padStart(2, '0')}`;
370
383
  return strRoundedDate;
371
384
  };
372
385
  if (datetimeArr[1]) {
@@ -374,7 +387,6 @@ class iamCalendar extends HTMLElement {
374
387
  element.querySelector(':scope > span').setAttribute('data-start', datetimeArr[1]);
375
388
  const roundedDatetime = getRoundedDate(15, new Date(datetime));
376
389
  element.setAttribute('datetime', roundedDatetime);
377
- console.log(roundedDatetime);
378
390
  }
379
391
  if (element.querySelector('.tooltip__content')) {
380
392
  const tooltip = element.querySelector('.tooltip__content');
@@ -391,10 +403,12 @@ class iamCalendar extends HTMLElement {
391
403
  // Locate where we need to add slots for the buttons to go - We need duplicate slots for the split view and fixed header
392
404
  const timeTd = component.shadowRoot.querySelector(`.month-wrapper .table--day td:has(span[datetime="${datetime}"])${element.hasAttribute('data-calendar') ? `[data-calendar="${element.getAttribute('data-calendar').replace('_', '')}"]` : ''}`);
393
405
  const timeTdHeader = component.shadowRoot.querySelector(`#week-view-header .table--day td:has(span[datetime="${datetime}"])${element.hasAttribute('data-calendar') ? `[data-calendar="${element.getAttribute('data-calendar').replace('_', '')}"]` : ''}`);
394
- if (timeTdHeader && timeTdHeader.closest('tr').classList.contains("allday")) {
395
- // Add the alldays slot for the fixed header
406
+ if (timeTdHeader && timeTdHeader.closest('tr').classList.contains('allday')) {
407
+ // Add the alldays slot for the fixed header
396
408
  if (!timeTdHeader.querySelector(`slot[name="${datetime}${element.hasAttribute('data-calendar') ? `-${element.getAttribute('data-calendar').replace('_', '')}` : ''}-header]"`)) {
397
- timeTdHeader.querySelector(`span[datetime="${datetime}"]`).insertAdjacentHTML('beforeEnd', `<slot name="${datetime}${element.hasAttribute('data-calendar') ? `-${element.getAttribute('data-calendar').replace('_', '')}` : ''}-header" class="${continued ? 'continued' : ''}"></slot>`);
409
+ timeTdHeader
410
+ .querySelector(`span[datetime="${datetime}"]`)
411
+ .insertAdjacentHTML('beforeEnd', `<slot name="${datetime}${element.hasAttribute('data-calendar') ? `-${element.getAttribute('data-calendar').replace('_', '')}` : ''}-header" class="${continued ? 'continued' : ''}"></slot>`);
398
412
  }
399
413
  }
400
414
  const dateTd = (_a = timeTd === null || timeTd === void 0 ? void 0 : timeTd.parentElement) === null || _a === void 0 ? void 0 : _a.closest('td');
@@ -404,15 +418,17 @@ class iamCalendar extends HTMLElement {
404
418
  if (timeTd) {
405
419
  // Add the default slot
406
420
  if (!timeTd.querySelector(`slot[name="${datetime}${element.hasAttribute('data-calendar') ? `-${element.getAttribute('data-calendar').replace('_', '')}` : ''}"]`)) {
407
- timeTd.querySelector(`span[datetime="${datetime}"]`).insertAdjacentHTML('beforeEnd', `<slot name="${datetime}${element.hasAttribute('data-calendar') ? `-${element.getAttribute('data-calendar').replace('_', '')}` : ''}" class="${continued ? 'continued' : ''}"></slot>`);
421
+ timeTd
422
+ .querySelector(`span[datetime="${datetime}"]`)
423
+ .insertAdjacentHTML('beforeEnd', `<slot name="${datetime}${element.hasAttribute('data-calendar') ? `-${element.getAttribute('data-calendar').replace('_', '')}` : ''}" class="${continued ? 'continued' : ''}"></slot>`);
408
424
  }
409
425
  // Set the classes need to create the grey bars in the mobile month view
410
426
  const events = dateTd.hasAttribute('data-events') ? parseInt(dateTd.getAttribute('data-events')) : 0;
411
427
  let hours = dateTd.hasAttribute('data-hours') ? parseFloat(dateTd.getAttribute('data-hours')) : 0;
412
428
  hours += element.hasAttribute('data-hours') ? parseFloat(element.getAttribute('data-hours')) : 0;
413
429
  dateTd.setAttribute('data-events', parseInt(events) + 1);
414
- if ((events + 1) > 2)
415
- dateTd.setAttribute('data-more', (parseInt(events) + 1) - 2);
430
+ if (events + 1 > 2)
431
+ dateTd.setAttribute('data-more', parseInt(events) + 1 - 2);
416
432
  dateTd.setAttribute('data-hours', hours);
417
433
  dateTd.classList.add('has-event');
418
434
  if (timeTd.closest('tr').classList.contains('has-event'))
@@ -436,7 +452,7 @@ class iamCalendar extends HTMLElement {
436
452
  element.style.setProperty('--event-width', `${eventDayTotal * 100}%`);
437
453
  element.style.setProperty('--event-max-width', `${(8 - dayOfWeek) * 100}%`);
438
454
  element.classList.add('allday-event');
439
- // Create a duplicate event for each day the orginal
455
+ // Create a duplicate event for each day the orginal
440
456
  for (let i = 1; i < eventDayTotal; i++) {
441
457
  const cloneElement = element.cloneNode(true);
442
458
  cloneElement.removeAttribute('data-days');
@@ -456,12 +472,13 @@ class iamCalendar extends HTMLElement {
456
472
  const newYear = newDate.getFullYear();
457
473
  const newDay = newDate.getDate();
458
474
  const newDayOfWeek = newDate.getDay() ? newDate.getDay() : 7;
459
- const strCloneEvent = `${newYear}-${String(newMonth + 1).padStart(2, "0")}-${String(newDay).padStart(2, "0")}`;
475
+ const strCloneEvent = `${newYear}-${String(newMonth + 1).padStart(2, '0')}-${String(newDay).padStart(2, '0')}`;
460
476
  cloneElement.setAttribute('data-original-datetime', element.getAttribute('datetime'));
461
477
  cloneElement.setAttribute('datetime', strCloneEvent);
462
478
  element.after(cloneElement); // Add after original
463
479
  adjustEvent(component, cloneElement, true);
464
- if (newDayOfWeek == 1) { // Monday
480
+ if (newDayOfWeek == 1) {
481
+ // Monday
465
482
  cloneElement.style.setProperty('--event-width', `${(eventDayTotal - i) * 100}%`);
466
483
  cloneElement.style.setProperty('--event-max-width', `${(8 - newDayOfWeek) * 100}%`);
467
484
  cloneElement.classList.remove('continued');
@@ -478,11 +495,11 @@ class iamCalendar extends HTMLElement {
478
495
  });
479
496
  setTimeout(() => {
480
497
  this.pauseObserver = false;
481
- }, "500");
498
+ }, '500');
482
499
  }
483
500
  addJSEvents(component) {
484
501
  var _a, _b, _c, _d, _e, _f, _g;
485
- // Add events to the newly created calendar
502
+ // Add events to the newly created calendar
486
503
  const title = (_a = component.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.calendar__title');
487
504
  const datePicker = (_b = component.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector(`#date`);
488
505
  const viewPicker = (_c = component.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector(`#view`);
@@ -491,7 +508,7 @@ class iamCalendar extends HTMLElement {
491
508
  const date = today.getDate();
492
509
  const month = today.getMonth();
493
510
  const year = today.getFullYear();
494
- const strToday = `${year}-${String(month + 1).padStart(2, "0")}-${String(date).padStart(2, "0")}`;
511
+ const strToday = `${year}-${String(month + 1).padStart(2, '0')}-${String(date).padStart(2, '0')}`;
495
512
  const tbody = (_e = component.shadowRoot) === null || _e === void 0 ? void 0 : _e.querySelector('#calendar > table > tbody');
496
513
  // clicking on the day istelf
497
514
  Array.from(component.shadowRoot.querySelectorAll('.month-wrapper > table > tbody > tr > td:has(slot)')).forEach((element) => {
@@ -504,7 +521,7 @@ class iamCalendar extends HTMLElement {
504
521
  });
505
522
  element.classList.add('selected');
506
523
  // Go to day if the in month view with out split view enabled
507
- if (component.shadowRoot.querySelector('[name="split"]:checked') && viewPicker.value == "month") {
524
+ if (component.shadowRoot.querySelector('[name="split"]:checked') && viewPicker.value == 'month') {
508
525
  Array.from(component.querySelectorAll(`[data-slot]`)).forEach((button) => {
509
526
  button.setAttribute('slot', button.getAttribute('data-slot'));
510
527
  });
@@ -513,13 +530,13 @@ class iamCalendar extends HTMLElement {
513
530
  button.removeAttribute('slot');
514
531
  });
515
532
  }
516
- else if (!component.shadowRoot.querySelector('[name="split"]:checked') && viewPicker.value == "month") {
517
- viewPicker.value = "day";
533
+ else if (!component.shadowRoot.querySelector('[name="split"]:checked') && viewPicker.value == 'month') {
534
+ viewPicker.value = 'day';
518
535
  title === null || title === void 0 ? void 0 : title.innerHTML = this.getTitle(datePicker.value, viewPicker.value);
519
536
  component.scrollIntoPlace();
520
537
  }
521
- if (viewPicker.value == "year") {
522
- viewPicker.value = "month";
538
+ if (viewPicker.value == 'year') {
539
+ viewPicker.value = 'month';
523
540
  yearView === null || yearView === void 0 ? void 0 : yearView.innerHTML = '';
524
541
  tbody === null || tbody === void 0 ? void 0 : tbody.innerHTML = component.createCalendar(datePicker.value, strToday);
525
542
  component.addEvents();
@@ -529,21 +546,21 @@ class iamCalendar extends HTMLElement {
529
546
  });
530
547
  // Drag and drop
531
548
  (_f = component.shadowRoot) === null || _f === void 0 ? void 0 : _f.querySelectorAll(`#calendar .table--day td span`).forEach((element) => {
532
- element.addEventListener("dragover", (ev) => {
549
+ element.addEventListener('dragover', (ev) => {
533
550
  ev.preventDefault();
534
551
  return false;
535
552
  });
536
- element.addEventListener("dragenter", (ev) => {
553
+ element.addEventListener('dragenter', (ev) => {
537
554
  ev.preventDefault();
538
555
  element.classList.add('dragover');
539
556
  });
540
- element.addEventListener("dragleave", (ev) => {
557
+ element.addEventListener('dragleave', (ev) => {
541
558
  ev.preventDefault();
542
559
  element.classList.remove('dragover');
543
560
  });
544
- element.addEventListener("drop", (ev) => {
561
+ element.addEventListener('drop', (ev) => {
545
562
  ev.preventDefault();
546
- const droppedElement = component.querySelector(`#${ev.dataTransfer.getData("text")}`);
563
+ const droppedElement = component.querySelector(`#${ev.dataTransfer.getData('text')}`);
547
564
  const td = element.closest('td');
548
565
  const datetime = element.getAttribute('datetime');
549
566
  element.classList.remove('dragover');
@@ -555,7 +572,7 @@ class iamCalendar extends HTMLElement {
555
572
  droppedElement === null || droppedElement === void 0 ? void 0 : droppedElement.setAttribute('slot', `${datetime}${td.hasAttribute('data-calendar') ? `-${td.getAttribute('data-calendar').replace('_', '')}` : ''}`);
556
573
  });
557
574
  });
558
- // Watch for the event being resized
575
+ // Watch for the event being resized
559
576
  const resizeObserver = new ResizeObserver((entries) => {
560
577
  for (const entry of entries) {
561
578
  if (entry.target.classList.contains('mousedown'))
@@ -565,15 +582,15 @@ class iamCalendar extends HTMLElement {
565
582
  if (component.hasAttribute('data-drag')) {
566
583
  component.querySelectorAll(`button:not([draggable])`).forEach((element) => {
567
584
  element.setAttribute('draggable', 'true');
568
- element.addEventListener("dragstart", (ev) => {
569
- ev.dataTransfer.setData("text", ev.target.id); // save the id for when dropped
585
+ element.addEventListener('dragstart', (ev) => {
586
+ ev.dataTransfer.setData('text', ev.target.id); // save the id for when dropped
570
587
  });
571
588
  // set onbserver
572
589
  resizeObserver.observe(element);
573
- element.addEventListener("mousedown", (ev) => {
590
+ element.addEventListener('mousedown', (ev) => {
574
591
  element.classList.add('mousedown');
575
592
  });
576
- element.addEventListener("click", (ev) => {
593
+ element.addEventListener('click', (ev) => {
577
594
  if (element.classList.contains('resizing')) {
578
595
  ev.stopPropagation();
579
596
  ev.stopImmediatePropagation();
@@ -582,30 +599,30 @@ class iamCalendar extends HTMLElement {
582
599
  // Work out the evnt length in hours and set the height
583
600
  const span = this.shadowRoot.querySelector(`span[datetime="${element.getAttribute('datetime')}"]`);
584
601
  const spanStyles = window.getComputedStyle(span);
585
- const hours = Math.round(parseInt(element.style.height) / parseInt(spanStyles.getPropertyValue("height"))) / 4;
602
+ const hours = Math.round(parseInt(element.style.height) / parseInt(spanStyles.getPropertyValue('height'))) / 4;
586
603
  element.setAttribute('data-hours', hours);
587
604
  element.style.setProperty('--event-height', `${hours * (1.09375 * 4)}rem`);
588
- element.style.height = "";
605
+ element.style.height = '';
589
606
  // to do dispatch event
590
607
  }
591
608
  });
592
609
  });
593
610
  }
594
611
  component.querySelectorAll(`button`).forEach((element) => {
595
- element.addEventListener("contextmenu", (event) => {
612
+ element.addEventListener('contextmenu', (event) => {
596
613
  event.preventDefault();
597
614
  event.stopPropagation();
598
615
  });
599
616
  });
600
617
  (_g = component.shadowRoot) === null || _g === void 0 ? void 0 : _g.querySelectorAll(`.month-wrapper > table > tbody > tr > td`).forEach((element) => {
601
- element.addEventListener("contextmenu", (event) => {
618
+ element.addEventListener('contextmenu', (event) => {
602
619
  event.preventDefault();
603
620
  const customEvent = new CustomEvent('right-click', {
604
621
  detail: {
605
- 'clientX': event.clientX,
606
- 'clientY': event.clientY,
607
- 'element': element,
608
- 'datetime': element.querySelector('time').getAttribute('datetime')
622
+ clientX: event.clientX,
623
+ clientY: event.clientY,
624
+ element: element,
625
+ datetime: element.querySelector('time').getAttribute('datetime'),
609
626
  },
610
627
  });
611
628
  console.log(element);
@@ -614,60 +631,60 @@ class iamCalendar extends HTMLElement {
614
631
  });
615
632
  }
616
633
  paginateDate(direction, view, currentDate) {
617
- if (view == "month" || view == "list") {
634
+ if (view == 'month' || view == 'list') {
618
635
  const selectedDate = new Date(currentDate);
619
- if (direction == "next")
636
+ if (direction == 'next')
620
637
  selectedDate.setMonth(selectedDate.getMonth() + 1);
621
638
  else
622
639
  selectedDate.setMonth(selectedDate.getMonth() - 1);
623
640
  const month = selectedDate.getMonth() + 1;
624
641
  const year = selectedDate.getFullYear();
625
- const strNextMonth = `${year}-${String(month).padStart(2, "0")}-01`;
642
+ const strNextMonth = `${year}-${String(month).padStart(2, '0')}-01`;
626
643
  return strNextMonth;
627
644
  }
628
- else if (view == "week") {
645
+ else if (view == 'week') {
629
646
  //const selectedDate = new Date(currentDate);
630
647
  const monday = this.setToMonday(new Date(currentDate));
631
- if (direction == "next")
648
+ if (direction == 'next')
632
649
  monday.setDate(monday.getDate() + 7);
633
650
  else
634
651
  monday.setDate(monday.getDate() - 7);
635
652
  const date = monday.getDate();
636
653
  const month = monday.getMonth() + 1;
637
654
  const year = monday.getFullYear();
638
- const strNextWeek = `${year}-${String(month).padStart(2, "0")}-${String(date).padStart(2, "0")}`;
655
+ const strNextWeek = `${year}-${String(month).padStart(2, '0')}-${String(date).padStart(2, '0')}`;
639
656
  return strNextWeek;
640
657
  }
641
- else if (view == "year") {
658
+ else if (view == 'year') {
642
659
  const selectedDate = new Date(currentDate);
643
- if (direction == "next")
660
+ if (direction == 'next')
644
661
  selectedDate.setYear(selectedDate.getFullYear() + 1);
645
662
  else
646
663
  selectedDate.setYear(selectedDate.getFullYear() - 1);
647
664
  const year = selectedDate.getFullYear();
648
665
  const month = selectedDate.getMonth() + 1;
649
- const strNextMonth = `${year}-${String(month).padStart(2, "0")}-01`;
666
+ const strNextMonth = `${year}-${String(month).padStart(2, '0')}-01`;
650
667
  return strNextMonth;
651
668
  }
652
669
  const nextDay = new Date(currentDate);
653
- if (direction == "next")
670
+ if (direction == 'next')
654
671
  nextDay.setDate(nextDay.getDate() + 1);
655
672
  else
656
673
  nextDay.setDate(nextDay.getDate() - 1);
657
674
  const date = nextDay.getDate();
658
675
  const month = nextDay.getMonth() + 1;
659
676
  const year = nextDay.getFullYear();
660
- const strNextDay = `${year}-${String(month).padStart(2, "0")}-${String(date).padStart(2, "0")}`;
677
+ const strNextDay = `${year}-${String(month).padStart(2, '0')}-${String(date).padStart(2, '0')}`;
661
678
  return strNextDay;
662
679
  }
663
680
  setWeekDay() {
664
681
  var _a, _b, _c, _d;
665
- (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('.out-of-hours').forEach(element => {
682
+ (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('.out-of-hours').forEach((element) => {
666
683
  element.classList.remove('out-of-hours');
667
684
  });
668
685
  const startTime = parseInt((_b = this.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#start-time').value.split(':')[0]);
669
686
  const endTime = parseInt((_c = this.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#end-time').value.split(':')[0]);
670
- (_d = this.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelectorAll('[data-hour]').forEach(element => {
687
+ (_d = this.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelectorAll('[data-hour]').forEach((element) => {
671
688
  const hour = parseInt(element.getAttribute('data-hour'));
672
689
  if (hour < startTime)
673
690
  element.classList.add('out-of-hours');
@@ -683,9 +700,9 @@ class iamCalendar extends HTMLElement {
683
700
  const viewPicker = (_b = this.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector(`#view`);
684
701
  const wrapper = this.shadowRoot.querySelector('.calendar__wrapper');
685
702
  // scroll
686
- if (viewPicker.value == "week")
703
+ if (viewPicker.value == 'week')
687
704
  wrapper.scrollTo(0, scrollPos); // TO DO work out how much to scroll by
688
- else if (viewPicker.value == "day") {
705
+ else if (viewPicker.value == 'day') {
689
706
  wrapper.scrollTo(0, scrollPos); // TO DO work out how much to scroll by
690
707
  }
691
708
  }
@@ -750,17 +767,17 @@ class iamCalendar extends HTMLElement {
750
767
  var _a;
751
768
  element.setAttribute('data-time', time);
752
769
  element.classList.add('column-header');
753
- (_a = element.closest('tr')) === null || _a === void 0 ? void 0 : _a.style.setProperty('--minute-pos', ((minute / 60) * 100) + '%');
770
+ (_a = element.closest('tr')) === null || _a === void 0 ? void 0 : _a.style.setProperty('--minute-pos', (minute / 60) * 100 + '%');
754
771
  });
755
772
  }
756
773
  }
757
774
  getYearView(selectedDate, today, sundayFirst) {
758
- let yearViewStr = "";
775
+ let yearViewStr = '';
759
776
  for (let i = 0; i < 12; i++) {
760
777
  console.log(selectedDate);
761
778
  const selectedDateObj = new Date(selectedDate);
762
779
  const selectedYear = selectedDateObj.getFullYear();
763
- const selectedFormattedDate = `${selectedYear}-${String(i + 1).padStart(2, "0")}-01`;
780
+ const selectedFormattedDate = `${selectedYear}-${String(i + 1).padStart(2, '0')}-01`;
764
781
  yearViewStr += `<div class='month-wrapper'>
765
782
  <time class="column-header">${this.monthArray[i]}</time>
766
783
  <table>
@@ -801,14 +818,14 @@ class iamCalendar extends HTMLElement {
801
818
  const date = today.getDate();
802
819
  const month = today.getMonth();
803
820
  const year = today.getFullYear();
804
- const strToday = `${year}-${String(month + 1).padStart(2, "0")}-${String(date).padStart(2, "0")}`;
821
+ const strToday = `${year}-${String(month + 1).padStart(2, '0')}-${String(date).padStart(2, '0')}`;
805
822
  datePicker.value = strToday;
806
823
  // Setup the view, month being default
807
824
  if (this.hasAttribute('data-view'))
808
825
  viewPicker.value = this.getAttribute('data-view');
809
826
  else {
810
- this.setAttribute('data-view', "month");
811
- viewPicker.value = "month";
827
+ this.setAttribute('data-view', 'month');
828
+ viewPicker.value = 'month';
812
829
  }
813
830
  if (this.hasAttribute('data-views'))
814
831
  viewPicker === null || viewPicker === void 0 ? void 0 : viewPicker.setAttribute('data-views', this.getAttribute('data-views'));
@@ -821,13 +838,13 @@ class iamCalendar extends HTMLElement {
821
838
  }
822
839
  // Setup the settings dialog
823
840
  this.setupSettings();
824
- // Setup the calendar then adjust and add events
841
+ // Setup the calendar then adjust and add events
825
842
  title === null || title === void 0 ? void 0 : title.innerHTML = this.getTitle(strToday, viewPicker.value);
826
843
  const calendarHtml = this.createCalendar(strToday, strToday, sundayFirst);
827
844
  tbody === null || tbody === void 0 ? void 0 : tbody.innerHTML = calendarHtml;
828
845
  //tbodySplit?.innerHTML = calendarHtml;
829
846
  weekViewHeader === null || weekViewHeader === void 0 ? void 0 : weekViewHeader.innerHTML = calendarHtml;
830
- if (viewPicker.value == "year") {
847
+ if (viewPicker.value == 'year') {
831
848
  yearView === null || yearView === void 0 ? void 0 : yearView.innerHTML = this.getYearView(datePicker.value, strToday, sundayFirst);
832
849
  tbody === null || tbody === void 0 ? void 0 : tbody.innerHTML = '';
833
850
  }
@@ -853,7 +870,7 @@ class iamCalendar extends HTMLElement {
853
870
  });
854
871
  const resizeObserver = new ResizeObserver((entries) => {
855
872
  const splitButtonDisplayed = window.getComputedStyle(splitButton === null || splitButton === void 0 ? void 0 : splitButton.parentElement, null).display;
856
- if (splitButtonDisplayed == "none") {
873
+ if (splitButtonDisplayed == 'none') {
857
874
  Array.from(this.querySelectorAll(`[data-slot]`)).forEach((button) => {
858
875
  button.setAttribute('slot', button.getAttribute('data-slot'));
859
876
  });
@@ -864,7 +881,7 @@ class iamCalendar extends HTMLElement {
864
881
  viewPicker === null || viewPicker === void 0 ? void 0 : viewPicker.addEventListener('change', () => {
865
882
  title === null || title === void 0 ? void 0 : title.innerHTML = this.getTitle(datePicker.value, viewPicker.value);
866
883
  this.setAttribute('data-view', viewPicker.value);
867
- if (viewPicker.value == "week") {
884
+ if (viewPicker.value == 'week') {
868
885
  Array.from(this.querySelectorAll(`.allday-event`)).forEach((button) => {
869
886
  button.setAttribute('slot', button.getAttribute('slot') + '-header');
870
887
  });
@@ -875,14 +892,14 @@ class iamCalendar extends HTMLElement {
875
892
  button.setAttribute('slot', (_a = button.getAttribute('slot')) === null || _a === void 0 ? void 0 : _a.replace('-header', ''));
876
893
  });
877
894
  }
878
- if (viewPicker.value == "week" || viewPicker.value == "day")
895
+ if (viewPicker.value == 'week' || viewPicker.value == 'day')
879
896
  this.scrollIntoPlace();
880
- if (viewPicker.value != "month") {
897
+ if (viewPicker.value != 'month') {
881
898
  Array.from(this.querySelectorAll(`[data-slot^="${datePicker.value}"]`)).forEach((button) => {
882
899
  button.setAttribute('slot', button.getAttribute('data-slot'));
883
900
  });
884
901
  }
885
- if (viewPicker.value == "year") {
902
+ if (viewPicker.value == 'year') {
886
903
  yearView === null || yearView === void 0 ? void 0 : yearView.innerHTML = this.getYearView(datePicker.value, strToday, sundayFirst);
887
904
  tbody === null || tbody === void 0 ? void 0 : tbody.innerHTML = '';
888
905
  this.addEvents();
@@ -891,7 +908,7 @@ class iamCalendar extends HTMLElement {
891
908
  this.setTime(); // Month and day view has a current time indicator
892
909
  this.scrollIntoPlace();
893
910
  }
894
- else if ((tbody === null || tbody === void 0 ? void 0 : tbody.innerHTML) == "") {
911
+ else if ((tbody === null || tbody === void 0 ? void 0 : tbody.innerHTML) == '') {
895
912
  yearView === null || yearView === void 0 ? void 0 : yearView.innerHTML = '';
896
913
  tbody === null || tbody === void 0 ? void 0 : tbody.innerHTML = this.createCalendar(datePicker.value, strToday);
897
914
  this.addEvents();
@@ -902,14 +919,14 @@ class iamCalendar extends HTMLElement {
902
919
  }
903
920
  const customEvent = new CustomEvent('change-view', {
904
921
  detail: {
905
- 'view': viewPicker.value,
906
- 'date': datePicker.value
922
+ view: viewPicker.value,
923
+ date: datePicker.value,
907
924
  },
908
925
  });
909
926
  this.dispatchEvent(customEvent);
910
927
  });
911
928
  function resetCalendar(component) {
912
- if (viewPicker.value == "year") {
929
+ if (viewPicker.value == 'year') {
913
930
  yearView === null || yearView === void 0 ? void 0 : yearView.innerHTML = component.getYearView(datePicker.value, strToday, sundayFirst);
914
931
  tbody === null || tbody === void 0 ? void 0 : tbody.innerHTML = '';
915
932
  component.addEvents();
@@ -944,8 +961,8 @@ class iamCalendar extends HTMLElement {
944
961
  resetCalendar(this);
945
962
  const customEvent = new CustomEvent('change-date', {
946
963
  detail: {
947
- 'view': viewPicker.value,
948
- 'date': datePicker.value
964
+ view: viewPicker.value,
965
+ date: datePicker.value,
949
966
  },
950
967
  });
951
968
  this.dispatchEvent(customEvent);
@@ -960,7 +977,9 @@ class iamCalendar extends HTMLElement {
960
977
  console.log(this.pauseObserver);
961
978
  if (this.pauseObserver == false) {
962
979
  for (const mutation of mutationList) {
963
- if (mutation.type == 'characterData' || (mutation.type == 'childList' && mutation.addedNodes.length) || mutation.type === 'attributes') {
980
+ if (mutation.type == 'characterData' ||
981
+ (mutation.type == 'childList' && mutation.addedNodes.length) ||
982
+ mutation.type === 'attributes') {
964
983
  //resetCalendar(this);
965
984
  this.addEvents();
966
985
  }
@@ -979,14 +998,14 @@ class iamCalendar extends HTMLElement {
979
998
  resetCalendar(this);
980
999
  const customEvent = new CustomEvent('change-date-today', {
981
1000
  detail: {
982
- 'view': viewPicker.value,
983
- 'date': datePicker.value
1001
+ view: viewPicker.value,
1002
+ date: datePicker.value,
984
1003
  },
985
1004
  });
986
1005
  this.dispatchEvent(customEvent);
987
1006
  });
988
1007
  prevButton === null || prevButton === void 0 ? void 0 : prevButton.addEventListener('click', () => {
989
- datePicker.value = this.paginateDate("prev", viewPicker.value, datePicker.value);
1008
+ datePicker.value = this.paginateDate('prev', viewPicker.value, datePicker.value);
990
1009
  title === null || title === void 0 ? void 0 : title.innerHTML = this.getTitle(datePicker.value, viewPicker.value);
991
1010
  if (this.shadowRoot.querySelector(`td:has(time[datetime="${datePicker.value}"]):not(.prev-month, .next-month)`))
992
1011
  updateCalendar(this);
@@ -994,14 +1013,14 @@ class iamCalendar extends HTMLElement {
994
1013
  resetCalendar(this);
995
1014
  const customEvent = new CustomEvent('change-date-previous', {
996
1015
  detail: {
997
- 'view': viewPicker.value,
998
- 'date': datePicker.value
1016
+ view: viewPicker.value,
1017
+ date: datePicker.value,
999
1018
  },
1000
1019
  });
1001
1020
  this.dispatchEvent(customEvent);
1002
1021
  });
1003
1022
  nextButton === null || nextButton === void 0 ? void 0 : nextButton.addEventListener('click', () => {
1004
- datePicker.value = this.paginateDate("next", viewPicker.value, datePicker.value);
1023
+ datePicker.value = this.paginateDate('next', viewPicker.value, datePicker.value);
1005
1024
  title === null || title === void 0 ? void 0 : title.innerHTML = this.getTitle(datePicker.value, viewPicker.value);
1006
1025
  console.log(datePicker.value);
1007
1026
  if (this.shadowRoot.querySelector(`td:has(time[datetime="${datePicker.value}"]):not(.prev-month, .next-month)`))
@@ -1010,8 +1029,8 @@ class iamCalendar extends HTMLElement {
1010
1029
  resetCalendar(this);
1011
1030
  const customEvent = new CustomEvent('change-date-next', {
1012
1031
  detail: {
1013
- 'view': viewPicker.value,
1014
- 'date': datePicker.value
1032
+ view: viewPicker.value,
1033
+ date: datePicker.value,
1015
1034
  },
1016
1035
  });
1017
1036
  this.dispatchEvent(customEvent);
@@ -1027,7 +1046,7 @@ class iamCalendar extends HTMLElement {
1027
1046
  'change-date-next',
1028
1047
  'open-settings',
1029
1048
  'close-settings',
1030
- 'save-settings'
1049
+ 'save-settings',
1031
1050
  ]);
1032
1051
  }
1033
1052
  static get observedAttributes() {
@@ -1037,35 +1056,33 @@ class iamCalendar extends HTMLElement {
1037
1056
  var _a, _b, _c, _d;
1038
1057
  this.pauseObserver = true;
1039
1058
  switch (attrName) {
1040
- case 'data-calendars':
1041
- {
1042
- if (oldVal != newVal) {
1043
- const tbody = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#calendar > table > tbody');
1044
- const weekViewHeader = (_b = this.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#week-view-header > table > tbody');
1045
- const datePicker = (_c = this.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector(`#date`);
1046
- // Get a formatted version of todays date
1047
- const today = new Date();
1048
- const date = today.getDate();
1049
- const month = today.getMonth();
1050
- const year = today.getFullYear();
1051
- const strToday = `${year}-${String(month + 1).padStart(2, "0")}-${String(date).padStart(2, "0")}`;
1052
- if (this.hasAttribute('data-calendars')) {
1053
- this.calendars = this.getAttribute('data-calendars').split(',');
1054
- this.calendars.forEach((item, index) => {
1055
- this.calendars[index] = item.trim();
1056
- });
1057
- }
1058
- const calendarHtml = this.createCalendar(datePicker.value, strToday);
1059
- tbody === null || tbody === void 0 ? void 0 : tbody.innerHTML = calendarHtml;
1060
- weekViewHeader === null || weekViewHeader === void 0 ? void 0 : weekViewHeader.innerHTML = calendarHtml;
1061
- this.addEvents();
1062
- this.addJSEvents(this);
1063
- this.setWeekDay();
1064
- this.setTime();
1059
+ case 'data-calendars': {
1060
+ if (oldVal != newVal) {
1061
+ const tbody = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#calendar > table > tbody');
1062
+ const weekViewHeader = (_b = this.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#week-view-header > table > tbody');
1063
+ const datePicker = (_c = this.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector(`#date`);
1064
+ // Get a formatted version of todays date
1065
+ const today = new Date();
1066
+ const date = today.getDate();
1067
+ const month = today.getMonth();
1068
+ const year = today.getFullYear();
1069
+ const strToday = `${year}-${String(month + 1).padStart(2, '0')}-${String(date).padStart(2, '0')}`;
1070
+ if (this.hasAttribute('data-calendars')) {
1071
+ this.calendars = this.getAttribute('data-calendars').split(',');
1072
+ this.calendars.forEach((item, index) => {
1073
+ this.calendars[index] = item.trim();
1074
+ });
1065
1075
  }
1066
- break;
1076
+ const calendarHtml = this.createCalendar(datePicker.value, strToday);
1077
+ tbody === null || tbody === void 0 ? void 0 : tbody.innerHTML = calendarHtml;
1078
+ weekViewHeader === null || weekViewHeader === void 0 ? void 0 : weekViewHeader.innerHTML = calendarHtml;
1079
+ this.addEvents();
1080
+ this.addJSEvents(this);
1081
+ this.setWeekDay();
1082
+ this.setTime();
1067
1083
  }
1068
- ;
1084
+ break;
1085
+ }
1069
1086
  case 'data-view': {
1070
1087
  if (oldVal != newVal) {
1071
1088
  const viewPicker = (_d = this.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector(`#view`);
@@ -1077,7 +1094,7 @@ class iamCalendar extends HTMLElement {
1077
1094
  }
1078
1095
  setTimeout(() => {
1079
1096
  this.pauseObserver = false;
1080
- }, "500");
1097
+ }, '500');
1081
1098
  }
1082
1099
  }
1083
1100
  export default iamCalendar;