igniteui-webcomponents 5.1.1 → 5.2.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 (380) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/components/avatar/themes/avatar.base.css.js +1 -1
  3. package/components/avatar/themes/avatar.base.css.js.map +1 -1
  4. package/components/avatar/themes/dark/avatar.bootstrap.css.js +1 -1
  5. package/components/avatar/themes/dark/avatar.bootstrap.css.js.map +1 -1
  6. package/components/avatar/themes/light/avatar.bootstrap.css.js +1 -1
  7. package/components/avatar/themes/light/avatar.bootstrap.css.js.map +1 -1
  8. package/components/avatar/themes/light/avatar.shared.css.js +1 -1
  9. package/components/avatar/themes/light/avatar.shared.css.js.map +1 -1
  10. package/components/avatar/themes/shared/avatar.common.css.js +1 -1
  11. package/components/avatar/themes/shared/avatar.common.css.js.map +1 -1
  12. package/components/avatar/themes/shared/avatar.indigo.css.js +1 -1
  13. package/components/avatar/themes/shared/avatar.indigo.css.js.map +1 -1
  14. package/components/badge/themes/badge.base.css.js +1 -1
  15. package/components/badge/themes/badge.base.css.js.map +1 -1
  16. package/components/badge/themes/dark/badge.bootstrap.css.js +1 -1
  17. package/components/badge/themes/dark/badge.bootstrap.css.js.map +1 -1
  18. package/components/badge/themes/dark/badge.indigo.css.js +1 -1
  19. package/components/badge/themes/dark/badge.indigo.css.js.map +1 -1
  20. package/components/badge/themes/light/badge.bootstrap.css.js +1 -1
  21. package/components/badge/themes/light/badge.bootstrap.css.js.map +1 -1
  22. package/components/badge/themes/light/badge.indigo.css.js +1 -1
  23. package/components/badge/themes/light/badge.indigo.css.js.map +1 -1
  24. package/components/badge/themes/light/badge.shared.css.js +1 -1
  25. package/components/badge/themes/light/badge.shared.css.js.map +1 -1
  26. package/components/badge/themes/shared/badge.common.css.js +1 -1
  27. package/components/badge/themes/shared/badge.common.css.js.map +1 -1
  28. package/components/badge/themes/shared/badge.indigo.css.js +1 -1
  29. package/components/badge/themes/shared/badge.indigo.css.js.map +1 -1
  30. package/components/button/themes/button/button.base.css.js +1 -1
  31. package/components/button/themes/button/button.base.css.js.map +1 -1
  32. package/components/button/themes/icon-button/icon-button.base.css.js +1 -1
  33. package/components/button/themes/icon-button/icon-button.base.css.js.map +1 -1
  34. package/components/button-group/button-group.js +2 -2
  35. package/components/button-group/button-group.js.map +1 -1
  36. package/components/button-group/themes/button.base.css.js +1 -1
  37. package/components/button-group/themes/button.base.css.js.map +1 -1
  38. package/components/button-group/themes/group.base.css.js +1 -1
  39. package/components/button-group/themes/group.base.css.js.map +1 -1
  40. package/components/calendar/base.d.ts +7 -7
  41. package/components/calendar/base.js +23 -16
  42. package/components/calendar/base.js.map +1 -1
  43. package/components/calendar/calendar.js.map +1 -1
  44. package/components/calendar/helpers.d.ts +28 -3
  45. package/components/calendar/helpers.js +36 -11
  46. package/components/calendar/helpers.js.map +1 -1
  47. package/components/calendar/themes/calendar.base.css.js +1 -1
  48. package/components/calendar/themes/calendar.base.css.js.map +1 -1
  49. package/components/card/themes/card.actions.base.css.js +1 -1
  50. package/components/card/themes/card.actions.base.css.js.map +1 -1
  51. package/components/card/themes/card.content.base.css.js +1 -1
  52. package/components/card/themes/card.content.base.css.js.map +1 -1
  53. package/components/card/themes/card.header.base.css.js +1 -1
  54. package/components/card/themes/card.header.base.css.js.map +1 -1
  55. package/components/card/themes/card.media.base.css.js +1 -1
  56. package/components/card/themes/card.media.base.css.js.map +1 -1
  57. package/components/card/themes/container.base.css.js +1 -1
  58. package/components/card/themes/container.base.css.js.map +1 -1
  59. package/components/card/themes/dark/card.fluent.css.js +1 -1
  60. package/components/card/themes/dark/card.fluent.css.js.map +1 -1
  61. package/components/card/themes/light/container/card.fluent.css.js +1 -1
  62. package/components/card/themes/light/container/card.fluent.css.js.map +1 -1
  63. package/components/carousel/carousel.d.ts +10 -6
  64. package/components/carousel/carousel.js +16 -7
  65. package/components/carousel/carousel.js.map +1 -1
  66. package/components/carousel/themes/carousel-indicator-container.base.css.js +1 -1
  67. package/components/carousel/themes/carousel-indicator-container.base.css.js.map +1 -1
  68. package/components/carousel/themes/carousel-indicator.base.css.js +1 -1
  69. package/components/carousel/themes/carousel-indicator.base.css.js.map +1 -1
  70. package/components/carousel/themes/carousel-slide.base.css.js +1 -1
  71. package/components/carousel/themes/carousel-slide.base.css.js.map +1 -1
  72. package/components/carousel/themes/carousel.base.css.js +1 -1
  73. package/components/carousel/themes/carousel.base.css.js.map +1 -1
  74. package/components/checkbox/checkbox-base.d.ts +3 -1
  75. package/components/checkbox/checkbox-base.js +14 -10
  76. package/components/checkbox/checkbox-base.js.map +1 -1
  77. package/components/checkbox/checkbox.js +1 -2
  78. package/components/checkbox/checkbox.js.map +1 -1
  79. package/components/checkbox/themes/checkbox.base.css.js +1 -1
  80. package/components/checkbox/themes/checkbox.base.css.js.map +1 -1
  81. package/components/checkbox/themes/dark/checkbox/checkbox.bootstrap.css.js +1 -1
  82. package/components/checkbox/themes/dark/checkbox/checkbox.bootstrap.css.js.map +1 -1
  83. package/components/checkbox/themes/dark/checkbox/checkbox.indigo.css.js +1 -1
  84. package/components/checkbox/themes/dark/checkbox/checkbox.indigo.css.js.map +1 -1
  85. package/components/checkbox/themes/light/checkbox/checkbox.bootstrap.css.js +1 -1
  86. package/components/checkbox/themes/light/checkbox/checkbox.bootstrap.css.js.map +1 -1
  87. package/components/checkbox/themes/light/checkbox/checkbox.indigo.css.js +1 -1
  88. package/components/checkbox/themes/light/checkbox/checkbox.indigo.css.js.map +1 -1
  89. package/components/checkbox/themes/light/checkbox/checkbox.shared.css.js +1 -1
  90. package/components/checkbox/themes/light/checkbox/checkbox.shared.css.js.map +1 -1
  91. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js +1 -1
  92. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js.map +1 -1
  93. package/components/checkbox/themes/shared/checkbox/checkbox.common.css.js +1 -1
  94. package/components/checkbox/themes/shared/checkbox/checkbox.common.css.js.map +1 -1
  95. package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js +1 -1
  96. package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js.map +1 -1
  97. package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js +1 -1
  98. package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js.map +1 -1
  99. package/components/checkbox/themes/shared/checkbox/checkbox.material.css.js +1 -1
  100. package/components/checkbox/themes/shared/checkbox/checkbox.material.css.js.map +1 -1
  101. package/components/checkbox/themes/switch.base.css.js +1 -1
  102. package/components/checkbox/themes/switch.base.css.js.map +1 -1
  103. package/components/chip/themes/chip.base.css.js +1 -1
  104. package/components/chip/themes/chip.base.css.js.map +1 -1
  105. package/components/combo/combo-item.d.ts +4 -2
  106. package/components/combo/combo-item.js +19 -16
  107. package/components/combo/combo-item.js.map +1 -1
  108. package/components/combo/combo.d.ts +52 -41
  109. package/components/combo/combo.js +340 -339
  110. package/components/combo/combo.js.map +1 -1
  111. package/components/combo/controllers/data.d.ts +3 -1
  112. package/components/combo/controllers/data.js +9 -2
  113. package/components/combo/controllers/data.js.map +1 -1
  114. package/components/combo/controllers/navigation.d.ts +3 -1
  115. package/components/combo/controllers/navigation.js +4 -3
  116. package/components/combo/controllers/navigation.js.map +1 -1
  117. package/components/combo/controllers/selection.d.ts +14 -6
  118. package/components/combo/controllers/selection.js +66 -59
  119. package/components/combo/controllers/selection.js.map +1 -1
  120. package/components/combo/themes/combo-header.base.css.js +1 -1
  121. package/components/combo/themes/combo-header.base.css.js.map +1 -1
  122. package/components/combo/themes/combo-item.base.css.js +1 -1
  123. package/components/combo/themes/combo-item.base.css.js.map +1 -1
  124. package/components/combo/themes/combo.base.css.js +1 -1
  125. package/components/combo/themes/combo.base.css.js.map +1 -1
  126. package/components/common/controllers/mutation-observer.d.ts +6 -2
  127. package/components/common/controllers/mutation-observer.js +2 -2
  128. package/components/common/controllers/mutation-observer.js.map +1 -1
  129. package/components/common/mixins/alert.js.map +1 -1
  130. package/components/common/mixins/combo-box.js.map +1 -1
  131. package/components/common/mixins/forms/associated.js +41 -39
  132. package/components/common/mixins/forms/associated.js.map +1 -1
  133. package/components/common/mixins/forms/form-value.d.ts +32 -0
  134. package/components/common/mixins/forms/form-value.js +59 -0
  135. package/components/common/mixins/forms/form-value.js.map +1 -0
  136. package/components/common/mixins/forms/types.d.ts +9 -8
  137. package/components/common/mixins/forms/types.js.map +1 -1
  138. package/components/common/util.d.ts +3 -0
  139. package/components/common/util.js +13 -0
  140. package/components/common/util.js.map +1 -1
  141. package/components/common/validators.d.ts +7 -7
  142. package/components/common/validators.js +24 -17
  143. package/components/common/validators.js.map +1 -1
  144. package/components/date-picker/date-picker.d.ts +17 -14
  145. package/components/date-picker/date-picker.js +30 -20
  146. package/components/date-picker/date-picker.js.map +1 -1
  147. package/components/date-picker/themes/date-picker.base.css.js +1 -1
  148. package/components/date-picker/themes/date-picker.base.css.js.map +1 -1
  149. package/components/date-picker/validators.js +2 -2
  150. package/components/date-picker/validators.js.map +1 -1
  151. package/components/date-time-input/date-time-input.d.ts +9 -6
  152. package/components/date-time-input/date-time-input.js +33 -30
  153. package/components/date-time-input/date-time-input.js.map +1 -1
  154. package/components/date-time-input/date-util.js +2 -12
  155. package/components/date-time-input/date-util.js.map +1 -1
  156. package/components/date-time-input/validators.js +2 -2
  157. package/components/date-time-input/validators.js.map +1 -1
  158. package/components/dialog/themes/dialog.base.css.js +1 -1
  159. package/components/dialog/themes/dialog.base.css.js.map +1 -1
  160. package/components/dialog/themes/shared/dialog.fluent.css.js +1 -1
  161. package/components/dialog/themes/shared/dialog.fluent.css.js.map +1 -1
  162. package/components/divider/themes/divider.base.css.js +1 -1
  163. package/components/divider/themes/divider.base.css.js.map +1 -1
  164. package/components/dropdown/themes/dropdown-group.base.css.js +1 -1
  165. package/components/dropdown/themes/dropdown-group.base.css.js.map +1 -1
  166. package/components/dropdown/themes/dropdown-header.base.css.js +1 -1
  167. package/components/dropdown/themes/dropdown-header.base.css.js.map +1 -1
  168. package/components/dropdown/themes/dropdown-item.base.css.js +1 -1
  169. package/components/dropdown/themes/dropdown-item.base.css.js.map +1 -1
  170. package/components/dropdown/themes/dropdown.base.css.js +1 -1
  171. package/components/dropdown/themes/dropdown.base.css.js.map +1 -1
  172. package/components/dropdown/themes/header.js +7 -0
  173. package/components/dropdown/themes/header.js.map +1 -1
  174. package/components/dropdown/themes/shared/dropdown.bootstrap.css.js +1 -1
  175. package/components/dropdown/themes/shared/dropdown.bootstrap.css.js.map +1 -1
  176. package/components/dropdown/themes/shared/header/dropdown-header.fluent.css.d.ts +1 -0
  177. package/components/dropdown/themes/shared/header/dropdown-header.fluent.css.js +3 -0
  178. package/components/dropdown/themes/shared/header/dropdown-header.fluent.css.js.map +1 -0
  179. package/components/expansion-panel/themes/expansion-panel.base.css.js +1 -1
  180. package/components/expansion-panel/themes/expansion-panel.base.css.js.map +1 -1
  181. package/components/icon/icon-state.broadcast.d.ts +1 -0
  182. package/components/icon/icon-state.broadcast.js +4 -1
  183. package/components/icon/icon-state.broadcast.js.map +1 -1
  184. package/components/icon/registry/types.d.ts +1 -0
  185. package/components/icon/registry/types.js.map +1 -1
  186. package/components/icon/themes/icon.base.css.js +1 -1
  187. package/components/icon/themes/icon.base.css.js.map +1 -1
  188. package/components/input/input-base.js +8 -2
  189. package/components/input/input-base.js.map +1 -1
  190. package/components/input/input.d.ts +21 -9
  191. package/components/input/input.js +59 -32
  192. package/components/input/input.js.map +1 -1
  193. package/components/input/themes/input.base.css.js +1 -1
  194. package/components/input/themes/input.base.css.js.map +1 -1
  195. package/components/input/themes/shared/input.common.css.js +1 -1
  196. package/components/input/themes/shared/input.common.css.js.map +1 -1
  197. package/components/input/themes/shared/input.indigo.css.js +1 -1
  198. package/components/input/themes/shared/input.indigo.css.js.map +1 -1
  199. package/components/input/themes/shared/input.material.css.js +1 -1
  200. package/components/input/themes/shared/input.material.css.js.map +1 -1
  201. package/components/list/themes/container.base.css.js +1 -1
  202. package/components/list/themes/container.base.css.js.map +1 -1
  203. package/components/list/themes/dark/container/list.bootstrap.css.js +1 -1
  204. package/components/list/themes/dark/container/list.bootstrap.css.js.map +1 -1
  205. package/components/list/themes/dark/container/list.fluent.css.js +1 -1
  206. package/components/list/themes/dark/container/list.fluent.css.js.map +1 -1
  207. package/components/list/themes/dark/container/list.indigo.css.js +1 -1
  208. package/components/list/themes/dark/container/list.indigo.css.js.map +1 -1
  209. package/components/list/themes/dark/container/list.material.css.js +1 -1
  210. package/components/list/themes/dark/container/list.material.css.js.map +1 -1
  211. package/components/list/themes/dark/header/list-header.bootstrap.css.js +1 -1
  212. package/components/list/themes/dark/header/list-header.bootstrap.css.js.map +1 -1
  213. package/components/list/themes/dark/header/list-header.fluent.css.js +1 -1
  214. package/components/list/themes/dark/header/list-header.fluent.css.js.map +1 -1
  215. package/components/list/themes/dark/header/list-header.indigo.css.js +1 -1
  216. package/components/list/themes/dark/header/list-header.indigo.css.js.map +1 -1
  217. package/components/list/themes/dark/header/list-header.material.css.js +1 -1
  218. package/components/list/themes/dark/header/list-header.material.css.js.map +1 -1
  219. package/components/list/themes/dark/item/list-item.bootstrap.css.js +1 -1
  220. package/components/list/themes/dark/item/list-item.bootstrap.css.js.map +1 -1
  221. package/components/list/themes/dark/item/list-item.fluent.css.js +1 -1
  222. package/components/list/themes/dark/item/list-item.fluent.css.js.map +1 -1
  223. package/components/list/themes/dark/item/list-item.indigo.css.js +1 -1
  224. package/components/list/themes/dark/item/list-item.indigo.css.js.map +1 -1
  225. package/components/list/themes/dark/item/list-item.material.css.js +1 -1
  226. package/components/list/themes/dark/item/list-item.material.css.js.map +1 -1
  227. package/components/list/themes/item.base.css.js +1 -1
  228. package/components/list/themes/item.base.css.js.map +1 -1
  229. package/components/list/themes/light/container/list.fluent.css.js +1 -1
  230. package/components/list/themes/light/container/list.fluent.css.js.map +1 -1
  231. package/components/list/themes/light/container/list.indigo.css.js +1 -1
  232. package/components/list/themes/light/container/list.indigo.css.js.map +1 -1
  233. package/components/list/themes/light/container/list.shared.css.js +1 -1
  234. package/components/list/themes/light/container/list.shared.css.js.map +1 -1
  235. package/components/list/themes/light/header/list-header.fluent.css.js +1 -1
  236. package/components/list/themes/light/header/list-header.fluent.css.js.map +1 -1
  237. package/components/list/themes/light/header/list-header.indigo.css.js +1 -1
  238. package/components/list/themes/light/header/list-header.indigo.css.js.map +1 -1
  239. package/components/list/themes/light/item/list-item.fluent.css.js +1 -1
  240. package/components/list/themes/light/item/list-item.fluent.css.js.map +1 -1
  241. package/components/list/themes/light/item/list-item.indigo.css.js +1 -1
  242. package/components/list/themes/light/item/list-item.indigo.css.js.map +1 -1
  243. package/components/list/themes/shared/container/list.indigo.css.js +1 -1
  244. package/components/list/themes/shared/container/list.indigo.css.js.map +1 -1
  245. package/components/list/themes/shared/item/list-item.common.css.js +1 -1
  246. package/components/list/themes/shared/item/list-item.common.css.js.map +1 -1
  247. package/components/list/themes/shared/item/list-item.fluent.css.js +1 -1
  248. package/components/list/themes/shared/item/list-item.fluent.css.js.map +1 -1
  249. package/components/list/themes/shared/item/list-item.indigo.css.js +1 -1
  250. package/components/list/themes/shared/item/list-item.indigo.css.js.map +1 -1
  251. package/components/mask-input/mask-input.d.ts +5 -3
  252. package/components/mask-input/mask-input.js +35 -23
  253. package/components/mask-input/mask-input.js.map +1 -1
  254. package/components/nav-drawer/themes/container.base.css.js +1 -1
  255. package/components/nav-drawer/themes/container.base.css.js.map +1 -1
  256. package/components/nav-drawer/themes/header-item.base.css.js +1 -1
  257. package/components/nav-drawer/themes/header-item.base.css.js.map +1 -1
  258. package/components/nav-drawer/themes/item.base.css.js +1 -1
  259. package/components/nav-drawer/themes/item.base.css.js.map +1 -1
  260. package/components/navbar/themes/navbar.base.css.js +1 -1
  261. package/components/navbar/themes/navbar.base.css.js.map +1 -1
  262. package/components/popover/themes/light/popover.base.css.js +1 -1
  263. package/components/popover/themes/light/popover.base.css.js.map +1 -1
  264. package/components/progress/base.d.ts +11 -12
  265. package/components/progress/base.js +59 -70
  266. package/components/progress/base.js.map +1 -1
  267. package/components/progress/circular-progress.d.ts +0 -1
  268. package/components/progress/circular-progress.js +15 -15
  269. package/components/progress/circular-progress.js.map +1 -1
  270. package/components/progress/linear-progress.js +7 -13
  271. package/components/progress/linear-progress.js.map +1 -1
  272. package/components/progress/themes/circular/circular.progress.base.css.js +1 -1
  273. package/components/progress/themes/circular/circular.progress.base.css.js.map +1 -1
  274. package/components/progress/themes/circular/shared/circular.progress.bootstrap.css.js +1 -1
  275. package/components/progress/themes/circular/shared/circular.progress.bootstrap.css.js.map +1 -1
  276. package/components/progress/themes/circular/shared/circular.progress.common.css.js +1 -1
  277. package/components/progress/themes/circular/shared/circular.progress.common.css.js.map +1 -1
  278. package/components/progress/themes/circular/shared/circular.progress.fluent.css.js +1 -1
  279. package/components/progress/themes/circular/shared/circular.progress.fluent.css.js.map +1 -1
  280. package/components/progress/themes/circular/shared/circular.progress.indigo.css.js +1 -1
  281. package/components/progress/themes/circular/shared/circular.progress.indigo.css.js.map +1 -1
  282. package/components/progress/themes/linear/linear.progress.base.css.js +1 -1
  283. package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
  284. package/components/progress/themes/linear/shared/linear.progress.bootstrap.css.js +1 -1
  285. package/components/progress/themes/linear/shared/linear.progress.bootstrap.css.js.map +1 -1
  286. package/components/progress/themes/linear/shared/linear.progress.common.css.js +1 -1
  287. package/components/progress/themes/linear/shared/linear.progress.common.css.js.map +1 -1
  288. package/components/progress/themes/linear/shared/linear.progress.fluent.css.js +1 -1
  289. package/components/progress/themes/linear/shared/linear.progress.fluent.css.js.map +1 -1
  290. package/components/progress/themes/linear/shared/linear.progress.indigo.css.js +1 -1
  291. package/components/progress/themes/linear/shared/linear.progress.indigo.css.js.map +1 -1
  292. package/components/radio/radio.d.ts +4 -3
  293. package/components/radio/radio.js +48 -33
  294. package/components/radio/radio.js.map +1 -1
  295. package/components/radio/themes/radio.base.css.js +1 -1
  296. package/components/radio/themes/radio.base.css.js.map +1 -1
  297. package/components/radio-group/radio-group.base.css.js +1 -1
  298. package/components/radio-group/radio-group.base.css.js.map +1 -1
  299. package/components/radio-group/radio-group.d.ts +4 -0
  300. package/components/radio-group/radio-group.js +18 -0
  301. package/components/radio-group/radio-group.js.map +1 -1
  302. package/components/rating/rating-symbol.js +2 -2
  303. package/components/rating/rating-symbol.js.map +1 -1
  304. package/components/rating/rating.d.ts +25 -17
  305. package/components/rating/rating.js +47 -43
  306. package/components/rating/rating.js.map +1 -1
  307. package/components/rating/themes/rating-symbol.base.css.js +1 -1
  308. package/components/rating/themes/rating-symbol.base.css.js.map +1 -1
  309. package/components/rating/themes/rating.base.css.js +1 -1
  310. package/components/rating/themes/rating.base.css.js.map +1 -1
  311. package/components/ripple/ripple.material.css.js +1 -1
  312. package/components/ripple/ripple.material.css.js.map +1 -1
  313. package/components/select/select.d.ts +7 -9
  314. package/components/select/select.js +29 -31
  315. package/components/select/select.js.map +1 -1
  316. package/components/select/themes/select.base.css.js +1 -1
  317. package/components/select/themes/select.base.css.js.map +1 -1
  318. package/components/slider/slider-base.d.ts +0 -1
  319. package/components/slider/slider-base.js +0 -4
  320. package/components/slider/slider-base.js.map +1 -1
  321. package/components/slider/slider.d.ts +3 -2
  322. package/components/slider/slider.js +9 -9
  323. package/components/slider/slider.js.map +1 -1
  324. package/components/slider/themes/slider.base.css.js +1 -1
  325. package/components/slider/themes/slider.base.css.js.map +1 -1
  326. package/components/snackbar/themes/snackbar.base.css.js +1 -1
  327. package/components/snackbar/themes/snackbar.base.css.js.map +1 -1
  328. package/components/stepper/step.d.ts +1 -1
  329. package/components/stepper/step.js.map +1 -1
  330. package/components/stepper/themes/step/step.base.css.js +1 -1
  331. package/components/stepper/themes/step/step.base.css.js.map +1 -1
  332. package/components/stepper/themes/stepper/stepper.base.css.js +1 -1
  333. package/components/stepper/themes/stepper/stepper.base.css.js.map +1 -1
  334. package/components/tabs/tabs.js +7 -4
  335. package/components/tabs/tabs.js.map +1 -1
  336. package/components/tabs/themes/dark/tab.bootstrap.css.js +1 -1
  337. package/components/tabs/themes/dark/tab.bootstrap.css.js.map +1 -1
  338. package/components/tabs/themes/dark/tab.fluent.css.js +1 -1
  339. package/components/tabs/themes/dark/tab.fluent.css.js.map +1 -1
  340. package/components/tabs/themes/dark/tab.indigo.css.js +1 -1
  341. package/components/tabs/themes/dark/tab.indigo.css.js.map +1 -1
  342. package/components/tabs/themes/dark/tab.material.css.js +1 -1
  343. package/components/tabs/themes/dark/tab.material.css.js.map +1 -1
  344. package/components/tabs/themes/light/tab.bootstrap.css.js +1 -1
  345. package/components/tabs/themes/light/tab.bootstrap.css.js.map +1 -1
  346. package/components/tabs/themes/light/tab.fluent.css.js +1 -1
  347. package/components/tabs/themes/light/tab.fluent.css.js.map +1 -1
  348. package/components/tabs/themes/light/tab.indigo.css.js +1 -1
  349. package/components/tabs/themes/light/tab.indigo.css.js.map +1 -1
  350. package/components/tabs/themes/tab.base.css.js +1 -1
  351. package/components/tabs/themes/tab.base.css.js.map +1 -1
  352. package/components/tabs/themes/tabs.base.css.js +1 -1
  353. package/components/tabs/themes/tabs.base.css.js.map +1 -1
  354. package/components/textarea/textarea.d.ts +5 -4
  355. package/components/textarea/textarea.js +15 -8
  356. package/components/textarea/textarea.js.map +1 -1
  357. package/components/textarea/themes/shared/textarea.common.css.js +1 -1
  358. package/components/textarea/themes/shared/textarea.common.css.js.map +1 -1
  359. package/components/textarea/themes/shared/textarea.material.css.js +1 -1
  360. package/components/textarea/themes/shared/textarea.material.css.js.map +1 -1
  361. package/components/textarea/themes/textarea.base.css.js +1 -1
  362. package/components/textarea/themes/textarea.base.css.js.map +1 -1
  363. package/components/toast/themes/toast.base.css.js +1 -1
  364. package/components/toast/themes/toast.base.css.js.map +1 -1
  365. package/components/tree/themes/container.base.css.js +1 -1
  366. package/components/tree/themes/container.base.css.js.map +1 -1
  367. package/components/tree/themes/shared/item.material.css.js +1 -1
  368. package/components/tree/themes/shared/item.material.css.js.map +1 -1
  369. package/custom-elements.json +2243 -1959
  370. package/igniteui-webcomponents.html-data.json +1 -1
  371. package/package.json +1 -1
  372. package/themes/dark/bootstrap.css +1 -1
  373. package/themes/dark/fluent.css +1 -1
  374. package/themes/dark/indigo.css +1 -1
  375. package/themes/dark/material.css +1 -1
  376. package/themes/light/bootstrap.css +1 -1
  377. package/themes/light/fluent.css +1 -1
  378. package/themes/light/indigo.css +1 -1
  379. package/themes/light/material.css +1 -1
  380. package/web-types.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/components/common/validators.ts"],"names":[],"mappings":"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","sourcesContent":["import { DateTimeUtil } from '../date-time-input/date-util.js';\nimport validatorMessages from './localization/validation-en.js';\nimport { asNumber, formatString, isDefined } from './util.js';\n\ntype ValidatorHandler<T> = (host: T) => boolean;\ntype ValidatorMessageFormat<T> = (host: T) => string;\n\nexport interface Validator<T = any> {\n key: keyof ValidityStateFlags;\n message: string | ValidatorMessageFormat<T>;\n isValid: ValidatorHandler<T>;\n}\n\nconst emailRegex =\n /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n\nexport const requiredValidator: Validator<{\n required: boolean;\n value?: unknown;\n}> = {\n key: 'valueMissing',\n message: validatorMessages.required,\n isValid: ({ required, value }) => (required ? !!value : true),\n};\n\nexport const requiredBooleanValidator: Validator<{\n required: boolean;\n checked: boolean;\n}> = {\n key: 'valueMissing',\n message: validatorMessages.required,\n isValid: ({ required, checked }) => (required ? checked : true),\n};\n\nexport const minLengthValidator: Validator<{\n minLength: number;\n value: string;\n}> = {\n key: 'tooShort',\n message: ({ minLength }) =>\n formatString(validatorMessages.minLength, minLength),\n isValid: ({ minLength, value }) =>\n minLength ? value.length >= minLength : true,\n};\n\nexport const maxLengthValidator: Validator<{\n maxLength: number;\n value: string;\n}> = {\n key: 'tooLong',\n message: ({ maxLength }) =>\n formatString(validatorMessages.maxLength, maxLength),\n isValid: ({ maxLength, value }) =>\n maxLength ? value.length <= maxLength : true,\n};\n\nexport const patternValidator: Validator<{ pattern: string; value: string }> = {\n key: 'patternMismatch',\n message: validatorMessages.pattern,\n isValid: ({ pattern, value }) =>\n pattern ? new RegExp(pattern, 'u').test(value) : true,\n};\n\nexport const minValidator: Validator<{\n min: number | string;\n value: number | string;\n}> = {\n key: 'rangeUnderflow',\n message: ({ min }) => formatString(validatorMessages.min, min),\n isValid: ({ min, value }) =>\n isDefined(min)\n ? isDefined(value) && asNumber(value) >= asNumber(min)\n : true,\n};\n\nexport const maxValidator: Validator<{\n max: number | string;\n value: number | string;\n}> = {\n key: 'rangeOverflow',\n message: ({ max }) => formatString(validatorMessages.max, max),\n isValid: ({ max, value }) =>\n isDefined(max)\n ? isDefined(value) && asNumber(value) <= asNumber(max)\n : true,\n};\n\nexport const stepValidator: Validator<{\n min: number | string;\n step: number | string;\n value: number | string;\n}> = {\n key: 'stepMismatch',\n message: 'Value does not conform to step constraint',\n isValid: ({ min, step, value }) =>\n isDefined(step)\n ? (asNumber(value) - asNumber(min)) % asNumber(step, 1) === 0\n : true,\n};\n\nexport const emailValidator: Validator<{ value: string }> = {\n key: 'typeMismatch',\n message: validatorMessages.email,\n isValid: ({ value }) => emailRegex.test(value),\n};\n\nexport const urlValidator: Validator<{ value: string }> = {\n key: 'typeMismatch',\n message: validatorMessages.url,\n isValid: ({ value }) => URL.canParse(value),\n};\n\nexport const minDateValidator: Validator<{\n value?: Date | null;\n min?: Date | null;\n}> = {\n key: 'rangeUnderflow',\n message: ({ min }) => formatString(validatorMessages.min, min),\n isValid: ({ value, min }) =>\n min\n ? !DateTimeUtil.lessThanMinValue(value ?? new Date(), min, false, true)\n : true,\n};\n\nexport const maxDateValidator: Validator<{\n value?: Date | null;\n max?: Date | null;\n}> = {\n key: 'rangeOverflow',\n message: ({ max }) => formatString(validatorMessages.max, max),\n isValid: ({ value, max }) =>\n max\n ? !DateTimeUtil.greaterThanMaxValue(value ?? new Date(), max, false, true)\n : true,\n};\n"]}
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/components/common/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,iBAAiB,MAAM,iCAAiC,CAAC;AAChE,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,YAAY,GACb,MAAM,WAAW,CAAC;AAWnB,MAAM,UAAU,GACd,sIAAsI,CAAC;AAEzI,MAAM,CAAC,MAAM,iBAAiB,GAGzB;IACH,GAAG,EAAE,cAAc;IACnB,OAAO,EAAE,iBAAiB,CAAC,QAAQ;IACnC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;CAC9D,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAGhC;IACH,GAAG,EAAE,cAAc;IACnB,OAAO,EAAE,iBAAiB,CAAC,QAAQ;IACnC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;CAChE,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAG1B;IACH,GAAG,EAAE,UAAU;IACf,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CACzB,YAAY,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC;IACtD,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAChC,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;CAClE,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAG1B;IACH,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CACzB,YAAY,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC;IACtD,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAChC,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;CAClE,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAC3B;IACE,GAAG,EAAE,iBAAiB;IACtB,OAAO,EAAE,iBAAiB,CAAC,OAAO;IAClC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAC9B,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;CACjE,CAAC;AAEJ,MAAM,CAAC,MAAM,YAAY,GAGpB;IACH,GAAG,EAAE,gBAAgB;IACrB,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC;IAC9D,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAC1B,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC;QAChD,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC;QAClC,CAAC,CAAC,IAAI;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAGpB;IACH,GAAG,EAAE,eAAe;IACpB,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC;IAC9D,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAC1B,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC;QAChD,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC;QAClC,CAAC,CAAC,IAAI;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAIrB;IACH,GAAG,EAAE,cAAc;IACnB,OAAO,EAAE,2CAA2C;IACpD,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;QAChC,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACxD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9C,MAAM,GAAG,GAAG,YAAY,CACtB,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,EACrD,SAAS,CACV,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAiC;IAC1D,GAAG,EAAE,cAAc;IACnB,OAAO,EAAE,iBAAiB,CAAC,KAAK;IAChC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;CAChE,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAiC;IACxD,GAAG,EAAE,cAAc;IACnB,OAAO,EAAE,iBAAiB,CAAC,GAAG;IAC9B,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;CAC7D,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAGxB;IACH,GAAG,EAAE,gBAAgB;IACrB,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC;IAC9D,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAC1B,KAAK,IAAI,GAAG;QACV,CAAC,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;QACzD,CAAC,CAAC,IAAI;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAGxB;IACH,GAAG,EAAE,eAAe;IACpB,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC;IAC9D,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAC1B,KAAK,IAAI,GAAG;QACV,CAAC,CAAC,CAAC,YAAY,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;QAC5D,CAAC,CAAC,IAAI;CACX,CAAC","sourcesContent":["import { DateTimeUtil } from '../date-time-input/date-util.js';\nimport validatorMessages from './localization/validation-en.js';\nimport {\n asNumber,\n formatString,\n isDefined,\n numberOfDecimals,\n roundPrecise,\n} from './util.js';\n\ntype ValidatorHandler<T> = (host: T) => boolean;\ntype ValidatorMessageFormat<T> = (host: T) => string;\n\nexport interface Validator<T = any> {\n key: keyof ValidityStateFlags;\n message: string | ValidatorMessageFormat<T>;\n isValid: ValidatorHandler<T>;\n}\n\nconst emailRegex =\n /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n\nexport const requiredValidator: Validator<{\n required: boolean;\n value?: unknown;\n}> = {\n key: 'valueMissing',\n message: validatorMessages.required,\n isValid: ({ required, value }) => (required ? !!value : true),\n};\n\nexport const requiredBooleanValidator: Validator<{\n required: boolean;\n checked: boolean;\n}> = {\n key: 'valueMissing',\n message: validatorMessages.required,\n isValid: ({ required, checked }) => (required ? checked : true),\n};\n\nexport const minLengthValidator: Validator<{\n minLength?: number;\n value: string;\n}> = {\n key: 'tooShort',\n message: ({ minLength }) =>\n formatString(validatorMessages.minLength, minLength),\n isValid: ({ minLength, value }) =>\n minLength && value ? value.length >= asNumber(minLength) : true,\n};\n\nexport const maxLengthValidator: Validator<{\n maxLength?: number;\n value: string;\n}> = {\n key: 'tooLong',\n message: ({ maxLength }) =>\n formatString(validatorMessages.maxLength, maxLength),\n isValid: ({ maxLength, value }) =>\n maxLength && value ? value.length <= asNumber(maxLength) : true,\n};\n\nexport const patternValidator: Validator<{ pattern?: string; value: string }> =\n {\n key: 'patternMismatch',\n message: validatorMessages.pattern,\n isValid: ({ pattern, value }) =>\n pattern && value ? new RegExp(pattern, 'u').test(value) : true,\n };\n\nexport const minValidator: Validator<{\n min?: number;\n value: number | string;\n}> = {\n key: 'rangeUnderflow',\n message: ({ min }) => formatString(validatorMessages.min, min),\n isValid: ({ min, value }) =>\n isDefined(value) && value !== '' && isDefined(min)\n ? asNumber(value) >= asNumber(min)\n : true,\n};\n\nexport const maxValidator: Validator<{\n max?: number;\n value: number | string;\n}> = {\n key: 'rangeOverflow',\n message: ({ max }) => formatString(validatorMessages.max, max),\n isValid: ({ max, value }) =>\n isDefined(value) && value !== '' && isDefined(max)\n ? asNumber(value) <= asNumber(max)\n : true,\n};\n\nexport const stepValidator: Validator<{\n min?: number;\n step?: number;\n value: number | string;\n}> = {\n key: 'stepMismatch',\n message: 'Value does not conform to step constraint',\n isValid: ({ min, step, value }) => {\n if (isDefined(value) && value !== '' && isDefined(step)) {\n const _value = asNumber(value) - asNumber(min);\n const _step = asNumber(step);\n const magnitude = numberOfDecimals(_step) + 1;\n const rem = roundPrecise(\n Math.abs(_value - _step * Math.round(_value / _step)),\n magnitude\n );\n\n return !rem;\n }\n return true;\n },\n};\n\nexport const emailValidator: Validator<{ value: string }> = {\n key: 'typeMismatch',\n message: validatorMessages.email,\n isValid: ({ value }) => (value ? emailRegex.test(value) : true),\n};\n\nexport const urlValidator: Validator<{ value: string }> = {\n key: 'typeMismatch',\n message: validatorMessages.url,\n isValid: ({ value }) => (value ? URL.canParse(value) : true),\n};\n\nexport const minDateValidator: Validator<{\n value?: Date | null;\n min?: Date | null;\n}> = {\n key: 'rangeUnderflow',\n message: ({ min }) => formatString(validatorMessages.min, min),\n isValid: ({ value, min }) =>\n value && min\n ? !DateTimeUtil.lessThanMinValue(value, min, false, true)\n : true,\n};\n\nexport const maxDateValidator: Validator<{\n value?: Date | null;\n max?: Date | null;\n}> = {\n key: 'rangeOverflow',\n message: ({ max }) => formatString(validatorMessages.max, max),\n isValid: ({ value, max }) =>\n value && max\n ? !DateTimeUtil.greaterThanMaxValue(value, max, false, true)\n : true,\n};\n"]}
@@ -3,6 +3,7 @@ import { type DateRangeDescriptor, type WeekDays } from '../calendar/types.js';
3
3
  import { type IgcCalendarResourceStrings } from '../common/i18n/calendar.resources.js';
4
4
  import { IgcBaseComboBoxLikeComponent } from '../common/mixins/combo-box.js';
5
5
  import type { AbstractConstructor } from '../common/mixins/constructor.js';
6
+ import { type FormValue } from '../common/mixins/forms/form-value.js';
6
7
  import type { DatePart } from '../date-time-input/date-util.js';
7
8
  import type { RangeTextSelectMode, SelectionRangeDirection } from '../types.js';
8
9
  export interface IgcDatePickerComponentEventMap {
@@ -103,10 +104,9 @@ export default class IgcDatePickerComponent extends IgcDatePickerComponent_base
103
104
  protected inputId: string;
104
105
  protected get __validators(): import("../common/validators.js").Validator<IgcDatePickerComponent>[];
105
106
  static register(): void;
106
- private _value?;
107
- private _activeDate?;
108
- private _min?;
109
- private _max?;
107
+ private _activeDate;
108
+ private _min;
109
+ private _max;
110
110
  private _disabledDates?;
111
111
  private _dateConstraints?;
112
112
  private _displayFormat?;
@@ -119,6 +119,7 @@ export default class IgcDatePickerComponent extends IgcDatePickerComponent_base
119
119
  private actions;
120
120
  private headerDateSlotItems;
121
121
  protected get _isMaterialTheme(): boolean;
122
+ protected _formValue: FormValue<Date | null>;
122
123
  /**
123
124
  * Sets the state of the datepicker dropdown.
124
125
  * @attr
@@ -148,35 +149,38 @@ export default class IgcDatePickerComponent extends IgcDatePickerComponent_base
148
149
  * The value of the picker
149
150
  * @attr
150
151
  */
151
- set value(value: Date | null);
152
+ set value(value: Date | string | null | undefined);
152
153
  get value(): Date | null;
153
154
  /**
154
155
  * Gets/Sets the date which is shown in the calendar picker and is highlighted.
155
156
  * By default it is the current date.
156
157
  */
157
- set activeDate(value: Date);
158
+ set activeDate(value: Date | string | null | undefined);
158
159
  get activeDate(): Date;
159
160
  /**
160
161
  * The minimum value required for the date picker to remain valid.
161
162
  * @attr
162
163
  */
163
- set min(value: Date);
164
- get min(): Date;
164
+ set min(value: Date | string | null | undefined);
165
+ get min(): Date | null;
165
166
  /**
166
167
  * The maximum value required for the date picker to remain valid.
167
168
  * @attr
168
169
  */
169
- set max(value: Date);
170
- get max(): Date;
171
- /** The orientation of the calendar header.
170
+ set max(value: Date | string | null | undefined);
171
+ get max(): Date | null;
172
+ /**
173
+ * The orientation of the calendar header.
172
174
  * @attr header-orientation
173
175
  */
174
176
  headerOrientation: 'vertical' | 'horizontal';
175
- /** The orientation of the multiple months displayed in the calendar's days view.
177
+ /**
178
+ * The orientation of the multiple months displayed in the calendar's days view.
176
179
  * @attr
177
180
  */
178
181
  orientation: 'vertical' | 'horizontal';
179
- /** Determines whether the calendar hides its header.
182
+ /**
183
+ * Determines whether the calendar hides its header.
180
184
  * @attr hide-header
181
185
  */
182
186
  hideHeader: boolean;
@@ -264,7 +268,6 @@ export default class IgcDatePickerComponent extends IgcDatePickerComponent_base
264
268
  protected handleClosing(): void;
265
269
  protected handleDialogClosing(event: Event): void;
266
270
  protected handleDialogClosed(event: Event): void;
267
- protected _setDefaultValue(_: string | null, current: string | null): void;
268
271
  private setDateConstraints;
269
272
  private renderClearIcon;
270
273
  private renderCalendarIcon;
@@ -11,7 +11,7 @@ import { ifDefined } from 'lit/directives/if-defined.js';
11
11
  import { live } from 'lit/directives/live.js';
12
12
  import { getThemeController, themes } from '../../theming/theming-decorator.js';
13
13
  import IgcCalendarComponent, { focusActiveDate } from '../calendar/calendar.js';
14
- import { dateFromISOString } from '../calendar/helpers.js';
14
+ import { convertToDate } from '../calendar/helpers.js';
15
15
  import { DateRangeType, } from '../calendar/types.js';
16
16
  import { addKeybindings, altKey, arrowDown, arrowUp, escapeKey, } from '../common/controllers/key-bindings.js';
17
17
  import { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';
@@ -21,6 +21,7 @@ import { IgcCalendarResourceStringEN, } from '../common/i18n/calendar.resources.
21
21
  import { IgcBaseComboBoxLikeComponent } from '../common/mixins/combo-box.js';
22
22
  import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
23
23
  import { FormAssociatedRequiredMixin } from '../common/mixins/forms/associated-required.js';
24
+ import { createFormValueState, defaultDateTimeTransformers, } from '../common/mixins/forms/form-value.js';
24
25
  import { createCounter, findElementFromEventPath } from '../common/util.js';
25
26
  import IgcDateTimeInputComponent from '../date-time-input/date-time-input.js';
26
27
  import IgcDialogComponent from '../dialog/dialog.js';
@@ -47,21 +48,20 @@ let IgcDatePickerComponent = IgcDatePickerComponent_1 = class IgcDatePickerCompo
47
48
  return getThemeController(this)?.theme === 'material';
48
49
  }
49
50
  set value(value) {
50
- this._value = value;
51
- this._setFormValue(value ? value.toISOString() : null);
51
+ this._formValue.setValueAndFormState(value);
52
52
  this._validate();
53
53
  }
54
54
  get value() {
55
- return this._value ?? null;
55
+ return this._formValue.value;
56
56
  }
57
57
  set activeDate(value) {
58
- this._activeDate = value;
58
+ this._activeDate = convertToDate(value);
59
59
  }
60
60
  get activeDate() {
61
61
  return this._activeDate ?? this._calendar?.activeDate;
62
62
  }
63
63
  set min(value) {
64
- this._min = value;
64
+ this._min = convertToDate(value);
65
65
  this.setDateConstraints();
66
66
  this._updateValidity();
67
67
  }
@@ -69,7 +69,7 @@ let IgcDatePickerComponent = IgcDatePickerComponent_1 = class IgcDatePickerCompo
69
69
  return this._min;
70
70
  }
71
71
  set max(value) {
72
- this._max = value;
72
+ this._max = convertToDate(value);
73
73
  this.setDateConstraints();
74
74
  this._updateValidity();
75
75
  }
@@ -102,6 +102,9 @@ let IgcDatePickerComponent = IgcDatePickerComponent_1 = class IgcDatePickerCompo
102
102
  constructor() {
103
103
  super();
104
104
  this.inputId = `date-picker-${IgcDatePickerComponent_1.increment()}`;
105
+ this._activeDate = null;
106
+ this._min = null;
107
+ this._max = null;
105
108
  this.open = false;
106
109
  this.mode = 'dropdown';
107
110
  this.nonEditable = false;
@@ -117,6 +120,10 @@ let IgcDatePickerComponent = IgcDatePickerComponent_1 = class IgcDatePickerCompo
117
120
  this.prompt = '_';
118
121
  this.resourceStrings = IgcCalendarResourceStringEN;
119
122
  this.weekStart = 'sunday';
123
+ this._formValue = createFormValueState(this, {
124
+ initialValue: null,
125
+ transformers: defaultDateTimeTransformers,
126
+ });
120
127
  this.addEventListener('focusin', this.handleFocusIn);
121
128
  this.addEventListener('focusout', this.handleFocusOut);
122
129
  this._rootClickController.update({ hideCallback: this.handleClosing });
@@ -195,7 +202,7 @@ let IgcDatePickerComponent = IgcDatePickerComponent_1 = class IgcDatePickerCompo
195
202
  event.stopPropagation();
196
203
  if (this.readOnly) {
197
204
  await this._calendar.updateComplete;
198
- this._calendar.value = this._value ?? undefined;
205
+ this._calendar.value = this.value;
199
206
  return;
200
207
  }
201
208
  this.value = event.target.value;
@@ -221,16 +228,19 @@ let IgcDatePickerComponent = IgcDatePickerComponent_1 = class IgcDatePickerCompo
221
228
  handleDialogClosed(event) {
222
229
  event.stopPropagation();
223
230
  }
224
- _setDefaultValue(_, current) {
225
- this._defaultValue = dateFromISOString(current);
226
- }
227
231
  setDateConstraints() {
228
232
  const dates = [];
229
233
  if (this._min) {
230
- dates.push({ type: DateRangeType.Before, dateRange: [this._min] });
234
+ dates.push({
235
+ type: DateRangeType.Before,
236
+ dateRange: [this._min],
237
+ });
231
238
  }
232
239
  if (this._max) {
233
- dates.push({ type: DateRangeType.After, dateRange: [this._max] });
240
+ dates.push({
241
+ type: DateRangeType.After,
242
+ dateRange: [this._max],
243
+ });
234
244
  }
235
245
  if (this._disabledDates?.length) {
236
246
  dates.push(...this.disabledDates);
@@ -290,8 +300,8 @@ let IgcDatePickerComponent = IgcDatePickerComponent_1 = class IgcDatePickerCompo
290
300
  ?show-week-numbers=${this.showWeekNumbers}
291
301
  ?hide-outside-days=${this.hideOutsideDays}
292
302
  ?hide-header=${hideHeader}
293
- .activeDate=${this.activeDate ?? this.value ?? new Date()}
294
- .value=${this.value ?? undefined}
303
+ .activeDate=${this.activeDate ?? this.value}
304
+ .value=${this.value}
295
305
  .headerOrientation=${this.headerOrientation}
296
306
  .orientation=${this.orientation}
297
307
  .visibleMonths=${this.visibleMonths}
@@ -374,7 +384,7 @@ let IgcDatePickerComponent = IgcDatePickerComponent_1 = class IgcDatePickerCompo
374
384
  ?disabled=${this.disabled}
375
385
  ?readonly=${readOnly}
376
386
  ?required=${this.required}
377
- .value=${this.value ?? null}
387
+ .value=${this.value}
378
388
  .locale=${this.locale}
379
389
  .prompt=${this.prompt}
380
390
  .outlined=${this.outlined}
@@ -449,16 +459,16 @@ __decorate([
449
459
  property({ type: Boolean, reflect: true, attribute: 'readonly' })
450
460
  ], IgcDatePickerComponent.prototype, "readOnly", void 0);
451
461
  __decorate([
452
- property({ converter: dateFromISOString })
462
+ property({ converter: convertToDate })
453
463
  ], IgcDatePickerComponent.prototype, "value", null);
454
464
  __decorate([
455
- property({ attribute: 'active-date', converter: dateFromISOString })
465
+ property({ attribute: 'active-date', converter: convertToDate })
456
466
  ], IgcDatePickerComponent.prototype, "activeDate", null);
457
467
  __decorate([
458
- property({ converter: dateFromISOString })
468
+ property({ converter: convertToDate })
459
469
  ], IgcDatePickerComponent.prototype, "min", null);
460
470
  __decorate([
461
- property({ converter: dateFromISOString })
471
+ property({ converter: convertToDate })
462
472
  ], IgcDatePickerComponent.prototype, "max", null);
463
473
  __decorate([
464
474
  property({ attribute: 'header-orientation', reflect: true })
@@ -1 +1 @@
1
- {"version":3,"file":"date-picker.js","sourceRoot":"","sources":["../../../src/components/date-picker/date-picker.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, type TemplateResult, html, nothing } from 'lit';\nimport { property, query, queryAssignedElements } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\n\nimport { getThemeController, themes } from '../../theming/theming-decorator.js';\nimport IgcCalendarComponent, { focusActiveDate } from '../calendar/calendar.js';\nimport { dateFromISOString } from '../calendar/helpers.js';\nimport {\n type DateRangeDescriptor,\n DateRangeType,\n type WeekDays,\n} from '../calendar/types.js';\nimport {\n addKeybindings,\n altKey,\n arrowDown,\n arrowUp,\n escapeKey,\n} from '../common/controllers/key-bindings.js';\nimport { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport {\n IgcCalendarResourceStringEN,\n type IgcCalendarResourceStrings,\n} from '../common/i18n/calendar.resources.js';\nimport { IgcBaseComboBoxLikeComponent } from '../common/mixins/combo-box.js';\nimport type { AbstractConstructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { FormAssociatedRequiredMixin } from '../common/mixins/forms/associated-required.js';\nimport { createCounter, findElementFromEventPath } from '../common/util.js';\nimport IgcDateTimeInputComponent from '../date-time-input/date-time-input.js';\nimport type { DatePart } from '../date-time-input/date-util.js';\nimport IgcDialogComponent from '../dialog/dialog.js';\nimport IgcFocusTrapComponent from '../focus-trap/focus-trap.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport IgcPopoverComponent from '../popover/popover.js';\nimport type { RangeTextSelectMode, SelectionRangeDirection } from '../types.js';\nimport IgcValidationContainerComponent from '../validation-container/validation-container.js';\nimport { styles } from './themes/date-picker.base.css.js';\nimport { styles as shared } from './themes/shared/date-picker.common.css.js';\nimport { all } from './themes/themes.js';\nimport { datePickerValidators } from './validators.js';\n\nexport interface IgcDatePickerComponentEventMap {\n igcOpening: CustomEvent<void>;\n igcOpened: CustomEvent<void>;\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n igcChange: CustomEvent<Date>;\n igcInput: CustomEvent<Date>;\n}\n\nconst formats = new Set(['short', 'medium', 'long', 'full']);\n\n/**\n * igc-date-picker is a feature rich component used for entering a date through manual text input or\n * choosing date values from a calendar dialog that pops up.\n *\n * @element igc-date-picker\n *\n * @slot prefix - Renders content before the input.\n * @slot suffix - Renders content after the input.\n * @slot helper-text - Renders content below the input.\n * @slot bad-input - Renders content when the value is in the disabledDates ranges.\n * @slot value-missing - Renders content when the required validation fails.\n * @slot range-overflow - Renders content when the max validation fails.\n * @slot range-underflow - Renders content when the min validation fails.\n * @slot custom-error - Renders content when setCustomValidity(message) is set.\n * @slot invalid - Renders content when the component is in invalid state (validity.valid = false).\n * @slot title - Renders content in the calendar title.\n * @slot header-date - Renders content instead of the current date/range in the calendar header.\n * @slot clear-icon - Renders a clear icon template.\n * @slot calendar-icon - Renders the icon/content for the calendar picker.\n * @slot calendar-icon-open - Renders the icon/content for the picker in open state.\n * @slot actions - Renders content in the action part of the picker in open state.\n *\n * @fires igcOpening - Emitted just before the calendar dropdown is shown.\n * @fires igcOpened - Emitted after the calendar dropdown is shown.\n * @fires igcClosing - Emitted just before the calendar dropdown is hidden.\n * @fires igcClosed - Emitted after the calendar dropdown is hidden.\n * @fires igcChange - Emitted when the user modifies and commits the elements's value.\n * @fires igcInput - Emitted when when the user types in the element.\n *\n * @csspart label - The label wrapper that renders content above the target input.\n * @csspart container - The main wrapper that holds all main input elements.\n * @csspart input - The native input element.\n * @csspart prefix - The prefix wrapper.\n * @csspart suffix - The suffix wrapper.\n * @csspart calendar-icon - The calendar icon wrapper for closed state.\n * @csspart calendar-icon-open - The calendar icon wrapper for opened state.\n * @csspart clear-icon - The clear icon wrapper.\n * @csspart actions - The actions wrapper.\n * @csspart helper-text - The helper-text wrapper that renders content below the target input.\n * @csspart header - The calendar header element.\n * @csspart header-title - The calendar header title element.\n * @csspart header-date - The calendar header date element.\n * @csspart calendar-content - The calendar content element which contains the views and navigation elements.\n * @csspart navigation - The calendar navigation container element.\n * @csspart months-navigation - The calendar months navigation button element.\n * @csspart years-navigation - The calendar years navigation button element.\n * @csspart years-range - The calendar years range element.\n * @csspart navigation-buttons - The calendar navigation buttons container.\n * @csspart navigation-button - The calendar previous/next navigation button.\n * @csspart days-view-container - The calendar days view container element.\n * @csspart days-view - The calendar days view element.\n * @csspart months-view - The calendar months view element.\n * @csspart years-view - The calendar years view element.\n * @csspart days-row - The calendar days row element.\n * @csspart calendar-label - The calendar week header label element.\n * @csspart week-number - The calendar week number element.\n * @csspart week-number-inner - The calendar week number inner element.\n * @csspart date - The calendar date element.\n * @csspart date-inner - The calendar date inner element.\n * @csspart first - The calendar first selected date element in range selection.\n * @csspart last - The calendar last selected date element in range selection.\n * @csspart inactive - The calendar inactive date element.\n * @csspart hidden - The calendar hidden date element.\n * @csspart weekend - The calendar weekend date element.\n * @csspart range - The calendar range selected element.\n * @csspart special - The calendar special date element.\n * @csspart disabled - The calendar disabled date element.\n * @csspart single - The calendar single selected date element.\n * @csspart preview - The calendar range selection preview date element.\n * @csspart month - The calendar month element.\n * @csspart month-inner - The calendar month inner element.\n * @csspart year - The calendar year element.\n * @csspart year-inner - The calendar year inner element.\n * @csspart selected - The calendar selected state for element(s). Applies to date, month and year elements.\n * @csspart current - The calendar current state for element(s). Applies to date, month and year elements.\n */\n@themes(all, { exposeController: true })\n@blazorAdditionalDependencies(\n 'IgcCalendarComponent, IgcDateTimeInputComponent, IgcDialogComponent, IgcIconComponent'\n)\nexport default class IgcDatePickerComponent extends FormAssociatedRequiredMixin(\n EventEmitterMixin<\n IgcDatePickerComponentEventMap,\n AbstractConstructor<IgcBaseComboBoxLikeComponent>\n >(IgcBaseComboBoxLikeComponent)\n) {\n public static readonly tagName = 'igc-date-picker';\n public static styles = [styles, shared];\n\n protected static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n private static readonly increment = createCounter();\n protected inputId = `date-picker-${IgcDatePickerComponent.increment()}`;\n\n protected override get __validators() {\n return datePickerValidators;\n }\n\n /* blazorSuppress */\n public static register() {\n registerComponent(\n IgcDatePickerComponent,\n IgcCalendarComponent,\n IgcDateTimeInputComponent,\n IgcFocusTrapComponent,\n IgcIconComponent,\n IgcPopoverComponent,\n IgcDialogComponent,\n IgcValidationContainerComponent\n );\n }\n\n private _value?: Date | null;\n private _activeDate?: Date | null;\n private _min?: Date;\n private _max?: Date;\n private _disabledDates?: DateRangeDescriptor[];\n private _dateConstraints?: DateRangeDescriptor[];\n private _displayFormat?: string;\n private _inputFormat?: string;\n\n private get isDropDown() {\n return this.mode === 'dropdown';\n }\n\n @query(IgcDateTimeInputComponent.tagName)\n private _input!: IgcDateTimeInputComponent;\n\n @query(IgcCalendarComponent.tagName)\n private _calendar!: IgcCalendarComponent;\n\n @queryAssignedElements({ slot: 'prefix' })\n private prefixes!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'suffix' })\n private suffixes!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'actions' })\n private actions!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'header-date' })\n private headerDateSlotItems!: Array<HTMLElement>;\n\n protected get _isMaterialTheme(): boolean {\n return getThemeController(this)?.theme === 'material';\n }\n\n /**\n * Sets the state of the datepicker dropdown.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public override open = false;\n\n /**\n * The label of the datepicker.\n * @attr label\n */\n @property()\n public label!: string;\n\n /**\n * Determines whether the calendar is opened in a dropdown or a modal dialog\n * @attr mode\n */\n @property()\n public mode: 'dropdown' | 'dialog' = 'dropdown';\n\n /**\n * Whether to allow typing in the input.\n * @attr non-editable\n */\n @property({ type: Boolean, reflect: true, attribute: 'non-editable' })\n public nonEditable = false;\n\n /**\n * Makes the control a readonly field.\n * @attr readonly\n */\n @property({ type: Boolean, reflect: true, attribute: 'readonly' })\n public readOnly = false;\n\n /* @tsTwoWayProperty(true, \"igcChange\", \"detail\", false) */\n /**\n * The value of the picker\n * @attr\n */\n @property({ converter: dateFromISOString })\n public set value(value: Date | null) {\n this._value = value;\n this._setFormValue(value ? value.toISOString() : null);\n this._validate();\n }\n\n public get value(): Date | null {\n return this._value ?? null;\n }\n\n /**\n * Gets/Sets the date which is shown in the calendar picker and is highlighted.\n * By default it is the current date.\n */\n @property({ attribute: 'active-date', converter: dateFromISOString })\n public set activeDate(value: Date) {\n this._activeDate = value;\n }\n\n public get activeDate(): Date {\n return this._activeDate ?? this._calendar?.activeDate;\n }\n\n /**\n * The minimum value required for the date picker to remain valid.\n * @attr\n */\n @property({ converter: dateFromISOString })\n public set min(value: Date) {\n this._min = value;\n this.setDateConstraints();\n this._updateValidity();\n }\n\n public get min(): Date {\n return this._min as Date;\n }\n\n /**\n * The maximum value required for the date picker to remain valid.\n * @attr\n */\n @property({ converter: dateFromISOString })\n public set max(value: Date) {\n this._max = value;\n this.setDateConstraints();\n this._updateValidity();\n }\n\n public get max(): Date {\n return this._max as Date;\n }\n\n /** The orientation of the calendar header.\n * @attr header-orientation\n */\n @property({ attribute: 'header-orientation', reflect: true })\n public headerOrientation: 'vertical' | 'horizontal' = 'horizontal';\n\n /** The orientation of the multiple months displayed in the calendar's days view.\n * @attr\n */\n @property()\n public orientation: 'vertical' | 'horizontal' = 'horizontal';\n\n /** Determines whether the calendar hides its header.\n * @attr hide-header\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-header' })\n public hideHeader = false;\n\n /**\n * Controls the visibility of the dates that do not belong to the current month.\n * @attr hide-outside-days\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-outside-days' })\n public hideOutsideDays = false;\n\n /** Gets/sets disabled dates. */\n @property({ attribute: false })\n public set disabledDates(dates: DateRangeDescriptor[]) {\n this._disabledDates = dates;\n this.setDateConstraints();\n this._updateValidity();\n }\n\n public get disabledDates() {\n return this._disabledDates as DateRangeDescriptor[];\n }\n\n /** Gets/sets special dates. */\n @property({ attribute: false })\n public specialDates!: DateRangeDescriptor[];\n\n /**\n * Whether the control will have outlined appearance.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public outlined = false;\n\n /**\n * The placeholder attribute of the control.\n * @attr\n */\n @property()\n public placeholder!: string;\n\n /**\n * The number of months displayed in the calendar.\n * @attr visible-months\n */\n @property({ type: Number, attribute: 'visible-months' })\n public visibleMonths = 1;\n\n /**\n * Whether to show the number of the week in the calendar.\n * @attr show-week-numbers\n */\n @property({ type: Boolean, reflect: true, attribute: 'show-week-numbers' })\n public showWeekNumbers = false;\n\n /**\n * Format to display the value in when not editing.\n * Defaults to the input format if not set.\n * @attr display-format\n */\n @property({ attribute: 'display-format' })\n public set displayFormat(value: string) {\n this._displayFormat = value;\n }\n\n public get displayFormat(): string {\n return this._displayFormat ?? this.inputFormat;\n }\n\n /**\n * The date format to apply on the input.\n * Defaults to the current locale Intl.DateTimeFormat\n * @attr input-format\n */\n @property({ attribute: 'input-format' })\n public set inputFormat(value: string) {\n this._inputFormat = value;\n }\n\n public get inputFormat(): string {\n return this._inputFormat ?? this._input?.inputFormat;\n }\n\n /**\n * The locale settings used to display the value.\n * @attr\n */\n @property()\n public locale = 'en';\n\n /** The prompt symbol to use for unfilled parts of the mask.\n * @attr\n */\n @property()\n public prompt = '_';\n\n /** The resource strings of the calendar. */\n @property({ attribute: false })\n public resourceStrings: IgcCalendarResourceStrings =\n IgcCalendarResourceStringEN;\n\n @watch('open')\n protected openChange() {\n this._rootClickController.update();\n }\n\n /** Sets the start day of the week for the calendar. */\n @property({ attribute: 'week-start' })\n public weekStart: WeekDays = 'sunday';\n\n constructor() {\n super();\n\n this.addEventListener('focusin', this.handleFocusIn);\n this.addEventListener('focusout', this.handleFocusOut);\n\n this._rootClickController.update({ hideCallback: this.handleClosing });\n\n addKeybindings(this, {\n skip: () => this.disabled,\n bindingDefaults: { preventDefault: true },\n })\n .set([altKey, arrowDown], this.handleAnchorClick)\n .set([altKey, arrowUp], this.onEscapeKey)\n .set(escapeKey, this.onEscapeKey);\n }\n\n protected override createRenderRoot() {\n const root = super.createRenderRoot();\n root.addEventListener('slotchange', () => this.requestUpdate());\n return root;\n }\n\n /** Clears the input part of the component of any user input */\n public clear() {\n this.value = null;\n this._input?.clear();\n }\n\n /** Increments the passed in date part */\n public stepUp(datePart?: DatePart, delta?: number): void {\n this._input.stepUp(datePart, delta);\n }\n\n /** Decrements the passed in date part */\n public stepDown(datePart?: DatePart, delta?: number): void {\n this._input.stepDown(datePart, delta);\n }\n\n /** Selects the text in the input of the component */\n public select(): void {\n this._input.select();\n }\n\n /** Sets the text selection range in the input of the component */\n public setSelectionRange(\n start: number,\n end: number,\n direction?: SelectionRangeDirection\n ): void {\n this._input.setSelectionRange(start, end, direction);\n }\n\n /* Replaces the selected text in the input and re-applies the mask */\n public setRangeText(\n replacement: string,\n start: number,\n end: number,\n mode?: RangeTextSelectMode\n ): void {\n this._input.setRangeText(replacement, start, end, mode);\n this.value = this._input.value;\n }\n\n protected async onEscapeKey() {\n if (await this._hide(true)) {\n this._input.focus();\n }\n }\n\n protected handleFocusIn() {\n this._dirty = true;\n }\n\n protected handleFocusOut({ relatedTarget }: FocusEvent) {\n if (!this.contains(relatedTarget as Node)) {\n this.checkValidity();\n }\n }\n\n protected handlerCalendarIconSlotPointerDown(event: PointerEvent) {\n // This is where the delegateFocus of the underlying input is a chore.\n // If we have a required validator we don't want the input to enter an invalid\n // state right off the bat when opening the picker which will happen since focus is transferred to the calendar element.\n // So we call preventDefault on the event in order to not focus the input and trigger its validation logic on blur.\n event.preventDefault();\n }\n\n protected handleInputClick(event: Event) {\n if (findElementFromEventPath('input', event)) {\n // Open only if the click originates from the underlying input\n this.handleAnchorClick();\n }\n }\n\n protected override async handleAnchorClick() {\n this._calendar.activeDate = this.value ?? this._calendar.activeDate;\n\n super.handleAnchorClick();\n await this.updateComplete;\n this._calendar[focusActiveDate]();\n }\n\n private async _shouldCloseCalendarDropdown() {\n if (!this.keepOpenOnSelect && (await this._hide(true))) {\n this._input.focus();\n this._input.select();\n }\n }\n\n protected handleInputChangeEvent(event: CustomEvent<Date>) {\n event.stopPropagation();\n this.value = (event.target as IgcDateTimeInputComponent).value!;\n this.emitEvent('igcChange', { detail: this.value });\n }\n\n protected async handleCalendarChangeEvent(event: CustomEvent<Date>) {\n event.stopPropagation();\n\n if (this.readOnly) {\n // Wait till the calendar finishes updating and then restore the current value from the date-picker.\n await this._calendar.updateComplete;\n this._calendar.value = this._value ?? undefined;\n return;\n }\n\n this.value = (event.target as IgcCalendarComponent).value!;\n this.emitEvent('igcChange', { detail: this.value });\n\n this._shouldCloseCalendarDropdown();\n }\n\n protected handleInputEvent(event: CustomEvent<Date>) {\n event.stopPropagation();\n\n if (this.nonEditable) {\n event.preventDefault();\n return;\n }\n\n this.value = (event.target as IgcDateTimeInputComponent).value!;\n this.emitEvent('igcInput', { detail: this.value });\n }\n\n protected handleClosing() {\n this._hide(true);\n }\n\n protected handleDialogClosing(event: Event) {\n event.stopPropagation();\n this._hide(true);\n }\n\n protected handleDialogClosed(event: Event) {\n event.stopPropagation();\n }\n\n protected override _setDefaultValue(\n _: string | null,\n current: string | null\n ) {\n this._defaultValue = dateFromISOString(current);\n }\n\n private setDateConstraints() {\n const dates: DateRangeDescriptor[] = [];\n if (this._min) {\n dates.push({ type: DateRangeType.Before, dateRange: [this._min] });\n }\n if (this._max) {\n dates.push({ type: DateRangeType.After, dateRange: [this._max] });\n }\n if (this._disabledDates?.length) {\n dates.push(...this.disabledDates);\n }\n\n this._dateConstraints = dates.length ? dates : undefined;\n }\n\n private renderClearIcon() {\n return !this.value\n ? nothing\n : html`\n <span slot=\"suffix\" part=\"clear-icon\" @click=${this.clear}>\n <slot name=\"clear-icon\">\n <igc-icon\n name=\"input_clear\"\n collection=\"default\"\n aria-hidden=\"true\"\n ></igc-icon>\n </slot>\n </span>\n `;\n }\n\n private renderCalendarIcon() {\n const defaultIcon = html`\n <igc-icon name=\"today\" collection=\"default\" aria-hidden=\"true\"></igc-icon>\n `;\n\n const state = this.open ? 'calendar-icon-open' : 'calendar-icon';\n\n return html`\n <span\n slot=\"prefix\"\n part=${state}\n @pointerdown=${this.handlerCalendarIconSlotPointerDown}\n @click=${this.handleAnchorClick}\n >\n <slot name=${state}>${defaultIcon}</slot>\n </span>\n `;\n }\n\n private renderCalendarSlots() {\n if (this.isDropDown) {\n return nothing;\n }\n\n const hasHeaderDate = this.headerDateSlotItems.length ? 'header-date' : '';\n\n return html`\n <slot name=\"title\" slot=\"title\">\n ${this.resourceStrings.selectDate}\n </slot>\n <slot name=\"header-date\" slot=${hasHeaderDate}></slot>\n `;\n }\n\n private renderCalendar(id: string) {\n const hideHeader = this.isDropDown ? true : this.hideHeader;\n\n return html`\n <igc-calendar\n aria-labelledby=${id}\n role=\"dialog\"\n .inert=${!this.open || this.disabled}\n ?show-week-numbers=${this.showWeekNumbers}\n ?hide-outside-days=${this.hideOutsideDays}\n ?hide-header=${hideHeader}\n .activeDate=${this.activeDate ?? this.value ?? new Date()}\n .value=${this.value ?? undefined}\n .headerOrientation=${this.headerOrientation}\n .orientation=${this.orientation}\n .visibleMonths=${this.visibleMonths}\n .locale=${this.locale}\n .disabledDates=${this._dateConstraints!}\n .specialDates=${this.specialDates}\n .weekStart=${this.weekStart}\n @igcChange=${this.handleCalendarChangeEvent}\n exportparts=\"header, header-title, header-date, content: calendar-content, navigation, months-navigation,\n years-navigation, years-range, navigation-buttons, navigation-button, days-view-container,\n days-view, months-view, years-view, days-row, label: calendar-label, week-number, week-number-inner, date,\n date-inner, first, last, inactive, hidden, weekend, range, special, disabled, single, preview,\n month, month-inner, year, year-inner, selected, current\"\n >\n ${this.renderCalendarSlots()}\n </igc-calendar>\n `;\n }\n\n protected renderActions() {\n const slot = this.isDropDown || !this.actions.length ? undefined : 'footer';\n\n // If in dialog mode use the dialog footer slot\n return html`\n <div\n part=\"actions\"\n ?hidden=${!this.actions.length}\n slot=${ifDefined(slot)}\n >\n <slot name=\"actions\"></slot>\n </div>\n `;\n }\n\n protected renderPicker(id: string) {\n return this.isDropDown\n ? html`\n <igc-popover ?open=${this.open} anchor=${id} flip shift>\n <igc-focus-trap ?disabled=${!this.open || this.disabled}>\n ${this.renderCalendar(id)}${this.renderActions()}\n </igc-focus-trap>\n </igc-popover>\n `\n : html`\n <igc-dialog\n aria-label=${ifDefined(this.resourceStrings.selectDate)}\n role=\"dialog\"\n ?open=${this.open}\n ?close-on-outside-click=${!this.keepOpenOnOutsideClick}\n hide-default-action\n @igcClosing=${this.handleDialogClosing}\n @igcClosed=${this.handleDialogClosed}\n exportparts=\"base: dialog-base, title, footer, overlay\"\n >\n ${this.renderCalendar(id)}${this.renderActions()}\n </igc-dialog>\n `;\n }\n\n private renderLabel(id: string) {\n return this.label\n ? html`<label\n part=\"label\"\n for=${id}\n @click=${this.isDropDown ? nothing : this.handleAnchorClick}\n >${this.label}</label\n >`\n : nothing;\n }\n\n private renderHelperText(): TemplateResult {\n return IgcValidationContainerComponent.create(this);\n }\n\n protected renderInput(id: string) {\n const format = formats.has(this._displayFormat!)\n ? `${this._displayFormat}Date`\n : this._displayFormat;\n\n // Dialog mode is always readonly, rest depends on configuration\n const readOnly = !this.isDropDown || this.readOnly || this.nonEditable;\n\n return html`\n <igc-date-time-input\n id=${id}\n aria-haspopup=\"dialog\"\n label=${ifDefined(this._isMaterialTheme ? this.label : undefined)}\n input-format=${ifDefined(this._inputFormat)}\n display-format=${ifDefined(format)}\n ?disabled=${this.disabled}\n ?readonly=${readOnly}\n ?required=${this.required}\n .value=${this.value ?? null}\n .locale=${this.locale}\n .prompt=${this.prompt}\n .outlined=${this.outlined}\n .placeholder=${this.placeholder}\n .min=${this.min}\n .max=${this.max}\n .invalid=${live(this.invalid)}\n @igcChange=${this.handleInputChangeEvent}\n @igcInput=${this.handleInputEvent}\n @click=${this.isDropDown ? nothing : this.handleInputClick}\n exportparts=\"input, label, prefix, suffix\"\n >\n ${this.renderCalendarIcon()}\n <slot\n name=\"prefix\"\n slot=${ifDefined(!this.prefixes.length ? undefined : 'prefix')}\n ></slot>\n ${this.renderClearIcon()}\n <slot\n name=\"suffix\"\n slot=${ifDefined(!this.suffixes.length ? undefined : 'suffix')}\n ></slot>\n </igc-date-time-input>\n `;\n }\n\n protected override render() {\n const id = this.id || this.inputId;\n\n return html`\n ${!this._isMaterialTheme ? this.renderLabel(id) : nothing}\n ${this.renderInput(id)}${this.renderPicker(id)}${this.renderHelperText()}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-date-picker': IgcDatePickerComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"date-picker.js","sourceRoot":"","sources":["../../../src/components/date-picker/date-picker.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, type TemplateResult, html, nothing } from 'lit';\nimport { property, query, queryAssignedElements } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\n\nimport { getThemeController, themes } from '../../theming/theming-decorator.js';\nimport IgcCalendarComponent, { focusActiveDate } from '../calendar/calendar.js';\nimport { convertToDate } from '../calendar/helpers.js';\nimport {\n type DateRangeDescriptor,\n DateRangeType,\n type WeekDays,\n} from '../calendar/types.js';\nimport {\n addKeybindings,\n altKey,\n arrowDown,\n arrowUp,\n escapeKey,\n} from '../common/controllers/key-bindings.js';\nimport { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport {\n IgcCalendarResourceStringEN,\n type IgcCalendarResourceStrings,\n} from '../common/i18n/calendar.resources.js';\nimport { IgcBaseComboBoxLikeComponent } from '../common/mixins/combo-box.js';\nimport type { AbstractConstructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { FormAssociatedRequiredMixin } from '../common/mixins/forms/associated-required.js';\nimport {\n type FormValue,\n createFormValueState,\n defaultDateTimeTransformers,\n} from '../common/mixins/forms/form-value.js';\nimport { createCounter, findElementFromEventPath } from '../common/util.js';\nimport IgcDateTimeInputComponent from '../date-time-input/date-time-input.js';\nimport type { DatePart } from '../date-time-input/date-util.js';\nimport IgcDialogComponent from '../dialog/dialog.js';\nimport IgcFocusTrapComponent from '../focus-trap/focus-trap.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport IgcPopoverComponent from '../popover/popover.js';\nimport type { RangeTextSelectMode, SelectionRangeDirection } from '../types.js';\nimport IgcValidationContainerComponent from '../validation-container/validation-container.js';\nimport { styles } from './themes/date-picker.base.css.js';\nimport { styles as shared } from './themes/shared/date-picker.common.css.js';\nimport { all } from './themes/themes.js';\nimport { datePickerValidators } from './validators.js';\n\nexport interface IgcDatePickerComponentEventMap {\n igcOpening: CustomEvent<void>;\n igcOpened: CustomEvent<void>;\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n igcChange: CustomEvent<Date>;\n igcInput: CustomEvent<Date>;\n}\n\nconst formats = new Set(['short', 'medium', 'long', 'full']);\n\n/**\n * igc-date-picker is a feature rich component used for entering a date through manual text input or\n * choosing date values from a calendar dialog that pops up.\n *\n * @element igc-date-picker\n *\n * @slot prefix - Renders content before the input.\n * @slot suffix - Renders content after the input.\n * @slot helper-text - Renders content below the input.\n * @slot bad-input - Renders content when the value is in the disabledDates ranges.\n * @slot value-missing - Renders content when the required validation fails.\n * @slot range-overflow - Renders content when the max validation fails.\n * @slot range-underflow - Renders content when the min validation fails.\n * @slot custom-error - Renders content when setCustomValidity(message) is set.\n * @slot invalid - Renders content when the component is in invalid state (validity.valid = false).\n * @slot title - Renders content in the calendar title.\n * @slot header-date - Renders content instead of the current date/range in the calendar header.\n * @slot clear-icon - Renders a clear icon template.\n * @slot calendar-icon - Renders the icon/content for the calendar picker.\n * @slot calendar-icon-open - Renders the icon/content for the picker in open state.\n * @slot actions - Renders content in the action part of the picker in open state.\n *\n * @fires igcOpening - Emitted just before the calendar dropdown is shown.\n * @fires igcOpened - Emitted after the calendar dropdown is shown.\n * @fires igcClosing - Emitted just before the calendar dropdown is hidden.\n * @fires igcClosed - Emitted after the calendar dropdown is hidden.\n * @fires igcChange - Emitted when the user modifies and commits the elements's value.\n * @fires igcInput - Emitted when when the user types in the element.\n *\n * @csspart label - The label wrapper that renders content above the target input.\n * @csspart container - The main wrapper that holds all main input elements.\n * @csspart input - The native input element.\n * @csspart prefix - The prefix wrapper.\n * @csspart suffix - The suffix wrapper.\n * @csspart calendar-icon - The calendar icon wrapper for closed state.\n * @csspart calendar-icon-open - The calendar icon wrapper for opened state.\n * @csspart clear-icon - The clear icon wrapper.\n * @csspart actions - The actions wrapper.\n * @csspart helper-text - The helper-text wrapper that renders content below the target input.\n * @csspart header - The calendar header element.\n * @csspart header-title - The calendar header title element.\n * @csspart header-date - The calendar header date element.\n * @csspart calendar-content - The calendar content element which contains the views and navigation elements.\n * @csspart navigation - The calendar navigation container element.\n * @csspart months-navigation - The calendar months navigation button element.\n * @csspart years-navigation - The calendar years navigation button element.\n * @csspart years-range - The calendar years range element.\n * @csspart navigation-buttons - The calendar navigation buttons container.\n * @csspart navigation-button - The calendar previous/next navigation button.\n * @csspart days-view-container - The calendar days view container element.\n * @csspart days-view - The calendar days view element.\n * @csspart months-view - The calendar months view element.\n * @csspart years-view - The calendar years view element.\n * @csspart days-row - The calendar days row element.\n * @csspart calendar-label - The calendar week header label element.\n * @csspart week-number - The calendar week number element.\n * @csspart week-number-inner - The calendar week number inner element.\n * @csspart date - The calendar date element.\n * @csspart date-inner - The calendar date inner element.\n * @csspart first - The calendar first selected date element in range selection.\n * @csspart last - The calendar last selected date element in range selection.\n * @csspart inactive - The calendar inactive date element.\n * @csspart hidden - The calendar hidden date element.\n * @csspart weekend - The calendar weekend date element.\n * @csspart range - The calendar range selected element.\n * @csspart special - The calendar special date element.\n * @csspart disabled - The calendar disabled date element.\n * @csspart single - The calendar single selected date element.\n * @csspart preview - The calendar range selection preview date element.\n * @csspart month - The calendar month element.\n * @csspart month-inner - The calendar month inner element.\n * @csspart year - The calendar year element.\n * @csspart year-inner - The calendar year inner element.\n * @csspart selected - The calendar selected state for element(s). Applies to date, month and year elements.\n * @csspart current - The calendar current state for element(s). Applies to date, month and year elements.\n */\n@themes(all, { exposeController: true })\n@blazorAdditionalDependencies(\n 'IgcCalendarComponent, IgcDateTimeInputComponent, IgcDialogComponent, IgcIconComponent'\n)\nexport default class IgcDatePickerComponent extends FormAssociatedRequiredMixin(\n EventEmitterMixin<\n IgcDatePickerComponentEventMap,\n AbstractConstructor<IgcBaseComboBoxLikeComponent>\n >(IgcBaseComboBoxLikeComponent)\n) {\n public static readonly tagName = 'igc-date-picker';\n public static styles = [styles, shared];\n\n protected static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n private static readonly increment = createCounter();\n protected inputId = `date-picker-${IgcDatePickerComponent.increment()}`;\n\n protected override get __validators() {\n return datePickerValidators;\n }\n\n /* blazorSuppress */\n public static register() {\n registerComponent(\n IgcDatePickerComponent,\n IgcCalendarComponent,\n IgcDateTimeInputComponent,\n IgcFocusTrapComponent,\n IgcIconComponent,\n IgcPopoverComponent,\n IgcDialogComponent,\n IgcValidationContainerComponent\n );\n }\n\n private _activeDate: Date | null = null;\n private _min: Date | null = null;\n private _max: Date | null = null;\n private _disabledDates?: DateRangeDescriptor[];\n private _dateConstraints?: DateRangeDescriptor[];\n private _displayFormat?: string;\n private _inputFormat?: string;\n\n private get isDropDown() {\n return this.mode === 'dropdown';\n }\n\n @query(IgcDateTimeInputComponent.tagName)\n private _input!: IgcDateTimeInputComponent;\n\n @query(IgcCalendarComponent.tagName)\n private _calendar!: IgcCalendarComponent;\n\n @queryAssignedElements({ slot: 'prefix' })\n private prefixes!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'suffix' })\n private suffixes!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'actions' })\n private actions!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'header-date' })\n private headerDateSlotItems!: Array<HTMLElement>;\n\n protected get _isMaterialTheme(): boolean {\n return getThemeController(this)?.theme === 'material';\n }\n\n protected override _formValue: FormValue<Date | null>;\n\n /**\n * Sets the state of the datepicker dropdown.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public override open = false;\n\n /**\n * The label of the datepicker.\n * @attr label\n */\n @property()\n public label!: string;\n\n /**\n * Determines whether the calendar is opened in a dropdown or a modal dialog\n * @attr mode\n */\n @property()\n public mode: 'dropdown' | 'dialog' = 'dropdown';\n\n /**\n * Whether to allow typing in the input.\n * @attr non-editable\n */\n @property({ type: Boolean, reflect: true, attribute: 'non-editable' })\n public nonEditable = false;\n\n /**\n * Makes the control a readonly field.\n * @attr readonly\n */\n @property({ type: Boolean, reflect: true, attribute: 'readonly' })\n public readOnly = false;\n\n /* @tsTwoWayProperty(true, \"igcChange\", \"detail\", false) */\n /**\n * The value of the picker\n * @attr\n */\n @property({ converter: convertToDate })\n public set value(value: Date | string | null | undefined) {\n this._formValue.setValueAndFormState(value as Date | null);\n this._validate();\n }\n\n public get value(): Date | null {\n return this._formValue.value;\n }\n\n /**\n * Gets/Sets the date which is shown in the calendar picker and is highlighted.\n * By default it is the current date.\n */\n @property({ attribute: 'active-date', converter: convertToDate })\n public set activeDate(value: Date | string | null | undefined) {\n this._activeDate = convertToDate(value);\n }\n\n public get activeDate(): Date {\n return this._activeDate ?? this._calendar?.activeDate;\n }\n\n /**\n * The minimum value required for the date picker to remain valid.\n * @attr\n */\n @property({ converter: convertToDate })\n public set min(value: Date | string | null | undefined) {\n this._min = convertToDate(value);\n this.setDateConstraints();\n this._updateValidity();\n }\n\n public get min(): Date | null {\n return this._min;\n }\n\n /**\n * The maximum value required for the date picker to remain valid.\n * @attr\n */\n @property({ converter: convertToDate })\n public set max(value: Date | string | null | undefined) {\n this._max = convertToDate(value);\n this.setDateConstraints();\n this._updateValidity();\n }\n\n public get max(): Date | null {\n return this._max;\n }\n\n /**\n * The orientation of the calendar header.\n * @attr header-orientation\n */\n @property({ attribute: 'header-orientation', reflect: true })\n public headerOrientation: 'vertical' | 'horizontal' = 'horizontal';\n\n /**\n * The orientation of the multiple months displayed in the calendar's days view.\n * @attr\n */\n @property()\n public orientation: 'vertical' | 'horizontal' = 'horizontal';\n\n /**\n * Determines whether the calendar hides its header.\n * @attr hide-header\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-header' })\n public hideHeader = false;\n\n /**\n * Controls the visibility of the dates that do not belong to the current month.\n * @attr hide-outside-days\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-outside-days' })\n public hideOutsideDays = false;\n\n /** Gets/sets disabled dates. */\n @property({ attribute: false })\n public set disabledDates(dates: DateRangeDescriptor[]) {\n this._disabledDates = dates;\n this.setDateConstraints();\n this._updateValidity();\n }\n\n public get disabledDates() {\n return this._disabledDates as DateRangeDescriptor[];\n }\n\n /** Gets/sets special dates. */\n @property({ attribute: false })\n public specialDates!: DateRangeDescriptor[];\n\n /**\n * Whether the control will have outlined appearance.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public outlined = false;\n\n /**\n * The placeholder attribute of the control.\n * @attr\n */\n @property()\n public placeholder!: string;\n\n /**\n * The number of months displayed in the calendar.\n * @attr visible-months\n */\n @property({ type: Number, attribute: 'visible-months' })\n public visibleMonths = 1;\n\n /**\n * Whether to show the number of the week in the calendar.\n * @attr show-week-numbers\n */\n @property({ type: Boolean, reflect: true, attribute: 'show-week-numbers' })\n public showWeekNumbers = false;\n\n /**\n * Format to display the value in when not editing.\n * Defaults to the input format if not set.\n * @attr display-format\n */\n @property({ attribute: 'display-format' })\n public set displayFormat(value: string) {\n this._displayFormat = value;\n }\n\n public get displayFormat(): string {\n return this._displayFormat ?? this.inputFormat;\n }\n\n /**\n * The date format to apply on the input.\n * Defaults to the current locale Intl.DateTimeFormat\n * @attr input-format\n */\n @property({ attribute: 'input-format' })\n public set inputFormat(value: string) {\n this._inputFormat = value;\n }\n\n public get inputFormat(): string {\n return this._inputFormat ?? this._input?.inputFormat;\n }\n\n /**\n * The locale settings used to display the value.\n * @attr\n */\n @property()\n public locale = 'en';\n\n /** The prompt symbol to use for unfilled parts of the mask.\n * @attr\n */\n @property()\n public prompt = '_';\n\n /** The resource strings of the calendar. */\n @property({ attribute: false })\n public resourceStrings: IgcCalendarResourceStrings =\n IgcCalendarResourceStringEN;\n\n @watch('open')\n protected openChange() {\n this._rootClickController.update();\n }\n\n /** Sets the start day of the week for the calendar. */\n @property({ attribute: 'week-start' })\n public weekStart: WeekDays = 'sunday';\n\n constructor() {\n super();\n\n this._formValue = createFormValueState<Date | null>(this, {\n initialValue: null,\n transformers: defaultDateTimeTransformers,\n });\n\n this.addEventListener('focusin', this.handleFocusIn);\n this.addEventListener('focusout', this.handleFocusOut);\n\n this._rootClickController.update({ hideCallback: this.handleClosing });\n\n addKeybindings(this, {\n skip: () => this.disabled,\n bindingDefaults: { preventDefault: true },\n })\n .set([altKey, arrowDown], this.handleAnchorClick)\n .set([altKey, arrowUp], this.onEscapeKey)\n .set(escapeKey, this.onEscapeKey);\n }\n\n protected override createRenderRoot() {\n const root = super.createRenderRoot();\n root.addEventListener('slotchange', () => this.requestUpdate());\n return root;\n }\n\n /** Clears the input part of the component of any user input */\n public clear() {\n this.value = null;\n this._input?.clear();\n }\n\n /** Increments the passed in date part */\n public stepUp(datePart?: DatePart, delta?: number): void {\n this._input.stepUp(datePart, delta);\n }\n\n /** Decrements the passed in date part */\n public stepDown(datePart?: DatePart, delta?: number): void {\n this._input.stepDown(datePart, delta);\n }\n\n /** Selects the text in the input of the component */\n public select(): void {\n this._input.select();\n }\n\n /** Sets the text selection range in the input of the component */\n public setSelectionRange(\n start: number,\n end: number,\n direction?: SelectionRangeDirection\n ): void {\n this._input.setSelectionRange(start, end, direction);\n }\n\n /* Replaces the selected text in the input and re-applies the mask */\n public setRangeText(\n replacement: string,\n start: number,\n end: number,\n mode?: RangeTextSelectMode\n ): void {\n this._input.setRangeText(replacement, start, end, mode);\n this.value = this._input.value;\n }\n\n protected async onEscapeKey() {\n if (await this._hide(true)) {\n this._input.focus();\n }\n }\n\n protected handleFocusIn() {\n this._dirty = true;\n }\n\n protected handleFocusOut({ relatedTarget }: FocusEvent) {\n if (!this.contains(relatedTarget as Node)) {\n this.checkValidity();\n }\n }\n\n protected handlerCalendarIconSlotPointerDown(event: PointerEvent) {\n // This is where the delegateFocus of the underlying input is a chore.\n // If we have a required validator we don't want the input to enter an invalid\n // state right off the bat when opening the picker which will happen since focus is transferred to the calendar element.\n // So we call preventDefault on the event in order to not focus the input and trigger its validation logic on blur.\n event.preventDefault();\n }\n\n protected handleInputClick(event: Event) {\n if (findElementFromEventPath('input', event)) {\n // Open only if the click originates from the underlying input\n this.handleAnchorClick();\n }\n }\n\n protected override async handleAnchorClick() {\n this._calendar.activeDate = this.value ?? this._calendar.activeDate;\n\n super.handleAnchorClick();\n await this.updateComplete;\n this._calendar[focusActiveDate]();\n }\n\n private async _shouldCloseCalendarDropdown() {\n if (!this.keepOpenOnSelect && (await this._hide(true))) {\n this._input.focus();\n this._input.select();\n }\n }\n\n protected handleInputChangeEvent(event: CustomEvent<Date>) {\n event.stopPropagation();\n this.value = (event.target as IgcDateTimeInputComponent).value!;\n this.emitEvent('igcChange', { detail: this.value });\n }\n\n protected async handleCalendarChangeEvent(event: CustomEvent<Date>) {\n event.stopPropagation();\n\n if (this.readOnly) {\n // Wait till the calendar finishes updating and then restore the current value from the date-picker.\n await this._calendar.updateComplete;\n this._calendar.value = this.value;\n return;\n }\n\n this.value = (event.target as IgcCalendarComponent).value!;\n this.emitEvent('igcChange', { detail: this.value });\n\n this._shouldCloseCalendarDropdown();\n }\n\n protected handleInputEvent(event: CustomEvent<Date>) {\n event.stopPropagation();\n\n if (this.nonEditable) {\n event.preventDefault();\n return;\n }\n\n this.value = (event.target as IgcDateTimeInputComponent).value!;\n this.emitEvent('igcInput', { detail: this.value });\n }\n\n protected handleClosing() {\n this._hide(true);\n }\n\n protected handleDialogClosing(event: Event) {\n event.stopPropagation();\n this._hide(true);\n }\n\n protected handleDialogClosed(event: Event) {\n event.stopPropagation();\n }\n\n private setDateConstraints() {\n const dates: DateRangeDescriptor[] = [];\n if (this._min) {\n dates.push({\n type: DateRangeType.Before,\n dateRange: [this._min],\n });\n }\n if (this._max) {\n dates.push({\n type: DateRangeType.After,\n dateRange: [this._max],\n });\n }\n if (this._disabledDates?.length) {\n dates.push(...this.disabledDates);\n }\n\n this._dateConstraints = dates.length ? dates : undefined;\n }\n\n private renderClearIcon() {\n return !this.value\n ? nothing\n : html`\n <span slot=\"suffix\" part=\"clear-icon\" @click=${this.clear}>\n <slot name=\"clear-icon\">\n <igc-icon\n name=\"input_clear\"\n collection=\"default\"\n aria-hidden=\"true\"\n ></igc-icon>\n </slot>\n </span>\n `;\n }\n\n private renderCalendarIcon() {\n const defaultIcon = html`\n <igc-icon name=\"today\" collection=\"default\" aria-hidden=\"true\"></igc-icon>\n `;\n\n const state = this.open ? 'calendar-icon-open' : 'calendar-icon';\n\n return html`\n <span\n slot=\"prefix\"\n part=${state}\n @pointerdown=${this.handlerCalendarIconSlotPointerDown}\n @click=${this.handleAnchorClick}\n >\n <slot name=${state}>${defaultIcon}</slot>\n </span>\n `;\n }\n\n private renderCalendarSlots() {\n if (this.isDropDown) {\n return nothing;\n }\n\n const hasHeaderDate = this.headerDateSlotItems.length ? 'header-date' : '';\n\n return html`\n <slot name=\"title\" slot=\"title\">\n ${this.resourceStrings.selectDate}\n </slot>\n <slot name=\"header-date\" slot=${hasHeaderDate}></slot>\n `;\n }\n\n private renderCalendar(id: string) {\n const hideHeader = this.isDropDown ? true : this.hideHeader;\n\n return html`\n <igc-calendar\n aria-labelledby=${id}\n role=\"dialog\"\n .inert=${!this.open || this.disabled}\n ?show-week-numbers=${this.showWeekNumbers}\n ?hide-outside-days=${this.hideOutsideDays}\n ?hide-header=${hideHeader}\n .activeDate=${this.activeDate ?? this.value}\n .value=${this.value}\n .headerOrientation=${this.headerOrientation}\n .orientation=${this.orientation}\n .visibleMonths=${this.visibleMonths}\n .locale=${this.locale}\n .disabledDates=${this._dateConstraints!}\n .specialDates=${this.specialDates}\n .weekStart=${this.weekStart}\n @igcChange=${this.handleCalendarChangeEvent}\n exportparts=\"header, header-title, header-date, content: calendar-content, navigation, months-navigation,\n years-navigation, years-range, navigation-buttons, navigation-button, days-view-container,\n days-view, months-view, years-view, days-row, label: calendar-label, week-number, week-number-inner, date,\n date-inner, first, last, inactive, hidden, weekend, range, special, disabled, single, preview,\n month, month-inner, year, year-inner, selected, current\"\n >\n ${this.renderCalendarSlots()}\n </igc-calendar>\n `;\n }\n\n protected renderActions() {\n const slot = this.isDropDown || !this.actions.length ? undefined : 'footer';\n\n // If in dialog mode use the dialog footer slot\n return html`\n <div\n part=\"actions\"\n ?hidden=${!this.actions.length}\n slot=${ifDefined(slot)}\n >\n <slot name=\"actions\"></slot>\n </div>\n `;\n }\n\n protected renderPicker(id: string) {\n return this.isDropDown\n ? html`\n <igc-popover ?open=${this.open} anchor=${id} flip shift>\n <igc-focus-trap ?disabled=${!this.open || this.disabled}>\n ${this.renderCalendar(id)}${this.renderActions()}\n </igc-focus-trap>\n </igc-popover>\n `\n : html`\n <igc-dialog\n aria-label=${ifDefined(this.resourceStrings.selectDate)}\n role=\"dialog\"\n ?open=${this.open}\n ?close-on-outside-click=${!this.keepOpenOnOutsideClick}\n hide-default-action\n @igcClosing=${this.handleDialogClosing}\n @igcClosed=${this.handleDialogClosed}\n exportparts=\"base: dialog-base, title, footer, overlay\"\n >\n ${this.renderCalendar(id)}${this.renderActions()}\n </igc-dialog>\n `;\n }\n\n private renderLabel(id: string) {\n return this.label\n ? html`<label\n part=\"label\"\n for=${id}\n @click=${this.isDropDown ? nothing : this.handleAnchorClick}\n >${this.label}</label\n >`\n : nothing;\n }\n\n private renderHelperText(): TemplateResult {\n return IgcValidationContainerComponent.create(this);\n }\n\n protected renderInput(id: string) {\n const format = formats.has(this._displayFormat!)\n ? `${this._displayFormat}Date`\n : this._displayFormat;\n\n // Dialog mode is always readonly, rest depends on configuration\n const readOnly = !this.isDropDown || this.readOnly || this.nonEditable;\n\n return html`\n <igc-date-time-input\n id=${id}\n aria-haspopup=\"dialog\"\n label=${ifDefined(this._isMaterialTheme ? this.label : undefined)}\n input-format=${ifDefined(this._inputFormat)}\n display-format=${ifDefined(format)}\n ?disabled=${this.disabled}\n ?readonly=${readOnly}\n ?required=${this.required}\n .value=${this.value}\n .locale=${this.locale}\n .prompt=${this.prompt}\n .outlined=${this.outlined}\n .placeholder=${this.placeholder}\n .min=${this.min}\n .max=${this.max}\n .invalid=${live(this.invalid)}\n @igcChange=${this.handleInputChangeEvent}\n @igcInput=${this.handleInputEvent}\n @click=${this.isDropDown ? nothing : this.handleInputClick}\n exportparts=\"input, label, prefix, suffix\"\n >\n ${this.renderCalendarIcon()}\n <slot\n name=\"prefix\"\n slot=${ifDefined(!this.prefixes.length ? undefined : 'prefix')}\n ></slot>\n ${this.renderClearIcon()}\n <slot\n name=\"suffix\"\n slot=${ifDefined(!this.suffixes.length ? undefined : 'suffix')}\n ></slot>\n </igc-date-time-input>\n `;\n }\n\n protected override render() {\n const id = this.id || this.inputId;\n\n return html`\n ${!this._isMaterialTheme ? this.renderLabel(id) : nothing}\n ${this.renderInput(id)}${this.renderPicker(id)}${this.renderHelperText()}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-date-picker': IgcDatePickerComponent;\n }\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size);scrollbar-color:var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background)}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size);height:var(--ig-scrollbar-size);background:var(--ig-scrollbar-track-background)}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background)}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host igc-focus-trap{--min-width: max(var(--is-large, 1) * max(22.5rem, -1 * 22.5rem), var(--is-medium, 1) * max(19.625rem, -1 * 19.625rem), var(--is-small, 1) * max(18.125rem, -1 * 18.125rem));display:flex;flex:1 0 0;flex-direction:column;min-width:var(--min-width);max-width:calc(var(--min-width)*2);overflow:auto hidden}:host igc-focus-trap igc-calendar{border:none;box-shadow:none}:host igc-calendar[header-orientation=vertical]{border-bottom-left-radius:0;border-bottom-right-radius:0}:host([required]) [part=label]::after{content:"*"}[part=label]{display:inline-block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}[part=actions]{display:flex;justify-content:flex-end;padding:.5rem;gap:.5rem}[part=actions] ::slotted(*){display:flex;gap:.5rem}`;
2
+ export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host igc-focus-trap{--min-width: max(var(--is-large, 1) * max(22.5rem, -1 * 22.5rem), var(--is-medium, 1) * max(19.625rem, -1 * 19.625rem), var(--is-small, 1) * max(18.125rem, -1 * 18.125rem));display:flex;flex:1 0 0;flex-direction:column;min-width:var(--min-width);max-width:calc(var(--min-width)*2);overflow:auto hidden}:host igc-focus-trap igc-calendar{border:none;box-shadow:none}:host igc-calendar[header-orientation=vertical]{border-bottom-left-radius:0;border-bottom-right-radius:0}:host([required]) [part=label]::after{content:"*"}[part=label]{display:inline-block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}[part=actions]{display:flex;justify-content:flex-end;padding:.5rem;gap:.5rem}[part=actions] ::slotted(*){display:flex;gap:.5rem}`;
3
3
  //# sourceMappingURL=date-picker.base.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"date-picker.base.css.js","sourceRoot":"","sources":["../../../../src/components/date-picker/themes/date-picker.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,0iDAA0iD,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size);scrollbar-color:var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background)}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size);height:var(--ig-scrollbar-size);background:var(--ig-scrollbar-track-background)}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background)}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host igc-focus-trap{--min-width: max(var(--is-large, 1) * max(22.5rem, -1 * 22.5rem), var(--is-medium, 1) * max(19.625rem, -1 * 19.625rem), var(--is-small, 1) * max(18.125rem, -1 * 18.125rem));display:flex;flex:1 0 0;flex-direction:column;min-width:var(--min-width);max-width:calc(var(--min-width)*2);overflow:auto hidden}:host igc-focus-trap igc-calendar{border:none;box-shadow:none}:host igc-calendar[header-orientation=vertical]{border-bottom-left-radius:0;border-bottom-right-radius:0}:host([required]) [part=label]::after{content:\"*\"}[part=label]{display:inline-block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}[part=actions]{display:flex;justify-content:flex-end;padding:.5rem;gap:.5rem}[part=actions] ::slotted(*){display:flex;gap:.5rem}`;\n"]}
1
+ {"version":3,"file":"date-picker.base.css.js","sourceRoot":"","sources":["../../../../src/components/date-picker/themes/date-picker.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,ksDAAksD,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host igc-focus-trap{--min-width: max(var(--is-large, 1) * max(22.5rem, -1 * 22.5rem), var(--is-medium, 1) * max(19.625rem, -1 * 19.625rem), var(--is-small, 1) * max(18.125rem, -1 * 18.125rem));display:flex;flex:1 0 0;flex-direction:column;min-width:var(--min-width);max-width:calc(var(--min-width)*2);overflow:auto hidden}:host igc-focus-trap igc-calendar{border:none;box-shadow:none}:host igc-calendar[header-orientation=vertical]{border-bottom-left-radius:0;border-bottom-right-radius:0}:host([required]) [part=label]::after{content:\"*\"}[part=label]{display:inline-block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}[part=actions]{display:flex;justify-content:flex-end;padding:.5rem;gap:.5rem}[part=actions] ::slotted(*){display:flex;gap:.5rem}`;\n"]}
@@ -8,8 +8,8 @@ export const datePickerValidators = [
8
8
  maxDateValidator,
9
9
  {
10
10
  key: 'badInput',
11
- message: (host) => formatString(messages.disabledDate, host.value),
12
- isValid: (host) => host.value ? !isDateInRanges(host.value, host.disabledDates ?? []) : true,
11
+ message: ({ value }) => formatString(messages.disabledDate, value),
12
+ isValid: ({ value, disabledDates }) => value && disabledDates ? !isDateInRanges(value, disabledDates) : true,
13
13
  },
14
14
  ];
15
15
  //# sourceMappingURL=validators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/components/date-picker/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,QAAQ,MAAM,yCAAyC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAEL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAGjC,MAAM,CAAC,MAAM,oBAAoB,GAAwC;IACvE,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB;QACE,GAAG,EAAE,UAAU;QACf,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC;QAClE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAChB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;KAC5E;CACF,CAAC","sourcesContent":["import { isDateInRanges } from '../calendar/helpers.js';\nimport messages from '../common/localization/validation-en.js';\nimport { formatString } from '../common/util.js';\nimport {\n type Validator,\n maxDateValidator,\n minDateValidator,\n requiredValidator,\n} from '../common/validators.js';\nimport type IgcDatePickerComponent from './date-picker.js';\n\nexport const datePickerValidators: Validator<IgcDatePickerComponent>[] = [\n requiredValidator,\n minDateValidator,\n maxDateValidator,\n {\n key: 'badInput',\n message: (host) => formatString(messages.disabledDate, host.value),\n isValid: (host) =>\n host.value ? !isDateInRanges(host.value, host.disabledDates ?? []) : true,\n },\n];\n"]}
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/components/date-picker/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,QAAQ,MAAM,yCAAyC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAEL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAGjC,MAAM,CAAC,MAAM,oBAAoB,GAAwC;IACvE,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB;QACE,GAAG,EAAE,UAAU;QACf,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC;QAClE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,CACpC,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI;KACxE;CACF,CAAC","sourcesContent":["import { isDateInRanges } from '../calendar/helpers.js';\nimport messages from '../common/localization/validation-en.js';\nimport { formatString } from '../common/util.js';\nimport {\n type Validator,\n maxDateValidator,\n minDateValidator,\n requiredValidator,\n} from '../common/validators.js';\nimport type IgcDatePickerComponent from './date-picker.js';\n\nexport const datePickerValidators: Validator<IgcDatePickerComponent>[] = [\n requiredValidator,\n minDateValidator,\n maxDateValidator,\n {\n key: 'badInput',\n message: ({ value }) => formatString(messages.disabledDate, value),\n isValid: ({ value, disabledDates }) =>\n value && disabledDates ? !isDateInRanges(value, disabledDates) : true,\n },\n];\n"]}
@@ -1,4 +1,5 @@
1
1
  import type { AbstractConstructor } from '../common/mixins/constructor.js';
2
+ import { type FormValue } from '../common/mixins/forms/form-value.js';
2
3
  import type { IgcInputComponentEventMap } from '../input/input-base.js';
3
4
  import { IgcMaskInputBaseComponent, type MaskRange } from '../mask-input/mask-input-base.js';
4
5
  import { DatePart, type DatePartDeltas } from './date-util.js';
@@ -35,9 +36,11 @@ export default class IgcDateTimeInputComponent extends IgcDateTimeInputComponent
35
36
  static readonly tagName = "igc-date-time-input";
36
37
  static register(): void;
37
38
  protected get __validators(): import("../common/validators.js").Validator<IgcDateTimeInputComponent>[];
39
+ protected _formValue: FormValue<Date | null>;
38
40
  protected _defaultMask: string;
39
- protected _value: Date | null;
40
41
  private _oldValue;
42
+ private _min;
43
+ private _max;
41
44
  private _inputDateParts;
42
45
  private _inputFormat;
43
46
  private _datePartDeltas;
@@ -52,18 +55,19 @@ export default class IgcDateTimeInputComponent extends IgcDateTimeInputComponent
52
55
  * The value of the input.
53
56
  * @attr
54
57
  */
55
- set value(val: Date | null);
56
- protected updateFormValue(): void;
58
+ set value(value: Date | string | null | undefined);
57
59
  /**
58
60
  * The minimum value required for the input to remain valid.
59
61
  * @attr
60
62
  */
61
- min: Date;
63
+ set min(value: Date | string | null | undefined);
64
+ get min(): Date | null;
62
65
  /**
63
66
  * The maximum value required for the input to remain valid.
64
67
  * @attr
65
68
  */
66
- max: Date;
69
+ set max(value: Date | string | null | undefined);
70
+ get max(): Date | null;
67
71
  /**
68
72
  * Format to display the value in when not editing.
69
73
  * Defaults to the input format if not set.
@@ -88,7 +92,6 @@ export default class IgcDateTimeInputComponent extends IgcDateTimeInputComponent
88
92
  protected setDefaultMask(): void;
89
93
  protected setDisplayFormat(): void;
90
94
  protected promptChange(): void;
91
- protected constraintChange(): void;
92
95
  protected get hasDateParts(): boolean;
93
96
  protected get hasTimeParts(): boolean;
94
97
  private get targetDatePart();