igniteui-webcomponents 4.11.1 → 5.0.0-rc.1

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 (367) hide show
  1. package/CHANGELOG.md +67 -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/themes/step/step.base.css.js +1 -1
  284. package/components/stepper/themes/step/step.base.css.js.map +1 -1
  285. package/components/stepper/themes/stepper/stepper.base.css.js +1 -1
  286. package/components/stepper/themes/stepper/stepper.base.css.js.map +1 -1
  287. package/components/stepper/themes/stepper/stepper.bootstrap.css.js +1 -1
  288. package/components/stepper/themes/stepper/stepper.bootstrap.css.js.map +1 -1
  289. package/components/stepper/themes/stepper/stepper.fluent.css.js +1 -1
  290. package/components/stepper/themes/stepper/stepper.fluent.css.js.map +1 -1
  291. package/components/stepper/themes/stepper/stepper.indigo.css.js +1 -1
  292. package/components/stepper/themes/stepper/stepper.indigo.css.js.map +1 -1
  293. package/components/tabs/tabs.js +2 -3
  294. package/components/tabs/tabs.js.map +1 -1
  295. package/components/tabs/themes/tab.base.css.js +1 -1
  296. package/components/tabs/themes/tab.base.css.js.map +1 -1
  297. package/components/tabs/themes/tabs.base.css.js +1 -1
  298. package/components/tabs/themes/tabs.base.css.js.map +1 -1
  299. package/components/textarea/textarea.d.ts +13 -16
  300. package/components/textarea/textarea.js +10 -12
  301. package/components/textarea/textarea.js.map +1 -1
  302. package/components/textarea/themes/textarea.base.css.js +1 -1
  303. package/components/textarea/themes/textarea.base.css.js.map +1 -1
  304. package/components/textarea/validators.d.ts +3 -0
  305. package/components/textarea/validators.js +7 -0
  306. package/components/textarea/validators.js.map +1 -0
  307. package/components/toast/themes/toast.base.css.js +1 -1
  308. package/components/toast/themes/toast.base.css.js.map +1 -1
  309. package/components/tree/themes/container.base.css.js +1 -1
  310. package/components/tree/themes/container.base.css.js.map +1 -1
  311. package/components/tree/themes/item.base.css.js +1 -1
  312. package/components/tree/themes/item.base.css.js.map +1 -1
  313. package/components/tree/tree-item.d.ts +4 -4
  314. package/components/tree/tree-item.js +11 -23
  315. package/components/tree/tree-item.js.map +1 -1
  316. package/components/tree/tree.d.ts +3 -4
  317. package/components/tree/tree.js +1 -37
  318. package/components/tree/tree.js.map +1 -1
  319. package/components/types.d.ts +3 -0
  320. package/components/types.js +2 -0
  321. package/components/types.js.map +1 -0
  322. package/custom-elements.json +30658 -31327
  323. package/igniteui-webcomponents.css-data.json +5 -928
  324. package/igniteui-webcomponents.html-data.json +4 -2699
  325. package/index.d.ts +5 -4
  326. package/index.js +2 -3
  327. package/index.js.map +1 -1
  328. package/package.json +1 -1
  329. package/theming/config.js +3 -3
  330. package/theming/config.js.map +1 -1
  331. package/theming/theming-controller.d.ts +4 -6
  332. package/theming/theming-controller.js +30 -34
  333. package/theming/theming-controller.js.map +1 -1
  334. package/theming/theming-decorator.d.ts +29 -11
  335. package/theming/theming-decorator.js +21 -7
  336. package/theming/theming-decorator.js.map +1 -1
  337. package/theming/theming-event.js.map +1 -1
  338. package/theming/types.d.ts +5 -0
  339. package/theming/types.js.map +1 -1
  340. package/theming/utils.d.ts +1 -1
  341. package/theming/utils.js +8 -8
  342. package/theming/utils.js.map +1 -1
  343. package/web-types.json +12 -7621
  344. package/components/calendar/common/calendar-base.d.ts +0 -40
  345. package/components/calendar/common/calendar-base.js +0 -118
  346. package/components/calendar/common/calendar-base.js.map +0 -1
  347. package/components/calendar/common/calendar.model.d.ts +0 -128
  348. package/components/calendar/common/calendar.model.js +0 -246
  349. package/components/calendar/common/calendar.model.js.map +0 -1
  350. package/components/calendar/common/utils.d.ts +0 -12
  351. package/components/calendar/common/utils.js +0 -54
  352. package/components/calendar/common/utils.js.map +0 -1
  353. package/components/common/decorators/alternateName.d.ts +0 -7
  354. package/components/common/decorators/alternateName.js +0 -4
  355. package/components/common/decorators/alternateName.js.map +0 -1
  356. package/components/common/decorators/blazorSuppress.d.ts +0 -5
  357. package/components/common/decorators/blazorSuppress.js +0 -4
  358. package/components/common/decorators/blazorSuppress.js.map +0 -1
  359. package/components/common/decorators/blazorTwoWayBind.d.ts +0 -7
  360. package/components/common/decorators/blazorTwoWayBind.js +0 -4
  361. package/components/common/decorators/blazorTwoWayBind.js.map +0 -1
  362. package/components/common/mixins/sizable.d.ts +0 -13
  363. package/components/common/mixins/sizable.js +0 -27
  364. package/components/common/mixins/sizable.js.map +0 -1
  365. package/components/form/form.d.ts +0 -48
  366. package/components/form/form.js +0 -158
  367. package/components/form/form.js.map +0 -1
@@ -1,40 +0,0 @@
1
- import { LitElement } from 'lit';
2
- import { Calendar, type DateRangeDescriptor } from './calendar.model.js';
3
- export declare const MONTHS_PER_ROW = 3;
4
- export declare const YEARS_PER_ROW = 3;
5
- export interface IgcCalendarBaseEventMap {
6
- igcChange: CustomEvent<Date | Date[]>;
7
- }
8
- export declare class IgcCalendarBaseComponent extends LitElement {
9
- private _activeDate;
10
- private _activeDateSetFlag;
11
- protected calendarModel: Calendar;
12
- /**
13
- * The current value of the calendar.
14
- * Used when selection is set to single.
15
- */
16
- value?: Date;
17
- /**
18
- * The current values of the calendar.
19
- * Used when selection is set to multiple or range.
20
- */
21
- values?: Date[];
22
- /** Sets the type of date selection. */
23
- selection: 'single' | 'multiple' | 'range';
24
- /** Show/hide the week numbers. */
25
- showWeekNumbers: boolean;
26
- /** Sets the start day of the week. */
27
- weekStart: 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday';
28
- /** Sets the date which is shown in view and is highlighted. By default it is the current date. */
29
- set activeDate(val: Date);
30
- get activeDate(): Date;
31
- /** Sets the locale used for formatting and displaying the dates in the calendar. */
32
- locale: string;
33
- /** Gets/sets disabled dates. */
34
- disabledDates: DateRangeDescriptor[];
35
- /** Gets/sets special dates. */
36
- specialDates: DateRangeDescriptor[];
37
- protected weekStartChange(): void;
38
- protected selectionChange(): void;
39
- protected firstUpdated(): Promise<void>;
40
- }
@@ -1,118 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { LitElement } from 'lit';
8
- import { property } from 'lit/decorators.js';
9
- import { blazorDeepImport } from '../../common/decorators/blazorDeepImport.js';
10
- import { blazorIndirectRender } from '../../common/decorators/blazorIndirectRender.js';
11
- import { blazorSuppress } from '../../common/decorators/blazorSuppress.js';
12
- import { watch } from '../../common/decorators/watch.js';
13
- import { Calendar } from './calendar.model.js';
14
- import { getWeekDayNumber } from './utils.js';
15
- export const MONTHS_PER_ROW = 3;
16
- export const YEARS_PER_ROW = 3;
17
- let IgcCalendarBaseComponent = class IgcCalendarBaseComponent extends LitElement {
18
- constructor() {
19
- super(...arguments);
20
- this._activeDate = new Date();
21
- this._activeDateSetFlag = false;
22
- this.calendarModel = new Calendar();
23
- this.selection = 'single';
24
- this.showWeekNumbers = false;
25
- this.weekStart = 'sunday';
26
- this.locale = 'en';
27
- }
28
- set activeDate(val) {
29
- const oldVal = this._activeDate;
30
- this._activeDate = val;
31
- this._activeDateSetFlag = true;
32
- this.requestUpdate('activeDate', oldVal);
33
- }
34
- get activeDate() {
35
- return this._activeDate;
36
- }
37
- weekStartChange() {
38
- this.calendarModel.firstWeekDay = getWeekDayNumber(this.weekStart);
39
- }
40
- selectionChange() {
41
- this.value = undefined;
42
- }
43
- async firstUpdated() {
44
- if (this._activeDateSetFlag) {
45
- return;
46
- }
47
- if (this.selection === 'single') {
48
- this.activeDate = this.value ?? this.activeDate;
49
- }
50
- else {
51
- this.activeDate = this.values ? this.values[0] : this.activeDate;
52
- }
53
- }
54
- };
55
- __decorate([
56
- blazorSuppress(),
57
- property({
58
- converter: {
59
- fromAttribute: (value) => (value ? new Date(value) : undefined),
60
- toAttribute: (value) => value.toISOString(),
61
- },
62
- })
63
- ], IgcCalendarBaseComponent.prototype, "value", void 0);
64
- __decorate([
65
- blazorSuppress(),
66
- property({
67
- converter: {
68
- fromAttribute: (value) => !value
69
- ? undefined
70
- : value
71
- .split(',')
72
- .map((v) => v.trim())
73
- .filter((v) => v)
74
- .map((v) => new Date(v)),
75
- toAttribute: (value) => value.map((v) => v.toISOString()).join(','),
76
- },
77
- })
78
- ], IgcCalendarBaseComponent.prototype, "values", void 0);
79
- __decorate([
80
- property()
81
- ], IgcCalendarBaseComponent.prototype, "selection", void 0);
82
- __decorate([
83
- property({ type: Boolean, attribute: 'show-week-numbers', reflect: true })
84
- ], IgcCalendarBaseComponent.prototype, "showWeekNumbers", void 0);
85
- __decorate([
86
- property({ attribute: 'week-start' })
87
- ], IgcCalendarBaseComponent.prototype, "weekStart", void 0);
88
- __decorate([
89
- blazorSuppress(),
90
- property({
91
- attribute: 'active-date',
92
- converter: {
93
- fromAttribute: (value) => (value ? new Date(value) : new Date()),
94
- toAttribute: (value) => value.toISOString(),
95
- },
96
- })
97
- ], IgcCalendarBaseComponent.prototype, "activeDate", null);
98
- __decorate([
99
- property()
100
- ], IgcCalendarBaseComponent.prototype, "locale", void 0);
101
- __decorate([
102
- property({ attribute: false })
103
- ], IgcCalendarBaseComponent.prototype, "disabledDates", void 0);
104
- __decorate([
105
- property({ attribute: false })
106
- ], IgcCalendarBaseComponent.prototype, "specialDates", void 0);
107
- __decorate([
108
- watch('weekStart')
109
- ], IgcCalendarBaseComponent.prototype, "weekStartChange", null);
110
- __decorate([
111
- watch('selection', { waitUntilFirstUpdate: true })
112
- ], IgcCalendarBaseComponent.prototype, "selectionChange", null);
113
- IgcCalendarBaseComponent = __decorate([
114
- blazorIndirectRender,
115
- blazorDeepImport
116
- ], IgcCalendarBaseComponent);
117
- export { IgcCalendarBaseComponent };
118
- //# sourceMappingURL=calendar-base.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"calendar-base.js","sourceRoot":"","sources":["../../../../src/components/calendar/common/calendar-base.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AACzD,OAAO,EAAE,QAAQ,EAA4B,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAChC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAQxB,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,UAAU;IAAjD;;QACG,gBAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,uBAAkB,GAAG,KAAK,CAAC;QACzB,kBAAa,GAAG,IAAI,QAAQ,EAAE,CAAC;QAuClC,cAAS,GAAoC,QAAQ,CAAC;QAItD,oBAAe,GAAG,KAAK,CAAC;QAIxB,cAAS,GAOC,QAAQ,CAAC;QAwBnB,WAAM,GAAG,IAAI,CAAC;IA8BvB,CAAC;IAnDC,IAAW,UAAU,CAAC,GAAS;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAUD,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAeS,eAAe;QACvB,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrE,CAAC;IAGS,eAAe;QACvB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,CAAC;IAEkB,KAAK,CAAC,YAAY;QACnC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QACnE,CAAC;IACH,CAAC;CACF,CAAA;AA/FQ;IAPN,cAAc,EAAE;IAChB,QAAQ,CAAC;QACR,SAAS,EAAE;YACT,aAAa,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvE,WAAW,EAAE,CAAC,KAAW,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE;SAClD;KACF,CAAC;uDACkB;AAsBb;IAfN,cAAc,EAAE;IAChB,QAAQ,CAAC;QACR,SAAS,EAAE;YACT,aAAa,EAAE,CAAC,KAAa,EAAE,EAAE,CAC/B,CAAC,KAAK;gBACJ,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,KAAK;qBACF,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;qBACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;qBAChB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,WAAW,EAAE,CAAC,KAAa,EAAE,EAAE,CAC7B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;SAC9C;KACF,CAAC;wDACqB;AAIhB;IADN,QAAQ,EAAE;2DACkD;AAItD;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iEAC5C;AAIxB;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;2DAQZ;AAkB1B;IARC,cAAc,EAAE;IAChB,QAAQ,CAAC;QACR,SAAS,EAAE,aAAa;QACxB,SAAS,EAAE;YACT,aAAa,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;YACxE,WAAW,EAAE,CAAC,KAAW,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE;SAClD;KACF,CAAC;0DAGD;AAIM;IADN,QAAQ,EAAE;wDACU;AAId;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;+DACc;AAItC;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;8DACa;AAGlC;IADT,KAAK,CAAC,WAAW,CAAC;+DAGlB;AAGS;IADT,KAAK,CAAC,WAAW,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;+DAGlD;AAnGU,wBAAwB;IAFpC,oBAAoB;IACpB,gBAAgB;GACJ,wBAAwB,CA+GpC","sourcesContent":["import { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport { blazorDeepImport } from '../../common/decorators/blazorDeepImport.js';\nimport { blazorIndirectRender } from '../../common/decorators/blazorIndirectRender.js';\nimport { blazorSuppress } from '../../common/decorators/blazorSuppress.js';\nimport { watch } from '../../common/decorators/watch.js';\nimport { Calendar, type DateRangeDescriptor } from './calendar.model.js';\nimport { getWeekDayNumber } from './utils.js';\n\nexport const MONTHS_PER_ROW = 3;\nexport const YEARS_PER_ROW = 3;\n\nexport interface IgcCalendarBaseEventMap {\n igcChange: CustomEvent<Date | Date[]>;\n}\n\n@blazorIndirectRender\n@blazorDeepImport\nexport class IgcCalendarBaseComponent extends LitElement {\n private _activeDate = new Date();\n private _activeDateSetFlag = false;\n protected calendarModel = new Calendar();\n\n /**\n * The current value of the calendar.\n * Used when selection is set to single.\n */\n @blazorSuppress()\n @property({\n converter: {\n fromAttribute: (value: string) => (value ? new Date(value) : undefined),\n toAttribute: (value: Date) => value.toISOString(),\n },\n })\n public value?: Date;\n //we suppress value for blazor since we need to expose it on the leaves with the events for now.\n\n /**\n * The current values of the calendar.\n * Used when selection is set to multiple or range.\n */\n @blazorSuppress()\n @property({\n converter: {\n fromAttribute: (value: string) =>\n !value\n ? undefined\n : value\n .split(',')\n .map((v) => v.trim())\n .filter((v) => v)\n .map((v) => new Date(v)),\n toAttribute: (value: Date[]) =>\n value.map((v) => v.toISOString()).join(','),\n },\n })\n public values?: Date[];\n\n /** Sets the type of date selection. */\n @property()\n public selection: 'single' | 'multiple' | 'range' = 'single';\n\n /** Show/hide the week numbers. */\n @property({ type: Boolean, attribute: 'show-week-numbers', reflect: true })\n public showWeekNumbers = false;\n\n /** Sets the start day of the week. */\n @property({ attribute: 'week-start' })\n public weekStart:\n | 'sunday'\n | 'monday'\n | 'tuesday'\n | 'wednesday'\n | 'thursday'\n | 'friday'\n | 'saturday' = 'sunday';\n\n /** Sets the date which is shown in view and is highlighted. By default it is the current date. */\n public set activeDate(val: Date) {\n const oldVal = this._activeDate;\n this._activeDate = val;\n this._activeDateSetFlag = true;\n this.requestUpdate('activeDate', oldVal);\n }\n\n @blazorSuppress()\n @property({\n attribute: 'active-date',\n converter: {\n fromAttribute: (value: string) => (value ? new Date(value) : new Date()),\n toAttribute: (value: Date) => value.toISOString(),\n },\n })\n public get activeDate(): Date {\n return this._activeDate;\n }\n\n /** Sets the locale used for formatting and displaying the dates in the calendar. */\n @property()\n public locale = 'en';\n\n /** Gets/sets disabled dates. */\n @property({ attribute: false })\n public disabledDates!: DateRangeDescriptor[];\n\n /** Gets/sets special dates. */\n @property({ attribute: false })\n public specialDates!: DateRangeDescriptor[];\n\n @watch('weekStart')\n protected weekStartChange() {\n this.calendarModel.firstWeekDay = getWeekDayNumber(this.weekStart);\n }\n\n @watch('selection', { waitUntilFirstUpdate: true })\n protected selectionChange() {\n this.value = undefined;\n }\n\n protected override async firstUpdated() {\n if (this._activeDateSetFlag) {\n return;\n }\n if (this.selection === 'single') {\n this.activeDate = this.value ?? this.activeDate;\n } else {\n this.activeDate = this.values ? this.values[0] : this.activeDate;\n }\n }\n}\n"]}
@@ -1,128 +0,0 @@
1
- export interface DateRangeDescriptor {
2
- type: DateRangeType;
3
- dateRange?: Date[];
4
- }
5
- export declare enum DateRangeType {
6
- After = 0,
7
- Before = 1,
8
- Between = 2,
9
- Specific = 3,
10
- Weekdays = 4,
11
- Weekends = 5
12
- }
13
- /**
14
- * @hidden
15
- */
16
- export declare enum TimeDeltaInterval {
17
- Second = 0,
18
- Minute = 1,
19
- Hour = 2,
20
- Day = 3,
21
- Week = 4,
22
- Month = 5,
23
- Quarter = 6,
24
- Year = 7
25
- }
26
- export declare const range: (start: number, stop: number, step?: number) => number[];
27
- /**
28
- * Returns true for leap years, false for non-leap years.
29
- *
30
- * @export
31
- * @param year
32
- * @returns
33
- */
34
- export declare const isLeap: (year: number) => boolean;
35
- export declare const weekDay: (year: number, month: number, day: number) => number;
36
- /**
37
- * Return weekday and number of days for year, month.
38
- *
39
- * @export
40
- * @param year
41
- * @param month
42
- * @returns
43
- */
44
- export declare const monthRange: (year: number, month: number) => number[];
45
- export declare const isDateInRanges: (date: Date, ranges: DateRangeDescriptor[]) => boolean;
46
- export interface ICalendarDate {
47
- date: Date;
48
- isCurrentMonth: boolean;
49
- isPrevMonth: boolean;
50
- isNextMonth: boolean;
51
- }
52
- export interface IFormattedParts {
53
- value: string;
54
- literal?: string;
55
- combined: string;
56
- }
57
- export interface IFormattingViews {
58
- day?: boolean;
59
- month?: boolean;
60
- year?: boolean;
61
- }
62
- export type WeekDays = 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday';
63
- export declare enum WEEKDAYS {
64
- SUNDAY = 0,
65
- MONDAY = 1,
66
- TUESDAY = 2,
67
- WEDNESDAY = 3,
68
- THURSDAY = 4,
69
- FRIDAY = 5,
70
- SATURDAY = 6
71
- }
72
- export declare class Calendar {
73
- private _firstWeekDay;
74
- constructor(firstWeekDay?: number | WEEKDAYS);
75
- /** Gets the starting day of the week. */
76
- get firstWeekDay(): number;
77
- /** Sets the starting day of the week. */
78
- set firstWeekDay(value: number);
79
- /**
80
- * Returns an array of weekdays for one week starting
81
- * with the currently set `firstWeekDay`
82
- *
83
- * this.firstWeekDay = 0 (Sunday) --> [0, 1, 2, 3, 4, 5, 6]
84
- * this.firstWeekDay = 1 (Monday) --> [1, 2, 3, 4, 5, 6, 0]
85
- *
86
- * @returns
87
- *
88
- * @memberof Calendar
89
- */
90
- weekdays(): number[];
91
- /**
92
- * Returns the date values for one month. It will always iterate throught
93
- * complete weeks, so it will contain dates outside the specified month.
94
- *
95
- * @param year
96
- * @param month
97
- * @param boolean
98
- * @returns
99
- *
100
- * @memberof Calendar
101
- */
102
- monthdates(year: number, month: number, extraWeek?: boolean): ICalendarDate[];
103
- /**
104
- * Returns a matrix (array of arrays) representing a month's calendar.
105
- * Each row represents a full week; week entries are ICalendarDate objects.
106
- *
107
- * @param year
108
- * @param month
109
- * @returns
110
- *
111
- * @memberof Calendar
112
- */
113
- monthdatescalendar(year: number, month: number, extraWeek?: boolean): ICalendarDate[][];
114
- timedelta(date: Date, interval: TimeDeltaInterval, units: number): Date;
115
- /** Gets the same date the month after. */
116
- getNextMonth(date: Date): Date;
117
- /** Gets the same date the month prior. */
118
- getPrevMonth(date: Date): Date;
119
- /** Gets the same date the year after. */
120
- getNextYear(date: Date): Date;
121
- /** Gets the same date the year prior. */
122
- getPrevYear(date: Date): Date;
123
- /** Gets the week number of a given date. */
124
- getWeekNumber(date: Date): number;
125
- private generateICalendarDate;
126
- private isPreviousMonth;
127
- private isNextMonth;
128
- }
@@ -1,246 +0,0 @@
1
- export var DateRangeType;
2
- (function (DateRangeType) {
3
- DateRangeType[DateRangeType["After"] = 0] = "After";
4
- DateRangeType[DateRangeType["Before"] = 1] = "Before";
5
- DateRangeType[DateRangeType["Between"] = 2] = "Between";
6
- DateRangeType[DateRangeType["Specific"] = 3] = "Specific";
7
- DateRangeType[DateRangeType["Weekdays"] = 4] = "Weekdays";
8
- DateRangeType[DateRangeType["Weekends"] = 5] = "Weekends";
9
- })(DateRangeType || (DateRangeType = {}));
10
- export var TimeDeltaInterval;
11
- (function (TimeDeltaInterval) {
12
- TimeDeltaInterval[TimeDeltaInterval["Second"] = 0] = "Second";
13
- TimeDeltaInterval[TimeDeltaInterval["Minute"] = 1] = "Minute";
14
- TimeDeltaInterval[TimeDeltaInterval["Hour"] = 2] = "Hour";
15
- TimeDeltaInterval[TimeDeltaInterval["Day"] = 3] = "Day";
16
- TimeDeltaInterval[TimeDeltaInterval["Week"] = 4] = "Week";
17
- TimeDeltaInterval[TimeDeltaInterval["Month"] = 5] = "Month";
18
- TimeDeltaInterval[TimeDeltaInterval["Quarter"] = 6] = "Quarter";
19
- TimeDeltaInterval[TimeDeltaInterval["Year"] = 7] = "Year";
20
- })(TimeDeltaInterval || (TimeDeltaInterval = {}));
21
- const MDAYS = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
22
- const FEBRUARY = 1;
23
- export const range = (start, stop, step = 1) => {
24
- const res = [];
25
- const beginning = start ?? 0;
26
- const cur = stop === undefined ? 0 : beginning;
27
- const max = stop === undefined ? beginning : stop;
28
- for (let i = cur; step < 0 ? i > max : i < max; i += step) {
29
- res.push(i);
30
- }
31
- return res;
32
- };
33
- export const isLeap = (year) => year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
34
- export const weekDay = (year, month, day) => new Date(year, month, day).getDay();
35
- export const monthRange = (year, month) => {
36
- if (month < 0 || month > 11) {
37
- throw new Error('Invalid month specified');
38
- }
39
- const day = weekDay(year, month, 1);
40
- let nDays = MDAYS[month];
41
- if (month === FEBRUARY && isLeap(year)) {
42
- nDays++;
43
- }
44
- return [day, nDays];
45
- };
46
- export const isDateInRanges = (date, ranges) => {
47
- const searchedDate = new Date(date.getFullYear(), date.getMonth(), date.getDate());
48
- const searchedDateInMs = searchedDate.getTime();
49
- if (!ranges) {
50
- return false;
51
- }
52
- for (const descriptor of ranges) {
53
- const dRanges = descriptor.dateRange
54
- ? descriptor.dateRange.map((r) => new Date(r.getFullYear(), r.getMonth(), r.getDate()))
55
- : [];
56
- switch (descriptor.type) {
57
- case DateRangeType.After:
58
- if (searchedDateInMs > dRanges[0].getTime()) {
59
- return true;
60
- }
61
- break;
62
- case DateRangeType.Before:
63
- if (searchedDateInMs < dRanges[0].getTime()) {
64
- return true;
65
- }
66
- break;
67
- case DateRangeType.Between: {
68
- const dRange = dRanges.map((d) => d.getTime());
69
- const min = Math.min(dRange[0], dRange[1]);
70
- const max = Math.max(dRange[0], dRange[1]);
71
- if (searchedDateInMs >= min && searchedDateInMs <= max) {
72
- return true;
73
- }
74
- break;
75
- }
76
- case DateRangeType.Specific: {
77
- const datesInMs = dRanges.map((d) => d.getTime());
78
- for (const specificDateInMs of datesInMs) {
79
- if (searchedDateInMs === specificDateInMs) {
80
- return true;
81
- }
82
- }
83
- break;
84
- }
85
- case DateRangeType.Weekdays: {
86
- const day = searchedDate.getDay();
87
- if (day % 6 !== 0) {
88
- return true;
89
- }
90
- break;
91
- }
92
- case DateRangeType.Weekends: {
93
- const weekday = searchedDate.getDay();
94
- if (weekday % 6 === 0) {
95
- return true;
96
- }
97
- break;
98
- }
99
- default:
100
- return false;
101
- }
102
- }
103
- return false;
104
- };
105
- export var WEEKDAYS;
106
- (function (WEEKDAYS) {
107
- WEEKDAYS[WEEKDAYS["SUNDAY"] = 0] = "SUNDAY";
108
- WEEKDAYS[WEEKDAYS["MONDAY"] = 1] = "MONDAY";
109
- WEEKDAYS[WEEKDAYS["TUESDAY"] = 2] = "TUESDAY";
110
- WEEKDAYS[WEEKDAYS["WEDNESDAY"] = 3] = "WEDNESDAY";
111
- WEEKDAYS[WEEKDAYS["THURSDAY"] = 4] = "THURSDAY";
112
- WEEKDAYS[WEEKDAYS["FRIDAY"] = 5] = "FRIDAY";
113
- WEEKDAYS[WEEKDAYS["SATURDAY"] = 6] = "SATURDAY";
114
- })(WEEKDAYS || (WEEKDAYS = {}));
115
- export class Calendar {
116
- constructor(firstWeekDay = WEEKDAYS.SUNDAY) {
117
- this._firstWeekDay = firstWeekDay;
118
- }
119
- get firstWeekDay() {
120
- return this._firstWeekDay % 7;
121
- }
122
- set firstWeekDay(value) {
123
- this._firstWeekDay = value;
124
- }
125
- weekdays() {
126
- const res = [];
127
- for (const i of range(this.firstWeekDay, this.firstWeekDay + 7)) {
128
- res.push(i % 7);
129
- }
130
- return res;
131
- }
132
- monthdates(year, month, extraWeek = false) {
133
- let date = new Date(year, month, 1);
134
- let days = (date.getDay() - this.firstWeekDay) % 7;
135
- if (days < 0) {
136
- days = 7 - Math.abs(days);
137
- }
138
- date = this.timedelta(date, TimeDeltaInterval.Day, -days);
139
- const res = [];
140
- let value;
141
- while (true) {
142
- value = this.generateICalendarDate(date, year, month);
143
- res.push(value);
144
- date = this.timedelta(date, TimeDeltaInterval.Day, 1);
145
- if (date.getMonth() !== month && date.getDay() === this.firstWeekDay) {
146
- if (extraWeek && res.length <= 35) {
147
- for (const _ of range(0, 7)) {
148
- value = this.generateICalendarDate(date, year, month);
149
- res.push(value);
150
- date = this.timedelta(date, TimeDeltaInterval.Day, 1);
151
- }
152
- }
153
- break;
154
- }
155
- }
156
- return res;
157
- }
158
- monthdatescalendar(year, month, extraWeek = false) {
159
- const dates = this.monthdates(year, month, extraWeek);
160
- const res = [];
161
- for (const i of range(0, dates.length, 7)) {
162
- res.push(dates.slice(i, i + 7));
163
- }
164
- return res;
165
- }
166
- timedelta(date, interval, units) {
167
- const ret = new Date(date);
168
- const checkRollover = () => {
169
- if (ret.getDate() !== date.getDate()) {
170
- ret.setDate(0);
171
- }
172
- };
173
- switch (interval) {
174
- case TimeDeltaInterval.Year:
175
- ret.setFullYear(ret.getFullYear() + units);
176
- checkRollover();
177
- break;
178
- case TimeDeltaInterval.Quarter:
179
- ret.setMonth(ret.getMonth() + 3 * units);
180
- checkRollover();
181
- break;
182
- case TimeDeltaInterval.Month:
183
- ret.setMonth(ret.getMonth() + units);
184
- checkRollover();
185
- break;
186
- case TimeDeltaInterval.Week:
187
- ret.setDate(ret.getDate() + 7 * units);
188
- break;
189
- case TimeDeltaInterval.Day:
190
- ret.setDate(ret.getDate() + units);
191
- break;
192
- case TimeDeltaInterval.Hour:
193
- ret.setTime(ret.getTime() + units * 3600000);
194
- break;
195
- case TimeDeltaInterval.Minute:
196
- ret.setTime(ret.getTime() + units * 60000);
197
- break;
198
- case TimeDeltaInterval.Second:
199
- ret.setTime(ret.getTime() + units * 1000);
200
- break;
201
- default:
202
- throw new Error('Invalid interval specifier');
203
- }
204
- return ret;
205
- }
206
- getNextMonth(date) {
207
- return this.timedelta(date, TimeDeltaInterval.Month, 1);
208
- }
209
- getPrevMonth(date) {
210
- return this.timedelta(date, TimeDeltaInterval.Month, -1);
211
- }
212
- getNextYear(date) {
213
- return this.timedelta(date, TimeDeltaInterval.Year, 1);
214
- }
215
- getPrevYear(date) {
216
- return this.timedelta(date, TimeDeltaInterval.Year, -1);
217
- }
218
- getWeekNumber(date) {
219
- const firstJan = new Date(date.getFullYear(), 0, 1).getTime();
220
- const today = new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime();
221
- const dayInMilSeconds = 86400000;
222
- const dayOfYear = (today - firstJan + 1) / dayInMilSeconds;
223
- return Math.ceil(dayOfYear / 7);
224
- }
225
- generateICalendarDate(date, year, month) {
226
- return {
227
- date,
228
- isCurrentMonth: date.getFullYear() === year && date.getMonth() === month,
229
- isNextMonth: this.isNextMonth(date, year, month),
230
- isPrevMonth: this.isPreviousMonth(date, year, month),
231
- };
232
- }
233
- isPreviousMonth(date, year, month) {
234
- if (date.getFullYear() === year) {
235
- return date.getMonth() < month;
236
- }
237
- return date.getFullYear() < year;
238
- }
239
- isNextMonth(date, year, month) {
240
- if (date.getFullYear() === year) {
241
- return date.getMonth() > month;
242
- }
243
- return date.getFullYear() > year;
244
- }
245
- }
246
- //# sourceMappingURL=calendar.model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"calendar.model.js","sourceRoot":"","sources":["../../../../src/components/calendar/common/calendar.model.ts"],"names":[],"mappings":"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","sourcesContent":["/* creationType: DateRangeDescriptor */\nexport interface DateRangeDescriptor {\n type: DateRangeType;\n dateRange?: Date[];\n}\n\nexport enum DateRangeType {\n After = 0,\n Before = 1,\n Between = 2,\n Specific = 3,\n Weekdays = 4,\n Weekends = 5,\n}\n\n/**\n * @hidden\n */\nexport enum TimeDeltaInterval {\n Second = 0,\n Minute = 1,\n Hour = 2,\n Day = 3,\n Week = 4,\n Month = 5,\n Quarter = 6,\n Year = 7,\n}\n\nconst MDAYS = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst FEBRUARY = 1;\n\nexport const range = (start: number, stop: number, step = 1) => {\n const res = [];\n const beginning = start ?? 0;\n const cur = stop === undefined ? 0 : beginning;\n const max = stop === undefined ? beginning : stop;\n for (let i = cur; step < 0 ? i > max : i < max; i += step) {\n res.push(i);\n }\n return res;\n};\n\n/**\n * Returns true for leap years, false for non-leap years.\n *\n * @export\n * @param year\n * @returns\n */\nexport const isLeap = (year: number): boolean =>\n year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n\nexport const weekDay = (year: number, month: number, day: number): number =>\n new Date(year, month, day).getDay();\n\n/**\n * Return weekday and number of days for year, month.\n *\n * @export\n * @param year\n * @param month\n * @returns\n */\nexport const monthRange = (year: number, month: number): number[] => {\n if (month < 0 || month > 11) {\n throw new Error('Invalid month specified');\n }\n const day = weekDay(year, month, 1);\n let nDays = MDAYS[month];\n if (month === FEBRUARY && isLeap(year)) {\n nDays++;\n }\n return [day, nDays];\n};\n\nexport const isDateInRanges = (\n date: Date,\n ranges: DateRangeDescriptor[]\n): boolean => {\n const searchedDate = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate()\n );\n const searchedDateInMs = searchedDate.getTime();\n\n if (!ranges) {\n return false;\n }\n\n for (const descriptor of ranges) {\n const dRanges: Date[] = descriptor.dateRange\n ? descriptor.dateRange.map(\n (r) => new Date(r.getFullYear(), r.getMonth(), r.getDate())\n )\n : [];\n switch (descriptor.type) {\n case DateRangeType.After:\n if (searchedDateInMs > dRanges[0].getTime()) {\n return true;\n }\n\n break;\n case DateRangeType.Before:\n if (searchedDateInMs < dRanges[0].getTime()) {\n return true;\n }\n\n break;\n case DateRangeType.Between: {\n const dRange = dRanges.map((d) => d.getTime());\n const min = Math.min(dRange[0], dRange[1]);\n const max = Math.max(dRange[0], dRange[1]);\n if (searchedDateInMs >= min && searchedDateInMs <= max) {\n return true;\n }\n\n break;\n }\n case DateRangeType.Specific: {\n const datesInMs = dRanges.map((d) => d.getTime());\n for (const specificDateInMs of datesInMs) {\n if (searchedDateInMs === specificDateInMs) {\n return true;\n }\n }\n\n break;\n }\n case DateRangeType.Weekdays: {\n const day = searchedDate.getDay();\n if (day % 6 !== 0) {\n return true;\n }\n\n break;\n }\n case DateRangeType.Weekends: {\n const weekday = searchedDate.getDay();\n if (weekday % 6 === 0) {\n return true;\n }\n\n break;\n }\n default:\n return false;\n }\n }\n\n return false;\n};\n\n/* blazorSuppress */\nexport interface ICalendarDate {\n date: Date;\n isCurrentMonth: boolean;\n isPrevMonth: boolean;\n isNextMonth: boolean;\n}\n\nexport interface IFormattedParts {\n value: string;\n literal?: string;\n combined: string;\n}\n\nexport interface IFormattingViews {\n day?: boolean;\n month?: boolean;\n year?: boolean;\n}\n\nexport type WeekDays =\n | 'sunday'\n | 'monday'\n | 'tuesday'\n | 'wednesday'\n | 'thursday'\n | 'friday'\n | 'saturday';\n\nexport enum WEEKDAYS {\n SUNDAY = 0,\n MONDAY = 1,\n TUESDAY = 2,\n WEDNESDAY = 3,\n THURSDAY = 4,\n FRIDAY = 5,\n SATURDAY = 6,\n}\n\nexport class Calendar {\n private _firstWeekDay: number | WEEKDAYS;\n\n constructor(firstWeekDay: number | WEEKDAYS = WEEKDAYS.SUNDAY) {\n this._firstWeekDay = firstWeekDay;\n }\n\n /** Gets the starting day of the week. */\n public get firstWeekDay(): number {\n return this._firstWeekDay % 7;\n }\n\n /** Sets the starting day of the week. */\n public set firstWeekDay(value: number) {\n this._firstWeekDay = value;\n }\n\n /**\n * Returns an array of weekdays for one week starting\n * with the currently set `firstWeekDay`\n *\n * this.firstWeekDay = 0 (Sunday) --> [0, 1, 2, 3, 4, 5, 6]\n * this.firstWeekDay = 1 (Monday) --> [1, 2, 3, 4, 5, 6, 0]\n *\n * @returns\n *\n * @memberof Calendar\n */\n public weekdays(): number[] {\n const res = [];\n for (const i of range(this.firstWeekDay, this.firstWeekDay + 7)) {\n res.push(i % 7);\n }\n return res;\n }\n\n /**\n * Returns the date values for one month. It will always iterate throught\n * complete weeks, so it will contain dates outside the specified month.\n *\n * @param year\n * @param month\n * @param boolean\n * @returns\n *\n * @memberof Calendar\n */\n public monthdates(\n year: number,\n month: number,\n extraWeek = false\n ): ICalendarDate[] {\n let date = new Date(year, month, 1);\n let days = (date.getDay() - this.firstWeekDay) % 7;\n if (days < 0) {\n days = 7 - Math.abs(days);\n }\n date = this.timedelta(date, TimeDeltaInterval.Day, -days);\n const res = [];\n let value: ICalendarDate;\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n value = this.generateICalendarDate(date, year, month);\n res.push(value);\n\n date = this.timedelta(date, TimeDeltaInterval.Day, 1);\n\n if (date.getMonth() !== month && date.getDay() === this.firstWeekDay) {\n if (extraWeek && res.length <= 35) {\n for (const _ of range(0, 7)) {\n value = this.generateICalendarDate(date, year, month);\n res.push(value);\n date = this.timedelta(date, TimeDeltaInterval.Day, 1);\n }\n }\n break;\n }\n }\n return res;\n }\n\n /**\n * Returns a matrix (array of arrays) representing a month's calendar.\n * Each row represents a full week; week entries are ICalendarDate objects.\n *\n * @param year\n * @param month\n * @returns\n *\n * @memberof Calendar\n */\n public monthdatescalendar(\n year: number,\n month: number,\n extraWeek = false\n ): ICalendarDate[][] {\n const dates = this.monthdates(year, month, extraWeek);\n const res = [];\n for (const i of range(0, dates.length, 7)) {\n res.push(dates.slice(i, i + 7));\n }\n return res;\n }\n\n public timedelta(\n date: Date,\n interval: TimeDeltaInterval,\n units: number\n ): Date {\n const ret = new Date(date);\n\n const checkRollover = () => {\n if (ret.getDate() !== date.getDate()) {\n ret.setDate(0);\n }\n };\n\n switch (interval) {\n case TimeDeltaInterval.Year:\n ret.setFullYear(ret.getFullYear() + units);\n checkRollover();\n break;\n case TimeDeltaInterval.Quarter:\n ret.setMonth(ret.getMonth() + 3 * units);\n checkRollover();\n break;\n case TimeDeltaInterval.Month:\n ret.setMonth(ret.getMonth() + units);\n checkRollover();\n break;\n case TimeDeltaInterval.Week:\n ret.setDate(ret.getDate() + 7 * units);\n break;\n case TimeDeltaInterval.Day:\n ret.setDate(ret.getDate() + units);\n break;\n case TimeDeltaInterval.Hour:\n ret.setTime(ret.getTime() + units * 3600000);\n break;\n case TimeDeltaInterval.Minute:\n ret.setTime(ret.getTime() + units * 60000);\n break;\n case TimeDeltaInterval.Second:\n ret.setTime(ret.getTime() + units * 1000);\n break;\n default:\n throw new Error('Invalid interval specifier');\n }\n return ret;\n }\n\n /** Gets the same date the month after. */\n public getNextMonth(date: Date) {\n return this.timedelta(date, TimeDeltaInterval.Month, 1);\n }\n\n /** Gets the same date the month prior. */\n public getPrevMonth(date: Date) {\n return this.timedelta(date, TimeDeltaInterval.Month, -1);\n }\n\n /** Gets the same date the year after. */\n public getNextYear(date: Date) {\n return this.timedelta(date, TimeDeltaInterval.Year, 1);\n }\n\n /** Gets the same date the year prior. */\n public getPrevYear(date: Date) {\n return this.timedelta(date, TimeDeltaInterval.Year, -1);\n }\n\n /** Gets the week number of a given date. */\n public getWeekNumber(date: Date) {\n const firstJan = new Date(date.getFullYear(), 0, 1).getTime();\n const today = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate()\n ).getTime();\n const dayInMilSeconds = 86400000;\n const dayOfYear = (today - firstJan + 1) / dayInMilSeconds;\n return Math.ceil(dayOfYear / 7);\n }\n\n private generateICalendarDate(\n date: Date,\n year: number,\n month: number\n ): ICalendarDate {\n return {\n date,\n isCurrentMonth: date.getFullYear() === year && date.getMonth() === month,\n isNextMonth: this.isNextMonth(date, year, month),\n isPrevMonth: this.isPreviousMonth(date, year, month),\n };\n }\n\n private isPreviousMonth(date: Date, year: number, month: number): boolean {\n if (date.getFullYear() === year) {\n return date.getMonth() < month;\n }\n return date.getFullYear() < year;\n }\n\n private isNextMonth(date: Date, year: number, month: number): boolean {\n if (date.getFullYear() === year) {\n return date.getMonth() > month;\n }\n\n return date.getFullYear() > year;\n }\n}\n"]}
@@ -1,12 +0,0 @@
1
- import type { WeekDays } from './calendar.model.js';
2
- export declare const MAX_DATE: Date;
3
- export declare const MIN_DATE: Date;
4
- export declare const isDate: (value: any) => value is Date;
5
- export declare const areEqualDates: (date1: Date, date2: Date, datePartOnly?: boolean) => boolean;
6
- export declare const setDateSafe: (date: Date, value: number) => void;
7
- export declare const isEqual: (obj1: any, obj2: any) => boolean;
8
- export declare const isValidDate: (value: any) => value is Date;
9
- export declare const validateDate: (value: Date) => Date;
10
- export declare const getDateOnly: (date: Date) => Date;
11
- export declare const getWeekDayNumber: (day: WeekDays) => number;
12
- export declare const calculateYearsRangeStart: (date: Date, rangeCount: number) => number;
@@ -1,54 +0,0 @@
1
- const weekDaysMap = {
2
- sunday: 0,
3
- monday: 1,
4
- tuesday: 2,
5
- wednesday: 3,
6
- thursday: 4,
7
- friday: 5,
8
- saturday: 6,
9
- };
10
- const DATE_BOUND = 8640000000000000;
11
- export const MAX_DATE = new Date(DATE_BOUND);
12
- export const MIN_DATE = new Date(-DATE_BOUND);
13
- export const isDate = (value) => value instanceof Date;
14
- export const areEqualDates = (date1, date2, datePartOnly = true) => {
15
- return datePartOnly
16
- ? date1.getFullYear() === date2.getFullYear() &&
17
- date1.getMonth() === date2.getMonth() &&
18
- date1.getDate() === date2.getDate()
19
- : date1.getTime() === date2.getTime();
20
- };
21
- export const setDateSafe = (date, value) => {
22
- date.setDate(value);
23
- if (date.getDate() !== value) {
24
- date.setDate(0);
25
- }
26
- };
27
- export const isEqual = (obj1, obj2) => {
28
- if (isDate(obj1) && isDate(obj2)) {
29
- return obj1.getTime() === obj2.getTime();
30
- }
31
- return obj1 === obj2;
32
- };
33
- export const isValidDate = (value) => {
34
- if (isDate(value)) {
35
- return !Number.isNaN(value.getTime());
36
- }
37
- return false;
38
- };
39
- export const validateDate = (value) => {
40
- return isValidDate(value) ? value : new Date();
41
- };
42
- export const getDateOnly = (date) => {
43
- const validDate = validateDate(date);
44
- return new Date(validDate.getFullYear(), validDate.getMonth(), validDate.getDate());
45
- };
46
- export const getWeekDayNumber = (day) => {
47
- return weekDaysMap[day];
48
- };
49
- export const calculateYearsRangeStart = (date, rangeCount) => {
50
- const year = date.getFullYear();
51
- const startYear = Math.floor(year / rangeCount) * rangeCount;
52
- return startYear;
53
- };
54
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/components/calendar/common/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import type { WeekDays } from './calendar.model.js';\n\nconst weekDaysMap = {\n sunday: 0,\n monday: 1,\n tuesday: 2,\n wednesday: 3,\n thursday: 4,\n friday: 5,\n saturday: 6,\n};\n\nconst DATE_BOUND = 8640000000000000;\n\nexport const MAX_DATE = new Date(DATE_BOUND);\n\nexport const MIN_DATE = new Date(-DATE_BOUND);\n\nexport const isDate = (value: any): value is Date => value instanceof Date;\n\nexport const areEqualDates = (\n date1: Date,\n date2: Date,\n datePartOnly = true\n) => {\n return datePartOnly\n ? date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n : date1.getTime() === date2.getTime();\n};\n\nexport const setDateSafe = (date: Date, value: number) => {\n date.setDate(value);\n if (date.getDate() !== value) {\n date.setDate(0);\n }\n};\n\nexport const isEqual = (obj1: any, obj2: any): boolean => {\n if (isDate(obj1) && isDate(obj2)) {\n return obj1.getTime() === obj2.getTime();\n }\n return obj1 === obj2;\n};\n\nexport const isValidDate = (value: any): value is Date => {\n if (isDate(value)) {\n return !Number.isNaN(value.getTime());\n }\n\n return false;\n};\n\nexport const validateDate = (value: Date) => {\n return isValidDate(value) ? value : new Date();\n};\n\nexport const getDateOnly = (date: Date) => {\n const validDate = validateDate(date);\n return new Date(\n validDate.getFullYear(),\n validDate.getMonth(),\n validDate.getDate()\n );\n};\n\nexport const getWeekDayNumber = (day: WeekDays) => {\n return weekDaysMap[day];\n};\n\nexport const calculateYearsRangeStart = (date: Date, rangeCount: number) => {\n const year = date.getFullYear();\n const startYear = Math.floor(year / rangeCount) * rangeCount;\n\n return startYear;\n};\n"]}