igniteui-webcomponents 6.0.0 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/README.md +6 -1
  3. package/components/avatar/themes/dark/avatar.bootstrap.css.js +1 -1
  4. package/components/avatar/themes/dark/avatar.bootstrap.css.js.map +1 -1
  5. package/components/avatar/themes/dark/avatar.fluent.css.js +1 -1
  6. package/components/avatar/themes/dark/avatar.fluent.css.js.map +1 -1
  7. package/components/avatar/themes/dark/avatar.material.css.js +1 -1
  8. package/components/avatar/themes/dark/avatar.material.css.js.map +1 -1
  9. package/components/button/button-base.d.ts +5 -6
  10. package/components/button/button-base.js +15 -29
  11. package/components/button/button-base.js.map +1 -1
  12. package/components/button/themes/button/light/button.shared.css.js +1 -1
  13. package/components/button/themes/button/light/button.shared.css.js.map +1 -1
  14. package/components/button-group/toggle-button.d.ts +2 -2
  15. package/components/button-group/toggle-button.js +4 -6
  16. package/components/button-group/toggle-button.js.map +1 -1
  17. package/components/calendar/calendar.d.ts +1 -1
  18. package/components/calendar/calendar.js +12 -9
  19. package/components/calendar/calendar.js.map +1 -1
  20. package/components/calendar/days-view/days-view.d.ts +1 -1
  21. package/components/calendar/days-view/days-view.js +8 -9
  22. package/components/calendar/days-view/days-view.js.map +1 -1
  23. package/components/calendar/helpers.d.ts +12 -1
  24. package/components/calendar/helpers.js +35 -10
  25. package/components/calendar/helpers.js.map +1 -1
  26. package/components/calendar/model.d.ts +15 -1
  27. package/components/calendar/model.js +26 -5
  28. package/components/calendar/model.js.map +1 -1
  29. package/components/calendar/months-view/months-view.d.ts +1 -1
  30. package/components/calendar/months-view/months-view.js +6 -6
  31. package/components/calendar/months-view/months-view.js.map +1 -1
  32. package/components/calendar/themes/dark/calendar.fluent.css.js +1 -1
  33. package/components/calendar/themes/dark/calendar.fluent.css.js.map +1 -1
  34. package/components/calendar/themes/light/calendar.fluent.css.js +1 -1
  35. package/components/calendar/themes/light/calendar.fluent.css.js.map +1 -1
  36. package/components/calendar/themes/light/calendar.shared.css.js +1 -1
  37. package/components/calendar/themes/light/calendar.shared.css.js.map +1 -1
  38. package/components/calendar/years-view/years-view.d.ts +1 -1
  39. package/components/calendar/years-view/years-view.js +6 -6
  40. package/components/calendar/years-view/years-view.js.map +1 -1
  41. package/components/carousel/carousel-indicator-container.d.ts +2 -2
  42. package/components/carousel/carousel-indicator-container.js +8 -9
  43. package/components/carousel/carousel-indicator-container.js.map +1 -1
  44. package/components/carousel/carousel.d.ts +7 -8
  45. package/components/carousel/carousel.js +24 -20
  46. package/components/carousel/carousel.js.map +1 -1
  47. package/components/checkbox/checkbox-base.d.ts +8 -10
  48. package/components/checkbox/checkbox-base.js +20 -23
  49. package/components/checkbox/checkbox-base.js.map +1 -1
  50. package/components/checkbox/checkbox.d.ts +3 -3
  51. package/components/checkbox/checkbox.js +18 -19
  52. package/components/checkbox/checkbox.js.map +1 -1
  53. package/components/checkbox/switch.d.ts +2 -2
  54. package/components/checkbox/switch.js +15 -19
  55. package/components/checkbox/switch.js.map +1 -1
  56. package/components/chip/chip.d.ts +4 -0
  57. package/components/chip/chip.js +29 -6
  58. package/components/chip/chip.js.map +1 -1
  59. package/components/chip/themes/shared/chip.common.css.js +1 -1
  60. package/components/chip/themes/shared/chip.common.css.js.map +1 -1
  61. package/components/chip/themes/shared/chip.indigo.css.js +1 -1
  62. package/components/chip/themes/shared/chip.indigo.css.js.map +1 -1
  63. package/components/combo/combo.d.ts +2 -2
  64. package/components/combo/combo.js +12 -11
  65. package/components/combo/combo.js.map +1 -1
  66. package/components/combo/themes/combo.base.css.js +1 -1
  67. package/components/combo/themes/combo.base.css.js.map +1 -1
  68. package/components/combo/themes/shared/combo.fluent.css.js +1 -1
  69. package/components/combo/themes/shared/combo.fluent.css.js.map +1 -1
  70. package/components/common/controllers/focus-ring.d.ts +21 -11
  71. package/components/common/controllers/focus-ring.js +16 -14
  72. package/components/common/controllers/focus-ring.js.map +1 -1
  73. package/components/common/controllers/gestures.d.ts +1 -0
  74. package/components/common/controllers/gestures.js.map +1 -1
  75. package/components/common/controllers/key-bindings.d.ts +40 -33
  76. package/components/common/controllers/key-bindings.js +83 -71
  77. package/components/common/controllers/key-bindings.js.map +1 -1
  78. package/components/common/controllers/resize-observer.d.ts +11 -8
  79. package/components/common/controllers/resize-observer.js +3 -3
  80. package/components/common/controllers/resize-observer.js.map +1 -1
  81. package/components/common/definitions/defineAllComponents.js +2 -0
  82. package/components/common/definitions/defineAllComponents.js.map +1 -1
  83. package/components/common/i18n/date-range-picker.resources.d.ts +11 -0
  84. package/components/common/i18n/date-range-picker.resources.js +12 -0
  85. package/components/common/i18n/date-range-picker.resources.js.map +1 -0
  86. package/components/common/mixins/combo-box.js +8 -2
  87. package/components/common/mixins/combo-box.js.map +1 -1
  88. package/components/common/mixins/forms/form-value.d.ts +15 -1
  89. package/components/common/mixins/forms/form-value.js +25 -4
  90. package/components/common/mixins/forms/form-value.js.map +1 -1
  91. package/components/common/mixins/option.d.ts +3 -2
  92. package/components/common/mixins/option.js.map +1 -1
  93. package/components/common/part-map.d.ts +17 -0
  94. package/components/common/part-map.js +46 -0
  95. package/components/common/part-map.js.map +1 -0
  96. package/components/common/util.d.ts +5 -6
  97. package/components/common/util.js +17 -22
  98. package/components/common/util.js.map +1 -1
  99. package/components/common/validators.js +3 -7
  100. package/components/common/validators.js.map +1 -1
  101. package/components/date-picker/date-picker.d.ts +37 -37
  102. package/components/date-picker/date-picker.js +142 -140
  103. package/components/date-picker/date-picker.js.map +1 -1
  104. package/components/date-picker/themes/dark/date-picker.bootstrap.css.js +1 -1
  105. package/components/date-picker/themes/dark/date-picker.bootstrap.css.js.map +1 -1
  106. package/components/date-picker/themes/dark/date-picker.fluent.css.js +1 -1
  107. package/components/date-picker/themes/dark/date-picker.fluent.css.js.map +1 -1
  108. package/components/date-picker/themes/dark/date-picker.indigo.css.js +1 -1
  109. package/components/date-picker/themes/dark/date-picker.indigo.css.js.map +1 -1
  110. package/components/date-picker/themes/dark/date-picker.material.css.js +1 -1
  111. package/components/date-picker/themes/dark/date-picker.material.css.js.map +1 -1
  112. package/components/date-picker/themes/light/date-picker.bootstrap.css.js +1 -1
  113. package/components/date-picker/themes/light/date-picker.bootstrap.css.js.map +1 -1
  114. package/components/date-picker/themes/light/date-picker.fluent.css.js +1 -1
  115. package/components/date-picker/themes/light/date-picker.fluent.css.js.map +1 -1
  116. package/components/date-picker/themes/light/date-picker.indigo.css.js +1 -1
  117. package/components/date-picker/themes/light/date-picker.indigo.css.js.map +1 -1
  118. package/components/date-picker/themes/light/date-picker.material.css.js +1 -1
  119. package/components/date-picker/themes/light/date-picker.material.css.js.map +1 -1
  120. package/components/date-picker/themes/light/date-picker.shared.css.js +1 -1
  121. package/components/date-picker/themes/light/date-picker.shared.css.js.map +1 -1
  122. package/components/date-picker/themes/shared/date-picker.bootstrap.css.js +1 -1
  123. package/components/date-picker/themes/shared/date-picker.bootstrap.css.js.map +1 -1
  124. package/components/date-picker/themes/shared/date-picker.common.css.js +1 -1
  125. package/components/date-picker/themes/shared/date-picker.common.css.js.map +1 -1
  126. package/components/date-picker/themes/shared/date-picker.fluent.css.js +1 -1
  127. package/components/date-picker/themes/shared/date-picker.fluent.css.js.map +1 -1
  128. package/components/date-picker/themes/shared/date-picker.indigo.css.js +1 -1
  129. package/components/date-picker/themes/shared/date-picker.indigo.css.js.map +1 -1
  130. package/components/date-picker/themes/shared/date-picker.material.css.js +3 -0
  131. package/components/date-picker/themes/shared/date-picker.material.css.js.map +1 -0
  132. package/components/date-picker/themes/themes.js +3 -2
  133. package/components/date-picker/themes/themes.js.map +1 -1
  134. package/components/date-range-picker/date-range-picker.base.css.js +3 -0
  135. package/components/date-range-picker/date-range-picker.base.css.js.map +1 -0
  136. package/components/date-range-picker/date-range-picker.d.ts +365 -0
  137. package/components/date-range-picker/date-range-picker.js +810 -0
  138. package/components/date-range-picker/date-range-picker.js.map +1 -0
  139. package/components/{radio-group/radio-group.base.css.js → date-range-picker/predefined-ranges-area.base.css.js} +2 -2
  140. package/components/date-range-picker/predefined-ranges-area.base.css.js.map +1 -0
  141. package/components/date-range-picker/predefined-ranges-area.d.ts +36 -0
  142. package/components/date-range-picker/predefined-ranges-area.js +115 -0
  143. package/components/date-range-picker/predefined-ranges-area.js.map +1 -0
  144. package/components/date-range-picker/themes/dark/date-range-picker.bootstrap.css.js +3 -0
  145. package/components/date-range-picker/themes/dark/date-range-picker.bootstrap.css.js.map +1 -0
  146. package/components/date-range-picker/themes/dark/date-range-picker.fluent.css.d.ts +1 -0
  147. package/components/date-range-picker/themes/dark/date-range-picker.fluent.css.js +3 -0
  148. package/components/date-range-picker/themes/dark/date-range-picker.fluent.css.js.map +1 -0
  149. package/components/date-range-picker/themes/dark/date-range-picker.indigo.css.d.ts +1 -0
  150. package/components/date-range-picker/themes/dark/date-range-picker.indigo.css.js +3 -0
  151. package/components/date-range-picker/themes/dark/date-range-picker.indigo.css.js.map +1 -0
  152. package/components/date-range-picker/themes/dark/date-range-picker.material.css.d.ts +1 -0
  153. package/components/date-range-picker/themes/dark/date-range-picker.material.css.js +3 -0
  154. package/components/date-range-picker/themes/dark/date-range-picker.material.css.js.map +1 -0
  155. package/components/date-range-picker/themes/light/date-range-picker.bootstrap.css.d.ts +1 -0
  156. package/components/date-range-picker/themes/light/date-range-picker.bootstrap.css.js +3 -0
  157. package/components/date-range-picker/themes/light/date-range-picker.bootstrap.css.js.map +1 -0
  158. package/components/date-range-picker/themes/light/date-range-picker.fluent.css.d.ts +1 -0
  159. package/components/date-range-picker/themes/light/date-range-picker.fluent.css.js +3 -0
  160. package/components/date-range-picker/themes/light/date-range-picker.fluent.css.js.map +1 -0
  161. package/components/date-range-picker/themes/light/date-range-picker.indigo.css.d.ts +1 -0
  162. package/components/date-range-picker/themes/light/date-range-picker.indigo.css.js +3 -0
  163. package/components/date-range-picker/themes/light/date-range-picker.indigo.css.js.map +1 -0
  164. package/components/date-range-picker/themes/light/date-range-picker.material.css.d.ts +1 -0
  165. package/components/date-range-picker/themes/light/date-range-picker.material.css.js +3 -0
  166. package/components/date-range-picker/themes/light/date-range-picker.material.css.js.map +1 -0
  167. package/components/date-range-picker/themes/light/date-range-picker.shared.css.d.ts +1 -0
  168. package/components/date-range-picker/themes/light/date-range-picker.shared.css.js +3 -0
  169. package/components/date-range-picker/themes/light/date-range-picker.shared.css.js.map +1 -0
  170. package/components/date-range-picker/themes/ranges-themes.d.ts +2 -0
  171. package/components/date-range-picker/themes/ranges-themes.js +14 -0
  172. package/components/date-range-picker/themes/ranges-themes.js.map +1 -0
  173. package/components/date-range-picker/themes/shared/date-range-picker.bootstrap.css.d.ts +1 -0
  174. package/components/date-range-picker/themes/shared/date-range-picker.bootstrap.css.js +3 -0
  175. package/components/date-range-picker/themes/shared/date-range-picker.bootstrap.css.js.map +1 -0
  176. package/components/date-range-picker/themes/shared/date-range-picker.common.css.d.ts +1 -0
  177. package/components/date-range-picker/themes/shared/date-range-picker.common.css.js +3 -0
  178. package/components/date-range-picker/themes/shared/date-range-picker.common.css.js.map +1 -0
  179. package/components/date-range-picker/themes/shared/date-range-picker.fluent.css.d.ts +1 -0
  180. package/components/date-range-picker/themes/shared/date-range-picker.fluent.css.js +3 -0
  181. package/components/date-range-picker/themes/shared/date-range-picker.fluent.css.js.map +1 -0
  182. package/components/date-range-picker/themes/shared/date-range-picker.indigo.css.d.ts +1 -0
  183. package/components/date-range-picker/themes/shared/date-range-picker.indigo.css.js +3 -0
  184. package/components/date-range-picker/themes/shared/date-range-picker.indigo.css.js.map +1 -0
  185. package/components/date-range-picker/themes/shared/date-range-picker.material.css.d.ts +1 -0
  186. package/components/date-range-picker/themes/shared/date-range-picker.material.css.js +3 -0
  187. package/components/date-range-picker/themes/shared/date-range-picker.material.css.js.map +1 -0
  188. package/components/date-range-picker/themes/shared/predefined-ranges-area.common.css.d.ts +1 -0
  189. package/components/date-range-picker/themes/shared/predefined-ranges-area.common.css.js +3 -0
  190. package/components/date-range-picker/themes/shared/predefined-ranges-area.common.css.js.map +1 -0
  191. package/components/date-range-picker/themes/shared/predefined-ranges-area.indigo.css.d.ts +1 -0
  192. package/components/date-range-picker/themes/shared/predefined-ranges-area.indigo.css.js +3 -0
  193. package/components/date-range-picker/themes/shared/predefined-ranges-area.indigo.css.js.map +1 -0
  194. package/components/date-range-picker/themes/themes.d.ts +2 -0
  195. package/components/date-range-picker/themes/themes.js +50 -0
  196. package/components/date-range-picker/themes/themes.js.map +1 -0
  197. package/components/date-range-picker/validators.d.ts +26 -0
  198. package/components/date-range-picker/validators.js +57 -0
  199. package/components/date-range-picker/validators.js.map +1 -0
  200. package/components/date-time-input/date-time-input.d.ts +2 -2
  201. package/components/date-time-input/date-time-input.js +8 -10
  202. package/components/date-time-input/date-time-input.js.map +1 -1
  203. package/components/date-time-input/date-util.d.ts +7 -0
  204. package/components/date-time-input/date-util.js +11 -0
  205. package/components/date-time-input/date-util.js.map +1 -1
  206. package/components/dialog/dialog.js +11 -10
  207. package/components/dialog/dialog.js.map +1 -1
  208. package/components/dialog/themes/dialog.base.css.js +1 -1
  209. package/components/dialog/themes/dialog.base.css.js.map +1 -1
  210. package/components/dialog/themes/shared/dialog.indigo.css.js +1 -1
  211. package/components/dialog/themes/shared/dialog.indigo.css.js.map +1 -1
  212. package/components/dropdown/dropdown.js.map +1 -1
  213. package/components/file-input/file-input.d.ts +12 -6
  214. package/components/file-input/file-input.js +23 -19
  215. package/components/file-input/file-input.js.map +1 -1
  216. package/components/file-input/themes/file-input.base.css.js +1 -1
  217. package/components/file-input/themes/file-input.base.css.js.map +1 -1
  218. package/components/input/input-base.d.ts +0 -1
  219. package/components/input/input-base.js +5 -4
  220. package/components/input/input-base.js.map +1 -1
  221. package/components/input/input.d.ts +2 -3
  222. package/components/input/input.js +10 -9
  223. package/components/input/input.js.map +1 -1
  224. package/components/input/themes/dark/input.bootstrap.css.js +1 -1
  225. package/components/input/themes/dark/input.bootstrap.css.js.map +1 -1
  226. package/components/input/themes/dark/input.indigo.css.js +1 -1
  227. package/components/input/themes/dark/input.indigo.css.js.map +1 -1
  228. package/components/input/themes/input.base.css.js +1 -1
  229. package/components/input/themes/input.base.css.js.map +1 -1
  230. package/components/input/themes/light/input.bootstrap.css.js +1 -1
  231. package/components/input/themes/light/input.bootstrap.css.js.map +1 -1
  232. package/components/input/themes/light/input.indigo.css.js +1 -1
  233. package/components/input/themes/light/input.indigo.css.js.map +1 -1
  234. package/components/input/themes/light/input.shared.css.js +1 -1
  235. package/components/input/themes/light/input.shared.css.js.map +1 -1
  236. package/components/input/themes/shared/input.bootstrap.css.js +1 -1
  237. package/components/input/themes/shared/input.bootstrap.css.js.map +1 -1
  238. package/components/input/themes/shared/input.common.css.js +1 -1
  239. package/components/input/themes/shared/input.common.css.js.map +1 -1
  240. package/components/input/themes/shared/input.fluent.css.js +1 -1
  241. package/components/input/themes/shared/input.fluent.css.js.map +1 -1
  242. package/components/input/themes/shared/input.indigo.css.js +1 -1
  243. package/components/input/themes/shared/input.indigo.css.js.map +1 -1
  244. package/components/input/themes/shared/input.material.css.js +1 -1
  245. package/components/input/themes/shared/input.material.css.js.map +1 -1
  246. package/components/mask-input/mask-input.d.ts +2 -3
  247. package/components/mask-input/mask-input.js +13 -12
  248. package/components/mask-input/mask-input.js.map +1 -1
  249. package/components/mask-input/mask-parser.d.ts +100 -14
  250. package/components/mask-input/mask-parser.js +134 -117
  251. package/components/mask-input/mask-parser.js.map +1 -1
  252. package/components/nav-drawer/nav-drawer-item.js +2 -6
  253. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  254. package/components/nav-drawer/nav-drawer.js +5 -6
  255. package/components/nav-drawer/nav-drawer.js.map +1 -1
  256. package/components/progress/base.js +6 -5
  257. package/components/progress/base.js.map +1 -1
  258. package/components/progress/circular-progress.js +7 -15
  259. package/components/progress/circular-progress.js.map +1 -1
  260. package/components/progress/linear-progress.js +5 -5
  261. package/components/progress/linear-progress.js.map +1 -1
  262. package/components/progress/themes/circular/dark/circular.progress.shared.css.js +1 -1
  263. package/components/progress/themes/circular/dark/circular.progress.shared.css.js.map +1 -1
  264. package/components/progress/themes/linear/dark/linear.progress.bootstrap.css.js +1 -1
  265. package/components/progress/themes/linear/dark/linear.progress.bootstrap.css.js.map +1 -1
  266. package/components/progress/themes/linear/dark/linear.progress.shared.css.js +1 -1
  267. package/components/progress/themes/linear/dark/linear.progress.shared.css.js.map +1 -1
  268. package/components/radio/radio.d.ts +11 -12
  269. package/components/radio/radio.js +39 -44
  270. package/components/radio/radio.js.map +1 -1
  271. package/components/radio/utils.js +6 -3
  272. package/components/radio/utils.js.map +1 -1
  273. package/components/radio-group/radio-group.d.ts +2 -1
  274. package/components/radio-group/radio-group.js +23 -10
  275. package/components/radio-group/radio-group.js.map +1 -1
  276. package/components/radio-group/themes/dark/radio-group.bootstrap.css.d.ts +1 -0
  277. package/components/radio-group/themes/dark/radio-group.bootstrap.css.js +3 -0
  278. package/components/radio-group/themes/dark/radio-group.bootstrap.css.js.map +1 -0
  279. package/components/radio-group/themes/dark/radio-group.fluent.css.d.ts +1 -0
  280. package/components/radio-group/themes/dark/radio-group.fluent.css.js +3 -0
  281. package/components/radio-group/themes/dark/radio-group.fluent.css.js.map +1 -0
  282. package/components/radio-group/themes/dark/radio-group.indigo.css.d.ts +1 -0
  283. package/components/radio-group/themes/dark/radio-group.indigo.css.js +3 -0
  284. package/components/radio-group/themes/dark/radio-group.indigo.css.js.map +1 -0
  285. package/components/radio-group/themes/dark/radio-group.material.css.d.ts +1 -0
  286. package/components/radio-group/themes/dark/radio-group.material.css.js +3 -0
  287. package/components/radio-group/themes/dark/radio-group.material.css.js.map +1 -0
  288. package/components/radio-group/themes/light/radio-group.bootstrap.css.d.ts +1 -0
  289. package/components/radio-group/themes/light/radio-group.bootstrap.css.js +3 -0
  290. package/components/radio-group/themes/light/radio-group.bootstrap.css.js.map +1 -0
  291. package/components/radio-group/themes/light/radio-group.fluent.css.d.ts +1 -0
  292. package/components/radio-group/themes/light/radio-group.fluent.css.js +3 -0
  293. package/components/radio-group/themes/light/radio-group.fluent.css.js.map +1 -0
  294. package/components/radio-group/themes/light/radio-group.indigo.css.d.ts +1 -0
  295. package/components/radio-group/themes/light/radio-group.indigo.css.js +3 -0
  296. package/components/radio-group/themes/light/radio-group.indigo.css.js.map +1 -0
  297. package/components/radio-group/themes/light/radio-group.material.css.d.ts +1 -0
  298. package/components/radio-group/themes/light/radio-group.material.css.js +3 -0
  299. package/components/radio-group/themes/light/radio-group.material.css.js.map +1 -0
  300. package/components/radio-group/themes/light/radio-group.shared.css.d.ts +1 -0
  301. package/components/radio-group/themes/light/radio-group.shared.css.js +3 -0
  302. package/components/radio-group/themes/light/radio-group.shared.css.js.map +1 -0
  303. package/components/radio-group/themes/radio-group.base.css.d.ts +1 -0
  304. package/components/radio-group/themes/radio-group.base.css.js +3 -0
  305. package/components/radio-group/themes/radio-group.base.css.js.map +1 -0
  306. package/components/radio-group/themes/shared/radio-group.bootstrap.css.d.ts +1 -0
  307. package/components/radio-group/themes/shared/radio-group.bootstrap.css.js +3 -0
  308. package/components/radio-group/themes/shared/radio-group.bootstrap.css.js.map +1 -0
  309. package/components/radio-group/themes/shared/radio-group.common.css.d.ts +1 -0
  310. package/components/radio-group/themes/shared/radio-group.common.css.js +3 -0
  311. package/components/radio-group/themes/shared/radio-group.common.css.js.map +1 -0
  312. package/components/radio-group/themes/shared/radio-group.fluent.css.d.ts +1 -0
  313. package/components/radio-group/themes/shared/radio-group.fluent.css.js +3 -0
  314. package/components/radio-group/themes/shared/radio-group.fluent.css.js.map +1 -0
  315. package/components/radio-group/themes/shared/radio-group.indigo.css.d.ts +1 -0
  316. package/components/radio-group/themes/shared/radio-group.indigo.css.js +3 -0
  317. package/components/radio-group/themes/shared/radio-group.indigo.css.js.map +1 -0
  318. package/components/radio-group/themes/shared/radio-group.material.css.d.ts +1 -0
  319. package/components/radio-group/themes/shared/radio-group.material.css.js +3 -0
  320. package/components/radio-group/themes/shared/radio-group.material.css.js.map +1 -0
  321. package/components/radio-group/themes/themes.d.ts +2 -0
  322. package/components/radio-group/themes/themes.js +50 -0
  323. package/components/radio-group/themes/themes.js.map +1 -0
  324. package/components/rating/rating.d.ts +2 -2
  325. package/components/rating/rating.js +4 -4
  326. package/components/rating/rating.js.map +1 -1
  327. package/components/resize-container/resize-container.js +4 -4
  328. package/components/resize-container/resize-container.js.map +1 -1
  329. package/components/select/select.d.ts +2 -2
  330. package/components/select/select.js +11 -10
  331. package/components/select/select.js.map +1 -1
  332. package/components/select/themes/shared/select.fluent.css.js +1 -1
  333. package/components/select/themes/shared/select.fluent.css.js.map +1 -1
  334. package/components/slider/range-slider.js +1 -1
  335. package/components/slider/range-slider.js.map +1 -1
  336. package/components/slider/slider-base.js +1 -1
  337. package/components/slider/slider-base.js.map +1 -1
  338. package/components/slider/slider.d.ts +2 -3
  339. package/components/slider/slider.js +7 -7
  340. package/components/slider/slider.js.map +1 -1
  341. package/components/stepper/step.js +3 -3
  342. package/components/stepper/step.js.map +1 -1
  343. package/components/stepper/themes/step/dark/step.indigo.css.js +1 -1
  344. package/components/stepper/themes/step/dark/step.indigo.css.js.map +1 -1
  345. package/components/stepper/themes/step/light/step.bootstrap.css.js +1 -1
  346. package/components/stepper/themes/step/light/step.bootstrap.css.js.map +1 -1
  347. package/components/stepper/themes/step/light/step.fluent.css.js +1 -1
  348. package/components/stepper/themes/step/light/step.fluent.css.js.map +1 -1
  349. package/components/stepper/themes/step/light/step.indigo.css.js +1 -1
  350. package/components/stepper/themes/step/light/step.indigo.css.js.map +1 -1
  351. package/components/stepper/themes/step/light/step.material.css.js +1 -1
  352. package/components/stepper/themes/step/light/step.material.css.js.map +1 -1
  353. package/components/stepper/themes/step/light/step.shared.css.js +1 -1
  354. package/components/stepper/themes/step/light/step.shared.css.js.map +1 -1
  355. package/components/tabs/tab-dom.d.ts +2 -2
  356. package/components/tabs/tab-dom.js +15 -2
  357. package/components/tabs/tab-dom.js.map +1 -1
  358. package/components/tabs/tabs.d.ts +2 -1
  359. package/components/tabs/tabs.js +10 -8
  360. package/components/tabs/tabs.js.map +1 -1
  361. package/components/tabs/themes/dark/tab.indigo.css.js +1 -1
  362. package/components/tabs/themes/dark/tab.indigo.css.js.map +1 -1
  363. package/components/tabs/themes/light/tab.indigo.css.js +1 -1
  364. package/components/tabs/themes/light/tab.indigo.css.js.map +1 -1
  365. package/components/tabs/themes/tab.base.css.js +1 -1
  366. package/components/tabs/themes/tab.base.css.js.map +1 -1
  367. package/components/textarea/textarea.d.ts +30 -33
  368. package/components/textarea/textarea.js +95 -96
  369. package/components/textarea/textarea.js.map +1 -1
  370. package/components/textarea/themes/dark/textarea.bootstrap.css.js +1 -1
  371. package/components/textarea/themes/dark/textarea.bootstrap.css.js.map +1 -1
  372. package/components/textarea/themes/dark/textarea.indigo.css.js +1 -1
  373. package/components/textarea/themes/dark/textarea.indigo.css.js.map +1 -1
  374. package/components/textarea/themes/light/textarea.bootstrap.css.js +1 -1
  375. package/components/textarea/themes/light/textarea.bootstrap.css.js.map +1 -1
  376. package/components/textarea/themes/light/textarea.indigo.css.js +1 -1
  377. package/components/textarea/themes/light/textarea.indigo.css.js.map +1 -1
  378. package/components/textarea/themes/light/textarea.shared.css.js +1 -1
  379. package/components/textarea/themes/light/textarea.shared.css.js.map +1 -1
  380. package/components/textarea/themes/shared/textarea.bootstrap.css.js +1 -1
  381. package/components/textarea/themes/shared/textarea.bootstrap.css.js.map +1 -1
  382. package/components/textarea/themes/shared/textarea.fluent.css.js +1 -1
  383. package/components/textarea/themes/shared/textarea.fluent.css.js.map +1 -1
  384. package/components/textarea/themes/shared/textarea.indigo.css.js +1 -1
  385. package/components/textarea/themes/shared/textarea.indigo.css.js.map +1 -1
  386. package/components/textarea/themes/shared/textarea.material.css.js +1 -1
  387. package/components/textarea/themes/shared/textarea.material.css.js.map +1 -1
  388. package/components/textarea/themes/textarea.base.css.js +1 -1
  389. package/components/textarea/themes/textarea.base.css.js.map +1 -1
  390. package/components/tile-manager/tile-manager.js +5 -4
  391. package/components/tile-manager/tile-manager.js.map +1 -1
  392. package/components/tile-manager/tile.js +6 -5
  393. package/components/tile-manager/tile.js.map +1 -1
  394. package/components/tooltip/tooltip.d.ts +24 -9
  395. package/components/tooltip/tooltip.js +22 -19
  396. package/components/tooltip/tooltip.js.map +1 -1
  397. package/components/tree/tree-item.js +5 -3
  398. package/components/tree/tree-item.js.map +1 -1
  399. package/components/types.d.ts +1 -1
  400. package/components/types.js.map +1 -1
  401. package/components/validation-container/themes/dark/validator.indigo.css.js +1 -1
  402. package/components/validation-container/themes/dark/validator.indigo.css.js.map +1 -1
  403. package/components/validation-container/validation-container.js +4 -11
  404. package/components/validation-container/validation-container.js.map +1 -1
  405. package/custom-elements.json +21925 -18034
  406. package/igniteui-webcomponents.css-data.json +1 -1
  407. package/igniteui-webcomponents.html-data.json +1 -1
  408. package/index.d.ts +4 -1
  409. package/index.js +1 -0
  410. package/index.js.map +1 -1
  411. package/package.json +3 -2
  412. package/themes/dark/bootstrap.css +1 -1
  413. package/themes/dark/fluent.css +1 -1
  414. package/themes/dark/indigo.css +1 -1
  415. package/themes/dark/material.css +1 -1
  416. package/themes/light/bootstrap.css +1 -1
  417. package/themes/light/fluent.css +1 -1
  418. package/themes/light/indigo.css +1 -1
  419. package/themes/light/material.css +1 -1
  420. package/web-types.json +2 -2
  421. package/components/radio-group/radio-group.base.css.js.map +0 -1
  422. package/components/radio-group/radio-group.fluent.css.js +0 -3
  423. package/components/radio-group/radio-group.fluent.css.js.map +0 -1
  424. package/components/radio-group/radio-group.indigo.css.js +0 -3
  425. package/components/radio-group/radio-group.indigo.css.js.map +0 -1
  426. package/components/radio-group/radio-group.material.css.js +0 -3
  427. package/components/radio-group/radio-group.material.css.js.map +0 -1
  428. /package/components/{radio-group/radio-group.base.css.d.ts → date-picker/themes/shared/date-picker.material.css.d.ts} +0 -0
  429. /package/components/{radio-group/radio-group.fluent.css.d.ts → date-range-picker/date-range-picker.base.css.d.ts} +0 -0
  430. /package/components/{radio-group/radio-group.indigo.css.d.ts → date-range-picker/predefined-ranges-area.base.css.d.ts} +0 -0
  431. /package/components/{radio-group/radio-group.material.css.d.ts → date-range-picker/themes/dark/date-range-picker.bootstrap.css.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"tree-item.js","sourceRoot":"","sources":["../../../src/components/tree/tree-item.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, nothing } from 'lit';\nimport {\n property,\n query,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js';\nimport { type Ref, createRef, ref } from 'lit/directives/ref.js';\n\nimport { addAnimationController } from '../../animations/player.js';\nimport { growVerIn, growVerOut } from '../../animations/presets/grow/index.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport IgcCheckboxComponent from '../checkbox/checkbox.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport {\n findElementFromEventPath,\n isLTR,\n partNameMap,\n} from '../common/util.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport IgcCircularProgressComponent from '../progress/circular-progress.js';\nimport { styles } from './themes/item.base.css.js';\nimport { all } from './themes/item.js';\nimport { styles as shared } from './themes/shared/item.common.css.js';\nimport type IgcTreeComponent from './tree.js';\nimport type { IgcTreeNavigationService } from './tree.navigation.js';\nimport type { IgcTreeSelectionService } from './tree.selection.js';\n\n/**\n * The tree-item component represents a child item of the tree component or another tree item.\n *\n * @element igc-tree-item\n *\n * @slot - Renders nested tree-item component.\n * @slot label - Renders the tree item container.\n * @slot indicator - Renders the expand indicator container.\n * @slot loading - Renders the tree item loading indicator container.\n * @slot indentation - Renders the container (by default the space) before the tree item.\n *\n * @csspart wrapper - The wrapper for the tree item.\n * @csspart selected - Indicates selected state. Applies to `wrapper`.\n * @csspart focused - Indicates focused state. Applies to `wrapper`.\n * @csspart active - Indicates an active state. Applies to `wrapper`.\n * @csspart indicator - The expand indicator of the tree item.\n * @csspart label - The tree item content.\n * @csspart text - The tree item displayed text.\n * @csspart select - The checkbox of the tree item when selection is enabled.\n */\n@themes(all)\nexport default class IgcTreeItemComponent extends LitElement {\n public static readonly tagName = 'igc-tree-item';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(\n IgcTreeItemComponent,\n IgcIconComponent,\n IgcCheckboxComponent,\n IgcCircularProgressComponent\n );\n }\n\n private tabbableEl?: HTMLElement[];\n private focusedProgrammatically = false;\n\n private groupRef: Ref<HTMLElement> = createRef();\n\n private animationPlayer = addAnimationController(this, this.groupRef);\n\n /* blazorSuppress */\n /** A reference to the tree the item is a part of. */\n public tree?: IgcTreeComponent;\n /** The parent item of the current tree item (if any) */\n public parent: IgcTreeItemComponent | null = null;\n\n /** @private @hidden @internal */\n public init = false;\n\n @queryAssignedElements({ slot: 'label', flatten: true })\n private contentList!: Array<HTMLElement>;\n\n /** @private @hidden @internal */\n @query('#wrapper')\n public wrapper!: HTMLElement;\n\n @state()\n private isFocused = false;\n\n /** @private @hidden @internal */\n @state()\n public hasChildren = false;\n\n /** The depth of the item, relative to the root. */\n @state()\n public level = 0;\n\n /** @private @hidden @internal */\n @state()\n public indeterminate = false;\n\n /**\n * The tree item label.\n * @attr\n */\n @property()\n public label = '';\n\n /**\n * The tree item expansion state.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public expanded = false;\n\n /**\n * Marks the item as the tree's active item.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public active = false;\n\n /**\n * Get/Set whether the tree item is disabled. Disabled items are ignored for user interactions.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public disabled = false;\n\n /**\n * The tree item selection state.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public selected = false;\n\n /**\n * To be used for load-on-demand scenarios in order to specify whether the item is loading data.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public loading = false;\n\n /**\n * The value entry that the tree item is visualizing. Required for searching through items.\n * @type any\n * @attr\n */\n @property({ attribute: true })\n public value: any = undefined;\n\n private async toggleAnimation(dir: 'open' | 'close') {\n const animation = dir === 'open' ? growVerIn : growVerOut;\n\n const [_, event] = await Promise.all([\n this.animationPlayer.stopAll(),\n this.animationPlayer.play(animation()),\n ]);\n\n return event.type === 'finish';\n }\n\n @watch('expanded', { waitUntilFirstUpdate: true })\n @watch('hasChildren', { waitUntilFirstUpdate: true })\n protected bothChange(): void {\n if (this.hasChildren) {\n this.setAttribute('aria-expanded', this.expanded.toString());\n } else {\n this.removeAttribute('aria-expanded');\n }\n }\n\n @watch('expanded')\n protected expandedChange(oldValue: boolean): void {\n // always update the visible cache\n this.navService?.update_visible_cache(this, this.expanded);\n if (!oldValue) {\n return;\n }\n // await for load on demand children\n Promise.resolve().then(() => {\n if (this.navService?.focusedItem !== this && !this.isFocused) {\n this.navService?.focusedItem?.wrapper?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'nearest',\n });\n }\n });\n }\n\n @watch('active', { waitUntilFirstUpdate: true })\n protected activeChange(): void {\n if ((this.active && this.navService?.activeItem === this) || !this.active) {\n return;\n }\n if (this.navService) {\n this.navService.setActiveItem(this, false);\n }\n // Expand and scroll to the newly active item\n this.tree?.expandToItem(this);\n // Await for expanding\n Promise.resolve().then(() => {\n this.wrapper?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'nearest',\n });\n });\n }\n\n @watch('disabled')\n protected disabledChange(): void {\n this.navService?.update_disabled_cache(this);\n }\n\n @watch('selected', { waitUntilFirstUpdate: true })\n protected selectedChange(): void {\n if (this.selected && !this.selectionService?.isItemSelected(this)) {\n this.selectionService?.selectItemsWithNoEvent([this]);\n }\n if (!this.selected && this.selectionService?.isItemSelected(this)) {\n this.selectionService?.deselectItemsWithNoEvent([this]);\n }\n }\n\n public override connectedCallback(): void {\n super.connectedCallback();\n this.tree = this.closest('igc-tree') as IgcTreeComponent;\n this.parent = this.parentElement?.closest(\n 'igc-tree-item'\n ) as IgcTreeItemComponent | null;\n this.level = this.parent ? this.parent.level + 1 : 0;\n this.setAttribute('role', 'treeitem');\n this.addEventListener('blur', this.onBlur);\n this.addEventListener('focus', this.onFocus);\n this.addEventListener('click', this.itemClick);\n this.activeChange();\n // if the item is not added/moved runtime\n if (this.init) {\n this.selectedChange();\n } else {\n // retriger the item selection state in order to update the collections within the selectionService\n // and to handle correctly the itemParents recursively to the top-most ancestor\n this.selectionService?.retriggerItemState(this);\n }\n this.init = false;\n }\n\n public override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.selectionService?.ensureStateOnItemDelete(this);\n this.navService?.delete_item(this);\n }\n\n private get selectionService(): IgcTreeSelectionService | undefined {\n return this.tree?.selectionService;\n }\n\n private get navService(): IgcTreeNavigationService | undefined {\n return this.tree?.navService;\n }\n\n private get parts() {\n return {\n selected: this.selected,\n focused: this.isFocused,\n active: this.active,\n };\n }\n\n private get directChildren(): Array<IgcTreeItemComponent> {\n return this.allChildren.filter(\n (x) => (x.parent ?? x.parentElement?.closest('igc-tree-item')) === this\n ) as IgcTreeItemComponent[];\n }\n\n private get allChildren(): Array<IgcTreeItemComponent> {\n return Array.from(this.querySelectorAll('igc-tree-item'));\n }\n\n /** The full path to the tree item, starting from the top-most ancestor. */\n public get path(): IgcTreeItemComponent[] {\n return this.parent?.path ? [...this.parent.path, this] : [this];\n }\n\n private itemClick(event: MouseEvent): void {\n if (\n this.disabled ||\n this !== findElementFromEventPath(this.tagName, event)\n ) {\n return;\n }\n this.tabIndex = 0;\n if (this.tree?.toggleNodeOnClick && event.button === 0) {\n if (this.expanded) {\n this.collapseWithEvent();\n } else {\n this.expandWithEvent();\n }\n }\n this.navService?.setFocusedAndActiveItem(this, true, true);\n }\n\n private expandIndicatorClick(): void {\n if (this.disabled) {\n return;\n }\n if (this.expanded) {\n this.collapseWithEvent();\n } else {\n this.expandWithEvent();\n }\n }\n\n private selectorClick(event: MouseEvent): void {\n event.preventDefault();\n if (this.tree?.toggleNodeOnClick) {\n event.stopPropagation();\n }\n if (event.shiftKey) {\n this.selectionService?.selectMultipleItems(this);\n return;\n }\n if (this.selected) {\n this.selectionService?.deselectItem(this);\n } else {\n this.selectionService?.selectItem(this);\n }\n }\n\n private onFocus(): void {\n if (this.disabled) {\n return;\n }\n if (this.navService?.focusedItem !== this) {\n this.navService?.focusItem(this, false);\n this.wrapper?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'nearest',\n });\n }\n if (this.tabbableEl?.length) {\n // set tabIndex = 0 to all tabbable elements\n // focus the first one\n this.tabbableEl.forEach((element: HTMLElement) => {\n element.tabIndex = 0;\n });\n this.focusedProgrammatically = true;\n this.tabbableEl[0].focus();\n return;\n }\n this.isFocused = true;\n }\n\n private onBlur(): void {\n this.isFocused = false;\n }\n\n private onFocusIn(ev: Event): void {\n ev?.stopPropagation();\n if (!this.disabled) {\n // clicking directly over tabbable element when the item is not focused\n if (!this.focusedProgrammatically) {\n this.tabbableEl?.forEach((element: HTMLElement) => {\n element.tabIndex = 0;\n });\n }\n this.removeAttribute('tabIndex');\n this.isFocused = true;\n this.focusedProgrammatically = false;\n }\n }\n\n private onFocusOut(ev: Event): void {\n ev?.stopPropagation();\n this.isFocused = false;\n this.tabbableEl?.forEach((element: HTMLElement) => {\n element.tabIndex = -1;\n });\n\n if (this.navService?.focusedItem === this) {\n // called twice when clicking on already focused item with link (itemClick handler)\n this.setAttribute('tabindex', '0');\n }\n }\n\n private labelChange(): void {\n const firstElement = this.contentList[0];\n const tabbableSelector =\n 'a[href], button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"])';\n\n this.tabbableEl = [\n ...firstElement.querySelectorAll<HTMLElement>(tabbableSelector),\n ];\n if (firstElement.matches(tabbableSelector)) {\n this.tabbableEl.splice(0, 0, firstElement);\n }\n\n if (this.tabbableEl?.length) {\n this.setAttribute('role', 'none');\n this.tabbableEl[0].setAttribute('role', 'treeitem');\n\n this.tabbableEl.forEach((element: HTMLElement) => {\n element.tabIndex = -1;\n });\n } else {\n this.setAttribute('role', 'treeitem');\n }\n }\n\n private handleChange(): void {\n this.hasChildren = !!this.directChildren.length;\n // there is no need to update nested children beacuse they're state is already up to date\n this.navService?.update_visible_cache(this, this.expanded, false);\n }\n\n /* blazorSuppress */\n /**\n * Returns a collection of child items.\n * If the parameter value is true returns all tree item's direct children,\n * otherwise - only the direct children.\n */\n public getChildren(\n options: { flatten: boolean } = { flatten: false }\n ): IgcTreeItemComponent[] {\n if (options.flatten) {\n return this.allChildren;\n }\n return this.directChildren;\n }\n\n /**\n * @private\n * Expands the tree item.\n */\n public async expandWithEvent() {\n if (this.expanded) {\n return;\n }\n const args = {\n detail: this,\n cancelable: true,\n };\n\n const allowed = this.tree?.emitEvent('igcItemExpanding', args);\n\n if (!allowed) {\n return;\n }\n\n if (this.tree?.singleBranchExpand) {\n const pathSet = new Set(this.path.splice(0, this.path.length - 1));\n this.tree.items.forEach((item: IgcTreeItemComponent) => {\n if (!pathSet.has(item)) {\n item.collapseWithEvent();\n }\n });\n }\n\n this.expanded = true;\n if (await this.toggleAnimation('open')) {\n this.tree?.emitEvent('igcItemExpanded', { detail: this });\n }\n }\n\n /**\n * @private\n * Collapses the tree item.\n */\n public async collapseWithEvent() {\n if (!this.expanded) {\n return;\n }\n const args = {\n detail: this,\n cancelable: true,\n };\n\n const allowed = this.tree?.emitEvent('igcItemCollapsing', args);\n\n if (!allowed) {\n return;\n }\n\n this.expanded = false;\n if (await this.toggleAnimation('close')) {\n this.tree?.emitEvent('igcItemCollapsed', { detail: this });\n }\n }\n\n /** Toggles tree item expansion state. */\n public toggle(): void {\n this.expanded = !this.expanded;\n }\n\n /** Expands the tree item. */\n public expand(): void {\n this.expanded = true;\n }\n\n /** Collapses the tree item. */\n public collapse(): void {\n this.expanded = false;\n }\n\n protected override render() {\n const indicatorParts = {\n indicator: true,\n rtl: !(this.tree ? isLTR(this.tree) : true),\n };\n\n return html`\n <div id=\"wrapper\" part=\"wrapper ${partNameMap(this.parts)}\">\n <div\n style=\"width: calc(${this.level} * var(--igc-tree-indentation-size))\"\n part=\"indentation\"\n aria-hidden=\"true\"\n >\n <slot name=\"indentation\"></slot>\n </div>\n <div part=\"${partNameMap(indicatorParts)}\" aria-hidden=\"true\">\n ${this.loading\n ? html`\n <slot name=\"loading\">\n <igc-circular-progress indeterminate></igc-circular-progress>\n </slot>\n `\n : html`\n <slot\n name=\"indicator\"\n @click=${this.tree?.toggleNodeOnClick\n ? nothing\n : this.expandIndicatorClick}\n >\n ${this.hasChildren\n ? html`\n <igc-icon\n name=${this.expanded\n ? 'tree_collapse'\n : 'tree_expand'}\n collection=\"default\"\n >\n </igc-icon>\n `\n : ''}\n </slot>\n `}\n </div>\n ${this.tree?.selection !== 'none'\n ? html`\n <div part=\"select\" aria-hidden=\"true\">\n <igc-checkbox\n @click=${this.selectorClick}\n .checked=${this.selected}\n .indeterminate=${this.indeterminate}\n .disabled=${this.disabled}\n tabindex=\"-1\"\n >\n </igc-checkbox>\n </div>\n `\n : ''}\n <div part=\"label\">\n <slot\n name=\"label\"\n @slotchange=${this.labelChange}\n @focusin=${this.onFocusIn}\n @focusout=${this.onFocusOut}\n >\n <span part=\"text\">${this.label}</span>\n </slot>\n </div>\n </div>\n <div ${ref(this.groupRef)} role=\"group\" aria-hidden=${!this.expanded}>\n <slot @slotchange=${this.handleChange}></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-tree-item': IgcTreeItemComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"tree-item.js","sourceRoot":"","sources":["../../../src/components/tree/tree-item.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, nothing } from 'lit';\nimport {\n property,\n query,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js';\nimport { type Ref, createRef, ref } from 'lit/directives/ref.js';\n\nimport { addAnimationController } from '../../animations/player.js';\nimport { growVerIn, growVerOut } from '../../animations/presets/grow/index.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport IgcCheckboxComponent from '../checkbox/checkbox.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { partMap } from '../common/part-map.js';\nimport { findElementFromEventPath, isLTR } from '../common/util.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport IgcCircularProgressComponent from '../progress/circular-progress.js';\nimport { styles } from './themes/item.base.css.js';\nimport { all } from './themes/item.js';\nimport { styles as shared } from './themes/shared/item.common.css.js';\nimport type IgcTreeComponent from './tree.js';\nimport type { IgcTreeNavigationService } from './tree.navigation.js';\nimport type { IgcTreeSelectionService } from './tree.selection.js';\n\n/**\n * The tree-item component represents a child item of the tree component or another tree item.\n *\n * @element igc-tree-item\n *\n * @slot - Renders nested tree-item component.\n * @slot label - Renders the tree item container.\n * @slot indicator - Renders the expand indicator container.\n * @slot loading - Renders the tree item loading indicator container.\n * @slot indentation - Renders the container (by default the space) before the tree item.\n *\n * @csspart wrapper - The wrapper for the tree item.\n * @csspart selected - Indicates selected state. Applies to `wrapper`.\n * @csspart focused - Indicates focused state. Applies to `wrapper`.\n * @csspart active - Indicates an active state. Applies to `wrapper`.\n * @csspart indicator - The expand indicator of the tree item.\n * @csspart label - The tree item content.\n * @csspart text - The tree item displayed text.\n * @csspart select - The checkbox of the tree item when selection is enabled.\n */\n@themes(all)\nexport default class IgcTreeItemComponent extends LitElement {\n public static readonly tagName = 'igc-tree-item';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(\n IgcTreeItemComponent,\n IgcIconComponent,\n IgcCheckboxComponent,\n IgcCircularProgressComponent\n );\n }\n\n private tabbableEl?: HTMLElement[];\n private focusedProgrammatically = false;\n\n private groupRef: Ref<HTMLElement> = createRef();\n\n private animationPlayer = addAnimationController(this, this.groupRef);\n\n /* blazorSuppress */\n /** A reference to the tree the item is a part of. */\n public tree?: IgcTreeComponent;\n /** The parent item of the current tree item (if any) */\n public parent: IgcTreeItemComponent | null = null;\n\n /** @private @hidden @internal */\n public init = false;\n\n @queryAssignedElements({ slot: 'label', flatten: true })\n private contentList!: Array<HTMLElement>;\n\n /** @private @hidden @internal */\n @query('#wrapper')\n public wrapper!: HTMLElement;\n\n @state()\n private isFocused = false;\n\n /** @private @hidden @internal */\n @state()\n public hasChildren = false;\n\n /** The depth of the item, relative to the root. */\n @state()\n public level = 0;\n\n /** @private @hidden @internal */\n @state()\n public indeterminate = false;\n\n /**\n * The tree item label.\n * @attr\n */\n @property()\n public label = '';\n\n /**\n * The tree item expansion state.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public expanded = false;\n\n /**\n * Marks the item as the tree's active item.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public active = false;\n\n /**\n * Get/Set whether the tree item is disabled. Disabled items are ignored for user interactions.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public disabled = false;\n\n /**\n * The tree item selection state.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public selected = false;\n\n /**\n * To be used for load-on-demand scenarios in order to specify whether the item is loading data.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public loading = false;\n\n /**\n * The value entry that the tree item is visualizing. Required for searching through items.\n * @type any\n * @attr\n */\n @property({ attribute: true })\n public value: any = undefined;\n\n private async toggleAnimation(dir: 'open' | 'close') {\n const animation = dir === 'open' ? growVerIn : growVerOut;\n\n const [_, event] = await Promise.all([\n this.animationPlayer.stopAll(),\n this.animationPlayer.play(animation()),\n ]);\n\n return event.type === 'finish';\n }\n\n @watch('expanded', { waitUntilFirstUpdate: true })\n @watch('hasChildren', { waitUntilFirstUpdate: true })\n protected bothChange(): void {\n if (this.hasChildren) {\n this.setAttribute('aria-expanded', this.expanded.toString());\n } else {\n this.removeAttribute('aria-expanded');\n }\n }\n\n @watch('expanded')\n protected expandedChange(oldValue: boolean): void {\n // always update the visible cache\n this.navService?.update_visible_cache(this, this.expanded);\n if (!oldValue) {\n return;\n }\n // await for load on demand children\n Promise.resolve().then(() => {\n if (this.navService?.focusedItem !== this && !this.isFocused) {\n this.navService?.focusedItem?.wrapper?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'nearest',\n });\n }\n });\n }\n\n @watch('active', { waitUntilFirstUpdate: true })\n protected activeChange(): void {\n if ((this.active && this.navService?.activeItem === this) || !this.active) {\n return;\n }\n if (this.navService) {\n this.navService.setActiveItem(this, false);\n }\n // Expand and scroll to the newly active item\n this.tree?.expandToItem(this);\n // Await for expanding\n Promise.resolve().then(() => {\n this.wrapper?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'nearest',\n });\n });\n }\n\n @watch('disabled')\n protected disabledChange(): void {\n this.navService?.update_disabled_cache(this);\n }\n\n @watch('selected', { waitUntilFirstUpdate: true })\n protected selectedChange(): void {\n if (this.selected && !this.selectionService?.isItemSelected(this)) {\n this.selectionService?.selectItemsWithNoEvent([this]);\n }\n if (!this.selected && this.selectionService?.isItemSelected(this)) {\n this.selectionService?.deselectItemsWithNoEvent([this]);\n }\n }\n\n public override connectedCallback(): void {\n super.connectedCallback();\n this.tree = this.closest('igc-tree') as IgcTreeComponent;\n this.parent = this.parentElement?.closest(\n 'igc-tree-item'\n ) as IgcTreeItemComponent | null;\n this.level = this.parent ? this.parent.level + 1 : 0;\n this.setAttribute('role', 'treeitem');\n this.addEventListener('blur', this.onBlur);\n this.addEventListener('focus', this.onFocus);\n this.addEventListener('click', this.itemClick);\n this.activeChange();\n // if the item is not added/moved runtime\n if (this.init) {\n this.selectedChange();\n } else {\n // retriger the item selection state in order to update the collections within the selectionService\n // and to handle correctly the itemParents recursively to the top-most ancestor\n this.selectionService?.retriggerItemState(this);\n }\n this.init = false;\n }\n\n public override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.selectionService?.ensureStateOnItemDelete(this);\n this.navService?.delete_item(this);\n }\n\n private get selectionService(): IgcTreeSelectionService | undefined {\n return this.tree?.selectionService;\n }\n\n private get navService(): IgcTreeNavigationService | undefined {\n return this.tree?.navService;\n }\n\n private get parts() {\n return {\n wrapper: true,\n selected: this.selected,\n focused: this.isFocused,\n active: this.active,\n };\n }\n\n private get directChildren(): Array<IgcTreeItemComponent> {\n return this.allChildren.filter(\n (x) => (x.parent ?? x.parentElement?.closest('igc-tree-item')) === this\n ) as IgcTreeItemComponent[];\n }\n\n private get allChildren(): Array<IgcTreeItemComponent> {\n return Array.from(this.querySelectorAll('igc-tree-item'));\n }\n\n /** The full path to the tree item, starting from the top-most ancestor. */\n public get path(): IgcTreeItemComponent[] {\n return this.parent?.path ? [...this.parent.path, this] : [this];\n }\n\n private itemClick(event: MouseEvent): void {\n if (\n this.disabled ||\n this !== findElementFromEventPath(this.tagName, event)\n ) {\n return;\n }\n this.tabIndex = 0;\n if (this.tree?.toggleNodeOnClick && event.button === 0) {\n if (this.expanded) {\n this.collapseWithEvent();\n } else {\n this.expandWithEvent();\n }\n }\n this.navService?.setFocusedAndActiveItem(this, true, true);\n }\n\n private expandIndicatorClick(): void {\n if (this.disabled) {\n return;\n }\n if (this.expanded) {\n this.collapseWithEvent();\n } else {\n this.expandWithEvent();\n }\n }\n\n private selectorClick(event: MouseEvent): void {\n event.preventDefault();\n if (this.tree?.toggleNodeOnClick) {\n event.stopPropagation();\n }\n if (event.shiftKey) {\n this.selectionService?.selectMultipleItems(this);\n return;\n }\n if (this.selected) {\n this.selectionService?.deselectItem(this);\n } else {\n this.selectionService?.selectItem(this);\n }\n }\n\n private onFocus(): void {\n if (this.disabled) {\n return;\n }\n if (this.navService?.focusedItem !== this) {\n this.navService?.focusItem(this, false);\n this.wrapper?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'nearest',\n });\n }\n if (this.tabbableEl?.length) {\n // set tabIndex = 0 to all tabbable elements\n // focus the first one\n this.tabbableEl.forEach((element: HTMLElement) => {\n element.tabIndex = 0;\n });\n this.focusedProgrammatically = true;\n this.tabbableEl[0].focus();\n return;\n }\n this.isFocused = true;\n }\n\n private onBlur(): void {\n this.isFocused = false;\n }\n\n private onFocusIn(ev: Event): void {\n ev?.stopPropagation();\n if (!this.disabled) {\n // clicking directly over tabbable element when the item is not focused\n if (!this.focusedProgrammatically) {\n this.tabbableEl?.forEach((element: HTMLElement) => {\n element.tabIndex = 0;\n });\n }\n this.removeAttribute('tabIndex');\n this.isFocused = true;\n this.focusedProgrammatically = false;\n }\n }\n\n private onFocusOut(ev: Event): void {\n ev?.stopPropagation();\n this.isFocused = false;\n this.tabbableEl?.forEach((element: HTMLElement) => {\n element.tabIndex = -1;\n });\n\n if (this.navService?.focusedItem === this) {\n // called twice when clicking on already focused item with link (itemClick handler)\n this.setAttribute('tabindex', '0');\n }\n }\n\n private labelChange(): void {\n const firstElement = this.contentList[0];\n const tabbableSelector =\n 'a[href], button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"])';\n\n this.tabbableEl = [\n ...firstElement.querySelectorAll<HTMLElement>(tabbableSelector),\n ];\n if (firstElement.matches(tabbableSelector)) {\n this.tabbableEl.splice(0, 0, firstElement);\n }\n\n if (this.tabbableEl?.length) {\n this.setAttribute('role', 'none');\n this.tabbableEl[0].setAttribute('role', 'treeitem');\n\n this.tabbableEl.forEach((element: HTMLElement) => {\n element.tabIndex = -1;\n });\n } else {\n this.setAttribute('role', 'treeitem');\n }\n }\n\n private handleChange(): void {\n this.hasChildren = !!this.directChildren.length;\n // there is no need to update nested children beacuse they're state is already up to date\n this.navService?.update_visible_cache(this, this.expanded, false);\n }\n\n /* blazorSuppress */\n /**\n * Returns a collection of child items.\n * If the parameter value is true returns all tree item's direct children,\n * otherwise - only the direct children.\n */\n public getChildren(\n options: { flatten: boolean } = { flatten: false }\n ): IgcTreeItemComponent[] {\n if (options.flatten) {\n return this.allChildren;\n }\n return this.directChildren;\n }\n\n /**\n * @private\n * Expands the tree item.\n */\n public async expandWithEvent() {\n if (this.expanded) {\n return;\n }\n const args = {\n detail: this,\n cancelable: true,\n };\n\n const allowed = this.tree?.emitEvent('igcItemExpanding', args);\n\n if (!allowed) {\n return;\n }\n\n if (this.tree?.singleBranchExpand) {\n const pathSet = new Set(this.path.splice(0, this.path.length - 1));\n this.tree.items.forEach((item: IgcTreeItemComponent) => {\n if (!pathSet.has(item)) {\n item.collapseWithEvent();\n }\n });\n }\n\n this.expanded = true;\n if (await this.toggleAnimation('open')) {\n this.tree?.emitEvent('igcItemExpanded', { detail: this });\n }\n }\n\n /**\n * @private\n * Collapses the tree item.\n */\n public async collapseWithEvent() {\n if (!this.expanded) {\n return;\n }\n const args = {\n detail: this,\n cancelable: true,\n };\n\n const allowed = this.tree?.emitEvent('igcItemCollapsing', args);\n\n if (!allowed) {\n return;\n }\n\n this.expanded = false;\n if (await this.toggleAnimation('close')) {\n this.tree?.emitEvent('igcItemCollapsed', { detail: this });\n }\n }\n\n /** Toggles tree item expansion state. */\n public toggle(): void {\n this.expanded = !this.expanded;\n }\n\n /** Expands the tree item. */\n public expand(): void {\n this.expanded = true;\n }\n\n /** Collapses the tree item. */\n public collapse(): void {\n this.expanded = false;\n }\n\n protected override render() {\n const indicatorParts = {\n indicator: true,\n rtl: !(this.tree ? isLTR(this.tree) : true),\n };\n\n return html`\n <div id=\"wrapper\" part=${partMap(this.parts)}>\n <div\n style=\"width: calc(${this.level} * var(--igc-tree-indentation-size))\"\n part=\"indentation\"\n aria-hidden=\"true\"\n >\n <slot name=\"indentation\"></slot>\n </div>\n <div part=${partMap(indicatorParts)} aria-hidden=\"true\">\n ${this.loading\n ? html`\n <slot name=\"loading\">\n <igc-circular-progress indeterminate></igc-circular-progress>\n </slot>\n `\n : html`\n <slot\n name=\"indicator\"\n @click=${this.tree?.toggleNodeOnClick\n ? nothing\n : this.expandIndicatorClick}\n >\n ${this.hasChildren\n ? html`\n <igc-icon\n name=${this.expanded\n ? 'tree_collapse'\n : 'tree_expand'}\n collection=\"default\"\n >\n </igc-icon>\n `\n : ''}\n </slot>\n `}\n </div>\n ${this.tree?.selection !== 'none'\n ? html`\n <div part=\"select\" aria-hidden=\"true\">\n <igc-checkbox\n @click=${this.selectorClick}\n .checked=${this.selected}\n .indeterminate=${this.indeterminate}\n .disabled=${this.disabled}\n tabindex=\"-1\"\n >\n </igc-checkbox>\n </div>\n `\n : ''}\n <div part=\"label\">\n <slot\n name=\"label\"\n @slotchange=${this.labelChange}\n @focusin=${this.onFocusIn}\n @focusout=${this.onFocusOut}\n >\n <span part=\"text\">${this.label}</span>\n </slot>\n </div>\n </div>\n <div ${ref(this.groupRef)} role=\"group\" aria-hidden=${!this.expanded}>\n <slot @slotchange=${this.handleChange}></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-tree-item': IgcTreeItemComponent;\n }\n}\n"]}
@@ -16,7 +16,7 @@ export type CarouselIndicatorsOrientation = 'end' | 'start';
16
16
  export type DividerType = 'solid' | 'dashed';
17
17
  export type ExpansionPanelIndicatorPosition = 'start' | 'end' | 'none';
18
18
  export type IconButtonVariant = 'contained' | 'flat' | 'outlined';
19
- export type InputType = 'email' | 'number' | 'password' | 'search' | 'tel' | 'text' | 'url';
19
+ export type InputType = 'text' | 'email' | 'number' | 'password' | 'search' | 'tel' | 'url';
20
20
  export type LinearProgressLabelAlign = 'top-start' | 'top' | 'top-end' | 'bottom-start' | 'bottom' | 'bottom-end';
21
21
  export type MaskInputValueMode = 'raw' | 'withFormatting';
22
22
  export type NavDrawerPosition = 'start' | 'end' | 'top' | 'bottom' | 'relative';
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/components/types.ts"],"names":[],"mappings":"","sourcesContent":["// Public API types\n// NOTE: use default value as first in order where possible for union types\n\n//#region shared types\nexport type AbsolutePosition = 'bottom' | 'middle' | 'top';\nexport type ContentOrientation = 'horizontal' | 'vertical';\nexport type HorizontalTransitionAnimation = 'slide' | 'fade' | 'none';\nexport type PickerMode = 'dropdown' | 'dialog';\nexport type PopoverScrollStrategy = 'scroll' | 'block' | 'close';\nexport type RangeTextSelectMode = 'preserve' | 'select' | 'start' | 'end';\nexport type SelectionRangeDirection = 'none' | 'backward' | 'forward';\nexport type StyleVariant =\n | 'primary'\n | 'info'\n | 'success'\n | 'warning'\n | 'danger';\nexport type ToggleLabelPosition = 'after' | 'before';\nexport type TreeSelection = 'none' | 'multiple' | 'cascade';\n//#endregion\n\n//#region component-specific\nexport type AvatarShape = 'square' | 'circle' | 'rounded';\nexport type BadgeShape = 'rounded' | 'square';\nexport type ButtonGroupSelection = 'single' | 'single-required' | 'multiple';\nexport type ButtonVariant = 'contained' | 'flat' | 'outlined' | 'fab';\nexport type CarouselIndicatorsOrientation = 'end' | 'start';\nexport type DividerType = 'solid' | 'dashed';\nexport type ExpansionPanelIndicatorPosition = 'start' | 'end' | 'none';\nexport type IconButtonVariant = 'contained' | 'flat' | 'outlined';\nexport type InputType =\n | 'email'\n | 'number'\n | 'password'\n | 'search'\n | 'tel'\n | 'text'\n | 'url';\nexport type LinearProgressLabelAlign =\n | 'top-start'\n | 'top'\n | 'top-end'\n | 'bottom-start'\n | 'bottom'\n | 'bottom-end';\nexport type MaskInputValueMode = 'raw' | 'withFormatting';\nexport type NavDrawerPosition = 'start' | 'end' | 'top' | 'bottom' | 'relative';\nexport type SliderTickLabelRotation = 0 | 90 | -90;\nexport type SliderTickOrientation = 'end' | 'mirror' | 'start';\nexport type StepperOrientation = 'horizontal' | 'vertical';\nexport type StepperStepType = 'full' | 'indicator' | 'title';\nexport type StepperTitlePosition = 'auto' | 'bottom' | 'top' | 'end' | 'start';\nexport type StepperVerticalAnimation = 'grow' | 'fade' | 'none';\nexport type TabsActivation = 'auto' | 'manual';\nexport type TabsAlignment = 'start' | 'end' | 'center' | 'justify';\nexport type TextareaResize = 'vertical' | 'auto' | 'none';\nexport type TileManagerDragMode = 'none' | 'tile-header' | 'tile';\nexport type TileManagerResizeMode = 'none' | 'hover' | 'always';\n//#endregion\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/components/types.ts"],"names":[],"mappings":"","sourcesContent":["// Public API types\n// NOTE: use default value as first in order where possible for union types\n\n//#region shared types\nexport type AbsolutePosition = 'bottom' | 'middle' | 'top';\nexport type ContentOrientation = 'horizontal' | 'vertical';\nexport type HorizontalTransitionAnimation = 'slide' | 'fade' | 'none';\nexport type PickerMode = 'dropdown' | 'dialog';\nexport type PopoverScrollStrategy = 'scroll' | 'block' | 'close';\nexport type RangeTextSelectMode = 'preserve' | 'select' | 'start' | 'end';\nexport type SelectionRangeDirection = 'none' | 'backward' | 'forward';\nexport type StyleVariant =\n | 'primary'\n | 'info'\n | 'success'\n | 'warning'\n | 'danger';\nexport type ToggleLabelPosition = 'after' | 'before';\nexport type TreeSelection = 'none' | 'multiple' | 'cascade';\n//#endregion\n\n//#region component-specific\nexport type AvatarShape = 'square' | 'circle' | 'rounded';\nexport type BadgeShape = 'rounded' | 'square';\nexport type ButtonGroupSelection = 'single' | 'single-required' | 'multiple';\nexport type ButtonVariant = 'contained' | 'flat' | 'outlined' | 'fab';\nexport type CarouselIndicatorsOrientation = 'end' | 'start';\nexport type DividerType = 'solid' | 'dashed';\nexport type ExpansionPanelIndicatorPosition = 'start' | 'end' | 'none';\nexport type IconButtonVariant = 'contained' | 'flat' | 'outlined';\nexport type InputType =\n | 'text'\n | 'email'\n | 'number'\n | 'password'\n | 'search'\n | 'tel'\n | 'url';\nexport type LinearProgressLabelAlign =\n | 'top-start'\n | 'top'\n | 'top-end'\n | 'bottom-start'\n | 'bottom'\n | 'bottom-end';\nexport type MaskInputValueMode = 'raw' | 'withFormatting';\nexport type NavDrawerPosition = 'start' | 'end' | 'top' | 'bottom' | 'relative';\nexport type SliderTickLabelRotation = 0 | 90 | -90;\nexport type SliderTickOrientation = 'end' | 'mirror' | 'start';\nexport type StepperOrientation = 'horizontal' | 'vertical';\nexport type StepperStepType = 'full' | 'indicator' | 'title';\nexport type StepperTitlePosition = 'auto' | 'bottom' | 'top' | 'end' | 'start';\nexport type StepperVerticalAnimation = 'grow' | 'fade' | 'none';\nexport type TabsActivation = 'auto' | 'manual';\nexport type TabsAlignment = 'start' | 'end' | 'center' | 'justify';\nexport type TextareaResize = 'vertical' | 'auto' | 'none';\nexport type TileManagerDragMode = 'none' | 'tile-header' | 'tile';\nexport type TileManagerResizeMode = 'none' | 'hover' | 'always';\n//#endregion\n"]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `:host{--text-error-color: var(--ig-validator-text-error-color, hsl(from var(--ig-gray-50-contrast) h s l/0.8));--ig-theme: indigo}`;
2
+ export const styles = css `:host{--helper-text-color: var(--ig-validator-helper-text-color, hsl(from var(--ig-gray-50-contrast) h s l/0.8));--text-error-color: var(--ig-validator-text-error-color, hsl(from var(--ig-gray-50-contrast) h s l/0.8));--ig-theme: indigo}`;
3
3
  //# sourceMappingURL=validator.indigo.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validator.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/validation-container/themes/dark/validator.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,oIAAoI,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--text-error-color: var(--ig-validator-text-error-color, hsl(from var(--ig-gray-50-contrast) h s l/0.8));--ig-theme: indigo}`;\n"]}
1
+ {"version":3,"file":"validator.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/validation-container/themes/dark/validator.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,+OAA+O,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--helper-text-color: var(--ig-validator-helper-text-color, hsl(from var(--ig-gray-50-contrast) h s l/0.8));--text-error-color: var(--ig-validator-text-error-color, hsl(from var(--ig-gray-50-contrast) h s l/0.8));--ig-theme: indigo}`;\n"]}
@@ -10,7 +10,8 @@ import { property, state } from 'lit/decorators.js';
10
10
  import { ifDefined } from 'lit/directives/if-defined.js';
11
11
  import { themes } from '../../theming/theming-decorator.js';
12
12
  import { registerComponent } from '../common/definitions/register.js';
13
- import { isEmpty, partNameMap, toKebabCase } from '../common/util.js';
13
+ import { partMap } from '../common/part-map.js';
14
+ import { isEmpty, toKebabCase } from '../common/util.js';
14
15
  import IgcIconComponent from '../icon/icon.js';
15
16
  import { styles as shared } from './themes/shared/validator.common.css.js';
16
17
  import { all } from './themes/themes.js';
@@ -96,12 +97,8 @@ let IgcValidationContainerComponent = IgcValidationContainerComponent_1 = class
96
97
  ></igc-icon>
97
98
  `
98
99
  : null;
99
- const parts = partNameMap({
100
- 'validation-message': true,
101
- empty: !icon,
102
- });
103
100
  return html `
104
- <div part=${parts}>
101
+ <div part=${partMap({ 'validation-message': true, empty: !icon })}>
105
102
  ${icon}
106
103
  <slot name=${slotName}></slot>
107
104
  </div>
@@ -128,12 +125,8 @@ let IgcValidationContainerComponent = IgcValidationContainerComponent_1 = class
128
125
  : html `<slot name="helper-text"></slot>`;
129
126
  }
130
127
  render() {
131
- const parts = partNameMap({
132
- 'helper-text': true,
133
- empty: hasProjection(this),
134
- });
135
128
  return html `
136
- <div part=${parts}>
129
+ <div part=${partMap({ 'helper-text': true, empty: hasProjection(this) })}>
137
130
  ${this.invalid
138
131
  ? this.renderValidationSlots(this.target.validity)
139
132
  : nothing}
@@ -1 +1 @@
1
- {"version":3,"file":"validation-container.js","sourceRoot":"","sources":["../../../src/components/validation-container/validation-container.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, type TemplateResult, html, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { IgcFormControl } from '../common/mixins/forms/types.js';\nimport { isEmpty, partNameMap, toKebabCase } from '../common/util.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport { styles as shared } from './themes/shared/validator.common.css.js';\nimport { all } from './themes/themes.js';\nimport { styles } from './themes/validator.base.css.js';\n\ninterface ValidationContainerConfig {\n /** The id attribute for the validation container. */\n id?: string;\n /** Project the validation container to the given slot inside the host shadow DOM. */\n slot?: string;\n /** Additional part(s) that should be bound to the validation container. */\n part?: string;\n /** Whether the validation container should expose a helper-text slot. */\n hasHelperText?: boolean;\n}\n\nfunction getValidationSlots(element: IgcValidationContainerComponent) {\n return element.renderRoot.querySelectorAll<HTMLSlotElement>(\n \"slot:not([name='helper-text'])\"\n );\n}\n\nfunction hasProjection(element: IgcValidationContainerComponent) {\n return Array.from(\n element.renderRoot.querySelectorAll<HTMLSlotElement>('slot')\n ).every((slot) => isEmpty(slot.assignedElements({ flatten: true })));\n}\n\nfunction hasProjectedValidation(\n element: IgcValidationContainerComponent,\n slotName?: string\n) {\n const config: AssignedNodesOptions = { flatten: true };\n const slots = Array.from(getValidationSlots(element));\n return slotName\n ? slots\n .filter((slot) => slot.name === slotName)\n .some((slot) => slot.assignedElements(config).length > 0)\n : slots.some((slot) => slot.assignedElements(config).length > 0);\n}\n\n/* blazorSuppress */\n/**\n * @element igc-validator\n *\n * @csspart helper-text - The base wrapper\n * @csspart validation-message - The validation error message container\n * @csspart validation-icon - The validation error icon\n */\n@themes(all)\nexport default class IgcValidationContainerComponent extends LitElement {\n public static readonly tagName = 'igc-validator';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcValidationContainerComponent, IgcIconComponent);\n }\n\n public static create(\n host: IgcFormControl,\n config: ValidationContainerConfig = {\n id: 'helper-text',\n hasHelperText: true,\n }\n ): TemplateResult {\n const { renderValidationSlots } = IgcValidationContainerComponent.prototype;\n const helperText = config.hasHelperText\n ? html`<slot name=\"helper-text\" slot=\"helper-text\"></slot>`\n : null;\n\n return html`\n <igc-validator\n id=${ifDefined(config.id)}\n part=${ifDefined(config.part)}\n slot=${ifDefined(config.slot)}\n .target=${host}\n ?invalid=${host.invalid}\n exportparts=\"helper-text validation-message validation-icon\"\n >\n ${helperText}${renderValidationSlots(host.validity, true)}\n </igc-validator>\n `;\n }\n\n private _target!: IgcFormControl;\n\n @state()\n private _hasSlottedContent = false;\n\n @property({ type: Boolean })\n public invalid = false;\n\n @property({ attribute: false })\n public set target(value: IgcFormControl) {\n if (this._target === value) {\n return;\n }\n\n this._target?.removeEventListener('invalid', this);\n this._target = value;\n this._target.addEventListener('invalid', this);\n }\n\n public get target() {\n return this._target;\n }\n\n protected override createRenderRoot() {\n const root = super.createRenderRoot();\n root.addEventListener('slotchange', this);\n return root;\n }\n\n public handleEvent({ type }: Event) {\n const isInvalid = type === 'invalid';\n const isSlotChange = type === 'slotchange';\n\n if (isInvalid || isSlotChange) {\n this.invalid = isInvalid ? true : this.invalid;\n this._hasSlottedContent = hasProjectedValidation(this);\n }\n\n this.requestUpdate();\n }\n\n protected renderValidationMessage(slotName: string) {\n const icon = hasProjectedValidation(this, slotName)\n ? html`\n <igc-icon\n aria-hidden=\"true\"\n name=\"error\"\n collection=\"default\"\n part=\"validation-icon\"\n ></igc-icon>\n `\n : null;\n\n const parts = partNameMap({\n 'validation-message': true,\n empty: !icon,\n });\n\n return html`\n <div part=${parts}>\n ${icon}\n <slot name=${slotName}></slot>\n </div>\n `;\n }\n\n protected *renderValidationSlots(validity: ValidityState, projected = false) {\n for (const key in validity) {\n if (key === 'valid' && !validity[key]) {\n yield projected\n ? html`<slot name=\"invalid\" slot=\"invalid\"></slot>`\n : this.renderValidationMessage('invalid');\n } else if (validity[key as keyof ValidityState]) {\n const name = toKebabCase(key);\n\n yield projected\n ? html`<slot name=${name} slot=${name}></slot>`\n : this.renderValidationMessage(name);\n }\n }\n }\n\n protected renderHelper() {\n return this.invalid && this._hasSlottedContent\n ? nothing\n : html`<slot name=\"helper-text\"></slot>`;\n }\n\n protected override render() {\n const parts = partNameMap({\n 'helper-text': true,\n empty: hasProjection(this),\n });\n return html`\n <div part=${parts}>\n ${this.invalid\n ? this.renderValidationSlots(this.target.validity)\n : nothing}\n ${this.renderHelper()}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-validator': IgcValidationContainerComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"validation-container.js","sourceRoot":"","sources":["../../../src/components/validation-container/validation-container.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, type TemplateResult, html, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { IgcFormControl } from '../common/mixins/forms/types.js';\nimport { partMap } from '../common/part-map.js';\nimport { isEmpty, toKebabCase } from '../common/util.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport { styles as shared } from './themes/shared/validator.common.css.js';\nimport { all } from './themes/themes.js';\nimport { styles } from './themes/validator.base.css.js';\n\ninterface ValidationContainerConfig {\n /** The id attribute for the validation container. */\n id?: string;\n /** Project the validation container to the given slot inside the host shadow DOM. */\n slot?: string;\n /** Additional part(s) that should be bound to the validation container. */\n part?: string;\n /** Whether the validation container should expose a helper-text slot. */\n hasHelperText?: boolean;\n}\n\nfunction getValidationSlots(element: IgcValidationContainerComponent) {\n return element.renderRoot.querySelectorAll<HTMLSlotElement>(\n \"slot:not([name='helper-text'])\"\n );\n}\n\nfunction hasProjection(element: IgcValidationContainerComponent) {\n return Array.from(\n element.renderRoot.querySelectorAll<HTMLSlotElement>('slot')\n ).every((slot) => isEmpty(slot.assignedElements({ flatten: true })));\n}\n\nfunction hasProjectedValidation(\n element: IgcValidationContainerComponent,\n slotName?: string\n) {\n const config: AssignedNodesOptions = { flatten: true };\n const slots = Array.from(getValidationSlots(element));\n return slotName\n ? slots\n .filter((slot) => slot.name === slotName)\n .some((slot) => slot.assignedElements(config).length > 0)\n : slots.some((slot) => slot.assignedElements(config).length > 0);\n}\n\n/* blazorSuppress */\n/**\n * @element igc-validator\n *\n * @csspart helper-text - The base wrapper\n * @csspart validation-message - The validation error message container\n * @csspart validation-icon - The validation error icon\n */\n@themes(all)\nexport default class IgcValidationContainerComponent extends LitElement {\n public static readonly tagName = 'igc-validator';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcValidationContainerComponent, IgcIconComponent);\n }\n\n public static create(\n host: IgcFormControl,\n config: ValidationContainerConfig = {\n id: 'helper-text',\n hasHelperText: true,\n }\n ): TemplateResult {\n const { renderValidationSlots } = IgcValidationContainerComponent.prototype;\n const helperText = config.hasHelperText\n ? html`<slot name=\"helper-text\" slot=\"helper-text\"></slot>`\n : null;\n\n return html`\n <igc-validator\n id=${ifDefined(config.id)}\n part=${ifDefined(config.part)}\n slot=${ifDefined(config.slot)}\n .target=${host}\n ?invalid=${host.invalid}\n exportparts=\"helper-text validation-message validation-icon\"\n >\n ${helperText}${renderValidationSlots(host.validity, true)}\n </igc-validator>\n `;\n }\n\n private _target!: IgcFormControl;\n\n @state()\n private _hasSlottedContent = false;\n\n @property({ type: Boolean })\n public invalid = false;\n\n @property({ attribute: false })\n public set target(value: IgcFormControl) {\n if (this._target === value) {\n return;\n }\n\n this._target?.removeEventListener('invalid', this);\n this._target = value;\n this._target.addEventListener('invalid', this);\n }\n\n public get target() {\n return this._target;\n }\n\n protected override createRenderRoot() {\n const root = super.createRenderRoot();\n root.addEventListener('slotchange', this);\n return root;\n }\n\n public handleEvent({ type }: Event) {\n const isInvalid = type === 'invalid';\n const isSlotChange = type === 'slotchange';\n\n if (isInvalid || isSlotChange) {\n this.invalid = isInvalid ? true : this.invalid;\n this._hasSlottedContent = hasProjectedValidation(this);\n }\n\n this.requestUpdate();\n }\n\n protected renderValidationMessage(slotName: string) {\n const icon = hasProjectedValidation(this, slotName)\n ? html`\n <igc-icon\n aria-hidden=\"true\"\n name=\"error\"\n collection=\"default\"\n part=\"validation-icon\"\n ></igc-icon>\n `\n : null;\n\n return html`\n <div part=${partMap({ 'validation-message': true, empty: !icon })}>\n ${icon}\n <slot name=${slotName}></slot>\n </div>\n `;\n }\n\n protected *renderValidationSlots(validity: ValidityState, projected = false) {\n for (const key in validity) {\n if (key === 'valid' && !validity[key]) {\n yield projected\n ? html`<slot name=\"invalid\" slot=\"invalid\"></slot>`\n : this.renderValidationMessage('invalid');\n } else if (validity[key as keyof ValidityState]) {\n const name = toKebabCase(key);\n\n yield projected\n ? html`<slot name=${name} slot=${name}></slot>`\n : this.renderValidationMessage(name);\n }\n }\n }\n\n protected renderHelper() {\n return this.invalid && this._hasSlottedContent\n ? nothing\n : html`<slot name=\"helper-text\"></slot>`;\n }\n\n protected override render() {\n return html`\n <div part=${partMap({ 'helper-text': true, empty: hasProjection(this) })}>\n ${this.invalid\n ? this.renderValidationSlots(this.target.validity)\n : nothing}\n ${this.renderHelper()}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-validator': IgcValidationContainerComponent;\n }\n}\n"]}