igniteui-webcomponents 6.0.1 → 6.1.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 (306) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/components/button/button-base.d.ts +5 -6
  3. package/components/button/button-base.js +15 -29
  4. package/components/button/button-base.js.map +1 -1
  5. package/components/button/themes/button/light/button.shared.css.js +1 -1
  6. package/components/button/themes/button/light/button.shared.css.js.map +1 -1
  7. package/components/button-group/toggle-button.d.ts +2 -2
  8. package/components/button-group/toggle-button.js +4 -6
  9. package/components/button-group/toggle-button.js.map +1 -1
  10. package/components/calendar/calendar.d.ts +1 -1
  11. package/components/calendar/calendar.js +12 -9
  12. package/components/calendar/calendar.js.map +1 -1
  13. package/components/calendar/days-view/days-view.d.ts +1 -1
  14. package/components/calendar/days-view/days-view.js +8 -9
  15. package/components/calendar/days-view/days-view.js.map +1 -1
  16. package/components/calendar/helpers.d.ts +12 -1
  17. package/components/calendar/helpers.js +35 -10
  18. package/components/calendar/helpers.js.map +1 -1
  19. package/components/calendar/model.d.ts +15 -1
  20. package/components/calendar/model.js +26 -5
  21. package/components/calendar/model.js.map +1 -1
  22. package/components/calendar/months-view/months-view.d.ts +1 -1
  23. package/components/calendar/months-view/months-view.js +6 -6
  24. package/components/calendar/months-view/months-view.js.map +1 -1
  25. package/components/calendar/years-view/years-view.d.ts +1 -1
  26. package/components/calendar/years-view/years-view.js +6 -6
  27. package/components/calendar/years-view/years-view.js.map +1 -1
  28. package/components/carousel/carousel-indicator-container.d.ts +2 -2
  29. package/components/carousel/carousel-indicator-container.js +8 -9
  30. package/components/carousel/carousel-indicator-container.js.map +1 -1
  31. package/components/carousel/carousel.d.ts +7 -8
  32. package/components/carousel/carousel.js +24 -20
  33. package/components/carousel/carousel.js.map +1 -1
  34. package/components/checkbox/checkbox-base.d.ts +8 -10
  35. package/components/checkbox/checkbox-base.js +20 -23
  36. package/components/checkbox/checkbox-base.js.map +1 -1
  37. package/components/checkbox/checkbox.d.ts +3 -3
  38. package/components/checkbox/checkbox.js +18 -19
  39. package/components/checkbox/checkbox.js.map +1 -1
  40. package/components/checkbox/switch.d.ts +2 -2
  41. package/components/checkbox/switch.js +15 -19
  42. package/components/checkbox/switch.js.map +1 -1
  43. package/components/chip/chip.js +3 -3
  44. package/components/chip/chip.js.map +1 -1
  45. package/components/combo/combo.d.ts +2 -2
  46. package/components/combo/combo.js +12 -11
  47. package/components/combo/combo.js.map +1 -1
  48. package/components/combo/themes/combo.base.css.js +1 -1
  49. package/components/combo/themes/combo.base.css.js.map +1 -1
  50. package/components/combo/themes/shared/combo.fluent.css.js +1 -1
  51. package/components/combo/themes/shared/combo.fluent.css.js.map +1 -1
  52. package/components/common/controllers/focus-ring.d.ts +21 -11
  53. package/components/common/controllers/focus-ring.js +16 -14
  54. package/components/common/controllers/focus-ring.js.map +1 -1
  55. package/components/common/controllers/key-bindings.d.ts +40 -33
  56. package/components/common/controllers/key-bindings.js +83 -71
  57. package/components/common/controllers/key-bindings.js.map +1 -1
  58. package/components/common/definitions/defineAllComponents.js +2 -0
  59. package/components/common/definitions/defineAllComponents.js.map +1 -1
  60. package/components/common/i18n/date-range-picker.resources.d.ts +11 -0
  61. package/components/common/i18n/date-range-picker.resources.js +12 -0
  62. package/components/common/i18n/date-range-picker.resources.js.map +1 -0
  63. package/components/common/mixins/combo-box.js +8 -2
  64. package/components/common/mixins/combo-box.js.map +1 -1
  65. package/components/common/mixins/forms/form-value.d.ts +15 -1
  66. package/components/common/mixins/forms/form-value.js +25 -4
  67. package/components/common/mixins/forms/form-value.js.map +1 -1
  68. package/components/common/mixins/option.d.ts +3 -2
  69. package/components/common/mixins/option.js.map +1 -1
  70. package/components/common/part-map.d.ts +17 -0
  71. package/components/common/part-map.js +46 -0
  72. package/components/common/part-map.js.map +1 -0
  73. package/components/common/util.d.ts +5 -6
  74. package/components/common/util.js +17 -22
  75. package/components/common/util.js.map +1 -1
  76. package/components/common/validators.js +3 -7
  77. package/components/common/validators.js.map +1 -1
  78. package/components/date-picker/date-picker.d.ts +3 -3
  79. package/components/date-picker/date-picker.js +13 -14
  80. package/components/date-picker/date-picker.js.map +1 -1
  81. package/components/date-picker/themes/dark/date-picker.bootstrap.css.js +1 -1
  82. package/components/date-picker/themes/dark/date-picker.bootstrap.css.js.map +1 -1
  83. package/components/date-picker/themes/dark/date-picker.fluent.css.js +1 -1
  84. package/components/date-picker/themes/dark/date-picker.fluent.css.js.map +1 -1
  85. package/components/date-picker/themes/dark/date-picker.indigo.css.js +1 -1
  86. package/components/date-picker/themes/dark/date-picker.indigo.css.js.map +1 -1
  87. package/components/date-picker/themes/dark/date-picker.material.css.js +1 -1
  88. package/components/date-picker/themes/dark/date-picker.material.css.js.map +1 -1
  89. package/components/date-picker/themes/light/date-picker.bootstrap.css.js +1 -1
  90. package/components/date-picker/themes/light/date-picker.bootstrap.css.js.map +1 -1
  91. package/components/date-picker/themes/light/date-picker.fluent.css.js +1 -1
  92. package/components/date-picker/themes/light/date-picker.fluent.css.js.map +1 -1
  93. package/components/date-picker/themes/light/date-picker.indigo.css.js +1 -1
  94. package/components/date-picker/themes/light/date-picker.indigo.css.js.map +1 -1
  95. package/components/date-picker/themes/light/date-picker.material.css.js +1 -1
  96. package/components/date-picker/themes/light/date-picker.material.css.js.map +1 -1
  97. package/components/date-picker/themes/shared/date-picker.bootstrap.css.js +1 -1
  98. package/components/date-picker/themes/shared/date-picker.bootstrap.css.js.map +1 -1
  99. package/components/date-picker/themes/shared/date-picker.common.css.js +1 -1
  100. package/components/date-picker/themes/shared/date-picker.common.css.js.map +1 -1
  101. package/components/date-picker/themes/shared/date-picker.fluent.css.js +1 -1
  102. package/components/date-picker/themes/shared/date-picker.fluent.css.js.map +1 -1
  103. package/components/date-picker/themes/shared/date-picker.indigo.css.js +1 -1
  104. package/components/date-picker/themes/shared/date-picker.indigo.css.js.map +1 -1
  105. package/components/date-picker/themes/shared/date-picker.material.css.d.ts +1 -0
  106. package/components/date-picker/themes/shared/date-picker.material.css.js +3 -0
  107. package/components/date-picker/themes/shared/date-picker.material.css.js.map +1 -0
  108. package/components/date-picker/themes/themes.js +3 -2
  109. package/components/date-picker/themes/themes.js.map +1 -1
  110. package/components/date-range-picker/date-range-picker.base.css.d.ts +1 -0
  111. package/components/date-range-picker/date-range-picker.base.css.js +3 -0
  112. package/components/date-range-picker/date-range-picker.base.css.js.map +1 -0
  113. package/components/date-range-picker/date-range-picker.d.ts +365 -0
  114. package/components/date-range-picker/date-range-picker.js +810 -0
  115. package/components/date-range-picker/date-range-picker.js.map +1 -0
  116. package/components/date-range-picker/predefined-ranges-area.base.css.d.ts +1 -0
  117. package/components/date-range-picker/predefined-ranges-area.base.css.js +3 -0
  118. package/components/date-range-picker/predefined-ranges-area.base.css.js.map +1 -0
  119. package/components/date-range-picker/predefined-ranges-area.d.ts +36 -0
  120. package/components/date-range-picker/predefined-ranges-area.js +115 -0
  121. package/components/date-range-picker/predefined-ranges-area.js.map +1 -0
  122. package/components/date-range-picker/themes/dark/date-range-picker.bootstrap.css.d.ts +1 -0
  123. package/components/date-range-picker/themes/dark/date-range-picker.bootstrap.css.js +3 -0
  124. package/components/date-range-picker/themes/dark/date-range-picker.bootstrap.css.js.map +1 -0
  125. package/components/date-range-picker/themes/dark/date-range-picker.fluent.css.d.ts +1 -0
  126. package/components/date-range-picker/themes/dark/date-range-picker.fluent.css.js +3 -0
  127. package/components/date-range-picker/themes/dark/date-range-picker.fluent.css.js.map +1 -0
  128. package/components/date-range-picker/themes/dark/date-range-picker.indigo.css.d.ts +1 -0
  129. package/components/date-range-picker/themes/dark/date-range-picker.indigo.css.js +3 -0
  130. package/components/date-range-picker/themes/dark/date-range-picker.indigo.css.js.map +1 -0
  131. package/components/date-range-picker/themes/dark/date-range-picker.material.css.d.ts +1 -0
  132. package/components/date-range-picker/themes/dark/date-range-picker.material.css.js +3 -0
  133. package/components/date-range-picker/themes/dark/date-range-picker.material.css.js.map +1 -0
  134. package/components/date-range-picker/themes/light/date-range-picker.bootstrap.css.d.ts +1 -0
  135. package/components/date-range-picker/themes/light/date-range-picker.bootstrap.css.js +3 -0
  136. package/components/date-range-picker/themes/light/date-range-picker.bootstrap.css.js.map +1 -0
  137. package/components/date-range-picker/themes/light/date-range-picker.fluent.css.d.ts +1 -0
  138. package/components/date-range-picker/themes/light/date-range-picker.fluent.css.js +3 -0
  139. package/components/date-range-picker/themes/light/date-range-picker.fluent.css.js.map +1 -0
  140. package/components/date-range-picker/themes/light/date-range-picker.indigo.css.d.ts +1 -0
  141. package/components/date-range-picker/themes/light/date-range-picker.indigo.css.js +3 -0
  142. package/components/date-range-picker/themes/light/date-range-picker.indigo.css.js.map +1 -0
  143. package/components/date-range-picker/themes/light/date-range-picker.material.css.d.ts +1 -0
  144. package/components/date-range-picker/themes/light/date-range-picker.material.css.js +3 -0
  145. package/components/date-range-picker/themes/light/date-range-picker.material.css.js.map +1 -0
  146. package/components/date-range-picker/themes/light/date-range-picker.shared.css.d.ts +1 -0
  147. package/components/date-range-picker/themes/light/date-range-picker.shared.css.js +3 -0
  148. package/components/date-range-picker/themes/light/date-range-picker.shared.css.js.map +1 -0
  149. package/components/date-range-picker/themes/ranges-themes.d.ts +2 -0
  150. package/components/date-range-picker/themes/ranges-themes.js +14 -0
  151. package/components/date-range-picker/themes/ranges-themes.js.map +1 -0
  152. package/components/date-range-picker/themes/shared/date-range-picker.bootstrap.css.d.ts +1 -0
  153. package/components/date-range-picker/themes/shared/date-range-picker.bootstrap.css.js +3 -0
  154. package/components/date-range-picker/themes/shared/date-range-picker.bootstrap.css.js.map +1 -0
  155. package/components/date-range-picker/themes/shared/date-range-picker.common.css.d.ts +1 -0
  156. package/components/date-range-picker/themes/shared/date-range-picker.common.css.js +3 -0
  157. package/components/date-range-picker/themes/shared/date-range-picker.common.css.js.map +1 -0
  158. package/components/date-range-picker/themes/shared/date-range-picker.fluent.css.d.ts +1 -0
  159. package/components/date-range-picker/themes/shared/date-range-picker.fluent.css.js +3 -0
  160. package/components/date-range-picker/themes/shared/date-range-picker.fluent.css.js.map +1 -0
  161. package/components/date-range-picker/themes/shared/date-range-picker.indigo.css.d.ts +1 -0
  162. package/components/date-range-picker/themes/shared/date-range-picker.indigo.css.js +3 -0
  163. package/components/date-range-picker/themes/shared/date-range-picker.indigo.css.js.map +1 -0
  164. package/components/date-range-picker/themes/shared/date-range-picker.material.css.d.ts +1 -0
  165. package/components/date-range-picker/themes/shared/date-range-picker.material.css.js +3 -0
  166. package/components/date-range-picker/themes/shared/date-range-picker.material.css.js.map +1 -0
  167. package/components/date-range-picker/themes/shared/predefined-ranges-area.common.css.d.ts +1 -0
  168. package/components/date-range-picker/themes/shared/predefined-ranges-area.common.css.js +3 -0
  169. package/components/date-range-picker/themes/shared/predefined-ranges-area.common.css.js.map +1 -0
  170. package/components/date-range-picker/themes/shared/predefined-ranges-area.indigo.css.d.ts +1 -0
  171. package/components/date-range-picker/themes/shared/predefined-ranges-area.indigo.css.js +3 -0
  172. package/components/date-range-picker/themes/shared/predefined-ranges-area.indigo.css.js.map +1 -0
  173. package/components/date-range-picker/themes/themes.d.ts +2 -0
  174. package/components/date-range-picker/themes/themes.js +50 -0
  175. package/components/date-range-picker/themes/themes.js.map +1 -0
  176. package/components/date-range-picker/validators.d.ts +26 -0
  177. package/components/date-range-picker/validators.js +57 -0
  178. package/components/date-range-picker/validators.js.map +1 -0
  179. package/components/date-time-input/date-time-input.d.ts +2 -2
  180. package/components/date-time-input/date-time-input.js +7 -9
  181. package/components/date-time-input/date-time-input.js.map +1 -1
  182. package/components/date-time-input/date-util.d.ts +7 -0
  183. package/components/date-time-input/date-util.js +11 -0
  184. package/components/date-time-input/date-util.js.map +1 -1
  185. package/components/dialog/dialog.js +11 -10
  186. package/components/dialog/dialog.js.map +1 -1
  187. package/components/dialog/themes/dialog.base.css.js +1 -1
  188. package/components/dialog/themes/dialog.base.css.js.map +1 -1
  189. package/components/dialog/themes/shared/dialog.indigo.css.js +1 -1
  190. package/components/dialog/themes/shared/dialog.indigo.css.js.map +1 -1
  191. package/components/dropdown/dropdown.js.map +1 -1
  192. package/components/file-input/file-input.d.ts +11 -5
  193. package/components/file-input/file-input.js +23 -19
  194. package/components/file-input/file-input.js.map +1 -1
  195. package/components/file-input/themes/file-input.base.css.js +1 -1
  196. package/components/file-input/themes/file-input.base.css.js.map +1 -1
  197. package/components/input/input-base.d.ts +0 -1
  198. package/components/input/input-base.js +5 -4
  199. package/components/input/input-base.js.map +1 -1
  200. package/components/input/input.d.ts +2 -3
  201. package/components/input/input.js +10 -9
  202. package/components/input/input.js.map +1 -1
  203. package/components/input/themes/dark/input.bootstrap.css.js +1 -1
  204. package/components/input/themes/dark/input.bootstrap.css.js.map +1 -1
  205. package/components/input/themes/dark/input.indigo.css.js +1 -1
  206. package/components/input/themes/dark/input.indigo.css.js.map +1 -1
  207. package/components/input/themes/light/input.bootstrap.css.js +1 -1
  208. package/components/input/themes/light/input.bootstrap.css.js.map +1 -1
  209. package/components/input/themes/light/input.indigo.css.js +1 -1
  210. package/components/input/themes/light/input.indigo.css.js.map +1 -1
  211. package/components/input/themes/light/input.shared.css.js +1 -1
  212. package/components/input/themes/light/input.shared.css.js.map +1 -1
  213. package/components/input/themes/shared/input.bootstrap.css.js +1 -1
  214. package/components/input/themes/shared/input.bootstrap.css.js.map +1 -1
  215. package/components/input/themes/shared/input.common.css.js +1 -1
  216. package/components/input/themes/shared/input.common.css.js.map +1 -1
  217. package/components/input/themes/shared/input.fluent.css.js +1 -1
  218. package/components/input/themes/shared/input.fluent.css.js.map +1 -1
  219. package/components/input/themes/shared/input.indigo.css.js +1 -1
  220. package/components/input/themes/shared/input.indigo.css.js.map +1 -1
  221. package/components/input/themes/shared/input.material.css.js +1 -1
  222. package/components/input/themes/shared/input.material.css.js.map +1 -1
  223. package/components/mask-input/mask-input.d.ts +2 -3
  224. package/components/mask-input/mask-input.js +13 -12
  225. package/components/mask-input/mask-input.js.map +1 -1
  226. package/components/mask-input/mask-parser.d.ts +100 -14
  227. package/components/mask-input/mask-parser.js +134 -117
  228. package/components/mask-input/mask-parser.js.map +1 -1
  229. package/components/nav-drawer/nav-drawer-item.js +2 -6
  230. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  231. package/components/nav-drawer/nav-drawer.js +5 -6
  232. package/components/nav-drawer/nav-drawer.js.map +1 -1
  233. package/components/progress/base.js +6 -5
  234. package/components/progress/base.js.map +1 -1
  235. package/components/progress/circular-progress.js +7 -15
  236. package/components/progress/circular-progress.js.map +1 -1
  237. package/components/progress/linear-progress.js +5 -5
  238. package/components/progress/linear-progress.js.map +1 -1
  239. package/components/radio/radio.d.ts +11 -12
  240. package/components/radio/radio.js +39 -44
  241. package/components/radio/radio.js.map +1 -1
  242. package/components/radio/utils.js +6 -3
  243. package/components/radio/utils.js.map +1 -1
  244. package/components/rating/rating.d.ts +2 -2
  245. package/components/rating/rating.js +4 -4
  246. package/components/rating/rating.js.map +1 -1
  247. package/components/resize-container/resize-container.js +4 -4
  248. package/components/resize-container/resize-container.js.map +1 -1
  249. package/components/select/select.d.ts +2 -2
  250. package/components/select/select.js +11 -10
  251. package/components/select/select.js.map +1 -1
  252. package/components/select/themes/shared/select.fluent.css.js +1 -1
  253. package/components/select/themes/shared/select.fluent.css.js.map +1 -1
  254. package/components/slider/range-slider.js +1 -1
  255. package/components/slider/range-slider.js.map +1 -1
  256. package/components/slider/slider-base.js +1 -1
  257. package/components/slider/slider-base.js.map +1 -1
  258. package/components/slider/slider.d.ts +2 -3
  259. package/components/slider/slider.js +7 -7
  260. package/components/slider/slider.js.map +1 -1
  261. package/components/stepper/step.js +3 -3
  262. package/components/stepper/step.js.map +1 -1
  263. package/components/tabs/tabs.js +8 -6
  264. package/components/tabs/tabs.js.map +1 -1
  265. package/components/textarea/textarea.d.ts +2 -2
  266. package/components/textarea/textarea.js +7 -6
  267. package/components/textarea/textarea.js.map +1 -1
  268. package/components/textarea/themes/dark/textarea.bootstrap.css.js +1 -1
  269. package/components/textarea/themes/dark/textarea.bootstrap.css.js.map +1 -1
  270. package/components/textarea/themes/dark/textarea.indigo.css.js +1 -1
  271. package/components/textarea/themes/dark/textarea.indigo.css.js.map +1 -1
  272. package/components/textarea/themes/light/textarea.bootstrap.css.js +1 -1
  273. package/components/textarea/themes/light/textarea.bootstrap.css.js.map +1 -1
  274. package/components/textarea/themes/light/textarea.indigo.css.js +1 -1
  275. package/components/textarea/themes/light/textarea.indigo.css.js.map +1 -1
  276. package/components/textarea/themes/light/textarea.shared.css.js +1 -1
  277. package/components/textarea/themes/light/textarea.shared.css.js.map +1 -1
  278. package/components/textarea/themes/shared/textarea.bootstrap.css.js +1 -1
  279. package/components/textarea/themes/shared/textarea.bootstrap.css.js.map +1 -1
  280. package/components/textarea/themes/shared/textarea.fluent.css.js +1 -1
  281. package/components/textarea/themes/shared/textarea.fluent.css.js.map +1 -1
  282. package/components/textarea/themes/shared/textarea.indigo.css.js +1 -1
  283. package/components/textarea/themes/shared/textarea.indigo.css.js.map +1 -1
  284. package/components/textarea/themes/shared/textarea.material.css.js +1 -1
  285. package/components/textarea/themes/shared/textarea.material.css.js.map +1 -1
  286. package/components/textarea/themes/textarea.base.css.js +1 -1
  287. package/components/textarea/themes/textarea.base.css.js.map +1 -1
  288. package/components/tile-manager/tile-manager.js +5 -4
  289. package/components/tile-manager/tile-manager.js.map +1 -1
  290. package/components/tile-manager/tile.js +6 -5
  291. package/components/tile-manager/tile.js.map +1 -1
  292. package/components/tooltip/tooltip.d.ts +24 -9
  293. package/components/tooltip/tooltip.js +22 -19
  294. package/components/tooltip/tooltip.js.map +1 -1
  295. package/components/tree/tree-item.js +5 -3
  296. package/components/tree/tree-item.js.map +1 -1
  297. package/components/validation-container/validation-container.js +4 -11
  298. package/components/validation-container/validation-container.js.map +1 -1
  299. package/custom-elements.json +21432 -17768
  300. package/igniteui-webcomponents.css-data.json +1 -1
  301. package/igniteui-webcomponents.html-data.json +1 -1
  302. package/index.d.ts +4 -1
  303. package/index.js +1 -0
  304. package/index.js.map +1 -1
  305. package/package.json +3 -2
  306. package/web-types.json +2 -2
@@ -17,6 +17,14 @@ export class CalendarDay {
17
17
  date: date.getDate(),
18
18
  });
19
19
  }
20
+ static compare(first, second) {
21
+ const a = toCalendarDay(first);
22
+ const b = toCalendarDay(second);
23
+ if (a.equalTo(b)) {
24
+ return 0;
25
+ }
26
+ return a.greaterThan(b) ? 1 : -1;
27
+ }
20
28
  constructor(args) {
21
29
  this._date = new Date(args.year, args.month, args.date ?? 1);
22
30
  }
@@ -24,11 +32,18 @@ export class CalendarDay {
24
32
  return CalendarDay.from(this._date);
25
33
  }
26
34
  set(args) {
27
- return new CalendarDay({
28
- year: args.year ?? this.year,
29
- month: args.month ?? this.month,
30
- date: args.date ?? this.date,
31
- });
35
+ const year = args.year ?? this.year;
36
+ const month = args.month ?? this.month;
37
+ const date = args.date ?? this.date;
38
+ const temp = new Date(year, month, date);
39
+ if (date > 0 && temp.getMonth() !== month) {
40
+ return new CalendarDay({
41
+ year,
42
+ month,
43
+ date: new Date(year, month + 1, 0).getDate(),
44
+ });
45
+ }
46
+ return new CalendarDay({ year, month, date });
32
47
  }
33
48
  add(unit, value) {
34
49
  const result = this.clone();
@@ -84,9 +99,15 @@ export class CalendarDay {
84
99
  greaterThan(value) {
85
100
  return this.timestamp > toCalendarDay(value).timestamp;
86
101
  }
102
+ greaterThanOrEqual(value) {
103
+ return this.timestamp >= toCalendarDay(value).timestamp;
104
+ }
87
105
  lessThan(value) {
88
106
  return this.timestamp < toCalendarDay(value).timestamp;
89
107
  }
108
+ lessThanOrEqual(value) {
109
+ return this.timestamp <= toCalendarDay(value).timestamp;
110
+ }
90
111
  toString() {
91
112
  return `${this.native}`;
92
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/components/calendar/model.ts"],"names":[],"mappings":"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","sourcesContent":["export type DayParameter = CalendarDay | Date;\n\nexport type CalendarRangeParams = {\n start: DayParameter;\n end: DayParameter | number;\n unit?: DayInterval;\n};\n\ntype DayInterval = 'year' | 'quarter' | 'month' | 'week' | 'day';\n\ntype CalendarDayParams = {\n year: number;\n month: number;\n date?: number;\n};\n\nexport const daysInWeek = 7;\nconst millisecondsInDay = 86400000;\n\nexport function toCalendarDay(date: DayParameter) {\n return date instanceof Date ? CalendarDay.from(date) : date;\n}\n\nfunction checkRollover(original: CalendarDay, modified: CalendarDay) {\n return original.date !== modified.date ? modified.set({ date: 0 }) : modified;\n}\n\n/* blazorSuppress */\nexport class CalendarDay {\n private _date!: Date;\n\n /** Constructs and returns the current day. */\n public static get today() {\n return CalendarDay.from(new Date());\n }\n\n /** Constructs a new CalendarDay instance from a Date object. */\n public static from(date: Date) {\n return new CalendarDay({\n year: date.getFullYear(),\n month: date.getMonth(),\n date: date.getDate(),\n });\n }\n\n constructor(args: CalendarDayParams) {\n this._date = new Date(args.year, args.month, args.date ?? 1);\n }\n\n /** Returns a copy of this instance. */\n public clone() {\n return CalendarDay.from(this._date);\n }\n\n /**\n * Returns a new instance with values replaced.\n */\n public set(args: Partial<CalendarDayParams>) {\n return new CalendarDay({\n year: args.year ?? this.year,\n month: args.month ?? this.month,\n date: args.date ?? this.date,\n });\n }\n\n public add(unit: DayInterval, value: number) {\n const result = this.clone();\n switch (unit) {\n case 'year':\n result._date.setFullYear(result.year + value);\n return checkRollover(this, result);\n case 'quarter':\n result._date.setMonth(result.month + 3 * value);\n return checkRollover(this, result);\n case 'month':\n result._date.setMonth(result.month + value);\n return checkRollover(this, result);\n case 'week':\n result._date.setDate(result.date + 7 * value);\n return result;\n case 'day':\n result._date.setDate(result.date + value);\n return result;\n default:\n throw new Error('Invalid interval');\n }\n }\n\n /** Returns the day of the week (Sunday = 0). */\n public get day() {\n return this._date.getDay();\n }\n\n /** Returns the full year. */\n public get year() {\n return this._date.getFullYear();\n }\n\n /** Returns the month. */\n public get month() {\n return this._date.getMonth();\n }\n\n /** Returns the date */\n public get date() {\n return this._date.getDate();\n }\n\n /** Returns the timestamp since epoch in milliseconds. */\n public get timestamp() {\n return this._date.getTime();\n }\n\n /** Returns the current week number. */\n public get week() {\n const firstDay = new CalendarDay({ year: this.year, month: 0 }).timestamp;\n const currentDay =\n (this.timestamp - firstDay + millisecondsInDay) / millisecondsInDay;\n return Math.ceil(currentDay / daysInWeek);\n }\n\n /** Returns the underlying native date instance. */\n public get native() {\n return new Date(this._date);\n }\n\n /**\n * Whether the current date is a weekend day.\n *\n * @remarks\n * This is naive, since it does not account for locale specifics.\n */\n public get weekend() {\n return this.day < 1 || this.day > 5;\n }\n\n public equalTo(value: DayParameter) {\n return this.timestamp === toCalendarDay(value).timestamp;\n }\n\n public greaterThan(value: DayParameter) {\n return this.timestamp > toCalendarDay(value).timestamp;\n }\n\n public lessThan(value: DayParameter) {\n return this.timestamp < toCalendarDay(value).timestamp;\n }\n\n public toString() {\n return `${this.native}`;\n }\n}\n"]}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/components/calendar/model.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAEnC,MAAM,UAAU,aAAa,CAAC,IAAkB;IAC9C,OAAO,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AAED,SAAS,aAAa,CAAC,QAAqB,EAAE,QAAqB;IACjE,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAChF,CAAC;AAGD,MAAM,OAAO,WAAW;IAIf,MAAM,KAAK,KAAK;QACrB,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAGM,MAAM,CAAC,IAAI,CAAC,IAAU;QAC3B,OAAO,IAAI,WAAW,CAAC;YACrB,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;YACxB,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;YACtB,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;SACrB,CAAC,CAAC;IACL,CAAC;IAYM,MAAM,CAAC,OAAO,CAAC,KAAmB,EAAE,MAAoB;QAC7D,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAEhC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,YAAY,IAAuB;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC/D,CAAC;IAGM,KAAK;QACV,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAKM,GAAG,CAAC,IAAgC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;QAEpC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAEzC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE,CAAC;YAC1C,OAAO,IAAI,WAAW,CAAC;gBACrB,IAAI;gBACJ,KAAK;gBACL,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE;aAC7C,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAEM,GAAG,CAAC,IAAiB,EAAE,KAAa;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,MAAM;gBACT,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;gBAC9C,OAAO,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACrC,KAAK,SAAS;gBACZ,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;gBAChD,OAAO,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACrC,KAAK,OAAO;gBACV,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;gBAC5C,OAAO,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACrC,KAAK,MAAM;gBACT,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;gBAC9C,OAAO,MAAM,CAAC;YAChB,KAAK,KAAK;gBACR,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;gBAC1C,OAAO,MAAM,CAAC;YAChB;gBACE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAGD,IAAW,GAAG;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAC7B,CAAC;IAGD,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC;IAGD,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAGD,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAGD,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAGD,IAAW,IAAI;QACb,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;QAC1E,MAAM,UAAU,GACd,CAAC,IAAI,CAAC,SAAS,GAAG,QAAQ,GAAG,iBAAiB,CAAC,GAAG,iBAAiB,CAAC;QACtE,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC;IAC5C,CAAC;IAGD,IAAW,MAAM;QACf,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAQD,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACtC,CAAC;IAEM,OAAO,CAAC,KAAmB;QAChC,OAAO,IAAI,CAAC,SAAS,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;IAC3D,CAAC;IAEM,WAAW,CAAC,KAAmB;QACpC,OAAO,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;IACzD,CAAC;IAEM,kBAAkB,CAAC,KAAmB;QAC3C,OAAO,IAAI,CAAC,SAAS,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;IAC1D,CAAC;IAEM,QAAQ,CAAC,KAAmB;QACjC,OAAO,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;IACzD,CAAC;IAEM,eAAe,CAAC,KAAmB;QACxC,OAAO,IAAI,CAAC,SAAS,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;IAC1D,CAAC;IAEM,QAAQ;QACb,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;CACF","sourcesContent":["export type DayParameter = CalendarDay | Date;\n\nexport type CalendarRangeParams = {\n start: DayParameter;\n end: DayParameter | number;\n unit?: DayInterval;\n inclusive?: boolean;\n};\n\ntype DayInterval = 'year' | 'quarter' | 'month' | 'week' | 'day';\n\ntype CalendarDayParams = {\n year: number;\n month: number;\n date?: number;\n};\n\nexport const daysInWeek = 7;\nconst millisecondsInDay = 86400000;\n\nexport function toCalendarDay(date: DayParameter) {\n return date instanceof Date ? CalendarDay.from(date) : date;\n}\n\nfunction checkRollover(original: CalendarDay, modified: CalendarDay) {\n return original.date !== modified.date ? modified.set({ date: 0 }) : modified;\n}\n\n/* blazorSuppress */\nexport class CalendarDay {\n private readonly _date: Date;\n\n /** Constructs and returns the current day. */\n public static get today() {\n return CalendarDay.from(new Date());\n }\n\n /** Constructs a new CalendarDay instance from a Date object. */\n public static from(date: Date) {\n return new CalendarDay({\n year: date.getFullYear(),\n month: date.getMonth(),\n date: date.getDate(),\n });\n }\n\n /**\n * Compares the date portion of two date objects.\n *\n * @returns\n * ```\n * first === second // 0\n * first > second // 1\n * first < second // -1\n * ```\n */\n public static compare(first: DayParameter, second: DayParameter) {\n const a = toCalendarDay(first);\n const b = toCalendarDay(second);\n\n if (a.equalTo(b)) {\n return 0;\n }\n return a.greaterThan(b) ? 1 : -1;\n }\n\n constructor(args: CalendarDayParams) {\n this._date = new Date(args.year, args.month, args.date ?? 1);\n }\n\n /** Returns a copy of this instance. */\n public clone() {\n return CalendarDay.from(this._date);\n }\n\n /**\n * Returns a new instance with values replaced.\n */\n public set(args: Partial<CalendarDayParams>) {\n const year = args.year ?? this.year;\n const month = args.month ?? this.month;\n const date = args.date ?? this.date;\n\n const temp = new Date(year, month, date);\n\n if (date > 0 && temp.getMonth() !== month) {\n return new CalendarDay({\n year,\n month,\n date: new Date(year, month + 1, 0).getDate(),\n });\n }\n\n return new CalendarDay({ year, month, date });\n }\n\n public add(unit: DayInterval, value: number) {\n const result = this.clone();\n switch (unit) {\n case 'year':\n result._date.setFullYear(result.year + value);\n return checkRollover(this, result);\n case 'quarter':\n result._date.setMonth(result.month + 3 * value);\n return checkRollover(this, result);\n case 'month':\n result._date.setMonth(result.month + value);\n return checkRollover(this, result);\n case 'week':\n result._date.setDate(result.date + 7 * value);\n return result;\n case 'day':\n result._date.setDate(result.date + value);\n return result;\n default:\n throw new Error('Invalid interval');\n }\n }\n\n /** Returns the day of the week (Sunday = 0). */\n public get day() {\n return this._date.getDay();\n }\n\n /** Returns the full year. */\n public get year() {\n return this._date.getFullYear();\n }\n\n /** Returns the month. */\n public get month() {\n return this._date.getMonth();\n }\n\n /** Returns the date */\n public get date() {\n return this._date.getDate();\n }\n\n /** Returns the timestamp since epoch in milliseconds. */\n public get timestamp() {\n return this._date.getTime();\n }\n\n /** Returns the current week number. */\n public get week() {\n const firstDay = new CalendarDay({ year: this.year, month: 0 }).timestamp;\n const currentDay =\n (this.timestamp - firstDay + millisecondsInDay) / millisecondsInDay;\n return Math.ceil(currentDay / daysInWeek);\n }\n\n /** Returns the underlying native date instance. */\n public get native() {\n return new Date(this._date);\n }\n\n /**\n * Whether the current date is a weekend day.\n *\n * @remarks\n * This is naive, since it does not account for locale specifics.\n */\n public get weekend() {\n return this.day < 1 || this.day > 5;\n }\n\n public equalTo(value: DayParameter) {\n return this.timestamp === toCalendarDay(value).timestamp;\n }\n\n public greaterThan(value: DayParameter) {\n return this.timestamp > toCalendarDay(value).timestamp;\n }\n\n public greaterThanOrEqual(value: DayParameter) {\n return this.timestamp >= toCalendarDay(value).timestamp;\n }\n\n public lessThan(value: DayParameter) {\n return this.timestamp < toCalendarDay(value).timestamp;\n }\n\n public lessThanOrEqual(value: DayParameter) {\n return this.timestamp <= toCalendarDay(value).timestamp;\n }\n\n public toString() {\n return `${this.native}`;\n }\n}\n"]}
@@ -31,7 +31,7 @@ export default class IgcMonthsViewComponent extends IgcMonthsViewComponent_base
31
31
  constructor();
32
32
  connectedCallback(): void;
33
33
  /** Focuses the active date. */
34
- focusActiveDate(): void;
34
+ focusActiveDate(options?: FocusOptions): void;
35
35
  protected handleInteraction(event: Event): void;
36
36
  protected renderMonth(entry: CalendarDay, now: CalendarDay): import("lit-html").TemplateResult<1>;
37
37
  protected render(): Generator<import("lit-html").TemplateResult<1>, void, unknown>;
@@ -16,7 +16,8 @@ import { watch } from '../../common/decorators/watch.js';
16
16
  import { registerComponent } from '../../common/definitions/register.js';
17
17
  import { createDateTimeFormatters } from '../../common/localization/intl-formatters.js';
18
18
  import { EventEmitterMixin } from '../../common/mixins/event-emitter.js';
19
- import { chunk, partNameMap } from '../../common/util.js';
19
+ import { partMap } from '../../common/part-map.js';
20
+ import { chunk } from '../../common/util.js';
20
21
  import { MONTHS_PER_ROW, areSameMonth, getViewElement } from '../helpers.js';
21
22
  import { CalendarDay } from '../model.js';
22
23
  import { styles } from '../themes/year-month-view.base.css.js';
@@ -55,8 +56,8 @@ let IgcMonthsViewComponent = IgcMonthsViewComponent_1 = class IgcMonthsViewCompo
55
56
  super.connectedCallback();
56
57
  this.role = 'grid';
57
58
  }
58
- focusActiveDate() {
59
- this.activeMonth.focus();
59
+ focusActiveDate(options) {
60
+ this.activeMonth.focus(options);
60
61
  }
61
62
  handleInteraction(event) {
62
63
  const value = getViewElement(event);
@@ -71,13 +72,12 @@ let IgcMonthsViewComponent = IgcMonthsViewComponent_1 = class IgcMonthsViewCompo
71
72
  const active = areSameMonth(this._value, entry);
72
73
  const current = areSameMonth(now, entry);
73
74
  const selected = this._value.month === entry.month;
74
- const parts = { selected, current };
75
75
  return html `
76
- <span part=${partNameMap({ month: true, ...parts })}>
76
+ <span part=${partMap({ month: true, selected, current })}>
77
77
  <span
78
78
  role="gridcell"
79
79
  data-value=${entry.month}
80
- part=${partNameMap({ 'month-inner': true, ...parts })}
80
+ part=${partMap({ 'month-inner': true, selected, current })}
81
81
  aria-selected=${selected}
82
82
  aria-label=${ariaLabel}
83
83
  tabindex=${active ? 0 : -1}
@@ -1 +1 @@
1
- {"version":3,"file":"months-view.js","sourceRoot":"","sources":["../../../../src/components/calendar/months-view/months-view.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { range } from 'lit/directives/range.js';\n\nimport { themes } from '../../../theming/theming-decorator.js';\nimport { addKeybindings } from '../../common/controllers/key-bindings.js';\nimport { blazorIndirectRender } from '../../common/decorators/blazorIndirectRender.js';\nimport { blazorSuppressComponent } from '../../common/decorators/blazorSuppressComponent.js';\nimport { watch } from '../../common/decorators/watch.js';\nimport { registerComponent } from '../../common/definitions/register.js';\nimport { createDateTimeFormatters } from '../../common/localization/intl-formatters.js';\nimport type { Constructor } from '../../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../../common/mixins/event-emitter.js';\nimport { chunk, partNameMap } from '../../common/util.js';\nimport { MONTHS_PER_ROW, areSameMonth, getViewElement } from '../helpers.js';\nimport { CalendarDay } from '../model.js';\nimport { styles } from '../themes/year-month-view.base.css.js';\nimport { all } from '../themes/year-month.js';\nimport type { IgcCalendarComponentEventMap } from '../types.js';\n\n/**\n * Instantiate a months view as a separate component in the calendar.\n *\n * @element igc-months-view\n *\n * @csspart months-row - The months row container.\n * @csspart month - The month container.\n * @csspart month-inner - The inner month container.\n */\n@blazorIndirectRender\n@blazorSuppressComponent\n@themes(all)\nexport default class IgcMonthsViewComponent extends EventEmitterMixin<\n IgcCalendarComponentEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-months-view';\n public static styles = styles;\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcMonthsViewComponent);\n }\n\n @state()\n private _value = CalendarDay.today;\n\n @query('[tabindex=\"0\"]')\n private activeMonth!: HTMLElement;\n\n /** Тhe current value of the calendar. */\n @property({ attribute: false })\n public set value(value: Date) {\n this._value = CalendarDay.from(value);\n }\n\n public get value() {\n return this._value.native;\n }\n\n /** Sets the locale used for formatting and displaying the dates. */\n @property()\n public locale = 'en';\n\n /** The format of the month. Defaults to long. */\n @property({ attribute: 'month-format' })\n public monthFormat: 'numeric' | '2-digit' | 'long' | 'short' | 'narrow' =\n 'long';\n\n private _intl = createDateTimeFormatters(this.locale, {\n month: { month: this.monthFormat },\n ariaMonth: { month: 'long', year: 'numeric' },\n });\n\n @watch('locale')\n protected localeChange() {\n this._intl.locale = this.locale;\n }\n\n @watch('monthFormat')\n protected formatChange() {\n this._intl.update({ month: { month: this.monthFormat } });\n }\n\n constructor() {\n super();\n\n addKeybindings(this, {\n bindingDefaults: { preventDefault: true },\n }).setActivateHandler(this.handleInteraction);\n\n this.addEventListener('click', this.handleInteraction);\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n this.role = 'grid';\n }\n\n /** Focuses the active date. */\n public focusActiveDate() {\n this.activeMonth.focus();\n }\n\n protected handleInteraction(event: Event) {\n const value = getViewElement(event);\n\n if (value !== -1) {\n this._value = this._value.set({ month: value });\n this.emitEvent('igcChange', { detail: this.value });\n }\n }\n\n protected renderMonth(entry: CalendarDay, now: CalendarDay) {\n const ariaLabel = this._intl.get('ariaMonth').format(entry.native);\n const value = this._intl.get('month').format(entry.native);\n\n const active = areSameMonth(this._value, entry);\n const current = areSameMonth(now, entry);\n const selected = this._value.month === entry.month;\n\n const parts = { selected, current };\n\n return html`\n <span part=${partNameMap({ month: true, ...parts })}>\n <span\n role=\"gridcell\"\n data-value=${entry.month}\n part=${partNameMap({ 'month-inner': true, ...parts })}\n aria-selected=${selected}\n aria-label=${ariaLabel}\n tabindex=${active ? 0 : -1}\n >\n ${value}\n </span>\n </span>\n `;\n }\n\n protected override *render() {\n const now = CalendarDay.today;\n const months = Array.from(range(12));\n\n for (const row of chunk(months, MONTHS_PER_ROW)) {\n yield html`\n <div part=\"months-row\" role=\"row\">\n ${row.map((month) =>\n this.renderMonth(this._value.set({ month }), now)\n )}\n </div>\n `;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-months-view': IgcMonthsViewComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"months-view.js","sourceRoot":"","sources":["../../../../src/components/calendar/months-view/months-view.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { range } from 'lit/directives/range.js';\n\nimport { themes } from '../../../theming/theming-decorator.js';\nimport { addKeybindings } from '../../common/controllers/key-bindings.js';\nimport { blazorIndirectRender } from '../../common/decorators/blazorIndirectRender.js';\nimport { blazorSuppressComponent } from '../../common/decorators/blazorSuppressComponent.js';\nimport { watch } from '../../common/decorators/watch.js';\nimport { registerComponent } from '../../common/definitions/register.js';\nimport { createDateTimeFormatters } from '../../common/localization/intl-formatters.js';\nimport type { Constructor } from '../../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../../common/mixins/event-emitter.js';\nimport { partMap } from '../../common/part-map.js';\nimport { chunk } from '../../common/util.js';\nimport { MONTHS_PER_ROW, areSameMonth, getViewElement } from '../helpers.js';\nimport { CalendarDay } from '../model.js';\nimport { styles } from '../themes/year-month-view.base.css.js';\nimport { all } from '../themes/year-month.js';\nimport type { IgcCalendarComponentEventMap } from '../types.js';\n\n/**\n * Instantiate a months view as a separate component in the calendar.\n *\n * @element igc-months-view\n *\n * @csspart months-row - The months row container.\n * @csspart month - The month container.\n * @csspart month-inner - The inner month container.\n */\n@blazorIndirectRender\n@blazorSuppressComponent\n@themes(all)\nexport default class IgcMonthsViewComponent extends EventEmitterMixin<\n IgcCalendarComponentEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-months-view';\n public static styles = styles;\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcMonthsViewComponent);\n }\n\n @state()\n private _value = CalendarDay.today;\n\n @query('[tabindex=\"0\"]')\n private activeMonth!: HTMLElement;\n\n /** Тhe current value of the calendar. */\n @property({ attribute: false })\n public set value(value: Date) {\n this._value = CalendarDay.from(value);\n }\n\n public get value() {\n return this._value.native;\n }\n\n /** Sets the locale used for formatting and displaying the dates. */\n @property()\n public locale = 'en';\n\n /** The format of the month. Defaults to long. */\n @property({ attribute: 'month-format' })\n public monthFormat: 'numeric' | '2-digit' | 'long' | 'short' | 'narrow' =\n 'long';\n\n private _intl = createDateTimeFormatters(this.locale, {\n month: { month: this.monthFormat },\n ariaMonth: { month: 'long', year: 'numeric' },\n });\n\n @watch('locale')\n protected localeChange() {\n this._intl.locale = this.locale;\n }\n\n @watch('monthFormat')\n protected formatChange() {\n this._intl.update({ month: { month: this.monthFormat } });\n }\n\n constructor() {\n super();\n\n addKeybindings(this, {\n bindingDefaults: { preventDefault: true },\n }).setActivateHandler(this.handleInteraction);\n\n this.addEventListener('click', this.handleInteraction);\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n this.role = 'grid';\n }\n\n /** Focuses the active date. */\n public focusActiveDate(options?: FocusOptions) {\n this.activeMonth.focus(options);\n }\n\n protected handleInteraction(event: Event) {\n const value = getViewElement(event);\n\n if (value !== -1) {\n this._value = this._value.set({ month: value });\n this.emitEvent('igcChange', { detail: this.value });\n }\n }\n\n protected renderMonth(entry: CalendarDay, now: CalendarDay) {\n const ariaLabel = this._intl.get('ariaMonth').format(entry.native);\n const value = this._intl.get('month').format(entry.native);\n\n const active = areSameMonth(this._value, entry);\n const current = areSameMonth(now, entry);\n const selected = this._value.month === entry.month;\n\n return html`\n <span part=${partMap({ month: true, selected, current })}>\n <span\n role=\"gridcell\"\n data-value=${entry.month}\n part=${partMap({ 'month-inner': true, selected, current })}\n aria-selected=${selected}\n aria-label=${ariaLabel}\n tabindex=${active ? 0 : -1}\n >\n ${value}\n </span>\n </span>\n `;\n }\n\n protected override *render() {\n const now = CalendarDay.today;\n const months = Array.from(range(12));\n\n for (const row of chunk(months, MONTHS_PER_ROW)) {\n yield html`\n <div part=\"months-row\" role=\"row\">\n ${row.map((month) =>\n this.renderMonth(this._value.set({ month }), now)\n )}\n </div>\n `;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-months-view': IgcMonthsViewComponent;\n }\n}\n"]}
@@ -28,7 +28,7 @@ export default class IgcYearsViewComponent extends IgcYearsViewComponent_base {
28
28
  yearsPerPage: number;
29
29
  constructor();
30
30
  connectedCallback(): void;
31
- focusActiveDate(): void;
31
+ focusActiveDate(options?: FocusOptions): void;
32
32
  protected handleInteraction(event: Event): void;
33
33
  protected renderYear(year: number, now: CalendarDay): import("lit-html").TemplateResult<1>;
34
34
  protected render(): Generator<import("lit-html").TemplateResult<1>, void, unknown>;
@@ -14,7 +14,8 @@ import { blazorIndirectRender } from '../../common/decorators/blazorIndirectRend
14
14
  import { blazorSuppressComponent } from '../../common/decorators/blazorSuppressComponent.js';
15
15
  import { registerComponent } from '../../common/definitions/register.js';
16
16
  import { EventEmitterMixin } from '../../common/mixins/event-emitter.js';
17
- import { chunk, partNameMap } from '../../common/util.js';
17
+ import { partMap } from '../../common/part-map.js';
18
+ import { chunk } from '../../common/util.js';
18
19
  import { YEARS_PER_ROW, getViewElement, getYearRange } from '../helpers.js';
19
20
  import { CalendarDay } from '../model.js';
20
21
  import { styles } from '../themes/year-month-view.base.css.js';
@@ -42,8 +43,8 @@ let IgcYearsViewComponent = IgcYearsViewComponent_1 = class IgcYearsViewComponen
42
43
  super.connectedCallback();
43
44
  this.role = 'grid';
44
45
  }
45
- focusActiveDate() {
46
- this.activeYear.focus();
46
+ focusActiveDate(options) {
47
+ this.activeYear.focus(options);
47
48
  }
48
49
  handleInteraction(event) {
49
50
  const value = getViewElement(event);
@@ -57,13 +58,12 @@ let IgcYearsViewComponent = IgcYearsViewComponent_1 = class IgcYearsViewComponen
57
58
  renderYear(year, now) {
58
59
  const selected = this._value.year === year;
59
60
  const current = year === now.year;
60
- const parts = { selected, current };
61
61
  return html `
62
- <span part=${partNameMap({ year: true, ...parts })}>
62
+ <span part=${partMap({ year: true, selected, current })}>
63
63
  <span
64
64
  role="gridcell"
65
65
  data-value=${year}
66
- part=${partNameMap({ 'year-inner': true, ...parts })}
66
+ part=${partMap({ 'year-inner': true, selected, current })}
67
67
  aria-selected=${selected}
68
68
  tabindex=${selected ? 0 : -1}
69
69
  >
@@ -1 +1 @@
1
- {"version":3,"file":"years-view.js","sourceRoot":"","sources":["../../../../src/components/calendar/years-view/years-view.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { range } from 'lit/directives/range.js';\n\nimport { themes } from '../../../theming/theming-decorator.js';\nimport { addKeybindings } from '../../common/controllers/key-bindings.js';\nimport { blazorIndirectRender } from '../../common/decorators/blazorIndirectRender.js';\nimport { blazorSuppressComponent } from '../../common/decorators/blazorSuppressComponent.js';\nimport { registerComponent } from '../../common/definitions/register.js';\nimport type { Constructor } from '../../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../../common/mixins/event-emitter.js';\nimport { chunk, partNameMap } from '../../common/util.js';\nimport { YEARS_PER_ROW, getViewElement, getYearRange } from '../helpers.js';\nimport { CalendarDay } from '../model.js';\nimport { styles } from '../themes/year-month-view.base.css.js';\nimport { all } from '../themes/year-month.js';\nimport type { IgcCalendarComponentEventMap } from '../types.js';\n\n/**\n * Instantiate a years view as a separate component in the calendar.\n *\n * @element igc-years-view\n *\n * @csspart years-row - The years row container.\n * @csspart year - The year container.\n * @csspart year-inner - The inner year container.\n */\n@blazorIndirectRender\n@blazorSuppressComponent\n@themes(all)\nexport default class IgcYearsViewComponent extends EventEmitterMixin<\n IgcCalendarComponentEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-years-view';\n public static styles = styles;\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcYearsViewComponent);\n }\n\n @state()\n private _value = CalendarDay.today;\n\n @query('[tabindex=\"0\"]')\n private activeYear!: HTMLElement;\n\n /** Тhe current value of the calendar. */\n @property({ attribute: false })\n public set value(value: Date) {\n this._value = CalendarDay.from(value);\n }\n\n public get value() {\n return this._value.native;\n }\n\n /**\n * Sets how many years are displayed on a single page.\n * @attr years-per-page\n */\n @property({ type: Number, attribute: 'years-per-page' })\n public yearsPerPage = 15;\n\n constructor() {\n super();\n\n addKeybindings(this, {\n bindingDefaults: { preventDefault: true },\n }).setActivateHandler(this.handleInteraction);\n\n this.addEventListener('click', this.handleInteraction);\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n this.role = 'grid';\n }\n\n public focusActiveDate() {\n this.activeYear.focus();\n }\n\n protected handleInteraction(event: Event) {\n const value = getViewElement(event);\n\n if (value !== -1) {\n this._value = this._value.set({\n year: value,\n });\n this.emitEvent('igcChange', { detail: this.value });\n }\n }\n\n protected renderYear(year: number, now: CalendarDay) {\n const selected = this._value.year === year;\n const current = year === now.year;\n const parts = { selected, current };\n\n return html`\n <span part=${partNameMap({ year: true, ...parts })}>\n <span\n role=\"gridcell\"\n data-value=${year}\n part=${partNameMap({ 'year-inner': true, ...parts })}\n aria-selected=${selected}\n tabindex=${selected ? 0 : -1}\n >\n ${year}\n </span>\n </span>\n `;\n }\n\n protected override *render() {\n const now = CalendarDay.today;\n const { start } = getYearRange(this._value, this.yearsPerPage);\n const years = Array.from(range(start, start + this.yearsPerPage));\n\n for (const row of chunk(years, YEARS_PER_ROW)) {\n yield html`\n <div part=\"years-row\" role=\"row\">\n ${row.map((year) => this.renderYear(year, now))}\n </div>\n `;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-years-view': IgcYearsViewComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"years-view.js","sourceRoot":"","sources":["../../../../src/components/calendar/years-view/years-view.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { range } from 'lit/directives/range.js';\n\nimport { themes } from '../../../theming/theming-decorator.js';\nimport { addKeybindings } from '../../common/controllers/key-bindings.js';\nimport { blazorIndirectRender } from '../../common/decorators/blazorIndirectRender.js';\nimport { blazorSuppressComponent } from '../../common/decorators/blazorSuppressComponent.js';\nimport { registerComponent } from '../../common/definitions/register.js';\nimport type { Constructor } from '../../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../../common/mixins/event-emitter.js';\nimport { partMap } from '../../common/part-map.js';\nimport { chunk } from '../../common/util.js';\nimport { YEARS_PER_ROW, getViewElement, getYearRange } from '../helpers.js';\nimport { CalendarDay } from '../model.js';\nimport { styles } from '../themes/year-month-view.base.css.js';\nimport { all } from '../themes/year-month.js';\nimport type { IgcCalendarComponentEventMap } from '../types.js';\n\n/**\n * Instantiate a years view as a separate component in the calendar.\n *\n * @element igc-years-view\n *\n * @csspart years-row - The years row container.\n * @csspart year - The year container.\n * @csspart year-inner - The inner year container.\n */\n@blazorIndirectRender\n@blazorSuppressComponent\n@themes(all)\nexport default class IgcYearsViewComponent extends EventEmitterMixin<\n IgcCalendarComponentEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-years-view';\n public static styles = styles;\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcYearsViewComponent);\n }\n\n @state()\n private _value = CalendarDay.today;\n\n @query('[tabindex=\"0\"]')\n private activeYear!: HTMLElement;\n\n /** Тhe current value of the calendar. */\n @property({ attribute: false })\n public set value(value: Date) {\n this._value = CalendarDay.from(value);\n }\n\n public get value() {\n return this._value.native;\n }\n\n /**\n * Sets how many years are displayed on a single page.\n * @attr years-per-page\n */\n @property({ type: Number, attribute: 'years-per-page' })\n public yearsPerPage = 15;\n\n constructor() {\n super();\n\n addKeybindings(this, {\n bindingDefaults: { preventDefault: true },\n }).setActivateHandler(this.handleInteraction);\n\n this.addEventListener('click', this.handleInteraction);\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n this.role = 'grid';\n }\n\n public focusActiveDate(options?: FocusOptions) {\n this.activeYear.focus(options);\n }\n\n protected handleInteraction(event: Event) {\n const value = getViewElement(event);\n\n if (value !== -1) {\n this._value = this._value.set({\n year: value,\n });\n this.emitEvent('igcChange', { detail: this.value });\n }\n }\n\n protected renderYear(year: number, now: CalendarDay) {\n const selected = this._value.year === year;\n const current = year === now.year;\n\n return html`\n <span part=${partMap({ year: true, selected, current })}>\n <span\n role=\"gridcell\"\n data-value=${year}\n part=${partMap({ 'year-inner': true, selected, current })}\n aria-selected=${selected}\n tabindex=${selected ? 0 : -1}\n >\n ${year}\n </span>\n </span>\n `;\n }\n\n protected override *render() {\n const now = CalendarDay.today;\n const { start } = getYearRange(this._value, this.yearsPerPage);\n const years = Array.from(range(start, start + this.yearsPerPage));\n\n for (const row of chunk(years, YEARS_PER_ROW)) {\n yield html`\n <div part=\"years-row\" role=\"row\">\n ${row.map((year) => this.renderYear(year, now))}\n </div>\n `;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-years-view': IgcYearsViewComponent;\n }\n}\n"]}
@@ -10,8 +10,8 @@ export default class IgcCarouselIndicatorContainerComponent extends LitElement {
10
10
  static readonly tagName = "igc-carousel-indicator-container";
11
11
  static styles: import("lit").CSSResult[];
12
12
  static register(): void;
13
- private _kbFocus;
14
- private handleFocusOut;
13
+ private readonly _focusRingManager;
14
+ private _handleFocusOut;
15
15
  protected render(): import("lit-html").TemplateResult<1>;
16
16
  }
17
17
  declare global {
@@ -9,7 +9,7 @@ import { LitElement, html } from 'lit';
9
9
  import { themes } from '../../theming/theming-decorator.js';
10
10
  import { addKeyboardFocusRing } from '../common/controllers/focus-ring.js';
11
11
  import { registerComponent } from '../common/definitions/register.js';
12
- import { partNameMap } from '../common/util.js';
12
+ import { partMap } from '../common/part-map.js';
13
13
  import IgcCarouselIndicatorComponent from './carousel-indicator.js';
14
14
  import { styles } from './themes/carousel-indicator-container.base.css.js';
15
15
  import { all } from './themes/indicator-container.js';
@@ -17,26 +17,25 @@ import { styles as shared } from './themes/shared/indicator-container/indicator-
17
17
  let IgcCarouselIndicatorContainerComponent = IgcCarouselIndicatorContainerComponent_1 = class IgcCarouselIndicatorContainerComponent extends LitElement {
18
18
  constructor() {
19
19
  super(...arguments);
20
- this._kbFocus = addKeyboardFocusRing(this);
20
+ this._focusRingManager = addKeyboardFocusRing(this);
21
21
  }
22
22
  static register() {
23
23
  registerComponent(IgcCarouselIndicatorContainerComponent_1);
24
24
  }
25
- handleFocusOut(event) {
25
+ _handleFocusOut(event) {
26
26
  const target = event.relatedTarget;
27
- if (!target?.matches(IgcCarouselIndicatorComponent.tagName)) {
28
- this._kbFocus.reset();
27
+ if (target?.matches(IgcCarouselIndicatorComponent.tagName)) {
28
+ event.stopPropagation();
29
29
  }
30
30
  }
31
31
  render() {
32
32
  return html `
33
33
  <div
34
- part=${partNameMap({
34
+ part=${partMap({
35
35
  base: true,
36
- focused: this._kbFocus.focused,
36
+ focused: this._focusRingManager.focused,
37
37
  })}
38
- @click=${this._kbFocus.reset}
39
- @focusout=${this.handleFocusOut}
38
+ @focusout=${this._handleFocusOut}
40
39
  >
41
40
  <slot></slot>
42
41
  </div>
@@ -1 +1 @@
1
- {"version":3,"file":"carousel-indicator-container.js","sourceRoot":"","sources":["../../../src/components/carousel/carousel-indicator-container.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,6BAA6B,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,mDAAmD,CAAC;AAC3E,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AACtD,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,uEAAuE,CAAC;AAW1F,IAAM,sCAAsC,8CAA5C,MAAM,sCAAuC,SAAQ,UAAU;IAA/D;;QASL,aAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAwBhD,CAAC;IA5BQ,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,wCAAsC,CAAC,CAAC;IAC5D,CAAC;IAIO,cAAc,CAAC,KAAiB;QACtC,MAAM,MAAM,GAAG,KAAK,CAAC,aAAwB,CAAC;QAE9C,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,6BAA6B,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;eAEA,WAAW,CAAC;YACjB,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO;SAC/B,CAAC;iBACO,IAAI,CAAC,QAAQ,CAAC,KAAK;oBAChB,IAAI,CAAC,cAAc;;;;KAIlC,CAAC;IACJ,CAAC;;AA/BsB,8CAAO,GAAG,kCAAkC,AAArC,CAAsC;AAC7C,6CAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;AAF9B,sCAAsC;IAD1D,MAAM,CAAC,GAAG,CAAC;GACS,sCAAsC,CAiC1D;eAjCoB,sCAAsC","sourcesContent":["import { LitElement, html } from 'lit';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { addKeyboardFocusRing } from '../common/controllers/focus-ring.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { partNameMap } from '../common/util.js';\nimport IgcCarouselIndicatorComponent from './carousel-indicator.js';\nimport { styles } from './themes/carousel-indicator-container.base.css.js';\nimport { all } from './themes/indicator-container.js';\nimport { styles as shared } from './themes/shared/indicator-container/indicator-container.common.css.js';\n\n/* blazorSuppress */\n/**\n * @element igc-carousel-indicator-container\n *\n * @slot - Default slot for the carousel indicator container.\n *\n * @csspart base - The wrapping container of all carousel indicators.\n */\n@themes(all)\nexport default class IgcCarouselIndicatorContainerComponent extends LitElement {\n public static readonly tagName = 'igc-carousel-indicator-container';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcCarouselIndicatorContainerComponent);\n }\n\n private _kbFocus = addKeyboardFocusRing(this);\n\n private handleFocusOut(event: FocusEvent) {\n const target = event.relatedTarget as Element;\n\n if (!target?.matches(IgcCarouselIndicatorComponent.tagName)) {\n this._kbFocus.reset();\n }\n }\n\n protected override render() {\n return html`\n <div\n part=${partNameMap({\n base: true,\n focused: this._kbFocus.focused,\n })}\n @click=${this._kbFocus.reset}\n @focusout=${this.handleFocusOut}\n >\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-carousel-indicator-container': IgcCarouselIndicatorContainerComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"carousel-indicator-container.js","sourceRoot":"","sources":["../../../src/components/carousel/carousel-indicator-container.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,6BAA6B,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,mDAAmD,CAAC;AAC3E,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AACtD,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,uEAAuE,CAAC;AAW1F,IAAM,sCAAsC,8CAA5C,MAAM,sCAAuC,SAAQ,UAAU;IAA/D;;QASI,sBAAiB,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAyBlE,CAAC;IA7BQ,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,wCAAsC,CAAC,CAAC;IAC5D,CAAC;IAIO,eAAe,CAAC,KAAiB;QACvC,MAAM,MAAM,GAAG,KAAK,CAAC,aAAwB,CAAC;QAE9C,IAAI,MAAM,EAAE,OAAO,CAAC,6BAA6B,CAAC,OAAO,CAAC,EAAE,CAAC;YAG3D,KAAK,CAAC,eAAe,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;eAEA,OAAO,CAAC;YACb,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO;SACxC,CAAC;oBACU,IAAI,CAAC,eAAe;;;;KAInC,CAAC;IACJ,CAAC;;AAhCsB,8CAAO,GAAG,kCAAkC,AAArC,CAAsC;AAC7C,6CAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;AAF9B,sCAAsC;IAD1D,MAAM,CAAC,GAAG,CAAC;GACS,sCAAsC,CAkC1D;eAlCoB,sCAAsC","sourcesContent":["import { LitElement, html } from 'lit';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { addKeyboardFocusRing } from '../common/controllers/focus-ring.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { partMap } from '../common/part-map.js';\nimport IgcCarouselIndicatorComponent from './carousel-indicator.js';\nimport { styles } from './themes/carousel-indicator-container.base.css.js';\nimport { all } from './themes/indicator-container.js';\nimport { styles as shared } from './themes/shared/indicator-container/indicator-container.common.css.js';\n\n/* blazorSuppress */\n/**\n * @element igc-carousel-indicator-container\n *\n * @slot - Default slot for the carousel indicator container.\n *\n * @csspart base - The wrapping container of all carousel indicators.\n */\n@themes(all)\nexport default class IgcCarouselIndicatorContainerComponent extends LitElement {\n public static readonly tagName = 'igc-carousel-indicator-container';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcCarouselIndicatorContainerComponent);\n }\n\n private readonly _focusRingManager = addKeyboardFocusRing(this);\n\n private _handleFocusOut(event: FocusEvent): void {\n const target = event.relatedTarget as Element;\n\n if (target?.matches(IgcCarouselIndicatorComponent.tagName)) {\n // Stop the event from hitting the _focusRingManager handler redrawing\n // the keyboard focus styles\n event.stopPropagation();\n }\n }\n\n protected override render() {\n return html`\n <div\n part=${partMap({\n base: true,\n focused: this._focusRingManager.focused,\n })}\n @focusout=${this._handleFocusOut}\n >\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-carousel-indicator-container': IgcCarouselIndicatorContainerComponent;\n }\n}\n"]}
@@ -34,17 +34,17 @@ export default class IgcCarouselComponent extends IgcCarouselComponent_base {
34
34
  static readonly tagName = "igc-carousel";
35
35
  static register(): void;
36
36
  private static readonly increment;
37
- private _carouselId;
38
- private _carouselKeyboardInteractionFocus;
39
- private _internals;
37
+ private readonly _carouselId;
38
+ private readonly _internals;
40
39
  private _lastInterval;
41
40
  private _hasKeyboardInteractionOnIndicators;
42
41
  private _hasMouseStop;
42
+ private _hasInnerFocus;
43
43
  private _context;
44
- private _carouselSlidesContainerRef;
45
- private _indicatorsContainerRef;
46
- private _prevButtonRef;
47
- private _nextButtonRef;
44
+ private readonly _carouselSlidesContainerRef;
45
+ private readonly _indicatorsContainerRef;
46
+ private readonly _prevButtonRef;
47
+ private readonly _nextButtonRef;
48
48
  private get hasProjectedIndicators();
49
49
  private get showIndicatorsLabel();
50
50
  private get nextIndex();
@@ -141,7 +141,6 @@ export default class IgcCarouselComponent extends IgcCarouselComponent_base {
141
141
  constructor();
142
142
  private handleSlotChange;
143
143
  private handleIndicatorSlotChange;
144
- private handlePointerDown;
145
144
  private handlePointerEnter;
146
145
  private handlePointerLeave;
147
146
  private handleFocusIn;
@@ -13,14 +13,14 @@ import { styleMap } from 'lit/directives/style-map.js';
13
13
  import { themes } from '../../theming/theming-decorator.js';
14
14
  import IgcButtonComponent from '../button/button.js';
15
15
  import { carouselContext } from '../common/context.js';
16
- import { addKeyboardFocusRing } from '../common/controllers/focus-ring.js';
17
16
  import { addGesturesController, } from '../common/controllers/gestures.js';
18
17
  import { addKeybindings, arrowLeft, arrowRight, endKey, homeKey, } from '../common/controllers/key-bindings.js';
19
18
  import { createMutationController, } from '../common/controllers/mutation-observer.js';
20
19
  import { watch } from '../common/decorators/watch.js';
21
20
  import { registerComponent } from '../common/definitions/register.js';
22
21
  import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
23
- import { asNumber, createCounter, findElementFromEventPath, first, formatString, isLTR, last, partNameMap, wrap, } from '../common/util.js';
22
+ import { partMap } from '../common/part-map.js';
23
+ import { asNumber, createCounter, findElementFromEventPath, first, formatString, isLTR, last, wrap, } from '../common/util.js';
24
24
  import IgcIconComponent from '../icon/icon.js';
25
25
  import IgcCarouselIndicatorContainerComponent from './carousel-indicator-container.js';
26
26
  import IgcCarouselIndicatorComponent from './carousel-indicator.js';
@@ -81,9 +81,9 @@ let IgcCarouselComponent = IgcCarouselComponent_1 = class IgcCarouselComponent e
81
81
  constructor() {
82
82
  super();
83
83
  this._carouselId = `igc-carousel-${IgcCarouselComponent_1.increment()}`;
84
- this._carouselKeyboardInteractionFocus = addKeyboardFocusRing(this);
85
84
  this._hasKeyboardInteractionOnIndicators = false;
86
85
  this._hasMouseStop = false;
86
+ this._hasInnerFocus = false;
87
87
  this._context = new ContextProvider(this, {
88
88
  context: carouselContext,
89
89
  initialValue: this,
@@ -107,9 +107,14 @@ let IgcCarouselComponent = IgcCarouselComponent_1 = class IgcCarouselComponent e
107
107
  this._internals = this.attachInternals();
108
108
  this._internals.role = 'region';
109
109
  this._internals.ariaRoleDescription = 'carousel';
110
- this.addEventListener('pointerdown', this.handlePointerDown);
111
110
  this.addEventListener('pointerenter', this.handlePointerEnter);
112
111
  this.addEventListener('pointerleave', this.handlePointerLeave);
112
+ this.addEventListener('pointerdown', () => {
113
+ this._hasInnerFocus = false;
114
+ });
115
+ this.addEventListener('keyup', () => {
116
+ this._hasInnerFocus = true;
117
+ });
113
118
  addGesturesController(this, {
114
119
  ref: this._carouselSlidesContainerRef,
115
120
  touchOnly: true,
@@ -152,27 +157,22 @@ let IgcCarouselComponent = IgcCarouselComponent_1 = class IgcCarouselComponent e
152
157
  handleIndicatorSlotChange() {
153
158
  this.requestUpdate();
154
159
  }
155
- handlePointerDown() {
156
- if (this._carouselKeyboardInteractionFocus.focused) {
157
- this._carouselKeyboardInteractionFocus.reset();
158
- }
159
- }
160
160
  handlePointerEnter() {
161
161
  this._hasMouseStop = true;
162
- if (this._carouselKeyboardInteractionFocus.focused) {
162
+ if (this._hasInnerFocus) {
163
163
  return;
164
164
  }
165
165
  this.handlePauseOnInteraction();
166
166
  }
167
167
  handlePointerLeave() {
168
168
  this._hasMouseStop = false;
169
- if (this._carouselKeyboardInteractionFocus.focused) {
169
+ if (this._hasInnerFocus) {
170
170
  return;
171
171
  }
172
172
  this.handlePauseOnInteraction();
173
173
  }
174
174
  handleFocusIn() {
175
- if (this._carouselKeyboardInteractionFocus.focused || this._hasMouseStop) {
175
+ if (this._hasInnerFocus || this._hasMouseStop) {
176
176
  return;
177
177
  }
178
178
  this.handlePauseOnInteraction();
@@ -182,8 +182,8 @@ let IgcCarouselComponent = IgcCarouselComponent_1 = class IgcCarouselComponent e
182
182
  if (this.contains(node) || this.renderRoot.contains(node)) {
183
183
  return;
184
184
  }
185
- if (this._carouselKeyboardInteractionFocus.focused) {
186
- this._carouselKeyboardInteractionFocus.reset();
185
+ if (this._hasInnerFocus) {
186
+ this._hasInnerFocus = false;
187
187
  if (!this._hasMouseStop) {
188
188
  this.handlePauseOnInteraction();
189
189
  }
@@ -422,13 +422,17 @@ let IgcCarouselComponent = IgcCarouselComponent_1 = class IgcCarouselComponent e
422
422
  }
423
423
  }
424
424
  indicatorTemplate() {
425
- const parts = partNameMap({
425
+ const parts = {
426
426
  indicators: true,
427
427
  start: this.indicatorsOrientation === 'start',
428
- });
428
+ };
429
429
  return html `
430
430
  <igc-carousel-indicator-container>
431
- <div ${ref(this._indicatorsContainerRef)} role="tablist" part=${parts}>
431
+ <div
432
+ ${ref(this._indicatorsContainerRef)}
433
+ role="tablist"
434
+ part=${partMap(parts)}
435
+ >
432
436
  <slot
433
437
  name="indicator"
434
438
  @slotchange=${this.handleIndicatorSlotChange}
@@ -443,14 +447,14 @@ let IgcCarouselComponent = IgcCarouselComponent_1 = class IgcCarouselComponent e
443
447
  `;
444
448
  }
445
449
  labelTemplate() {
446
- const parts = partNameMap({
450
+ const parts = {
447
451
  label: true,
448
452
  indicators: true,
449
453
  start: this.indicatorsOrientation === 'start',
450
- });
454
+ };
451
455
  const value = formatString(this.slidesLabelFormat, this.current + 1, this.total);
452
456
  return html `
453
- <div part=${parts}>
457
+ <div part=${partMap(parts)}>
454
458
  <span>${value}</span>
455
459
  </div>
456
460
  `;