igniteui-webcomponents 4.11.0 → 5.0.0-rc.0

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 (373) hide show
  1. package/CHANGELOG.md +79 -0
  2. package/README.md +168 -110
  3. package/components/accordion/accordion.d.ts +2 -2
  4. package/components/accordion/accordion.js +25 -35
  5. package/components/accordion/accordion.js.map +1 -1
  6. package/components/avatar/avatar.d.ts +1 -3
  7. package/components/avatar/avatar.js +1 -3
  8. package/components/avatar/avatar.js.map +1 -1
  9. package/components/avatar/themes/avatar.base.css.js +1 -1
  10. package/components/avatar/themes/avatar.base.css.js.map +1 -1
  11. package/components/badge/badge.d.ts +2 -1
  12. package/components/badge/badge.js.map +1 -1
  13. package/components/badge/themes/badge.base.css.js +1 -1
  14. package/components/badge/themes/badge.base.css.js.map +1 -1
  15. package/components/button/button-base.d.ts +3 -4
  16. package/components/button/button-base.js +1 -9
  17. package/components/button/button-base.js.map +1 -1
  18. package/components/button/button.d.ts +3 -7
  19. package/components/button/button.js +4 -5
  20. package/components/button/button.js.map +1 -1
  21. package/components/button/icon-button.d.ts +2 -2
  22. package/components/button/icon-button.js +0 -3
  23. package/components/button/icon-button.js.map +1 -1
  24. package/components/button/themes/button/button.base.css.js +1 -1
  25. package/components/button/themes/button/button.base.css.js.map +1 -1
  26. package/components/button/themes/icon-button/icon-button.base.css.js +1 -1
  27. package/components/button/themes/icon-button/icon-button.base.css.js.map +1 -1
  28. package/components/button-group/themes/button.base.css.js +1 -1
  29. package/components/button-group/themes/button.base.css.js.map +1 -1
  30. package/components/button-group/themes/group.base.css.js +1 -1
  31. package/components/button-group/themes/group.base.css.js.map +1 -1
  32. package/components/calendar/base.d.ts +65 -0
  33. package/components/calendar/base.js +150 -0
  34. package/components/calendar/base.js.map +1 -0
  35. package/components/calendar/calendar.d.ts +113 -61
  36. package/components/calendar/calendar.js +417 -514
  37. package/components/calendar/calendar.js.map +1 -1
  38. package/components/calendar/days-view/days-view.d.ts +43 -46
  39. package/components/calendar/days-view/days-view.js +269 -340
  40. package/components/calendar/days-view/days-view.js.map +1 -1
  41. package/components/calendar/helpers.d.ts +30 -0
  42. package/components/calendar/helpers.js +99 -0
  43. package/components/calendar/helpers.js.map +1 -0
  44. package/components/calendar/model.d.ts +55 -0
  45. package/components/calendar/model.js +94 -0
  46. package/components/calendar/model.js.map +1 -0
  47. package/components/calendar/months-view/months-view.d.ts +12 -12
  48. package/components/calendar/months-view/months-view.js +72 -79
  49. package/components/calendar/months-view/months-view.js.map +1 -1
  50. package/components/calendar/themes/calendar.base.css.js +1 -1
  51. package/components/calendar/themes/calendar.base.css.js.map +1 -1
  52. package/components/calendar/types.d.ts +16 -0
  53. package/components/calendar/types.js +10 -0
  54. package/components/calendar/types.js.map +1 -0
  55. package/components/calendar/years-view/years-view.d.ts +13 -12
  56. package/components/calendar/years-view/years-view.js +58 -73
  57. package/components/calendar/years-view/years-view.js.map +1 -1
  58. package/components/card/themes/card.actions.base.css.js +1 -1
  59. package/components/card/themes/card.actions.base.css.js.map +1 -1
  60. package/components/card/themes/card.content.base.css.js +1 -1
  61. package/components/card/themes/card.content.base.css.js.map +1 -1
  62. package/components/card/themes/card.header.base.css.js +1 -1
  63. package/components/card/themes/card.header.base.css.js.map +1 -1
  64. package/components/card/themes/card.media.base.css.js +1 -1
  65. package/components/card/themes/card.media.base.css.js.map +1 -1
  66. package/components/card/themes/container.base.css.js +1 -1
  67. package/components/card/themes/container.base.css.js.map +1 -1
  68. package/components/checkbox/checkbox-base.d.ts +8 -5
  69. package/components/checkbox/checkbox-base.js +8 -15
  70. package/components/checkbox/checkbox-base.js.map +1 -1
  71. package/components/checkbox/checkbox.d.ts +2 -4
  72. package/components/checkbox/checkbox.js.map +1 -1
  73. package/components/checkbox/switch.d.ts +1 -3
  74. package/components/checkbox/switch.js.map +1 -1
  75. package/components/checkbox/themes/checkbox.base.css.js +1 -1
  76. package/components/checkbox/themes/checkbox.base.css.js.map +1 -1
  77. package/components/checkbox/themes/switch.base.css.js +1 -1
  78. package/components/checkbox/themes/switch.base.css.js.map +1 -1
  79. package/components/checkbox/validators.d.ts +3 -0
  80. package/components/checkbox/validators.js +5 -0
  81. package/components/checkbox/validators.js.map +1 -0
  82. package/components/chip/chip.d.ts +4 -3
  83. package/components/chip/chip.js +11 -19
  84. package/components/chip/chip.js.map +1 -1
  85. package/components/chip/themes/chip.base.css.js +1 -1
  86. package/components/chip/themes/chip.base.css.js.map +1 -1
  87. package/components/chip/themes/shared/chip.common.css.js +1 -1
  88. package/components/chip/themes/shared/chip.common.css.js.map +1 -1
  89. package/components/combo/combo.d.ts +36 -54
  90. package/components/combo/combo.js +36 -59
  91. package/components/combo/combo.js.map +1 -1
  92. package/components/combo/themes/combo-header.base.css.js +1 -1
  93. package/components/combo/themes/combo-header.base.css.js.map +1 -1
  94. package/components/combo/themes/combo-item.base.css.js +1 -1
  95. package/components/combo/themes/combo-item.base.css.js.map +1 -1
  96. package/components/combo/themes/combo.base.css.js +1 -1
  97. package/components/combo/themes/combo.base.css.js.map +1 -1
  98. package/components/combo/types.d.ts +2 -2
  99. package/components/combo/types.js.map +1 -1
  100. package/components/combo/validators.d.ts +3 -0
  101. package/components/combo/validators.js +9 -0
  102. package/components/combo/validators.js.map +1 -0
  103. package/components/common/controllers/key-bindings.d.ts +1 -0
  104. package/components/common/controllers/key-bindings.js.map +1 -1
  105. package/components/common/controllers/mutation-observer.d.ts +1 -0
  106. package/components/common/controllers/mutation-observer.js.map +1 -1
  107. package/components/common/controllers/root-click.d.ts +4 -2
  108. package/components/common/controllers/root-click.js +13 -7
  109. package/components/common/controllers/root-click.js.map +1 -1
  110. package/components/common/definitions/defineAllComponents.js +0 -2
  111. package/components/common/definitions/defineAllComponents.js.map +1 -1
  112. package/components/common/localization/intl-formatters.d.ts +17 -0
  113. package/components/common/localization/intl-formatters.js +46 -0
  114. package/components/common/localization/intl-formatters.js.map +1 -0
  115. package/components/common/mixins/alert.d.ts +3 -3
  116. package/components/common/mixins/alert.js +6 -4
  117. package/components/common/mixins/alert.js.map +1 -1
  118. package/components/common/mixins/combo-box.d.ts +4 -3
  119. package/components/common/mixins/combo-box.js +16 -10
  120. package/components/common/mixins/combo-box.js.map +1 -1
  121. package/components/common/mixins/form-associated.d.ts +1 -1
  122. package/components/common/mixins/form-associated.js +4 -2
  123. package/components/common/mixins/form-associated.js.map +1 -1
  124. package/components/common/util.d.ts +26 -0
  125. package/components/common/util.js +34 -0
  126. package/components/common/util.js.map +1 -1
  127. package/components/date-picker/date-picker.d.ts +7 -10
  128. package/components/date-picker/date-picker.js +16 -33
  129. package/components/date-picker/date-picker.js.map +1 -1
  130. package/components/date-picker/themes/date-picker.base.css.js +1 -1
  131. package/components/date-picker/themes/date-picker.base.css.js.map +1 -1
  132. package/components/date-picker/themes/shared/date-picker.common.css.js +1 -1
  133. package/components/date-picker/themes/shared/date-picker.common.css.js.map +1 -1
  134. package/components/date-picker/validators.d.ts +3 -0
  135. package/components/date-picker/validators.js +15 -0
  136. package/components/date-picker/validators.js.map +1 -0
  137. package/components/date-time-input/date-time-input.d.ts +3 -22
  138. package/components/date-time-input/date-time-input.js +8 -36
  139. package/components/date-time-input/date-time-input.js.map +1 -1
  140. package/components/date-time-input/date-util.js +3 -1
  141. package/components/date-time-input/date-util.js.map +1 -1
  142. package/components/date-time-input/validators.d.ts +3 -0
  143. package/components/date-time-input/validators.js +18 -0
  144. package/components/date-time-input/validators.js.map +1 -0
  145. package/components/dialog/dialog.d.ts +12 -25
  146. package/components/dialog/dialog.js +55 -77
  147. package/components/dialog/dialog.js.map +1 -1
  148. package/components/dialog/themes/dialog.base.css.js +1 -1
  149. package/components/dialog/themes/dialog.base.css.js.map +1 -1
  150. package/components/dialog/themes/shared/dialog.common.css.js +1 -1
  151. package/components/dialog/themes/shared/dialog.common.css.js.map +1 -1
  152. package/components/divider/divider.js.map +1 -1
  153. package/components/divider/themes/divider.base.css.js +1 -1
  154. package/components/divider/themes/divider.base.css.js.map +1 -1
  155. package/components/dropdown/dropdown-group.d.ts +1 -1
  156. package/components/dropdown/dropdown-group.js +5 -3
  157. package/components/dropdown/dropdown-group.js.map +1 -1
  158. package/components/dropdown/dropdown.d.ts +4 -11
  159. package/components/dropdown/dropdown.js +10 -23
  160. package/components/dropdown/dropdown.js.map +1 -1
  161. package/components/dropdown/themes/dropdown-group.base.css.js +1 -1
  162. package/components/dropdown/themes/dropdown-group.base.css.js.map +1 -1
  163. package/components/dropdown/themes/dropdown-header.base.css.js +1 -1
  164. package/components/dropdown/themes/dropdown-header.base.css.js.map +1 -1
  165. package/components/dropdown/themes/dropdown-item.base.css.js +1 -1
  166. package/components/dropdown/themes/dropdown-item.base.css.js.map +1 -1
  167. package/components/dropdown/themes/dropdown.base.css.js +1 -1
  168. package/components/dropdown/themes/dropdown.base.css.js.map +1 -1
  169. package/components/expansion-panel/expansion-panel.d.ts +10 -10
  170. package/components/expansion-panel/expansion-panel.js +39 -39
  171. package/components/expansion-panel/expansion-panel.js.map +1 -1
  172. package/components/expansion-panel/themes/expansion-panel.base.css.js +1 -1
  173. package/components/expansion-panel/themes/expansion-panel.base.css.js.map +1 -1
  174. package/components/icon/icon-references.d.ts +28 -0
  175. package/components/icon/icon-references.js +151 -0
  176. package/components/icon/icon-references.js.map +1 -0
  177. package/components/icon/icon-state.broadcast.d.ts +10 -0
  178. package/components/icon/icon-state.broadcast.js +36 -0
  179. package/components/icon/icon-state.broadcast.js.map +1 -0
  180. package/components/icon/icon.d.ts +3 -3
  181. package/components/icon/icon.js +13 -7
  182. package/components/icon/icon.js.map +1 -1
  183. package/components/icon/icon.registry.d.ts +14 -14
  184. package/components/icon/icon.registry.js +70 -26
  185. package/components/icon/icon.registry.js.map +1 -1
  186. package/components/icon/internal-icons-lib.d.ts +2 -2
  187. package/components/icon/internal-icons-lib.js +2 -2
  188. package/components/icon/internal-icons-lib.js.map +1 -1
  189. package/components/icon/registry/default-map.d.ts +12 -0
  190. package/components/icon/registry/default-map.js +31 -0
  191. package/components/icon/registry/default-map.js.map +1 -0
  192. package/components/icon/registry/parser.d.ts +6 -0
  193. package/components/icon/registry/parser.js +21 -0
  194. package/components/icon/registry/parser.js.map +1 -0
  195. package/components/icon/registry/types.d.ts +34 -0
  196. package/components/icon/registry/types.js +7 -0
  197. package/components/icon/registry/types.js.map +1 -0
  198. package/components/icon/themes/icon.base.css.js +1 -1
  199. package/components/icon/themes/icon.base.css.js.map +1 -1
  200. package/components/input/input-base.d.ts +8 -21
  201. package/components/input/input-base.js +12 -41
  202. package/components/input/input-base.js.map +1 -1
  203. package/components/input/input.d.ts +3 -29
  204. package/components/input/input.js +4 -78
  205. package/components/input/input.js.map +1 -1
  206. package/components/input/themes/input.base.css.js +1 -1
  207. package/components/input/themes/input.base.css.js.map +1 -1
  208. package/components/input/validators.d.ts +4 -0
  209. package/components/input/validators.js +30 -0
  210. package/components/input/validators.js.map +1 -0
  211. package/components/list/list.d.ts +1 -3
  212. package/components/list/list.js +1 -2
  213. package/components/list/list.js.map +1 -1
  214. package/components/list/themes/container.base.css.js +1 -1
  215. package/components/list/themes/container.base.css.js.map +1 -1
  216. package/components/mask-input/mask-input-base.d.ts +3 -2
  217. package/components/mask-input/mask-input-base.js.map +1 -1
  218. package/components/mask-input/mask-input.d.ts +1 -4
  219. package/components/mask-input/mask-input.js +7 -17
  220. package/components/mask-input/mask-input.js.map +1 -1
  221. package/components/mask-input/validators.d.ts +3 -0
  222. package/components/mask-input/validators.js +11 -0
  223. package/components/mask-input/validators.js.map +1 -0
  224. package/components/nav-drawer/nav-drawer-item.d.ts +1 -5
  225. package/components/nav-drawer/nav-drawer-item.js +9 -10
  226. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  227. package/components/nav-drawer/nav-drawer.d.ts +4 -3
  228. package/components/nav-drawer/nav-drawer.js +18 -7
  229. package/components/nav-drawer/nav-drawer.js.map +1 -1
  230. package/components/nav-drawer/themes/container.base.css.js +1 -1
  231. package/components/nav-drawer/themes/container.base.css.js.map +1 -1
  232. package/components/nav-drawer/themes/header-item.base.css.js +1 -1
  233. package/components/nav-drawer/themes/header-item.base.css.js.map +1 -1
  234. package/components/nav-drawer/themes/item.base.css.js +1 -1
  235. package/components/nav-drawer/themes/item.base.css.js.map +1 -1
  236. package/components/navbar/themes/navbar.base.css.js +1 -1
  237. package/components/navbar/themes/navbar.base.css.js.map +1 -1
  238. package/components/popover/themes/light/popover.base.css.js +1 -1
  239. package/components/popover/themes/light/popover.base.css.js.map +1 -1
  240. package/components/progress/base.d.ts +2 -1
  241. package/components/progress/base.js.map +1 -1
  242. package/components/progress/themes/circular/circular.progress.base.css.js +1 -1
  243. package/components/progress/themes/circular/circular.progress.base.css.js.map +1 -1
  244. package/components/progress/themes/linear/linear.progress.base.css.js +1 -1
  245. package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
  246. package/components/radio/radio.d.ts +9 -9
  247. package/components/radio/radio.js +17 -31
  248. package/components/radio/radio.js.map +1 -1
  249. package/components/radio/themes/radio.base.css.js +1 -1
  250. package/components/radio/themes/radio.base.css.js.map +1 -1
  251. package/components/radio/validators.d.ts +3 -0
  252. package/components/radio/validators.js +13 -0
  253. package/components/radio/validators.js.map +1 -0
  254. package/components/radio-group/radio-group.base.css.js +1 -1
  255. package/components/radio-group/radio-group.base.css.js.map +1 -1
  256. package/components/radio-group/radio-group.js.map +1 -1
  257. package/components/rating/rating.d.ts +1 -9
  258. package/components/rating/rating.js +6 -16
  259. package/components/rating/rating.js.map +1 -1
  260. package/components/rating/themes/rating-symbol.base.css.js +1 -1
  261. package/components/rating/themes/rating-symbol.base.css.js.map +1 -1
  262. package/components/rating/themes/rating.base.css.js +1 -1
  263. package/components/rating/themes/rating.base.css.js.map +1 -1
  264. package/components/ripple/ripple.material.css.js +1 -1
  265. package/components/ripple/ripple.material.css.js.map +1 -1
  266. package/components/select/select.d.ts +5 -33
  267. package/components/select/select.js +23 -66
  268. package/components/select/select.js.map +1 -1
  269. package/components/select/themes/select.base.css.js +1 -1
  270. package/components/select/themes/select.base.css.js.map +1 -1
  271. package/components/select/validators.d.ts +3 -0
  272. package/components/select/validators.js +5 -0
  273. package/components/select/validators.js.map +1 -0
  274. package/components/slider/range-slider.d.ts +0 -16
  275. package/components/slider/range-slider.js +0 -18
  276. package/components/slider/range-slider.js.map +1 -1
  277. package/components/slider/themes/slider.base.css.js +1 -1
  278. package/components/slider/themes/slider.base.css.js.map +1 -1
  279. package/components/snackbar/snackbar.js +3 -7
  280. package/components/snackbar/snackbar.js.map +1 -1
  281. package/components/snackbar/themes/snackbar.base.css.js +1 -1
  282. package/components/snackbar/themes/snackbar.base.css.js.map +1 -1
  283. package/components/stepper/animations.d.ts +7 -1
  284. package/components/stepper/animations.js +63 -15
  285. package/components/stepper/animations.js.map +1 -1
  286. package/components/stepper/step.d.ts +3 -1
  287. package/components/stepper/step.js +17 -6
  288. package/components/stepper/step.js.map +1 -1
  289. package/components/stepper/themes/step/step.base.css.js +1 -1
  290. package/components/stepper/themes/step/step.base.css.js.map +1 -1
  291. package/components/stepper/themes/stepper/stepper.base.css.js +1 -1
  292. package/components/stepper/themes/stepper/stepper.base.css.js.map +1 -1
  293. package/components/stepper/themes/stepper/stepper.bootstrap.css.js +1 -1
  294. package/components/stepper/themes/stepper/stepper.bootstrap.css.js.map +1 -1
  295. package/components/stepper/themes/stepper/stepper.fluent.css.js +1 -1
  296. package/components/stepper/themes/stepper/stepper.fluent.css.js.map +1 -1
  297. package/components/stepper/themes/stepper/stepper.indigo.css.js +1 -1
  298. package/components/stepper/themes/stepper/stepper.indigo.css.js.map +1 -1
  299. package/components/tabs/tabs.js +2 -3
  300. package/components/tabs/tabs.js.map +1 -1
  301. package/components/tabs/themes/tab.base.css.js +1 -1
  302. package/components/tabs/themes/tab.base.css.js.map +1 -1
  303. package/components/tabs/themes/tabs.base.css.js +1 -1
  304. package/components/tabs/themes/tabs.base.css.js.map +1 -1
  305. package/components/textarea/textarea.d.ts +13 -16
  306. package/components/textarea/textarea.js +10 -12
  307. package/components/textarea/textarea.js.map +1 -1
  308. package/components/textarea/themes/textarea.base.css.js +1 -1
  309. package/components/textarea/themes/textarea.base.css.js.map +1 -1
  310. package/components/textarea/validators.d.ts +3 -0
  311. package/components/textarea/validators.js +7 -0
  312. package/components/textarea/validators.js.map +1 -0
  313. package/components/toast/themes/toast.base.css.js +1 -1
  314. package/components/toast/themes/toast.base.css.js.map +1 -1
  315. package/components/tree/themes/container.base.css.js +1 -1
  316. package/components/tree/themes/container.base.css.js.map +1 -1
  317. package/components/tree/themes/item.base.css.js +1 -1
  318. package/components/tree/themes/item.base.css.js.map +1 -1
  319. package/components/tree/tree-item.d.ts +4 -4
  320. package/components/tree/tree-item.js +11 -23
  321. package/components/tree/tree-item.js.map +1 -1
  322. package/components/tree/tree.d.ts +3 -4
  323. package/components/tree/tree.js +1 -37
  324. package/components/tree/tree.js.map +1 -1
  325. package/components/types.d.ts +3 -0
  326. package/components/types.js +2 -0
  327. package/components/types.js.map +1 -0
  328. package/custom-elements.json +30656 -31315
  329. package/igniteui-webcomponents.css-data.json +5 -928
  330. package/igniteui-webcomponents.html-data.json +4 -2699
  331. package/index.d.ts +5 -4
  332. package/index.js +2 -3
  333. package/index.js.map +1 -1
  334. package/package.json +1 -1
  335. package/theming/config.js +3 -3
  336. package/theming/config.js.map +1 -1
  337. package/theming/theming-controller.d.ts +4 -6
  338. package/theming/theming-controller.js +30 -34
  339. package/theming/theming-controller.js.map +1 -1
  340. package/theming/theming-decorator.d.ts +29 -11
  341. package/theming/theming-decorator.js +21 -7
  342. package/theming/theming-decorator.js.map +1 -1
  343. package/theming/theming-event.js.map +1 -1
  344. package/theming/types.d.ts +5 -0
  345. package/theming/types.js.map +1 -1
  346. package/theming/utils.d.ts +1 -1
  347. package/theming/utils.js +8 -8
  348. package/theming/utils.js.map +1 -1
  349. package/web-types.json +12 -7621
  350. package/components/calendar/common/calendar-base.d.ts +0 -40
  351. package/components/calendar/common/calendar-base.js +0 -118
  352. package/components/calendar/common/calendar-base.js.map +0 -1
  353. package/components/calendar/common/calendar.model.d.ts +0 -128
  354. package/components/calendar/common/calendar.model.js +0 -246
  355. package/components/calendar/common/calendar.model.js.map +0 -1
  356. package/components/calendar/common/utils.d.ts +0 -12
  357. package/components/calendar/common/utils.js +0 -54
  358. package/components/calendar/common/utils.js.map +0 -1
  359. package/components/common/decorators/alternateName.d.ts +0 -7
  360. package/components/common/decorators/alternateName.js +0 -4
  361. package/components/common/decorators/alternateName.js.map +0 -1
  362. package/components/common/decorators/blazorSuppress.d.ts +0 -5
  363. package/components/common/decorators/blazorSuppress.js +0 -4
  364. package/components/common/decorators/blazorSuppress.js.map +0 -1
  365. package/components/common/decorators/blazorTwoWayBind.d.ts +0 -7
  366. package/components/common/decorators/blazorTwoWayBind.js +0 -4
  367. package/components/common/decorators/blazorTwoWayBind.js.map +0 -1
  368. package/components/common/mixins/sizable.d.ts +0 -13
  369. package/components/common/mixins/sizable.js +0 -27
  370. package/components/common/mixins/sizable.js.map +0 -1
  371. package/components/form/form.d.ts +0 -48
  372. package/components/form/form.js +0 -158
  373. package/components/form/form.js.map +0 -1
@@ -5,415 +5,345 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  var IgcDaysViewComponent_1;
8
- import { html } from 'lit';
9
- import { property, query } from 'lit/decorators.js';
8
+ import { html, nothing } from 'lit';
9
+ import { property, query, state } from 'lit/decorators.js';
10
10
  import { themes } from '../../../theming/theming-decorator.js';
11
+ import { addKeybindings } from '../../common/controllers/key-bindings.js';
11
12
  import { blazorIndirectRender } from '../../common/decorators/blazorIndirectRender.js';
12
13
  import { blazorSuppressComponent } from '../../common/decorators/blazorSuppressComponent.js';
13
14
  import { watch } from '../../common/decorators/watch.js';
14
15
  import { registerComponent } from '../../common/definitions/register.js';
15
- import { IgcCalendarResourceStringEN, } from '../../common/i18n/calendar.resources.js';
16
+ import { IgcCalendarResourceStringEN } from '../../common/i18n/calendar.resources.js';
17
+ import { createDateTimeFormatters } from '../../common/localization/intl-formatters.js';
16
18
  import { EventEmitterMixin } from '../../common/mixins/event-emitter.js';
17
- import { partNameMap } from '../../common/util.js';
18
- import { IgcCalendarBaseComponent, } from '../common/calendar-base.js';
19
- import { DateRangeType, TimeDeltaInterval, isDateInRanges, } from '../common/calendar.model.js';
20
- import { areEqualDates, getDateOnly, isEqual } from '../common/utils.js';
19
+ import { chunk, first, last, partNameMap, take } from '../../common/util.js';
20
+ import { IgcCalendarBaseComponent } from '../base.js';
21
+ import { areSameMonth, calendarRange, generateMonth, getViewElement, isDateInRanges, isNextMonth, isPreviousMonth, } from '../helpers.js';
22
+ import { CalendarDay, daysInWeek } from '../model.js';
21
23
  import { styles } from '../themes/days-view.base.css.js';
22
24
  import { all } from '../themes/days.js';
25
+ import { DateRangeType } from '../types.js';
23
26
  let IgcDaysViewComponent = IgcDaysViewComponent_1 = class IgcDaysViewComponent extends EventEmitterMixin(IgcCalendarBaseComponent) {
24
27
  static register() {
25
28
  registerComponent(IgcDaysViewComponent_1);
26
29
  }
27
- formattersChange() {
28
- this.initFormatters();
30
+ set rangePreviewDate(value) {
31
+ this._rangePreviewDate = value ? CalendarDay.from(value) : undefined;
32
+ }
33
+ get rangePreviewDate() {
34
+ return this._rangePreviewDate?.native;
35
+ }
36
+ localeChange() {
37
+ this._intl.locale = this.locale;
38
+ }
39
+ weekDayFormatChange() {
40
+ this._intl.update({ weekday: { weekday: this.weekDayFormat } });
29
41
  }
30
42
  datesChange() {
31
- this.dates = this.getCalendarMonth();
43
+ this.dates = Array.from(generateMonth(this._activeDate, this._firstDayOfWeek));
32
44
  }
33
45
  constructor() {
34
46
  super();
47
+ this.active = false;
35
48
  this.hideLeadingDays = false;
36
49
  this.hideTrailingDays = false;
37
- this.active = false;
38
- this.weekDayFormat = 'narrow';
39
50
  this.resourceStrings = IgcCalendarResourceStringEN;
40
- this.setAttribute('role', 'grid');
41
- this.initFormatters();
42
- }
43
- focusActiveDate() {
44
- this.activeDay.focus();
45
- }
46
- initFormatters() {
47
- this.formatterWeekday = new Intl.DateTimeFormat(this.locale, {
48
- weekday: this.weekDayFormat,
49
- });
50
- this.labelFormatter = new Intl.DateTimeFormat(this.locale, {
51
- weekday: 'long',
52
- year: 'numeric',
53
- month: 'long',
54
- day: 'numeric',
51
+ this.weekDayFormat = 'narrow';
52
+ this._intl = createDateTimeFormatters(this.locale, {
53
+ weekday: { weekday: this.weekDayFormat },
54
+ label: { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' },
55
+ ariaWeekday: { weekday: 'long' },
55
56
  });
57
+ addKeybindings(this, {
58
+ bindingDefaults: { preventDefault: true },
59
+ }).setActivateHandler(this.handleInteraction);
60
+ this.addEventListener('click', this.handleInteraction);
56
61
  }
57
- generateWeekHeader() {
58
- const dayNames = [];
59
- const rv = this.calendarModel.monthdatescalendar(this.activeDate.getFullYear(), this.activeDate.getMonth())[0];
60
- for (const day of rv) {
61
- dayNames.push({
62
- label: this.formatterWeekday.format(day.date),
63
- ariaLabel: day.date.toLocaleString(this.locale, { weekday: 'long' }),
64
- });
65
- }
66
- return dayNames;
67
- }
68
- getCalendarMonth() {
69
- return this.calendarModel.monthdatescalendar(this.activeDate.getFullYear(), this.activeDate.getMonth(), true);
62
+ connectedCallback() {
63
+ super.connectedCallback();
64
+ this.role = 'grid';
70
65
  }
71
- titleCase(str) {
72
- return str.charAt(0).toUpperCase() + str.slice(1);
73
- }
74
- getWeekNumber(date) {
75
- return this.calendarModel.getWeekNumber(date);
76
- }
77
- formattedDate(value) {
78
- return `${value.getDate()}`;
79
- }
80
- get isSingleSelection() {
81
- return this.selection !== 'range';
66
+ focusActiveDate() {
67
+ this.activeDay.focus();
82
68
  }
83
- isLastInRange(date) {
84
- if (this.isSingleSelection || !this.values || this.values.length === 0) {
85
- return false;
86
- }
87
- const dates = this.values;
88
- let lastDate = dates[dates.length - 1];
89
- if (this.rangePreviewDate) {
90
- if (this.rangePreviewDate > lastDate) {
91
- lastDate = this.rangePreviewDate;
69
+ handleInteraction(event) {
70
+ const value = getViewElement(event);
71
+ if (value > -1) {
72
+ const date = CalendarDay.from(new Date(value));
73
+ if (this._rangePreviewDate) {
74
+ this.setRangePreviewDate();
75
+ }
76
+ if (this.selectDate(date)) {
77
+ this.emitEvent('igcChange', { detail: date.native });
78
+ }
79
+ if (event.type === 'click') {
80
+ event.stopPropagation();
81
+ this.emitEvent('igcActiveDateChange', { detail: date.native });
82
+ this._activeDate = date;
92
83
  }
93
84
  }
94
- return isEqual(lastDate, date.date);
95
85
  }
96
- isFirstInRange(date) {
97
- if (this.isSingleSelection || !this.values || this.values.length === 0) {
98
- return false;
86
+ _selectMultiple(day) {
87
+ const values = this._values;
88
+ const idx = values.findIndex((v) => v.equalTo(day));
89
+ idx < 0 ? values.push(day) : values.splice(idx, 1);
90
+ values.sort((a, b) => a.timestamp - b.timestamp);
91
+ this._values = Array.from(values);
92
+ }
93
+ _selectRange(day) {
94
+ let values = this._values;
95
+ if (values.length !== 1) {
96
+ values = [day];
99
97
  }
100
- const dates = this.values;
101
- let firstDate = dates[0];
102
- if (this.rangePreviewDate) {
103
- if (this.rangePreviewDate < firstDate) {
104
- firstDate = this.rangePreviewDate;
98
+ else {
99
+ const beginning = first(values);
100
+ if (beginning.equalTo(day)) {
101
+ this._values = [];
102
+ return;
105
103
  }
104
+ values = beginning.greaterThan(day)
105
+ ? Array.from(calendarRange({ start: day, end: beginning }))
106
+ : Array.from(calendarRange({ start: beginning, end: day }));
107
+ values.push(last(values).add('day', 1));
106
108
  }
107
- return isEqual(firstDate, date.date);
109
+ this._values = values.filter((v) => !isDateInRanges(v, this._disabledDates));
108
110
  }
109
- isDisabled(date) {
110
- if (!this.disabledDates) {
111
- return false;
112
- }
113
- return isDateInRanges(date, this.disabledDates);
114
- }
115
- isWithinRange(date, min, max) {
116
- return isDateInRanges(date, [
117
- {
118
- type: DateRangeType.Between,
119
- dateRange: [min, max],
120
- },
121
- ]);
122
- }
123
- isRangeDate(date) {
124
- if (this.selection !== 'range' ||
125
- !this.values ||
126
- this.values.length === 0) {
111
+ selectDate(value) {
112
+ if (isDateInRanges(value, this._disabledDates)) {
127
113
  return false;
128
114
  }
129
- const dates = this.values;
130
- const min = dates[0];
131
- let max;
132
- if (dates.length === 1) {
133
- if (!this.rangePreviewDate) {
115
+ if (this._isSingle) {
116
+ if (this._value?.equalTo(value)) {
134
117
  return false;
135
118
  }
136
- max = this.rangePreviewDate;
119
+ this._value = value;
137
120
  }
138
- else {
139
- max = dates[dates.length - 1];
121
+ if (this._isMultiple) {
122
+ this._selectMultiple(value);
140
123
  }
141
- return isDateInRanges(date, [
142
- {
143
- type: DateRangeType.Between,
144
- dateRange: [min, max],
145
- },
146
- ]);
147
- }
148
- isRangePreview(date) {
149
- if (this.selection === 'range' &&
150
- this.values &&
151
- this.values.length > 0 &&
152
- this.rangePreviewDate) {
153
- return isDateInRanges(date, [
154
- {
155
- type: DateRangeType.Between,
156
- dateRange: [this.values[0], this.rangePreviewDate],
157
- },
158
- ]);
124
+ if (this._isRange) {
125
+ this._selectRange(value);
159
126
  }
160
- return false;
127
+ return true;
161
128
  }
162
- isSelected(date) {
163
- if (this.isDisabled(date.date)) {
129
+ isSelected(day) {
130
+ if (isDateInRanges(day, this._disabledDates)) {
164
131
  return false;
165
132
  }
166
- if (this.selection === 'single') {
167
- if (!this.value) {
168
- return false;
169
- }
170
- return getDateOnly(this.value).getTime() === date.date.getTime();
133
+ if (this._isSingle) {
134
+ return !!this._value && this._value.equalTo(day);
171
135
  }
172
- if (!this.values || this.values.length === 0) {
136
+ if (!this._hasValues) {
173
137
  return false;
174
138
  }
175
- if (this.selection === 'range' && this.values.length === 1) {
176
- return getDateOnly(this.values[0]).getTime() === date.date.getTime();
177
- }
178
- if (this.selection === 'multiple') {
179
- const start = getDateOnly(this.values[0]);
180
- const end = getDateOnly(this.values[this.values.length - 1]);
181
- if (this.isWithinRange(date.date, start, end)) {
182
- const currentDate = this.values.find((element) => element.getTime() === date.date.getTime());
183
- return !!currentDate;
184
- }
185
- return false;
139
+ if (this._isMultiple) {
140
+ return isDateInRanges(day, [
141
+ {
142
+ type: DateRangeType.Specific,
143
+ dateRange: this.values,
144
+ },
145
+ ]);
186
146
  }
187
- return this.isWithinRange(date.date, this.values[0], this.values[this.values.length - 1]);
188
- }
189
- isToday(day) {
190
- const today = new Date(Date.now());
191
- const date = day.date;
192
- return (date.getFullYear() === today.getFullYear() &&
193
- date.getMonth() === today.getMonth() &&
194
- date.getDate() === today.getDate());
147
+ return isDateInRanges(day, [
148
+ {
149
+ type: DateRangeType.Between,
150
+ dateRange: [first(this._values).native, last(this._values).native],
151
+ },
152
+ ]);
195
153
  }
196
- isWeekend(date) {
197
- const day = date.date.getDay();
198
- return day === 0 || day === 6;
154
+ setRangePreviewDate(day) {
155
+ this._rangePreviewDate = day;
156
+ this.emitEvent('igcRangePreviewDateChange', {
157
+ detail: day ? day.native : undefined,
158
+ });
199
159
  }
200
- isSpecial(day) {
201
- if (this.specialDates === null) {
202
- return false;
160
+ changeRangePreview(day) {
161
+ if (this._values.length === 1 && !first(this._values).equalTo(day)) {
162
+ this.setRangePreviewDate(day);
203
163
  }
204
- return isDateInRanges(day.date, this.specialDates);
205
- }
206
- dateClicked(event, day) {
207
- event.stopPropagation();
208
- this.selectDay(day);
209
- this.changeActiveDate(day);
210
164
  }
211
- selectDay(day) {
212
- if (this.rangePreviewDate) {
213
- this.setRangePreviewDate(undefined);
214
- }
215
- const result = this.selectDate(day.date);
216
- if (result) {
217
- this.emitEvent('igcChange', { detail: day.date });
165
+ clearRangePreview() {
166
+ if (this._rangePreviewDate) {
167
+ this.setRangePreviewDate();
218
168
  }
219
169
  }
220
- selectDate(value) {
221
- if (this.isDisabled(value)) {
170
+ isFirstInRange(day) {
171
+ if (this._isSingle || !this._hasValues) {
222
172
  return false;
223
173
  }
224
- switch (this.selection) {
225
- case 'single':
226
- if (this.value?.getTime() === value.getTime()) {
227
- return false;
228
- }
229
- this.selectSingle(value);
230
- break;
231
- case 'multiple':
232
- this.selectMultiple(value);
233
- break;
234
- case 'range':
235
- this.selectRange(value);
236
- break;
237
- }
238
- return true;
239
- }
240
- generateDateRange(start, end) {
241
- const result = [];
242
- let startDate = getDateOnly(start);
243
- const endDate = getDateOnly(end);
244
- while (startDate.getTime() < endDate.getTime()) {
245
- startDate = this.calendarModel.timedelta(startDate, TimeDeltaInterval.Day, 1);
246
- result.push(startDate);
247
- }
248
- return result;
249
- }
250
- selectRange(value) {
251
- let start;
252
- let end;
253
- let selectedDates = (this.values ?? []);
254
- if (selectedDates.length !== 1) {
255
- selectedDates = [value];
256
- }
257
- else {
258
- if (selectedDates[0].getTime() === value.getTime()) {
259
- this.values = [];
260
- return;
261
- }
262
- selectedDates.push(value);
263
- selectedDates.sort((a, b) => a.valueOf() - b.valueOf());
264
- start = selectedDates.shift();
265
- end = selectedDates.pop();
266
- selectedDates = [start, ...this.generateDateRange(start, end)];
267
- }
268
- selectedDates = selectedDates.filter((d) => !this.isDisabled(d));
269
- this.values = [...selectedDates];
270
- }
271
- selectSingle(value) {
272
- this.value = getDateOnly(value);
174
+ const target = this._rangePreviewDate?.lessThan(first(this._values))
175
+ ? this._rangePreviewDate
176
+ : first(this._values);
177
+ return target.equalTo(day);
273
178
  }
274
- selectMultiple(value) {
275
- let selectedDates = (this.values ?? []);
276
- const valueDateOnly = getDateOnly(value);
277
- const newSelection = [];
278
- if (selectedDates.every((date) => date.getTime() !== valueDateOnly.getTime())) {
279
- newSelection.push(valueDateOnly);
280
- }
281
- else {
282
- selectedDates = selectedDates.filter((date) => date.getTime() !== valueDateOnly.getTime());
179
+ isLastInRange(day) {
180
+ if (this._isSingle || !this._hasValues) {
181
+ return false;
283
182
  }
284
- if (newSelection.length > 0) {
285
- selectedDates = selectedDates.concat(newSelection);
183
+ const target = this._rangePreviewDate?.greaterThan(last(this._values))
184
+ ? this._rangePreviewDate
185
+ : last(this._values);
186
+ return target.equalTo(day);
187
+ }
188
+ isRangeDate(day) {
189
+ const isSingleRange = this._values.length === 1;
190
+ if (!this._hasValues || (isSingleRange && !this._rangePreviewDate)) {
191
+ return false;
286
192
  }
287
- selectedDates = selectedDates.filter((d) => !this.isDisabled(d));
288
- selectedDates.sort((a, b) => a.valueOf() - b.valueOf());
289
- this.values = [...selectedDates];
290
- }
291
- changeActiveDate(day) {
292
- this.activeDate = day.date;
293
- this.emitEvent('igcActiveDateChange', { detail: day });
193
+ const min = first(this._values);
194
+ const max = isSingleRange ? this._rangePreviewDate : last(this._values);
195
+ return isDateInRanges(day, [
196
+ {
197
+ type: DateRangeType.Between,
198
+ dateRange: [min.native, max.native],
199
+ },
200
+ ]);
294
201
  }
295
- dateKeyDown(event, day) {
296
- if (event.key === 'Enter' || event.key === ' ') {
297
- event.preventDefault();
298
- this.selectDay(day);
202
+ isRangePreview(day) {
203
+ if (!(this._hasValues && this._rangePreviewDate)) {
204
+ return false;
299
205
  }
206
+ return isDateInRanges(day, [
207
+ {
208
+ type: DateRangeType.Between,
209
+ dateRange: [first(this._values).native, this._rangePreviewDate.native],
210
+ },
211
+ ]);
300
212
  }
301
- changeRangePreview(date) {
302
- if (this.selection === 'range' &&
303
- this.values &&
304
- this.values.length === 1 &&
305
- !isEqual(this.values[0], date)) {
306
- this.setRangePreviewDate(date);
213
+ intlFormatDay(day) {
214
+ const fmt = this._intl.get('label');
215
+ if (this._rangePreviewDate?.equalTo(day)) {
216
+ return fmt.formatRange(first(this._values).native, this._rangePreviewDate.native);
307
217
  }
308
- }
309
- clearRangePreview() {
310
- if (this.rangePreviewDate) {
311
- this.setRangePreviewDate(undefined);
218
+ if (this.isFirstInRange(day) || this.isLastInRange(day)) {
219
+ return fmt.formatRange(first(this._values).native, last(this._values).native);
312
220
  }
313
- }
314
- setRangePreviewDate(value) {
315
- this.rangePreviewDate = value;
316
- this.emitEvent('igcRangePreviewDateChange', { detail: value });
317
- }
318
- resolveDayItemPartName(day) {
319
- const isInactive = day.isNextMonth || day.isPrevMonth;
320
- const isHidden = (this.hideLeadingDays && day.isPrevMonth) ||
321
- (this.hideTrailingDays && day.isNextMonth);
322
- const isDisabled = this.isDisabled(day.date);
221
+ return fmt.format(day.native);
222
+ }
223
+ getDayHandlers(day) {
224
+ const range = this._isRange;
225
+ const changePreview = range
226
+ ? this.changeRangePreview.bind(this, day)
227
+ : nothing;
228
+ const clearPreview = range ? this.clearRangePreview : nothing;
229
+ return { changePreview, clearPreview };
230
+ }
231
+ getDayProperties(day, today) {
232
+ const isRange = this._isRange;
233
+ const disabled = isDateInRanges(day, this._disabledDates);
234
+ const hiddenLeading = this.hideLeadingDays && isPreviousMonth(day, this._activeDate);
235
+ const hiddenTrailing = this.hideTrailingDays && isNextMonth(day, this._activeDate);
236
+ const hidden = hiddenLeading || hiddenTrailing;
237
+ const inactive = !areSameMonth(day, this._activeDate);
323
238
  return {
324
239
  date: true,
240
+ disabled: disabled || hidden,
325
241
  first: this.isFirstInRange(day),
326
242
  last: this.isLastInRange(day),
327
- selected: !isDisabled && this.isSelected(day),
328
- inactive: isInactive,
329
- hidden: isHidden,
330
- current: this.isToday(day),
331
- weekend: this.isWeekend(day),
332
- range: this.selection === 'range' && this.isRangeDate(day.date),
333
- special: this.isSpecial(day),
334
- disabled: isHidden || isDisabled,
335
- single: this.selection !== 'range',
336
- preview: this.isRangePreview(day.date),
243
+ range: isRange && this.isRangeDate(day),
244
+ preview: isRange && this.isRangePreview(day),
245
+ current: !inactive && day.equalTo(today),
246
+ inactive,
247
+ hidden,
248
+ weekend: day.weekend,
249
+ single: !isRange,
250
+ selected: !disabled && this.isSelected(day),
251
+ special: isDateInRanges(day, this._specialDates) && !inactive,
337
252
  };
338
253
  }
339
- renderWeekHeaders() {
340
- return html `<div role="row" part="days-row first">
341
- ${this.showWeekNumbers
342
- ? html `<span role="columnheader" part="label week-number first">
343
- <span part="week-number-inner first"
344
- >${this.resourceStrings.weekLabel}</span
345
- >
346
- </span>`
347
- : ''}
348
- ${this.generateWeekHeader().map((weekday) => html `<span
349
- role="columnheader"
350
- part="label"
351
- aria-label=${weekday.ariaLabel}
352
- >
353
- <span part="label-inner">${this.titleCase(weekday.label)}</span>
354
- </span> `)}
355
- </div>`;
356
- }
357
- renderDates() {
358
- return this.dates.map((week, i) => {
359
- const last = i === this.dates.length - 1;
360
- return html `<div role="row" part="days-row">
361
- ${this.showWeekNumbers
362
- ? html `<span
363
- role="rowheader"
364
- part=${partNameMap({ 'week-number': true, last })}
365
- >
366
- <span part=${partNameMap({ 'week-number-inner': true, last })}
367
- >${this.getWeekNumber(week[0].date)}</span
368
- >
369
- </span>`
370
- : ''}
371
- ${week.map((day) => this.renderDateItem(day))}
372
- </div>`;
373
- });
374
- }
375
- dayLabelFormatter(value) {
376
- if (this.rangePreviewDate &&
377
- areEqualDates(this.rangePreviewDate, value.date)) {
378
- return this.labelFormatter.formatRange(this.values.at(0), this.rangePreviewDate);
379
- }
380
- if (this.isFirstInRange(value) || this.isLastInRange(value)) {
381
- return this.labelFormatter.formatRange(this.values.at(0), this.values.at(-1));
254
+ renderDay(day, today) {
255
+ const ariaLabel = this.intlFormatDay(day);
256
+ const { changePreview, clearPreview } = this.getDayHandlers(day);
257
+ const props = this.getDayProperties(day, today);
258
+ const parts = partNameMap(props);
259
+ return html `
260
+ <span part=${parts}>
261
+ <span
262
+ role="gridcell"
263
+ part=${parts.replace('date', 'date-inner')}
264
+ aria-label=${ariaLabel}
265
+ aria-disabled=${props.disabled}
266
+ aria-selected=${props.selected}
267
+ data-value=${day.timestamp}
268
+ tabindex=${day.equalTo(this._activeDate) ? 0 : -1}
269
+ @focus=${changePreview}
270
+ @blur=${clearPreview}
271
+ @mouseenter=${changePreview}
272
+ @mouseleave=${clearPreview}
273
+ >
274
+ ${day.date}
275
+ </span>
276
+ </span>
277
+ `;
278
+ }
279
+ renderHeaderWeekNumber() {
280
+ return html `
281
+ <span role="columnheader" part="label week-number first">
282
+ <span part="week-number-inner first">
283
+ ${this.resourceStrings.weekLabel}
284
+ </span>
285
+ </span>
286
+ `;
287
+ }
288
+ renderWeekNumber(start, last) {
289
+ return html `
290
+ <span role="rowheader" part=${partNameMap({ 'week-number': true, last })}>
291
+ <span part=${partNameMap({ 'week-number-inner': true, last })}>
292
+ ${start.week}
293
+ </span>
294
+ </span>
295
+ `;
296
+ }
297
+ renderHeaders() {
298
+ const label = this._intl.get('weekday');
299
+ const aria = this._intl.get('ariaWeekday');
300
+ const days = take(generateMonth(this._activeDate, this._firstDayOfWeek), daysInWeek);
301
+ const weekNumber = this.showWeekNumbers
302
+ ? this.renderHeaderWeekNumber()
303
+ : nothing;
304
+ const headers = days.map((day) => html `
305
+ <span
306
+ role="columnheader"
307
+ part="label"
308
+ aria-label=${aria.format(day.native)}
309
+ >
310
+ <span part="label-inner">${label.format(day.native)}</span>
311
+ </span>
312
+ `);
313
+ return html `
314
+ <div role="row" part="days-row first">${weekNumber}${headers}</div>
315
+ `;
316
+ }
317
+ *renderWeeks() {
318
+ const today = CalendarDay.today;
319
+ const weeks = Array.from(chunk(this.dates, daysInWeek));
320
+ const last = weeks.length - 1;
321
+ for (const [idx, week] of weeks.entries()) {
322
+ yield html `
323
+ <div role="row" part="days-row">
324
+ ${this.showWeekNumbers
325
+ ? this.renderWeekNumber(week[0], idx === last)
326
+ : nothing}
327
+ ${week.map((day) => this.renderDay(day, today))}
328
+ </div>
329
+ `;
382
330
  }
383
- return this.labelFormatter.format(value.date);
384
- }
385
- renderDateItem(day) {
386
- const datePartName = partNameMap(this.resolveDayItemPartName(day));
387
- const dateInnerPartName = datePartName.replace('date', 'date-inner');
388
- return html `<span part=${datePartName}>
389
- <span
390
- part=${dateInnerPartName}
391
- role="gridcell"
392
- aria-label=${this.dayLabelFormatter(day)}
393
- aria-selected=${this.isSelected(day)}
394
- aria-disabled=${this.isDisabled(day.date)}
395
- tabindex=${this.active && areEqualDates(this.activeDate, day.date)
396
- ? 0
397
- : -1}
398
- @click=${(event) => this.dateClicked(event, day)}
399
- @focus=${() => this.changeRangePreview(day.date)}
400
- @blur=${() => this.clearRangePreview()}
401
- @keydown=${(event) => this.dateKeyDown(event, day)}
402
- @mouseenter=${() => this.changeRangePreview(day.date)}
403
- @mouseleave=${() => this.clearRangePreview()}
404
- >${this.formattedDate(day.date)}</span
405
- >
406
- </span>`;
407
331
  }
408
332
  render() {
409
- return html `${this.renderWeekHeaders()} ${this.renderDates()}`;
333
+ return html `${this.renderHeaders()}${this.renderWeeks()}`;
410
334
  }
411
335
  };
412
336
  IgcDaysViewComponent.tagName = 'igc-days-view';
413
337
  IgcDaysViewComponent.styles = styles;
338
+ __decorate([
339
+ state()
340
+ ], IgcDaysViewComponent.prototype, "dates", void 0);
414
341
  __decorate([
415
342
  query('[tabindex="0"]')
416
343
  ], IgcDaysViewComponent.prototype, "activeDay", void 0);
344
+ __decorate([
345
+ property({ type: Boolean })
346
+ ], IgcDaysViewComponent.prototype, "active", void 0);
417
347
  __decorate([
418
348
  property({ type: Boolean, attribute: 'hide-leading-days' })
419
349
  ], IgcDaysViewComponent.prototype, "hideLeadingDays", void 0);
@@ -421,21 +351,20 @@ __decorate([
421
351
  property({ type: Boolean, attribute: 'hide-trailing-days' })
422
352
  ], IgcDaysViewComponent.prototype, "hideTrailingDays", void 0);
423
353
  __decorate([
424
- property({ type: Boolean })
425
- ], IgcDaysViewComponent.prototype, "active", void 0);
354
+ property({ attribute: false })
355
+ ], IgcDaysViewComponent.prototype, "rangePreviewDate", null);
426
356
  __decorate([
427
357
  property({ attribute: false })
428
- ], IgcDaysViewComponent.prototype, "rangePreviewDate", void 0);
358
+ ], IgcDaysViewComponent.prototype, "resourceStrings", void 0);
429
359
  __decorate([
430
360
  property({ attribute: 'week-day-format' })
431
361
  ], IgcDaysViewComponent.prototype, "weekDayFormat", void 0);
432
362
  __decorate([
433
- property({ attribute: false })
434
- ], IgcDaysViewComponent.prototype, "resourceStrings", void 0);
435
- __decorate([
436
- watch('weekDayFormat'),
437
363
  watch('locale')
438
- ], IgcDaysViewComponent.prototype, "formattersChange", null);
364
+ ], IgcDaysViewComponent.prototype, "localeChange", null);
365
+ __decorate([
366
+ watch('weekDayFormat')
367
+ ], IgcDaysViewComponent.prototype, "weekDayFormatChange", null);
439
368
  __decorate([
440
369
  watch('weekStart'),
441
370
  watch('activeDate')