igniteui-webcomponents 7.3.2 → 7.4.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 (441) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/animations/easings.d.ts +21 -31
  3. package/animations/easings.js +21 -34
  4. package/animations/easings.js.map +1 -1
  5. package/animations/player.d.ts +8 -16
  6. package/animations/player.js +5 -8
  7. package/animations/player.js.map +1 -1
  8. package/animations/view-transition.d.ts +10 -10
  9. package/animations/view-transition.js +26 -37
  10. package/animations/view-transition.js.map +1 -1
  11. package/components/breadcrumb/breadcrumb.d.ts +74 -0
  12. package/components/breadcrumb/breadcrumb.js +107 -0
  13. package/components/breadcrumb/breadcrumb.js.map +1 -0
  14. package/components/breadcrumb/breadcrumbs.d.ts +60 -0
  15. package/components/breadcrumb/breadcrumbs.js +50 -0
  16. package/components/breadcrumb/breadcrumbs.js.map +1 -0
  17. package/components/breadcrumb/themes/breadcrumb.base.css.js +3 -0
  18. package/components/breadcrumb/themes/breadcrumb.base.css.js.map +1 -0
  19. package/components/breadcrumb/themes/breadcrumbs.base.css.d.ts +1 -0
  20. package/components/{resize-container/themes/resize-container.base.css.js → breadcrumb/themes/breadcrumbs.base.css.js} +2 -2
  21. package/components/breadcrumb/themes/breadcrumbs.base.css.js.map +1 -0
  22. package/components/breadcrumb/themes/dark/breadcrumb.bootstrap.css.d.ts +1 -0
  23. package/components/breadcrumb/themes/dark/breadcrumb.bootstrap.css.js +3 -0
  24. package/components/breadcrumb/themes/dark/breadcrumb.bootstrap.css.js.map +1 -0
  25. package/components/breadcrumb/themes/dark/breadcrumb.fluent.css.d.ts +1 -0
  26. package/components/breadcrumb/themes/dark/breadcrumb.fluent.css.js +3 -0
  27. package/components/breadcrumb/themes/dark/breadcrumb.fluent.css.js.map +1 -0
  28. package/components/breadcrumb/themes/dark/breadcrumb.indigo.css.d.ts +1 -0
  29. package/components/breadcrumb/themes/dark/breadcrumb.indigo.css.js +3 -0
  30. package/components/breadcrumb/themes/dark/breadcrumb.indigo.css.js.map +1 -0
  31. package/components/breadcrumb/themes/dark/breadcrumb.material.css.d.ts +1 -0
  32. package/components/breadcrumb/themes/dark/breadcrumb.material.css.js +3 -0
  33. package/components/breadcrumb/themes/dark/breadcrumb.material.css.js.map +1 -0
  34. package/components/breadcrumb/themes/light/breadcrumb.bootstrap.css.d.ts +1 -0
  35. package/components/breadcrumb/themes/light/breadcrumb.bootstrap.css.js +3 -0
  36. package/components/breadcrumb/themes/light/breadcrumb.bootstrap.css.js.map +1 -0
  37. package/components/breadcrumb/themes/light/breadcrumb.fluent.css.d.ts +1 -0
  38. package/components/breadcrumb/themes/light/breadcrumb.fluent.css.js +3 -0
  39. package/components/breadcrumb/themes/light/breadcrumb.fluent.css.js.map +1 -0
  40. package/components/breadcrumb/themes/light/breadcrumb.indigo.css.d.ts +1 -0
  41. package/components/breadcrumb/themes/light/breadcrumb.indigo.css.js +3 -0
  42. package/components/breadcrumb/themes/light/breadcrumb.indigo.css.js.map +1 -0
  43. package/components/breadcrumb/themes/light/breadcrumb.material.css.d.ts +1 -0
  44. package/components/breadcrumb/themes/light/breadcrumb.material.css.js +3 -0
  45. package/components/breadcrumb/themes/light/breadcrumb.material.css.js.map +1 -0
  46. package/components/breadcrumb/themes/light/breadcrumb.shared.css.d.ts +1 -0
  47. package/components/breadcrumb/themes/light/breadcrumb.shared.css.js +3 -0
  48. package/components/breadcrumb/themes/light/breadcrumb.shared.css.js.map +1 -0
  49. package/components/breadcrumb/themes/shared/breadcrumb.bootstrap.css.d.ts +1 -0
  50. package/components/breadcrumb/themes/shared/breadcrumb.bootstrap.css.js +3 -0
  51. package/components/breadcrumb/themes/shared/breadcrumb.bootstrap.css.js.map +1 -0
  52. package/components/breadcrumb/themes/shared/breadcrumb.common.css.d.ts +1 -0
  53. package/components/breadcrumb/themes/shared/breadcrumb.common.css.js +3 -0
  54. package/components/breadcrumb/themes/shared/breadcrumb.common.css.js.map +1 -0
  55. package/components/breadcrumb/themes/shared/breadcrumb.fluent.css.d.ts +1 -0
  56. package/components/breadcrumb/themes/shared/breadcrumb.fluent.css.js +3 -0
  57. package/components/breadcrumb/themes/shared/breadcrumb.fluent.css.js.map +1 -0
  58. package/components/breadcrumb/themes/shared/breadcrumb.indigo.css.d.ts +1 -0
  59. package/components/breadcrumb/themes/shared/breadcrumb.indigo.css.js +3 -0
  60. package/components/breadcrumb/themes/shared/breadcrumb.indigo.css.js.map +1 -0
  61. package/components/breadcrumb/themes/shared/breadcrumb.material.css.d.ts +1 -0
  62. package/components/breadcrumb/themes/shared/breadcrumb.material.css.js +3 -0
  63. package/components/breadcrumb/themes/shared/breadcrumb.material.css.js.map +1 -0
  64. package/components/breadcrumb/themes/themes.d.ts +2 -0
  65. package/components/breadcrumb/themes/themes.js +50 -0
  66. package/components/breadcrumb/themes/themes.js.map +1 -0
  67. package/components/button/button.d.ts +0 -2
  68. package/components/button/button.js.map +1 -1
  69. package/components/button-group/button-group.d.ts +42 -12
  70. package/components/button-group/button-group.js +82 -34
  71. package/components/button-group/button-group.js.map +1 -1
  72. package/components/button-group/toggle-button.d.ts +6 -1
  73. package/components/button-group/toggle-button.js +28 -2
  74. package/components/button-group/toggle-button.js.map +1 -1
  75. package/components/calendar/base.js +2 -1
  76. package/components/calendar/base.js.map +1 -1
  77. package/components/calendar/calendar.d.ts +2 -3
  78. package/components/calendar/calendar.js.map +1 -1
  79. package/components/calendar/days-view/days-view.d.ts +2 -2
  80. package/components/calendar/days-view/days-view.js.map +1 -1
  81. package/components/carousel/carousel-indicator.js +1 -0
  82. package/components/carousel/carousel-indicator.js.map +1 -1
  83. package/components/carousel/carousel-slide.d.ts +1 -1
  84. package/components/carousel/carousel-slide.js.map +1 -1
  85. package/components/carousel/carousel.d.ts +3 -3
  86. package/components/carousel/carousel.js.map +1 -1
  87. package/components/chat/chat-input.d.ts +1 -2
  88. package/components/chat/chat-input.js +1 -1
  89. package/components/chat/chat-input.js.map +1 -1
  90. package/components/chat/chat-state.d.ts +8 -9
  91. package/components/chat/chat-state.js.map +1 -1
  92. package/components/chat/chat.d.ts +1 -3
  93. package/components/chat/chat.js +2 -2
  94. package/components/chat/chat.js.map +1 -1
  95. package/components/chat/message-attachments.d.ts +6 -15
  96. package/components/chat/message-attachments.js.map +1 -1
  97. package/components/chat/utils.d.ts +0 -1
  98. package/components/chat/utils.js +1 -1
  99. package/components/chat/utils.js.map +1 -1
  100. package/components/checkbox/checkbox-base.d.ts +1 -1
  101. package/components/checkbox/checkbox.js +1 -1
  102. package/components/checkbox/checkbox.js.map +1 -1
  103. package/components/chip/chip.d.ts +2 -2
  104. package/components/chip/chip.js.map +1 -1
  105. package/components/color-picker/color-picker.d.ts +35 -34
  106. package/components/color-picker/color-picker.js +9 -4
  107. package/components/color-picker/color-picker.js.map +1 -1
  108. package/components/color-picker/common.d.ts +0 -2
  109. package/components/color-picker/common.js +2 -2
  110. package/components/color-picker/common.js.map +1 -1
  111. package/components/color-picker/converters.js.map +1 -1
  112. package/components/color-picker/picker-canvas.js.map +1 -1
  113. package/components/combo/combo.d.ts +18 -20
  114. package/components/combo/combo.js +8 -2
  115. package/components/combo/combo.js.map +1 -1
  116. package/components/combo/controllers/data.d.ts +7 -10
  117. package/components/combo/controllers/data.js.map +1 -1
  118. package/components/date-picker/date-picker.base.d.ts +22 -27
  119. package/components/date-picker/date-picker.base.js +7 -1
  120. package/components/date-picker/date-picker.base.js.map +1 -1
  121. package/components/date-picker/date-picker.d.ts +1 -1
  122. package/components/date-picker/date-picker.js +5 -3
  123. package/components/date-picker/date-picker.js.map +1 -1
  124. package/components/date-range-picker/date-range-input.d.ts +0 -2
  125. package/components/date-range-picker/date-range-input.js +0 -6
  126. package/components/date-range-picker/date-range-input.js.map +1 -1
  127. package/components/date-range-picker/date-range-picker.d.ts +22 -31
  128. package/components/date-range-picker/date-range-picker.js +7 -7
  129. package/components/date-range-picker/date-range-picker.js.map +1 -1
  130. package/components/date-range-picker/i18n.d.ts +21 -0
  131. package/components/date-range-picker/i18n.js +10 -0
  132. package/components/date-range-picker/i18n.js.map +1 -0
  133. package/components/date-range-picker/predefined-ranges-area.d.ts +3 -3
  134. package/components/date-range-picker/predefined-ranges-area.js +2 -5
  135. package/components/date-range-picker/predefined-ranges-area.js.map +1 -1
  136. package/components/date-range-picker/validators.d.ts +0 -4
  137. package/components/date-range-picker/validators.js +4 -4
  138. package/components/date-range-picker/validators.js.map +1 -1
  139. package/components/date-time-input/date-time-input.base.d.ts +39 -37
  140. package/components/date-time-input/date-time-input.base.js +6 -0
  141. package/components/date-time-input/date-time-input.base.js.map +1 -1
  142. package/components/date-time-input/date-time-input.d.ts +1 -11
  143. package/components/date-time-input/date-time-input.js +0 -6
  144. package/components/date-time-input/date-time-input.js.map +1 -1
  145. package/components/date-time-input/datetime-mask-parser.d.ts +0 -10
  146. package/components/date-time-input/datetime-mask-parser.js +1 -1
  147. package/components/date-time-input/datetime-mask-parser.js.map +1 -1
  148. package/components/dialog/dialog.js.map +1 -1
  149. package/components/dropdown/dropdown-group.d.ts +2 -10
  150. package/components/dropdown/dropdown-group.js +2 -27
  151. package/components/dropdown/dropdown-group.js.map +1 -1
  152. package/components/dropdown/dropdown.d.ts +17 -23
  153. package/components/dropdown/dropdown.js +5 -17
  154. package/components/dropdown/dropdown.js.map +1 -1
  155. package/components/file-input/file-input.d.ts +2 -2
  156. package/components/file-input/file-input.js.map +1 -1
  157. package/components/icon/icon.d.ts +1 -1
  158. package/components/icon/icon.registry.d.ts +6 -6
  159. package/components/icon/icon.registry.js.map +1 -1
  160. package/components/input/input.d.ts +3 -3
  161. package/components/input/input.js.map +1 -1
  162. package/components/mask-input/mask-history.d.ts +22 -18
  163. package/components/mask-input/mask-history.js.map +1 -1
  164. package/components/mask-input/mask-input.d.ts +1 -1
  165. package/components/mask-input/mask-parser.d.ts +11 -13
  166. package/components/mask-input/mask-parser.js.map +1 -1
  167. package/components/popover/popover.d.ts +45 -34
  168. package/components/popover/popover.js +54 -122
  169. package/components/popover/popover.js.map +1 -1
  170. package/components/popover/position/arrow.d.ts +19 -0
  171. package/components/popover/position/arrow.js +33 -0
  172. package/components/popover/position/arrow.js.map +1 -0
  173. package/components/popover/position/floating.d.ts +40 -0
  174. package/components/popover/position/floating.js +146 -0
  175. package/components/popover/position/floating.js.map +1 -0
  176. package/components/popover/position/native.d.ts +45 -0
  177. package/components/popover/position/native.js +158 -0
  178. package/components/popover/position/native.js.map +1 -0
  179. package/components/popover/position/strategy.d.ts +37 -0
  180. package/components/popover/position/strategy.js +21 -0
  181. package/components/popover/position/strategy.js.map +1 -0
  182. package/components/popover/position/types.d.ts +26 -0
  183. package/components/popover/position/types.js +15 -0
  184. package/components/popover/position/types.js.map +1 -0
  185. package/components/popover/themes/light/popover.base.css.js +1 -1
  186. package/components/popover/themes/light/popover.base.css.js.map +1 -1
  187. package/components/progress/circular-progress.d.ts +0 -5
  188. package/components/progress/circular-progress.js.map +1 -1
  189. package/components/qr-code/qr-code.d.ts +1 -1
  190. package/components/radio/radio.d.ts +4 -4
  191. package/components/radio/radio.js +17 -14
  192. package/components/radio/radio.js.map +1 -1
  193. package/components/radio-group/radio-group.js.map +1 -1
  194. package/components/rating/rating.d.ts +6 -6
  195. package/components/rating/rating.js.map +1 -1
  196. package/components/select/select-group.d.ts +5 -10
  197. package/components/select/select-group.js +10 -34
  198. package/components/select/select-group.js.map +1 -1
  199. package/components/select/select.d.ts +12 -20
  200. package/components/select/select.js +4 -14
  201. package/components/select/select.js.map +1 -1
  202. package/components/splitter/splitter.d.ts +6 -6
  203. package/components/splitter/splitter.js.map +1 -1
  204. package/components/textarea/textarea.d.ts +1 -1
  205. package/components/textarea/textarea.js.map +1 -1
  206. package/components/tile-manager/tile-manager.d.ts +6 -7
  207. package/components/tile-manager/tile-manager.js.map +1 -1
  208. package/components/tile-manager/tile.d.ts +3 -3
  209. package/components/tile-manager/tile.js.map +1 -1
  210. package/components/toast/toast.d.ts +0 -2
  211. package/components/toast/toast.js.map +1 -1
  212. package/components/tooltip/controller.js.map +1 -1
  213. package/components/tooltip/service.js +4 -5
  214. package/components/tooltip/service.js.map +1 -1
  215. package/components/tooltip/tooltip.d.ts +34 -13
  216. package/components/tooltip/tooltip.js +8 -4
  217. package/components/tooltip/tooltip.js.map +1 -1
  218. package/components/tree/tree-item.d.ts +6 -6
  219. package/components/tree/tree-item.js.map +1 -1
  220. package/components/tree/tree.navigation.d.ts +5 -6
  221. package/components/tree/tree.navigation.js.map +1 -1
  222. package/components/tree/tree.selection.js.map +1 -1
  223. package/components/types.d.ts +1 -1
  224. package/components/types.js.map +1 -1
  225. package/components/validation-container/validation-container.js.map +1 -1
  226. package/components/virtualization/engine.d.ts +5 -5
  227. package/components/virtualization/engine.js.map +1 -1
  228. package/components/virtualization/virtualization.d.ts +61 -63
  229. package/components/virtualization/virtualization.js +6 -5
  230. package/components/virtualization/virtualization.js.map +1 -1
  231. package/custom-elements.json +16280 -19679
  232. package/igniteui-webcomponents.css-data.json +2 -2
  233. package/igniteui-webcomponents.html-data.json +1 -1
  234. package/index.d.ts +2 -0
  235. package/index.js +2 -0
  236. package/index.js.map +1 -1
  237. package/internals/abort-handler.d.ts +13 -25
  238. package/internals/abort-handler.js +4 -6
  239. package/internals/abort-handler.js.map +1 -1
  240. package/internals/context.d.ts +13 -7
  241. package/internals/context.js +2 -1
  242. package/internals/context.js.map +1 -1
  243. package/internals/controllers/adopt-styles.d.ts +19 -20
  244. package/internals/controllers/adopt-styles.js +3 -8
  245. package/internals/controllers/adopt-styles.js.map +1 -1
  246. package/internals/controllers/aria-projection.d.ts +56 -55
  247. package/internals/controllers/aria-projection.js +14 -15
  248. package/internals/controllers/aria-projection.js.map +1 -1
  249. package/internals/controllers/async-consumer.js.map +1 -1
  250. package/internals/controllers/command.d.ts +15 -30
  251. package/internals/controllers/command.js +2 -7
  252. package/internals/controllers/command.js.map +1 -1
  253. package/internals/controllers/context-provider.d.ts +7 -13
  254. package/internals/controllers/context-provider.js.map +1 -1
  255. package/internals/controllers/focus-ring.d.ts +10 -30
  256. package/internals/controllers/focus-ring.js +6 -12
  257. package/internals/controllers/focus-ring.js.map +1 -1
  258. package/internals/controllers/fullscreen.d.ts +7 -23
  259. package/internals/controllers/fullscreen.js +3 -9
  260. package/internals/controllers/fullscreen.js.map +1 -1
  261. package/internals/controllers/gestures.d.ts +10 -29
  262. package/internals/controllers/gestures.js +1 -3
  263. package/internals/controllers/gestures.js.map +1 -1
  264. package/internals/controllers/group.d.ts +13 -30
  265. package/internals/controllers/group.js.map +1 -1
  266. package/internals/controllers/host-listeners.d.ts +28 -0
  267. package/internals/controllers/host-listeners.js +27 -0
  268. package/internals/controllers/host-listeners.js.map +1 -0
  269. package/internals/controllers/id-resolver.d.ts +8 -9
  270. package/internals/controllers/id-resolver.js +6 -14
  271. package/internals/controllers/id-resolver.js.map +1 -1
  272. package/internals/controllers/internals.d.ts +53 -104
  273. package/internals/controllers/internals.js +40 -13
  274. package/internals/controllers/internals.js.map +1 -1
  275. package/internals/controllers/key-bindings.d.ts +61 -158
  276. package/internals/controllers/key-bindings.js +68 -67
  277. package/internals/controllers/key-bindings.js.map +1 -1
  278. package/internals/controllers/keys.d.ts +32 -0
  279. package/internals/controllers/keys.js +20 -0
  280. package/internals/controllers/keys.js.map +1 -0
  281. package/internals/controllers/mutation-observer.d.ts +14 -37
  282. package/internals/controllers/mutation-observer.js +1 -1
  283. package/internals/controllers/mutation-observer.js.map +1 -1
  284. package/internals/controllers/resize-observer.d.ts +9 -19
  285. package/internals/controllers/resize-observer.js.map +1 -1
  286. package/internals/controllers/root-click.d.ts +11 -42
  287. package/internals/controllers/root-click.js +4 -6
  288. package/internals/controllers/root-click.js.map +1 -1
  289. package/internals/controllers/roving-focus.d.ts +16 -35
  290. package/internals/controllers/roving-focus.js.map +1 -1
  291. package/internals/controllers/slot.d.ts +25 -54
  292. package/internals/controllers/slot.js +6 -6
  293. package/internals/controllers/slot.js.map +1 -1
  294. package/internals/controllers/toggle.d.ts +44 -48
  295. package/internals/controllers/toggle.js.map +1 -1
  296. package/internals/date/compare.js.map +1 -1
  297. package/internals/date/converters.d.ts +10 -7
  298. package/internals/date/converters.js.map +1 -1
  299. package/internals/date/model.d.ts +9 -16
  300. package/internals/date/model.js +22 -25
  301. package/internals/date/model.js.map +1 -1
  302. package/internals/decorators/blazorAdditionalDependencies.d.ts +4 -2
  303. package/internals/decorators/blazorAdditionalDependencies.js.map +1 -1
  304. package/internals/decorators/blazorDeepImport.d.ts +1 -3
  305. package/internals/decorators/blazorDeepImport.js.map +1 -1
  306. package/internals/decorators/blazorInclude.d.ts +3 -2
  307. package/internals/decorators/blazorInclude.js.map +1 -1
  308. package/internals/decorators/blazorIndirectRender.d.ts +1 -3
  309. package/internals/decorators/blazorIndirectRender.js.map +1 -1
  310. package/internals/decorators/blazorSuppressComponent.d.ts +1 -3
  311. package/internals/decorators/blazorSuppressComponent.js.map +1 -1
  312. package/internals/decorators/coerced-property.d.ts +14 -20
  313. package/internals/decorators/coerced-property.js.map +1 -1
  314. package/internals/decorators/shadow-options.d.ts +2 -5
  315. package/internals/decorators/shadow-options.js.map +1 -1
  316. package/internals/definitions/defineAllComponents.js +2 -0
  317. package/internals/definitions/defineAllComponents.js.map +1 -1
  318. package/internals/directives/drag.d.ts +51 -81
  319. package/internals/directives/drag.js +27 -89
  320. package/internals/directives/drag.js.map +1 -1
  321. package/internals/directives/pointer-operation.d.ts +75 -0
  322. package/internals/directives/pointer-operation.js +92 -0
  323. package/internals/directives/pointer-operation.js.map +1 -0
  324. package/internals/directives/resize.d.ts +36 -64
  325. package/internals/directives/resize.js +18 -85
  326. package/internals/directives/resize.js.map +1 -1
  327. package/internals/i18n/EN/calendar.resources.d.ts +8 -2
  328. package/internals/i18n/EN/calendar.resources.js +2 -2
  329. package/internals/i18n/EN/calendar.resources.js.map +1 -1
  330. package/internals/i18n/EN/chat.resources.d.ts +8 -2
  331. package/internals/i18n/EN/chat.resources.js +3 -10
  332. package/internals/i18n/EN/chat.resources.js.map +1 -1
  333. package/internals/i18n/EN/date-picker.resources.d.ts +6 -4
  334. package/internals/i18n/EN/date-picker.resources.js +1 -7
  335. package/internals/i18n/EN/date-picker.resources.js.map +1 -1
  336. package/internals/i18n/EN/date-range-picker.resources.d.ts +9 -2
  337. package/internals/i18n/EN/date-range-picker.resources.js +2 -2
  338. package/internals/i18n/EN/date-range-picker.resources.js.map +1 -1
  339. package/internals/i18n/i18n-controller.d.ts +44 -46
  340. package/internals/i18n/i18n-controller.js +46 -33
  341. package/internals/i18n/i18n-controller.js.map +1 -1
  342. package/internals/i18n/utils.d.ts +9 -4
  343. package/internals/i18n/utils.js +4 -27
  344. package/internals/i18n/utils.js.map +1 -1
  345. package/internals/mixins/alert.d.ts +10 -25
  346. package/internals/mixins/alert.js.map +1 -1
  347. package/internals/mixins/combo-box.d.ts +21 -11
  348. package/internals/mixins/combo-box.js +16 -22
  349. package/internals/mixins/combo-box.js.map +1 -1
  350. package/internals/mixins/event-emitter.js +9 -11
  351. package/internals/mixins/event-emitter.js.map +1 -1
  352. package/internals/mixins/forms/associated-required.d.ts +4 -4
  353. package/internals/mixins/forms/associated-required.js.map +1 -1
  354. package/internals/mixins/forms/associated.d.ts +4 -2
  355. package/internals/mixins/forms/associated.js +8 -19
  356. package/internals/mixins/forms/associated.js.map +1 -1
  357. package/internals/mixins/forms/form-transformers.js.map +1 -1
  358. package/internals/mixins/forms/types.d.ts +24 -80
  359. package/internals/mixins/forms/types.js.map +1 -1
  360. package/internals/mixins/group.d.ts +18 -0
  361. package/internals/mixins/group.js +37 -0
  362. package/internals/mixins/group.js.map +1 -0
  363. package/internals/mixins/i18n.d.ts +10 -16
  364. package/internals/mixins/i18n.js.map +1 -1
  365. package/internals/mixins/mask-behavior.d.ts +8 -22
  366. package/internals/mixins/mask-behavior.js +1 -2
  367. package/internals/mixins/mask-behavior.js.map +1 -1
  368. package/internals/mixins/option.d.ts +1 -2
  369. package/internals/mixins/option.js +2 -1
  370. package/internals/mixins/option.js.map +1 -1
  371. package/internals/part-map.d.ts +4 -2
  372. package/internals/part-map.js +1 -1
  373. package/internals/part-map.js.map +1 -1
  374. package/internals/templates/input-shell.d.ts +8 -17
  375. package/internals/templates/input-shell.js +4 -1
  376. package/internals/templates/input-shell.js.map +1 -1
  377. package/internals/templates/masked-input.d.ts +7 -8
  378. package/internals/templates/masked-input.js.map +1 -1
  379. package/internals/templates/slotted-icon.d.ts +7 -12
  380. package/internals/templates/slotted-icon.js.map +1 -1
  381. package/internals/templates/toggle-shell.d.ts +6 -7
  382. package/internals/templates/toggle-shell.js.map +1 -1
  383. package/internals/timing.d.ts +5 -14
  384. package/internals/timing.js.map +1 -1
  385. package/internals/utils/arrays.d.ts +21 -21
  386. package/internals/utils/arrays.js +14 -0
  387. package/internals/utils/arrays.js.map +1 -1
  388. package/internals/utils/dom.d.ts +51 -39
  389. package/internals/utils/dom.js +1 -2
  390. package/internals/utils/dom.js.map +1 -1
  391. package/internals/utils/events.d.ts +29 -16
  392. package/internals/utils/events.js +9 -1
  393. package/internals/utils/events.js.map +1 -1
  394. package/internals/utils/lit.d.ts +5 -2
  395. package/internals/utils/lit.js.map +1 -1
  396. package/internals/utils/math.d.ts +8 -6
  397. package/internals/utils/math.js.map +1 -1
  398. package/internals/utils/objects.d.ts +3 -20
  399. package/internals/utils/objects.js +1 -39
  400. package/internals/utils/objects.js.map +1 -1
  401. package/internals/utils/strings.d.ts +9 -11
  402. package/internals/utils/strings.js.map +1 -1
  403. package/internals/utils/types.d.ts +16 -3
  404. package/internals/utils/types.js +3 -0
  405. package/internals/utils/types.js.map +1 -1
  406. package/internals/validators.d.ts +9 -8
  407. package/internals/validators.js +12 -6
  408. package/internals/validators.js.map +1 -1
  409. package/package.json +1 -1
  410. package/skills/README.md +3 -0
  411. package/skills/igniteui-wc-figma-to-app/SKILL.md +907 -0
  412. package/skills/igniteui-wc-figma-to-app/references/asset-extraction.md +363 -0
  413. package/skills/igniteui-wc-figma-to-app/references/design-token-bridge.md +407 -0
  414. package/skills/igniteui-wc-figma-to-app/references/figma-component-map.md +325 -0
  415. package/skills/igniteui-wc-figma-to-app/references/mcp-setup.md +409 -0
  416. package/skills/igniteui-wc-figma-to-app/references/validation-patterns.md +376 -0
  417. package/theming/config.d.ts +14 -5
  418. package/theming/config.js +38 -18
  419. package/theming/config.js.map +1 -1
  420. package/theming/context.d.ts +1 -23
  421. package/theming/context.js.map +1 -1
  422. package/theming/theming-controller.d.ts +2 -32
  423. package/theming/theming-controller.js +15 -21
  424. package/theming/theming-controller.js.map +1 -1
  425. package/theming/theming-event.d.ts +0 -7
  426. package/theming/theming-event.js +0 -13
  427. package/theming/theming-event.js.map +1 -1
  428. package/theming/types.d.ts +1 -8
  429. package/theming/types.js.map +1 -1
  430. package/web-types.json +3 -3
  431. package/animations/presets/slide/index.d.ts +0 -3
  432. package/animations/presets/slide/index.js +0 -16
  433. package/animations/presets/slide/index.js.map +0 -1
  434. package/components/resize-container/themes/resize-container.base.css.js.map +0 -1
  435. package/internals/controllers/root-scroll.d.ts +0 -31
  436. package/internals/controllers/root-scroll.js +0 -71
  437. package/internals/controllers/root-scroll.js.map +0 -1
  438. package/theming/utils.d.ts +0 -11
  439. package/theming/utils.js +0 -20
  440. package/theming/utils.js.map +0 -1
  441. /package/components/{resize-container/themes/resize-container.base.css.d.ts → breadcrumb/themes/breadcrumb.base.css.d.ts} +0 -0
@@ -3,8 +3,7 @@ import { IgcComboBoxBaseLikeComponent } from '#internals/mixins/combo-box.js';
3
3
  import type { AbstractConstructor } from '#internals/mixins/constructor.js';
4
4
  import IgcInputComponent from '../input/input.js';
5
5
  import { type PopoverPlacement } from '../popover/popover.js';
6
- import type { PopoverScrollStrategy } from '../types.js';
7
- import type IgcValidationContainerComponent from '../validation-container/validation-container.js';
6
+ import IgcValidationContainerComponent from '../validation-container/validation-container.js';
8
7
  import IgcSelectGroupComponent from './select-group.js';
9
8
  import IgcSelectItemComponent from './select-item.js';
10
9
  export interface IgcSelectComponentEventMap {
@@ -34,10 +33,10 @@ declare const IgcSelectComponent_base: import("#internals/mixins/constructor.js"
34
33
  * @slot custom-error - Renders content when setCustomValidity(message) is set.
35
34
  * @slot invalid - Renders content when the component is in invalid state (validity.valid = false).
36
35
  *
37
- * @fires igcChange - Emitted when the control's checked state changes.
36
+ * @fires igcChange - Emitted when the selection of the control changes.
38
37
  * @fires igcOpening - Emitted just before the list of options is opened.
39
38
  * @fires igcOpened - Emitted after the list of options is opened.
40
- * @fires igcClosing - Emitter just before the list of options is closed.
39
+ * @fires igcClosing - Emitted just before the list of options is closed.
41
40
  * @fires igcClosed - Emitted after the list of options is closed.
42
41
  *
43
42
  * @csspart list - The list wrapping container for the items of the select.
@@ -56,7 +55,6 @@ export default class IgcSelectComponent extends IgcSelectComponent_base {
56
55
  private _searchTerm;
57
56
  private _lastKeyTime;
58
57
  private readonly _slots;
59
- private readonly _rootScrollController;
60
58
  protected readonly _rootClickController: import("#internals/controllers/root-click.js").RootClickController;
61
59
  protected readonly _formValue: import("#internals/mixins/forms/form-value.js").FormValue<string | undefined>;
62
60
  protected _selectedItem: IgcSelectItemComponent | null;
@@ -105,11 +103,6 @@ export default class IgcSelectComponent extends IgcSelectComponent_base {
105
103
  * @attr
106
104
  */
107
105
  placement: PopoverPlacement;
108
- /**
109
- * Determines the behavior of the component during scrolling of the parent container.
110
- * @attr scroll-strategy
111
- */
112
- scrollStrategy: PopoverScrollStrategy;
113
106
  /** Returns the items of the select component. */
114
107
  get items(): IgcSelectItemComponent[];
115
108
  /** Returns the groups of the select component. */
@@ -119,10 +112,9 @@ export default class IgcSelectComponent extends IgcSelectComponent_base {
119
112
  protected willUpdate(changedProperties: PropertyValues<this>): void;
120
113
  constructor();
121
114
  /**
122
- * Re-resolves the selection whenever items enter or leave the light DOM.
123
- * Consuming frameworks routinely render them after the initial paint, so
124
- * `value` may name an item that does not exist yet, and a selected item may
125
- * be taken out from under us.
115
+ * Resolves the selection again when an item enters or leaves the light DOM. A
116
+ * framework usually renders the items after the first paint, so `value` can
117
+ * name an item that does not exist, and a selected item can be removed.
126
118
  */
127
119
  private _handleItemsChange;
128
120
  protected firstUpdated(): Promise<void>;
@@ -132,9 +124,9 @@ export default class IgcSelectComponent extends IgcSelectComponent_base {
132
124
  private _handleArrowDown;
133
125
  private _handleArrowUp;
134
126
  /**
135
- * Moves to `item`, committing the move as a selection while closed.
136
- * Nowhere to move to is a no-op - clearing the selection is reserved for the
137
- * callers that actually mean it.
127
+ * Moves to `item`, and commits the move as a selection while closed. Does
128
+ * nothing if there is no item, because only a caller that intends it clears
129
+ * the selection.
138
130
  */
139
131
  private _navigateTo;
140
132
  private _handleAltArrowDown;
@@ -159,9 +151,9 @@ export default class IgcSelectComponent extends IgcSelectComponent_base {
159
151
  private _focusItemOnOpen;
160
152
  private _getItem;
161
153
  /**
162
- * The text shown in the input for the current selection: the selected item's
163
- * main content, without what it routes to its `prefix`/`suffix` slots and
164
- * without the marker comments templating engines leave among its children.
154
+ * The text in the input for the current selection: the main content of the
155
+ * selected item, without its `prefix` and `suffix` slots, and without the
156
+ * marker comments that a templating engine leaves between its children.
165
157
  */
166
158
  private get _displayValue();
167
159
  /** Sets focus on the component. */
@@ -12,7 +12,6 @@ import { addAriaProjector } from '#internals/controllers/aria-projection.js';
12
12
  import { addKeybindings, altKey, arrowDown, arrowLeft, arrowRight, arrowUp, endKey, enterKey, escapeKey, homeKey, spaceBar, tabKey, } from '#internals/controllers/key-bindings.js';
13
13
  import { createMutationController, } from '#internals/controllers/mutation-observer.js';
14
14
  import { addRootClickController } from '#internals/controllers/root-click.js';
15
- import { addRootScrollHandler } from '#internals/controllers/root-scroll.js';
16
15
  import { addSlotController, setSlots } from '#internals/controllers/slot.js';
17
16
  import { blazorAdditionalDependencies } from '#internals/decorators/blazorAdditionalDependencies.js';
18
17
  import { shadowOptions } from '#internals/decorators/shadow-options.js';
@@ -32,6 +31,7 @@ import { addThemingController } from '#theming/theming-controller.js';
32
31
  import IgcIconComponent from '../icon/icon.js';
33
32
  import IgcInputComponent from '../input/input.js';
34
33
  import IgcPopoverComponent from '../popover/popover.js';
34
+ import IgcValidationContainerComponent from '../validation-container/validation-container.js';
35
35
  import IgcSelectGroupComponent from './select-group.js';
36
36
  import IgcSelectHeaderComponent from './select-header.js';
37
37
  import IgcSelectItemComponent from './select-item.js';
@@ -74,12 +74,8 @@ let IgcSelectComponent = class IgcSelectComponent extends FormAssociatedRequired
74
74
  if (!this.hasUpdated) {
75
75
  return;
76
76
  }
77
- if (changedProperties.has('scrollStrategy')) {
78
- this._rootScrollController.update({ resetListeners: true });
79
- }
80
77
  if (changedProperties.has('open')) {
81
78
  this._rootClickController.update();
82
- this._rootScrollController.update();
83
79
  }
84
80
  }
85
81
  constructor() {
@@ -87,9 +83,6 @@ let IgcSelectComponent = class IgcSelectComponent extends FormAssociatedRequired
87
83
  this._searchTerm = '';
88
84
  this._lastKeyTime = 0;
89
85
  this._slots = addSlotController(this, { slots: Slots });
90
- this._rootScrollController = addRootScrollHandler(this, {
91
- hideCallback: this._handleClosing,
92
- });
93
86
  this._rootClickController = addRootClickController(this, {
94
87
  onHide: this._handleClosing,
95
88
  });
@@ -102,7 +95,6 @@ let IgcSelectComponent = class IgcSelectComponent extends FormAssociatedRequired
102
95
  this.outlined = false;
103
96
  this.distance = 0;
104
97
  this.placement = 'bottom-start';
105
- this.scrollStrategy = 'scroll';
106
98
  addThemingController(this, all);
107
99
  addAriaProjector(this, {
108
100
  target: () => this._input,
@@ -406,7 +398,7 @@ let IgcSelectComponent = class IgcSelectComponent extends FormAssociatedRequired
406
398
  `;
407
399
  }
408
400
  _renderHelperText() {
409
- return this._renderValidationContainer({
401
+ return IgcValidationContainerComponent.create(this, {
410
402
  id: 'select-helper-text',
411
403
  slot: 'anchor',
412
404
  hasHelperText: true,
@@ -456,10 +448,11 @@ let IgcSelectComponent = class IgcSelectComponent extends FormAssociatedRequired
456
448
  <igc-popover
457
449
  ?open=${this.open}
458
450
  flip
459
- shift
460
451
  same-width
461
452
  .offset=${this.distance}
462
453
  .placement=${this.placement}
454
+ .scrollStrategy=${this.scrollStrategy}
455
+ @igcPopoverScrollClose=${this._handleClosing}
463
456
  >
464
457
  ${this._renderInputAnchor()} ${this._renderDropdown()}
465
458
  </igc-popover>
@@ -502,9 +495,6 @@ __decorate([
502
495
  __decorate([
503
496
  property()
504
497
  ], IgcSelectComponent.prototype, "placement", void 0);
505
- __decorate([
506
- property({ attribute: 'scroll-strategy' })
507
- ], IgcSelectComponent.prototype, "scrollStrategy", void 0);
508
498
  IgcSelectComponent = IgcSelectComponent_1 = __decorate([
509
499
  blazorAdditionalDependencies('IgcIconComponent, IgcInputComponent, IgcSelectGroupComponent, IgcSelectHeaderComponent, IgcSelectItemComponent'),
510
500
  shadowOptions({ delegatesFocus: true })
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/components/select/select.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, type PropertyValues, type TemplateResult } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { addAriaProjector } from '#internals/controllers/aria-projection.js';\nimport {\n addKeybindings,\n altKey,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n endKey,\n enterKey,\n escapeKey,\n homeKey,\n spaceBar,\n tabKey,\n} from '#internals/controllers/key-bindings.js';\nimport {\n createMutationController,\n type MutationControllerParams,\n} from '#internals/controllers/mutation-observer.js';\nimport { addRootClickController } from '#internals/controllers/root-click.js';\nimport { addRootScrollHandler } from '#internals/controllers/root-scroll.js';\nimport { addSlotController, setSlots } from '#internals/controllers/slot.js';\nimport { blazorAdditionalDependencies } from '#internals/decorators/blazorAdditionalDependencies.js';\nimport { shadowOptions } from '#internals/decorators/shadow-options.js';\nimport { registerComponent } from '#internals/definitions/register.js';\nimport {\n getActiveItems,\n getItems,\n getNextActiveItem,\n getPreviousActiveItem,\n IgcComboBoxBaseLikeComponent,\n setInitialSelectionState,\n} from '#internals/mixins/combo-box.js';\nimport type { AbstractConstructor } from '#internals/mixins/constructor.js';\nimport { EventEmitterMixin } from '#internals/mixins/event-emitter.js';\nimport { FormAssociatedRequiredMixin } from '#internals/mixins/forms/associated-required.js';\nimport { FormValueSelectTransformers } from '#internals/mixins/forms/form-transformers.js';\nimport { createFormValueState } from '#internals/mixins/forms/form-value.js';\nimport { partMap } from '#internals/part-map.js';\nimport { renderSlottedIcon } from '#internals/templates/slotted-icon.js';\nimport { isEmpty } from '#internals/utils/arrays.js';\nimport { isElement, normalizedTextContent } from '#internals/utils/dom.js';\nimport {\n addSafeEventListener,\n focusLeftHost,\n getElementFromPath,\n} from '#internals/utils/events.js';\nimport { isString } from '#internals/utils/types.js';\nimport { addThemingController } from '#theming/theming-controller.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport IgcInputComponent from '../input/input.js';\nimport IgcPopoverComponent, {\n type PopoverPlacement,\n} from '../popover/popover.js';\nimport type { PopoverScrollStrategy } from '../types.js';\nimport type IgcValidationContainerComponent from '../validation-container/validation-container.js';\nimport IgcSelectGroupComponent from './select-group.js';\nimport IgcSelectHeaderComponent from './select-header.js';\nimport IgcSelectItemComponent from './select-item.js';\nimport { styles } from './themes/select.base.css.js';\nimport { styles as shared } from './themes/shared/select.common.css.js';\nimport { all } from './themes/themes.js';\nimport { selectValidators } from './validators.js';\n\nexport interface IgcSelectComponentEventMap {\n igcChange: CustomEvent<IgcSelectItemComponent>;\n // For analyzer meta only:\n /* skipWCPrefix */\n focus: FocusEvent;\n /* skipWCPrefix */\n blur: FocusEvent;\n igcOpening: CustomEvent<void>;\n igcOpened: CustomEvent<void>;\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n}\n\nconst Slots = setSlots(\n 'prefix',\n 'suffix',\n 'header',\n 'footer',\n 'helper-text',\n 'toggle-icon',\n 'toggle-icon-expanded',\n 'value-missing',\n 'custom-error',\n 'invalid'\n);\n\n/**\n * Represents a control that provides a menu of options.\n *\n * @element igc-select\n *\n * @slot - Renders the list of select items.\n * @slot prefix - Renders content before the input.\n * @slot suffix - Renders content after input.\n * @slot header - Renders a container before the list of options.\n * @slot footer - Renders a container after the list of options.\n * @slot helper-text - Renders content below the input.\n * @slot toggle-icon - Renders content inside the suffix container.\n * @slot toggle-icon-expanded - Renders content for the toggle icon when the component is in open state.\n * @slot value-missing - Renders content when the required 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 *\n * @fires igcChange - Emitted when the control's checked state changes.\n * @fires igcOpening - Emitted just before the list of options is opened.\n * @fires igcOpened - Emitted after the list of options is opened.\n * @fires igcClosing - Emitter just before the list of options is closed.\n * @fires igcClosed - Emitted after the list of options is closed.\n *\n * @csspart list - The list wrapping container for the items of the select.\n * @csspart input - The encapsulated input of the select.\n * @csspart label - The encapsulated text label of the select.\n * @csspart prefix - The prefix wrapper of the input of the select.\n * @csspart suffix - The suffix wrapper of the input of the select.\n * @csspart toggle-icon - The toggle icon wrapper of the select.\n * @csspart helper-text - The helper text wrapper of the select.\n */\n@blazorAdditionalDependencies(\n 'IgcIconComponent, IgcInputComponent, IgcSelectGroupComponent, IgcSelectHeaderComponent, IgcSelectItemComponent'\n)\n@shadowOptions({ delegatesFocus: true })\nexport default class IgcSelectComponent extends FormAssociatedRequiredMixin(\n EventEmitterMixin<\n IgcSelectComponentEventMap,\n AbstractConstructor<IgcComboBoxBaseLikeComponent>\n >(IgcComboBoxBaseLikeComponent)\n) {\n public static readonly tagName = 'igc-select';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(\n IgcSelectComponent,\n IgcIconComponent,\n IgcInputComponent,\n IgcPopoverComponent,\n IgcSelectGroupComponent,\n IgcSelectHeaderComponent,\n IgcSelectItemComponent\n );\n }\n\n //#region Internal state\n\n protected override get __validators() {\n return selectValidators;\n }\n\n private _searchTerm = '';\n private _lastKeyTime = 0;\n\n private readonly _slots = addSlotController(this, { slots: Slots });\n\n private readonly _rootScrollController = addRootScrollHandler(this, {\n hideCallback: this._handleClosing,\n });\n\n protected override readonly _rootClickController = addRootClickController(\n this,\n {\n onHide: this._handleClosing,\n }\n );\n\n protected override readonly _formValue = createFormValueState(this, {\n initialValue: undefined,\n transformers: FormValueSelectTransformers,\n });\n\n @state()\n protected _selectedItem: IgcSelectItemComponent | null = null;\n\n /**\n * The item keyboard navigation moves from. Mirrors {@link _selectedItem}\n * unless the open list has been navigated without committing a selection.\n * Only {@link _activateItem} may assign it.\n */\n @state()\n protected _activeItem: IgcSelectItemComponent | null = null;\n\n @query(IgcInputComponent.tagName, true)\n protected _input!: IgcInputComponent;\n\n @query('#dropdown')\n protected _list!: HTMLDivElement | null;\n\n @query('#select-helper-text')\n protected _helperText!: IgcValidationContainerComponent | null;\n\n protected get _activeItems(): IgcSelectItemComponent[] {\n return Array.from(\n getActiveItems<IgcSelectItemComponent>(\n this,\n IgcSelectItemComponent.tagName\n )\n );\n }\n\n //#endregion\n\n //#region Public attributes and properties\n\n /* @tsTwoWayProperty(true, \"igcChange\", \"detail.value\", false) */\n /**\n * The value of the control.\n * @attr\n */\n @property()\n public set value(value: string | undefined) {\n this._updateValue(value);\n const item = this._getItem(this._formValue.value!);\n item ? this._setSelectedItem(item) : this._clearSelectedItem();\n }\n\n public get value(): string | undefined {\n return this._formValue.value;\n }\n\n /**\n * Whether the control has an outlined appearance.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public outlined = false;\n\n /**\n * Whether the control should receive focus automatically.\n * @attr\n */\n @property({ type: Boolean })\n public override autofocus!: boolean;\n\n /**\n * The distance of the select dropdown from its input.\n * @attr\n */\n @property({ type: Number })\n public distance = 0;\n\n /**\n * The label of the control.\n * @attr\n */\n @property()\n public label!: string;\n\n /**\n * The placeholder text of the control.\n * @attr\n */\n @property()\n public placeholder!: string;\n\n /** The preferred placement of the select dropdown around its input.\n * @attr\n */\n @property()\n public placement: PopoverPlacement = 'bottom-start';\n\n /**\n * Determines the behavior of the component during scrolling of the parent container.\n * @attr scroll-strategy\n */\n @property({ attribute: 'scroll-strategy' })\n public scrollStrategy: PopoverScrollStrategy = 'scroll';\n\n /** Returns the items of the select component. */\n public get items(): IgcSelectItemComponent[] {\n return Array.from(\n getItems<IgcSelectItemComponent>(this, IgcSelectItemComponent.tagName)\n );\n }\n\n /** Returns the groups of the select component. */\n public get groups(): IgcSelectGroupComponent[] {\n return Array.from(\n getItems<IgcSelectGroupComponent>(this, IgcSelectGroupComponent.tagName)\n );\n }\n\n /** Returns the selected item from the dropdown or null. */\n public get selectedItem(): IgcSelectItemComponent | null {\n return this._selectedItem;\n }\n\n //#endregion\n\n //#region Life-cycle hooks\n\n protected override willUpdate(changedProperties: PropertyValues<this>): void {\n if (!this.hasUpdated) {\n return;\n }\n\n if (changedProperties.has('scrollStrategy')) {\n this._rootScrollController.update({ resetListeners: true });\n }\n\n if (changedProperties.has('open')) {\n this._rootClickController.update();\n this._rootScrollController.update();\n }\n }\n\n constructor() {\n super();\n\n addThemingController(this, all);\n\n // Projects the host's labels and combobox semantics onto the native\n // input inside `igc-input` (see ProjectedARIA for why the host cannot\n // publish these itself).\n addAriaProjector(this, {\n target: () => this._input,\n state: () => ({\n role: 'combobox',\n hasPopup: 'listbox',\n expanded: `${this.open}`,\n controls: this._list ? [this._list] : null,\n describedBy: this._helperText ? [this._helperText] : null,\n labelledBy: this._internals.labels,\n }),\n });\n\n addKeybindings(this, {\n skip: () => this.disabled,\n bindingDefaults: { preventDefault: true, repeat: true },\n })\n .set([altKey, arrowDown], this._handleAltArrowDown)\n .set([altKey, arrowUp], this._handleAltArrowUp)\n .set(arrowDown, this._handleArrowDown)\n .set(arrowUp, this._handleArrowUp)\n .set(arrowLeft, this._handleArrowUp)\n .set(arrowRight, this._handleArrowDown)\n .set(tabKey, this._handleTab, { preventDefault: false })\n .set(escapeKey, this._handleEscape)\n .set(homeKey, this._handleHome)\n .set(endKey, this._handleEnd)\n .set(spaceBar, this._handleSpace)\n .set(enterKey, this._handleEnter);\n\n createMutationController(this, {\n callback: this._handleItemsChange,\n filter: [IgcSelectItemComponent.tagName],\n config: { childList: true, subtree: true },\n });\n\n addSafeEventListener(this, 'keydown', this._handleSearch);\n addSafeEventListener(this, 'focusin', this._handleFocusIn);\n addSafeEventListener(this, 'focusout', this._handleFocusOut);\n }\n\n /**\n * Re-resolves the selection whenever items enter or leave the light DOM.\n * Consuming frameworks routinely render them after the initial paint, so\n * `value` may name an item that does not exist yet, and a selected item may\n * be taken out from under us.\n */\n private _handleItemsChange({\n changes: { added, removed },\n }: MutationControllerParams<IgcSelectItemComponent>): void {\n if (!this.hasUpdated || (isEmpty(added) && isEmpty(removed))) {\n return;\n }\n\n const match = this.value ? this._getItem(this.value) : undefined;\n\n if (match) {\n if (match !== this._selectedItem) {\n this._setSelectedItem(match);\n }\n return;\n }\n\n // Nothing resolves the value anymore - drop the stale element references\n // but hold on to the value itself.\n const items = this.items;\n\n if (this._selectedItem && !items.includes(this._selectedItem)) {\n this._clearSelectedItem();\n } else if (this._activeItem && !items.includes(this._activeItem)) {\n this._activateItem(this._selectedItem);\n }\n }\n\n protected override async firstUpdated(): Promise<void> {\n await this.updateComplete;\n const selected = setInitialSelectionState(this.items);\n\n if (selected) {\n // A `selected` item wins over an initial `value` and becomes what the\n // component resets to. The default must be assigned while still pristine.\n if (selected.value !== this.value) {\n this.defaultValue = selected.value;\n }\n\n this._selectItem(selected, false);\n } else if (this.value) {\n const item = this._getItem(this.value);\n\n // An unmatched value is kept, not discarded - its item may still arrive.\n if (item) {\n this._selectItem(item, false);\n }\n }\n\n if (this.autofocus) {\n this.focus();\n }\n\n this._validate();\n }\n\n //#endregion\n\n //#region Keyboard event handlers\n\n private _handleSearch(event: KeyboardEvent): void {\n // A printable key held with a modifier is a shortcut, not type-ahead.\n if (event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n\n if (!/^.$/u.test(event.key)) {\n return;\n }\n\n event.preventDefault();\n const now = Date.now();\n\n if (now - this._lastKeyTime > 500) {\n this._searchTerm = '';\n }\n\n this._lastKeyTime = now;\n this._searchTerm += event.key.toLocaleLowerCase();\n\n const item = this._activeItems.find((item) =>\n item.textContent?.trim().toLocaleLowerCase().startsWith(this._searchTerm)\n );\n\n this._navigateTo(item);\n }\n\n private _handleEnter(): void {\n this.open && this._activeItem\n ? this._selectItem(this._activeItem)\n : this._handleAnchorClick();\n }\n\n private _handleSpace(): void {\n if (!this.open) {\n this._handleAnchorClick();\n }\n }\n\n private _handleArrowDown(): void {\n this._navigateTo(getNextActiveItem(this.items, this._activeItem));\n }\n\n private _handleArrowUp(): void {\n this._navigateTo(getPreviousActiveItem(this.items, this._activeItem));\n }\n\n /**\n * Moves to `item`, committing the move as a selection while closed.\n * Nowhere to move to is a no-op - clearing the selection is reserved for the\n * callers that actually mean it.\n */\n private _navigateTo(item?: IgcSelectItemComponent): void {\n if (item) {\n this.open ? this._navigateToActiveItem(item) : this._selectItem(item);\n }\n }\n\n private _handleAltArrowDown(): void {\n if (!this.open) {\n this._show(true);\n this._focusItemOnOpen();\n }\n }\n\n private async _handleAltArrowUp(): Promise<void> {\n if (this.open && (await this._hide(true))) {\n this._input.focus();\n }\n }\n\n private async _handleEscape(): Promise<void> {\n if (await this._hide(true)) {\n this._input.focus();\n }\n }\n\n private _handleTab(event: KeyboardEvent): void {\n if (this.open) {\n event.preventDefault();\n this._selectItem(this._activeItem ?? this._selectedItem);\n this._hide(true);\n }\n }\n\n private _handleHome(): void {\n this._navigateTo(this._activeItems.at(0));\n }\n\n private _handleEnd(): void {\n this._navigateTo(this._activeItems.at(-1));\n }\n\n //#endregion\n\n //#region Event listeners\n\n private _handleFocusIn(): void {\n this._setTouchedState();\n }\n\n private _handleFocusOut(event: FocusEvent): void {\n if (focusLeftHost(this, event)) {\n super._handleBlur();\n }\n }\n\n private _handleClick(event: PointerEvent): void {\n const item = getElementFromPath(IgcSelectItemComponent.tagName, event);\n if (item && this._activeItems.includes(item)) {\n this._selectItem(item);\n }\n }\n\n private _handleChange(item: IgcSelectItemComponent): boolean {\n return this._emitTouchedEvent('igcChange', { detail: item });\n }\n\n private _handleClosing(): void {\n this._hide(true);\n }\n\n protected override _handleAnchorClick(): void {\n super._handleAnchorClick();\n this._focusItemOnOpen();\n }\n\n //#endregion\n\n //#region Internal API\n\n private _activateItem(item: IgcSelectItemComponent | null): void {\n if (this._activeItem && this._activeItem !== item) {\n this._activeItem.active = false;\n }\n\n this._activeItem = item;\n\n if (item) {\n item.active = true;\n }\n }\n\n private _setSelectedItem(\n item: IgcSelectItemComponent\n ): IgcSelectItemComponent {\n if (this._selectedItem && this._selectedItem !== item) {\n this._selectedItem.selected = false;\n }\n\n this._selectedItem = item;\n item.selected = true;\n this._activateItem(item);\n\n return item;\n }\n\n private _selectItem(\n item?: IgcSelectItemComponent | null,\n emit = true\n ): IgcSelectItemComponent | null {\n if (!item) {\n this._clearSelectedItem();\n this._updateValue();\n return null;\n }\n\n const shouldFocus = emit && this.open;\n const shouldHide = emit && !this.keepOpenOnSelect;\n // Re-selecting the current item is not a change, but it is still a commit:\n // the list closes and focus returns just the same.\n const changed = this._selectedItem !== item;\n\n if (changed) {\n this._setSelectedItem(item);\n this._updateValue(item.value);\n if (emit) this._handleChange(item);\n } else {\n this._activateItem(item);\n }\n\n if (shouldFocus) this._input.focus();\n if (shouldHide) this._hide(true);\n\n return this._selectedItem;\n }\n\n /** Highlights `item` and, while the list is open, brings it into view. */\n private _navigateToActiveItem(item?: IgcSelectItemComponent | null): void {\n if (!item) {\n return;\n }\n\n this._activateItem(item);\n\n // Closed, the list is inert: focusing and scrolling it is pointless.\n if (this.open) {\n item.focus({ preventScroll: true });\n item.scrollIntoView({ behavior: 'auto', block: 'nearest' });\n }\n }\n\n private _updateValue(value?: string): void {\n this._formValue.setValueAndFormState(value!);\n }\n\n private _clearSelectedItem(): void {\n if (this._selectedItem) {\n this._selectedItem.selected = false;\n }\n this._selectedItem = null;\n this._activateItem(null);\n }\n\n private async _focusItemOnOpen(): Promise<void> {\n await this.updateComplete;\n\n // Opening restarts navigation from the selection, so that the highlighted\n // item and the one navigation continues from are always the same.\n if (this.open) {\n this._navigateToActiveItem(this._selectedItem ?? this._activeItem);\n }\n }\n\n private _getItem(value: string): IgcSelectItemComponent | undefined {\n return this.items.find((item) => item.value === value);\n }\n\n /**\n * The text shown in the input for the current selection: the selected item's\n * main content, without what it routes to its `prefix`/`suffix` slots and\n * without the marker comments templating engines leave among its children.\n */\n private get _displayValue(): string | undefined {\n if (!this._selectedItem) {\n return undefined;\n }\n\n return normalizedTextContent(\n Array.from(this._selectedItem.childNodes).filter((node) =>\n isElement(node)\n ? !node.hasAttribute('slot')\n : node.nodeType === Node.TEXT_NODE\n )\n );\n }\n\n //#endregion\n\n //#region Public API\n\n /* alternateName: focusComponent */\n /** Sets focus on the component. */\n public override focus(options?: FocusOptions): void {\n this._input.focus(options);\n }\n\n /* alternateName: blurComponent */\n /** Removes focus from the component. */\n public override blur(): void {\n this._input.blur();\n }\n\n /** Checks the validity of the control and moves the focus to it if it is not valid. */\n public override reportValidity(): boolean {\n const valid = super.reportValidity();\n if (!valid) this._input.focus();\n return valid;\n }\n\n /* blazorSuppress */\n /** Navigates to the item with the specified value. If it exists, returns the found item, otherwise - null. */\n public navigateTo(value: string): IgcSelectItemComponent | null;\n /* blazorSuppress */\n /** Navigates to the item at the specified index. If it exists, returns the found item, otherwise - null. */\n public navigateTo(index: number): IgcSelectItemComponent | null;\n /* blazorSuppress */\n /** Navigates to the specified item. If it exists, returns the found item, otherwise - null. */\n public navigateTo(value: string | number): IgcSelectItemComponent | null {\n const item = isString(value) ? this._getItem(value) : this.items[value];\n\n if (item) {\n this._navigateToActiveItem(item);\n }\n\n return item ?? null;\n }\n\n /* blazorSuppress */\n /** Selects the item with the specified value. If it exists, returns the found item, otherwise - null. */\n public select(value: string): IgcSelectItemComponent | null;\n /* blazorSuppress */\n /** Selects the item at the specified index. If it exists, returns the found item, otherwise - null. */\n public select(index: number): IgcSelectItemComponent | null;\n /* blazorSuppress */\n /** Selects the specified item. If it exists, returns the found item, otherwise - null. */\n public select(value: string | number): IgcSelectItemComponent | null {\n const item = isString(value) ? this._getItem(value) : this.items[value];\n return item ? this._selectItem(item, false) : null;\n }\n\n /** Resets the current value and selection of the component. */\n public clearSelection(): void {\n this._updateValue();\n this._clearSelectedItem();\n }\n\n //#endregion\n\n protected _renderInputSlots() {\n const prefix = this._slots.hasAssignedElements('prefix') ? 'prefix' : '';\n const suffix = this._slots.hasAssignedElements('suffix') ? 'suffix' : '';\n\n return html`\n <span slot=${prefix}>\n <slot name=\"prefix\"></slot>\n </span>\n\n <span slot=${suffix}>\n <slot name=\"suffix\"></slot>\n </span>\n `;\n }\n\n protected _renderToggleIcon() {\n const parts = { 'toggle-icon': true, filled: !!this.value };\n const iconName = this.open ? 'input_collapse' : 'input_expand';\n const iconHidden =\n this.open && this._slots.hasAssignedElements('toggle-icon-expanded');\n\n return html`\n <span slot=\"suffix\" part=${partMap(parts)} aria-hidden=\"true\">\n ${renderSlottedIcon({\n slot: 'toggle-icon',\n icon: iconName,\n hidden: iconHidden,\n ariaHidden: false,\n })}\n <slot name=\"toggle-icon-expanded\" ?hidden=${!iconHidden}></slot>\n </span>\n `;\n }\n\n protected _renderHelperText(): TemplateResult {\n return this._renderValidationContainer({\n id: 'select-helper-text',\n slot: 'anchor',\n hasHelperText: true,\n });\n }\n\n protected _renderInputAnchor() {\n return html`\n <igc-input\n id=\"input\"\n slot=\"anchor\"\n readonly\n exportparts=\"container: input, input: native-input, label, prefix, suffix\"\n value=${ifDefined(this._displayValue)}\n placeholder=${ifDefined(this.placeholder)}\n label=${ifDefined(this.label)}\n .disabled=${this.disabled}\n .required=${this.required}\n .invalid=${this.invalid}\n .outlined=${this.outlined}\n @click=${this._handleAnchorClick}\n >\n ${this._renderInputSlots()} ${this._renderToggleIcon()}\n </igc-input>\n\n ${this._renderHelperText()}\n `;\n }\n\n protected _renderDropdown() {\n return html`\n <div part=\"base\" .inert=${!this.open}>\n <div\n id=\"dropdown\"\n role=\"listbox\"\n part=\"list\"\n aria-labelledby=\"input\"\n @click=${this._handleClick}\n >\n <slot name=\"header\"></slot>\n <slot></slot>\n <slot name=\"footer\"></slot>\n </div>\n </div>\n `;\n }\n\n protected override render() {\n return html`\n <igc-popover\n ?open=${this.open}\n flip\n shift\n same-width\n .offset=${this.distance}\n .placement=${this.placement}\n >\n ${this._renderInputAnchor()} ${this._renderDropdown()}\n </igc-popover>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-select': IgcSelectComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/components/select/select.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, type PropertyValues, type TemplateResult } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { addAriaProjector } from '#internals/controllers/aria-projection.js';\nimport {\n addKeybindings,\n altKey,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n endKey,\n enterKey,\n escapeKey,\n homeKey,\n spaceBar,\n tabKey,\n} from '#internals/controllers/key-bindings.js';\nimport {\n createMutationController,\n type MutationControllerParams,\n} from '#internals/controllers/mutation-observer.js';\nimport { addRootClickController } from '#internals/controllers/root-click.js';\nimport { addSlotController, setSlots } from '#internals/controllers/slot.js';\nimport { blazorAdditionalDependencies } from '#internals/decorators/blazorAdditionalDependencies.js';\nimport { shadowOptions } from '#internals/decorators/shadow-options.js';\nimport { registerComponent } from '#internals/definitions/register.js';\nimport {\n getActiveItems,\n getItems,\n getNextActiveItem,\n getPreviousActiveItem,\n IgcComboBoxBaseLikeComponent,\n setInitialSelectionState,\n} from '#internals/mixins/combo-box.js';\nimport type { AbstractConstructor } from '#internals/mixins/constructor.js';\nimport { EventEmitterMixin } from '#internals/mixins/event-emitter.js';\nimport { FormAssociatedRequiredMixin } from '#internals/mixins/forms/associated-required.js';\nimport { FormValueSelectTransformers } from '#internals/mixins/forms/form-transformers.js';\nimport { createFormValueState } from '#internals/mixins/forms/form-value.js';\nimport { partMap } from '#internals/part-map.js';\nimport { renderSlottedIcon } from '#internals/templates/slotted-icon.js';\nimport { isEmpty } from '#internals/utils/arrays.js';\nimport { isElement, normalizedTextContent } from '#internals/utils/dom.js';\nimport {\n addSafeEventListener,\n focusLeftHost,\n getElementFromPath,\n} from '#internals/utils/events.js';\nimport { isString } from '#internals/utils/types.js';\nimport { addThemingController } from '#theming/theming-controller.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport IgcInputComponent from '../input/input.js';\nimport IgcPopoverComponent, {\n type PopoverPlacement,\n} from '../popover/popover.js';\nimport IgcValidationContainerComponent from '../validation-container/validation-container.js';\nimport IgcSelectGroupComponent from './select-group.js';\nimport IgcSelectHeaderComponent from './select-header.js';\nimport IgcSelectItemComponent from './select-item.js';\nimport { styles } from './themes/select.base.css.js';\nimport { styles as shared } from './themes/shared/select.common.css.js';\nimport { all } from './themes/themes.js';\nimport { selectValidators } from './validators.js';\n\nexport interface IgcSelectComponentEventMap {\n igcChange: CustomEvent<IgcSelectItemComponent>;\n // For analyzer meta only:\n /* skipWCPrefix */\n focus: FocusEvent;\n /* skipWCPrefix */\n blur: FocusEvent;\n igcOpening: CustomEvent<void>;\n igcOpened: CustomEvent<void>;\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n}\n\nconst Slots = setSlots(\n 'prefix',\n 'suffix',\n 'header',\n 'footer',\n 'helper-text',\n 'toggle-icon',\n 'toggle-icon-expanded',\n 'value-missing',\n 'custom-error',\n 'invalid'\n);\n\n/**\n * Represents a control that provides a menu of options.\n *\n * @element igc-select\n *\n * @slot - Renders the list of select items.\n * @slot prefix - Renders content before the input.\n * @slot suffix - Renders content after input.\n * @slot header - Renders a container before the list of options.\n * @slot footer - Renders a container after the list of options.\n * @slot helper-text - Renders content below the input.\n * @slot toggle-icon - Renders content inside the suffix container.\n * @slot toggle-icon-expanded - Renders content for the toggle icon when the component is in open state.\n * @slot value-missing - Renders content when the required 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 *\n * @fires igcChange - Emitted when the selection of the control changes.\n * @fires igcOpening - Emitted just before the list of options is opened.\n * @fires igcOpened - Emitted after the list of options is opened.\n * @fires igcClosing - Emitted just before the list of options is closed.\n * @fires igcClosed - Emitted after the list of options is closed.\n *\n * @csspart list - The list wrapping container for the items of the select.\n * @csspart input - The encapsulated input of the select.\n * @csspart label - The encapsulated text label of the select.\n * @csspart prefix - The prefix wrapper of the input of the select.\n * @csspart suffix - The suffix wrapper of the input of the select.\n * @csspart toggle-icon - The toggle icon wrapper of the select.\n * @csspart helper-text - The helper text wrapper of the select.\n */\n@blazorAdditionalDependencies(\n 'IgcIconComponent, IgcInputComponent, IgcSelectGroupComponent, IgcSelectHeaderComponent, IgcSelectItemComponent'\n)\n@shadowOptions({ delegatesFocus: true })\nexport default class IgcSelectComponent extends FormAssociatedRequiredMixin(\n EventEmitterMixin<\n IgcSelectComponentEventMap,\n AbstractConstructor<IgcComboBoxBaseLikeComponent>\n >(IgcComboBoxBaseLikeComponent)\n) {\n public static readonly tagName = 'igc-select';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(\n IgcSelectComponent,\n IgcIconComponent,\n IgcInputComponent,\n IgcPopoverComponent,\n IgcSelectGroupComponent,\n IgcSelectHeaderComponent,\n IgcSelectItemComponent\n );\n }\n\n //#region Internal state\n\n protected override get __validators() {\n return selectValidators;\n }\n\n private _searchTerm = '';\n private _lastKeyTime = 0;\n\n private readonly _slots = addSlotController(this, { slots: Slots });\n\n protected override readonly _rootClickController = addRootClickController(\n this,\n {\n onHide: this._handleClosing,\n }\n );\n\n protected override readonly _formValue = createFormValueState(this, {\n initialValue: undefined,\n transformers: FormValueSelectTransformers,\n });\n\n @state()\n protected _selectedItem: IgcSelectItemComponent | null = null;\n\n /**\n * The item keyboard navigation moves from. Mirrors {@link _selectedItem}\n * unless the open list has been navigated without committing a selection.\n * Only {@link _activateItem} may assign it.\n */\n @state()\n protected _activeItem: IgcSelectItemComponent | null = null;\n\n @query(IgcInputComponent.tagName, true)\n protected _input!: IgcInputComponent;\n\n @query('#dropdown')\n protected _list!: HTMLDivElement | null;\n\n @query('#select-helper-text')\n protected _helperText!: IgcValidationContainerComponent | null;\n\n protected get _activeItems(): IgcSelectItemComponent[] {\n return Array.from(\n getActiveItems<IgcSelectItemComponent>(\n this,\n IgcSelectItemComponent.tagName\n )\n );\n }\n\n //#endregion\n\n //#region Public attributes and properties\n\n /* @tsTwoWayProperty(true, \"igcChange\", \"detail.value\", false) */\n /**\n * The value of the control.\n * @attr\n */\n @property()\n public set value(value: string | undefined) {\n this._updateValue(value);\n const item = this._getItem(this._formValue.value!);\n item ? this._setSelectedItem(item) : this._clearSelectedItem();\n }\n\n public get value(): string | undefined {\n return this._formValue.value;\n }\n\n /**\n * Whether the control has an outlined appearance.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public outlined = false;\n\n /**\n * Whether the control should receive focus automatically.\n * @attr\n */\n @property({ type: Boolean })\n public override autofocus!: boolean;\n\n /**\n * The distance of the select dropdown from its input.\n * @attr\n */\n @property({ type: Number })\n public distance = 0;\n\n /**\n * The label of the control.\n * @attr\n */\n @property()\n public label!: string;\n\n /**\n * The placeholder text of the control.\n * @attr\n */\n @property()\n public placeholder!: string;\n\n /** The preferred placement of the select dropdown around its input.\n * @attr\n */\n @property()\n public placement: PopoverPlacement = 'bottom-start';\n\n /** Returns the items of the select component. */\n public get items(): IgcSelectItemComponent[] {\n return Array.from(\n getItems<IgcSelectItemComponent>(this, IgcSelectItemComponent.tagName)\n );\n }\n\n /** Returns the groups of the select component. */\n public get groups(): IgcSelectGroupComponent[] {\n return Array.from(\n getItems<IgcSelectGroupComponent>(this, IgcSelectGroupComponent.tagName)\n );\n }\n\n /** Returns the selected item from the dropdown or null. */\n public get selectedItem(): IgcSelectItemComponent | null {\n return this._selectedItem;\n }\n\n //#endregion\n\n //#region Life-cycle hooks\n\n protected override willUpdate(changedProperties: PropertyValues<this>): void {\n if (!this.hasUpdated) {\n return;\n }\n\n if (changedProperties.has('open')) {\n this._rootClickController.update();\n }\n }\n\n constructor() {\n super();\n\n addThemingController(this, all);\n\n // Projects the host's labels and combobox semantics onto the native\n // input inside `igc-input` (see ProjectedARIA for why the host cannot\n // publish these itself).\n addAriaProjector(this, {\n target: () => this._input,\n state: () => ({\n role: 'combobox',\n hasPopup: 'listbox',\n expanded: `${this.open}`,\n controls: this._list ? [this._list] : null,\n describedBy: this._helperText ? [this._helperText] : null,\n labelledBy: this._internals.labels,\n }),\n });\n\n addKeybindings(this, {\n skip: () => this.disabled,\n bindingDefaults: { preventDefault: true, repeat: true },\n })\n .set([altKey, arrowDown], this._handleAltArrowDown)\n .set([altKey, arrowUp], this._handleAltArrowUp)\n .set(arrowDown, this._handleArrowDown)\n .set(arrowUp, this._handleArrowUp)\n .set(arrowLeft, this._handleArrowUp)\n .set(arrowRight, this._handleArrowDown)\n .set(tabKey, this._handleTab, { preventDefault: false })\n .set(escapeKey, this._handleEscape)\n .set(homeKey, this._handleHome)\n .set(endKey, this._handleEnd)\n .set(spaceBar, this._handleSpace)\n .set(enterKey, this._handleEnter);\n\n createMutationController(this, {\n callback: this._handleItemsChange,\n filter: [IgcSelectItemComponent.tagName],\n config: { childList: true, subtree: true },\n });\n\n addSafeEventListener(this, 'keydown', this._handleSearch);\n addSafeEventListener(this, 'focusin', this._handleFocusIn);\n addSafeEventListener(this, 'focusout', this._handleFocusOut);\n }\n\n /**\n * Resolves the selection again when an item enters or leaves the light DOM. A\n * framework usually renders the items after the first paint, so `value` can\n * name an item that does not exist, and a selected item can be removed.\n */\n private _handleItemsChange({\n changes: { added, removed },\n }: MutationControllerParams<IgcSelectItemComponent>): void {\n if (!this.hasUpdated || (isEmpty(added) && isEmpty(removed))) {\n return;\n }\n\n const match = this.value ? this._getItem(this.value) : undefined;\n\n if (match) {\n if (match !== this._selectedItem) {\n this._setSelectedItem(match);\n }\n return;\n }\n\n // Nothing resolves the value anymore - drop the stale element references\n // but hold on to the value itself.\n const items = this.items;\n\n if (this._selectedItem && !items.includes(this._selectedItem)) {\n this._clearSelectedItem();\n } else if (this._activeItem && !items.includes(this._activeItem)) {\n this._activateItem(this._selectedItem);\n }\n }\n\n protected override async firstUpdated(): Promise<void> {\n await this.updateComplete;\n const selected = setInitialSelectionState(this.items);\n\n if (selected) {\n // A `selected` item wins over an initial `value` and becomes what the\n // component resets to. The default must be assigned while still pristine.\n if (selected.value !== this.value) {\n this.defaultValue = selected.value;\n }\n\n this._selectItem(selected, false);\n } else if (this.value) {\n const item = this._getItem(this.value);\n\n // An unmatched value is kept, not discarded - its item may still arrive.\n if (item) {\n this._selectItem(item, false);\n }\n }\n\n if (this.autofocus) {\n this.focus();\n }\n\n this._validate();\n }\n\n //#endregion\n\n //#region Keyboard event handlers\n\n private _handleSearch(event: KeyboardEvent): void {\n // A printable key held with a modifier is a shortcut, not type-ahead.\n if (event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n\n if (!/^.$/u.test(event.key)) {\n return;\n }\n\n event.preventDefault();\n const now = Date.now();\n\n if (now - this._lastKeyTime > 500) {\n this._searchTerm = '';\n }\n\n this._lastKeyTime = now;\n this._searchTerm += event.key.toLocaleLowerCase();\n\n const item = this._activeItems.find((item) =>\n item.textContent?.trim().toLocaleLowerCase().startsWith(this._searchTerm)\n );\n\n this._navigateTo(item);\n }\n\n private _handleEnter(): void {\n this.open && this._activeItem\n ? this._selectItem(this._activeItem)\n : this._handleAnchorClick();\n }\n\n private _handleSpace(): void {\n if (!this.open) {\n this._handleAnchorClick();\n }\n }\n\n private _handleArrowDown(): void {\n this._navigateTo(getNextActiveItem(this.items, this._activeItem));\n }\n\n private _handleArrowUp(): void {\n this._navigateTo(getPreviousActiveItem(this.items, this._activeItem));\n }\n\n /**\n * Moves to `item`, and commits the move as a selection while closed. Does\n * nothing if there is no item, because only a caller that intends it clears\n * the selection.\n */\n private _navigateTo(item?: IgcSelectItemComponent): void {\n if (item) {\n this.open ? this._navigateToActiveItem(item) : this._selectItem(item);\n }\n }\n\n private _handleAltArrowDown(): void {\n if (!this.open) {\n this._show(true);\n this._focusItemOnOpen();\n }\n }\n\n private async _handleAltArrowUp(): Promise<void> {\n if (this.open && (await this._hide(true))) {\n this._input.focus();\n }\n }\n\n private async _handleEscape(): Promise<void> {\n if (await this._hide(true)) {\n this._input.focus();\n }\n }\n\n private _handleTab(event: KeyboardEvent): void {\n if (this.open) {\n event.preventDefault();\n this._selectItem(this._activeItem ?? this._selectedItem);\n this._hide(true);\n }\n }\n\n private _handleHome(): void {\n this._navigateTo(this._activeItems.at(0));\n }\n\n private _handleEnd(): void {\n this._navigateTo(this._activeItems.at(-1));\n }\n\n //#endregion\n\n //#region Event listeners\n\n private _handleFocusIn(): void {\n this._setTouchedState();\n }\n\n private _handleFocusOut(event: FocusEvent): void {\n if (focusLeftHost(this, event)) {\n super._handleBlur();\n }\n }\n\n private _handleClick(event: PointerEvent): void {\n const item = getElementFromPath(IgcSelectItemComponent.tagName, event);\n if (item && this._activeItems.includes(item)) {\n this._selectItem(item);\n }\n }\n\n private _handleChange(item: IgcSelectItemComponent): boolean {\n return this._emitTouchedEvent('igcChange', { detail: item });\n }\n\n private _handleClosing(): void {\n this._hide(true);\n }\n\n protected override _handleAnchorClick(): void {\n super._handleAnchorClick();\n this._focusItemOnOpen();\n }\n\n //#endregion\n\n //#region Internal API\n\n private _activateItem(item: IgcSelectItemComponent | null): void {\n if (this._activeItem && this._activeItem !== item) {\n this._activeItem.active = false;\n }\n\n this._activeItem = item;\n\n if (item) {\n item.active = true;\n }\n }\n\n private _setSelectedItem(\n item: IgcSelectItemComponent\n ): IgcSelectItemComponent {\n if (this._selectedItem && this._selectedItem !== item) {\n this._selectedItem.selected = false;\n }\n\n this._selectedItem = item;\n item.selected = true;\n this._activateItem(item);\n\n return item;\n }\n\n private _selectItem(\n item?: IgcSelectItemComponent | null,\n emit = true\n ): IgcSelectItemComponent | null {\n if (!item) {\n this._clearSelectedItem();\n this._updateValue();\n return null;\n }\n\n const shouldFocus = emit && this.open;\n const shouldHide = emit && !this.keepOpenOnSelect;\n // Re-selecting the current item is not a change, but it is still a commit:\n // the list closes and focus returns just the same.\n const changed = this._selectedItem !== item;\n\n if (changed) {\n this._setSelectedItem(item);\n this._updateValue(item.value);\n if (emit) this._handleChange(item);\n } else {\n this._activateItem(item);\n }\n\n if (shouldFocus) this._input.focus();\n if (shouldHide) this._hide(true);\n\n return this._selectedItem;\n }\n\n /** Highlights `item` and, while the list is open, brings it into view. */\n private _navigateToActiveItem(item?: IgcSelectItemComponent | null): void {\n if (!item) {\n return;\n }\n\n this._activateItem(item);\n\n // Closed, the list is inert: focusing and scrolling it is pointless.\n if (this.open) {\n item.focus({ preventScroll: true });\n item.scrollIntoView({ behavior: 'auto', block: 'nearest' });\n }\n }\n\n private _updateValue(value?: string): void {\n this._formValue.setValueAndFormState(value!);\n }\n\n private _clearSelectedItem(): void {\n if (this._selectedItem) {\n this._selectedItem.selected = false;\n }\n this._selectedItem = null;\n this._activateItem(null);\n }\n\n private async _focusItemOnOpen(): Promise<void> {\n await this.updateComplete;\n\n // Opening restarts navigation from the selection, so that the highlighted\n // item and the one navigation continues from are always the same.\n if (this.open) {\n this._navigateToActiveItem(this._selectedItem ?? this._activeItem);\n }\n }\n\n private _getItem(value: string): IgcSelectItemComponent | undefined {\n return this.items.find((item) => item.value === value);\n }\n\n /**\n * The text in the input for the current selection: the main content of the\n * selected item, without its `prefix` and `suffix` slots, and without the\n * marker comments that a templating engine leaves between its children.\n */\n private get _displayValue(): string | undefined {\n if (!this._selectedItem) {\n return undefined;\n }\n\n return normalizedTextContent(\n Array.from(this._selectedItem.childNodes).filter((node) =>\n isElement(node)\n ? !node.hasAttribute('slot')\n : node.nodeType === Node.TEXT_NODE\n )\n );\n }\n\n //#endregion\n\n //#region Public API\n\n /* alternateName: focusComponent */\n /** Sets focus on the component. */\n public override focus(options?: FocusOptions): void {\n this._input.focus(options);\n }\n\n /* alternateName: blurComponent */\n /** Removes focus from the component. */\n public override blur(): void {\n this._input.blur();\n }\n\n /** Checks the validity of the control and moves the focus to it if it is not valid. */\n public override reportValidity(): boolean {\n const valid = super.reportValidity();\n if (!valid) this._input.focus();\n return valid;\n }\n\n /* blazorSuppress */\n /** Navigates to the item with the specified value. If it exists, returns the found item, otherwise - null. */\n public navigateTo(value: string): IgcSelectItemComponent | null;\n /* blazorSuppress */\n /** Navigates to the item at the specified index. If it exists, returns the found item, otherwise - null. */\n public navigateTo(index: number): IgcSelectItemComponent | null;\n /* blazorSuppress */\n /** Navigates to the specified item. If it exists, returns the found item, otherwise - null. */\n public navigateTo(value: string | number): IgcSelectItemComponent | null {\n const item = isString(value) ? this._getItem(value) : this.items[value];\n\n if (item) {\n this._navigateToActiveItem(item);\n }\n\n return item ?? null;\n }\n\n /* blazorSuppress */\n /** Selects the item with the specified value. If it exists, returns the found item, otherwise - null. */\n public select(value: string): IgcSelectItemComponent | null;\n /* blazorSuppress */\n /** Selects the item at the specified index. If it exists, returns the found item, otherwise - null. */\n public select(index: number): IgcSelectItemComponent | null;\n /* blazorSuppress */\n /** Selects the specified item. If it exists, returns the found item, otherwise - null. */\n public select(value: string | number): IgcSelectItemComponent | null {\n const item = isString(value) ? this._getItem(value) : this.items[value];\n return item ? this._selectItem(item, false) : null;\n }\n\n /** Resets the current value and selection of the component. */\n public clearSelection(): void {\n this._updateValue();\n this._clearSelectedItem();\n }\n\n //#endregion\n\n protected _renderInputSlots() {\n const prefix = this._slots.hasAssignedElements('prefix') ? 'prefix' : '';\n const suffix = this._slots.hasAssignedElements('suffix') ? 'suffix' : '';\n\n return html`\n <span slot=${prefix}>\n <slot name=\"prefix\"></slot>\n </span>\n\n <span slot=${suffix}>\n <slot name=\"suffix\"></slot>\n </span>\n `;\n }\n\n protected _renderToggleIcon() {\n const parts = { 'toggle-icon': true, filled: !!this.value };\n const iconName = this.open ? 'input_collapse' : 'input_expand';\n const iconHidden =\n this.open && this._slots.hasAssignedElements('toggle-icon-expanded');\n\n return html`\n <span slot=\"suffix\" part=${partMap(parts)} aria-hidden=\"true\">\n ${renderSlottedIcon({\n slot: 'toggle-icon',\n icon: iconName,\n hidden: iconHidden,\n ariaHidden: false,\n })}\n <slot name=\"toggle-icon-expanded\" ?hidden=${!iconHidden}></slot>\n </span>\n `;\n }\n\n protected _renderHelperText(): TemplateResult {\n return IgcValidationContainerComponent.create(this, {\n id: 'select-helper-text',\n slot: 'anchor',\n hasHelperText: true,\n });\n }\n\n protected _renderInputAnchor() {\n return html`\n <igc-input\n id=\"input\"\n slot=\"anchor\"\n readonly\n exportparts=\"container: input, input: native-input, label, prefix, suffix\"\n value=${ifDefined(this._displayValue)}\n placeholder=${ifDefined(this.placeholder)}\n label=${ifDefined(this.label)}\n .disabled=${this.disabled}\n .required=${this.required}\n .invalid=${this.invalid}\n .outlined=${this.outlined}\n @click=${this._handleAnchorClick}\n >\n ${this._renderInputSlots()} ${this._renderToggleIcon()}\n </igc-input>\n\n ${this._renderHelperText()}\n `;\n }\n\n protected _renderDropdown() {\n return html`\n <div part=\"base\" .inert=${!this.open}>\n <div\n id=\"dropdown\"\n role=\"listbox\"\n part=\"list\"\n aria-labelledby=\"input\"\n @click=${this._handleClick}\n >\n <slot name=\"header\"></slot>\n <slot></slot>\n <slot name=\"footer\"></slot>\n </div>\n </div>\n `;\n }\n\n protected override render() {\n return html`\n <igc-popover\n ?open=${this.open}\n flip\n same-width\n .offset=${this.distance}\n .placement=${this.placement}\n .scrollStrategy=${this.scrollStrategy}\n @igcPopoverScrollClose=${this._handleClosing}\n >\n ${this._renderInputAnchor()} ${this._renderDropdown()}\n </igc-popover>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-select': IgcSelectComponent;\n }\n}\n"]}
@@ -271,9 +271,9 @@ export default class IgcSplitterComponent extends IgcSplitterComponent_base {
271
271
  private _getFlex;
272
272
  private _handleResizePanes;
273
273
  /**
274
- * A complete resize for a non-pointer gesture. Sharing `_calcNewSizes` with
275
- * the drag path is what keeps both panes' constraints honoured and the
276
- * emitted sizes equal to the ones that actually render.
274
+ * A complete resize for a gesture that is not a pointer drag. `_calcNewSizes`
275
+ * is shared with the drag path, which keeps the constraints of both panes and
276
+ * makes the emitted sizes equal to the rendered ones.
277
277
  */
278
278
  private _runResize;
279
279
  private _preventDefaultForEvent;
@@ -294,9 +294,9 @@ export default class IgcSplitterComponent extends IgcSplitterComponent_base {
294
294
  private _rectSize;
295
295
  private _calcNewSizes;
296
296
  /**
297
- * Reads the container and bar extents once per update pass - both
298
- * `_updatePanes` and `_updateBarAria` need them, and the style writes in
299
- * between would force a reflow for every repeated read.
297
+ * Reads the container and bar extents one time per update pass. Both
298
+ * `_updatePanes` and `_updateBarAria` need them, and the style writes between
299
+ * them would force a reflow for each read.
300
300
  */
301
301
  private _measure;
302
302
  /** The content box of the flex container - the basis for every percentage. */