igniteui-webcomponents 4.11.0 → 5.0.0-rc.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 (373) hide show
  1. package/CHANGELOG.md +79 -0
  2. package/README.md +168 -110
  3. package/components/accordion/accordion.d.ts +2 -2
  4. package/components/accordion/accordion.js +25 -35
  5. package/components/accordion/accordion.js.map +1 -1
  6. package/components/avatar/avatar.d.ts +1 -3
  7. package/components/avatar/avatar.js +1 -3
  8. package/components/avatar/avatar.js.map +1 -1
  9. package/components/avatar/themes/avatar.base.css.js +1 -1
  10. package/components/avatar/themes/avatar.base.css.js.map +1 -1
  11. package/components/badge/badge.d.ts +2 -1
  12. package/components/badge/badge.js.map +1 -1
  13. package/components/badge/themes/badge.base.css.js +1 -1
  14. package/components/badge/themes/badge.base.css.js.map +1 -1
  15. package/components/button/button-base.d.ts +3 -4
  16. package/components/button/button-base.js +1 -9
  17. package/components/button/button-base.js.map +1 -1
  18. package/components/button/button.d.ts +3 -7
  19. package/components/button/button.js +4 -5
  20. package/components/button/button.js.map +1 -1
  21. package/components/button/icon-button.d.ts +2 -2
  22. package/components/button/icon-button.js +0 -3
  23. package/components/button/icon-button.js.map +1 -1
  24. package/components/button/themes/button/button.base.css.js +1 -1
  25. package/components/button/themes/button/button.base.css.js.map +1 -1
  26. package/components/button/themes/icon-button/icon-button.base.css.js +1 -1
  27. package/components/button/themes/icon-button/icon-button.base.css.js.map +1 -1
  28. package/components/button-group/themes/button.base.css.js +1 -1
  29. package/components/button-group/themes/button.base.css.js.map +1 -1
  30. package/components/button-group/themes/group.base.css.js +1 -1
  31. package/components/button-group/themes/group.base.css.js.map +1 -1
  32. package/components/calendar/base.d.ts +65 -0
  33. package/components/calendar/base.js +150 -0
  34. package/components/calendar/base.js.map +1 -0
  35. package/components/calendar/calendar.d.ts +113 -61
  36. package/components/calendar/calendar.js +417 -514
  37. package/components/calendar/calendar.js.map +1 -1
  38. package/components/calendar/days-view/days-view.d.ts +43 -46
  39. package/components/calendar/days-view/days-view.js +269 -340
  40. package/components/calendar/days-view/days-view.js.map +1 -1
  41. package/components/calendar/helpers.d.ts +30 -0
  42. package/components/calendar/helpers.js +99 -0
  43. package/components/calendar/helpers.js.map +1 -0
  44. package/components/calendar/model.d.ts +55 -0
  45. package/components/calendar/model.js +94 -0
  46. package/components/calendar/model.js.map +1 -0
  47. package/components/calendar/months-view/months-view.d.ts +12 -12
  48. package/components/calendar/months-view/months-view.js +72 -79
  49. package/components/calendar/months-view/months-view.js.map +1 -1
  50. package/components/calendar/themes/calendar.base.css.js +1 -1
  51. package/components/calendar/themes/calendar.base.css.js.map +1 -1
  52. package/components/calendar/types.d.ts +16 -0
  53. package/components/calendar/types.js +10 -0
  54. package/components/calendar/types.js.map +1 -0
  55. package/components/calendar/years-view/years-view.d.ts +13 -12
  56. package/components/calendar/years-view/years-view.js +58 -73
  57. package/components/calendar/years-view/years-view.js.map +1 -1
  58. package/components/card/themes/card.actions.base.css.js +1 -1
  59. package/components/card/themes/card.actions.base.css.js.map +1 -1
  60. package/components/card/themes/card.content.base.css.js +1 -1
  61. package/components/card/themes/card.content.base.css.js.map +1 -1
  62. package/components/card/themes/card.header.base.css.js +1 -1
  63. package/components/card/themes/card.header.base.css.js.map +1 -1
  64. package/components/card/themes/card.media.base.css.js +1 -1
  65. package/components/card/themes/card.media.base.css.js.map +1 -1
  66. package/components/card/themes/container.base.css.js +1 -1
  67. package/components/card/themes/container.base.css.js.map +1 -1
  68. package/components/checkbox/checkbox-base.d.ts +8 -5
  69. package/components/checkbox/checkbox-base.js +8 -15
  70. package/components/checkbox/checkbox-base.js.map +1 -1
  71. package/components/checkbox/checkbox.d.ts +2 -4
  72. package/components/checkbox/checkbox.js.map +1 -1
  73. package/components/checkbox/switch.d.ts +1 -3
  74. package/components/checkbox/switch.js.map +1 -1
  75. package/components/checkbox/themes/checkbox.base.css.js +1 -1
  76. package/components/checkbox/themes/checkbox.base.css.js.map +1 -1
  77. package/components/checkbox/themes/switch.base.css.js +1 -1
  78. package/components/checkbox/themes/switch.base.css.js.map +1 -1
  79. package/components/checkbox/validators.d.ts +3 -0
  80. package/components/checkbox/validators.js +5 -0
  81. package/components/checkbox/validators.js.map +1 -0
  82. package/components/chip/chip.d.ts +4 -3
  83. package/components/chip/chip.js +11 -19
  84. package/components/chip/chip.js.map +1 -1
  85. package/components/chip/themes/chip.base.css.js +1 -1
  86. package/components/chip/themes/chip.base.css.js.map +1 -1
  87. package/components/chip/themes/shared/chip.common.css.js +1 -1
  88. package/components/chip/themes/shared/chip.common.css.js.map +1 -1
  89. package/components/combo/combo.d.ts +36 -54
  90. package/components/combo/combo.js +36 -59
  91. package/components/combo/combo.js.map +1 -1
  92. package/components/combo/themes/combo-header.base.css.js +1 -1
  93. package/components/combo/themes/combo-header.base.css.js.map +1 -1
  94. package/components/combo/themes/combo-item.base.css.js +1 -1
  95. package/components/combo/themes/combo-item.base.css.js.map +1 -1
  96. package/components/combo/themes/combo.base.css.js +1 -1
  97. package/components/combo/themes/combo.base.css.js.map +1 -1
  98. package/components/combo/types.d.ts +2 -2
  99. package/components/combo/types.js.map +1 -1
  100. package/components/combo/validators.d.ts +3 -0
  101. package/components/combo/validators.js +9 -0
  102. package/components/combo/validators.js.map +1 -0
  103. package/components/common/controllers/key-bindings.d.ts +1 -0
  104. package/components/common/controllers/key-bindings.js.map +1 -1
  105. package/components/common/controllers/mutation-observer.d.ts +1 -0
  106. package/components/common/controllers/mutation-observer.js.map +1 -1
  107. package/components/common/controllers/root-click.d.ts +4 -2
  108. package/components/common/controllers/root-click.js +13 -7
  109. package/components/common/controllers/root-click.js.map +1 -1
  110. package/components/common/definitions/defineAllComponents.js +0 -2
  111. package/components/common/definitions/defineAllComponents.js.map +1 -1
  112. package/components/common/localization/intl-formatters.d.ts +17 -0
  113. package/components/common/localization/intl-formatters.js +46 -0
  114. package/components/common/localization/intl-formatters.js.map +1 -0
  115. package/components/common/mixins/alert.d.ts +3 -3
  116. package/components/common/mixins/alert.js +6 -4
  117. package/components/common/mixins/alert.js.map +1 -1
  118. package/components/common/mixins/combo-box.d.ts +4 -3
  119. package/components/common/mixins/combo-box.js +16 -10
  120. package/components/common/mixins/combo-box.js.map +1 -1
  121. package/components/common/mixins/form-associated.d.ts +1 -1
  122. package/components/common/mixins/form-associated.js +4 -2
  123. package/components/common/mixins/form-associated.js.map +1 -1
  124. package/components/common/util.d.ts +26 -0
  125. package/components/common/util.js +34 -0
  126. package/components/common/util.js.map +1 -1
  127. package/components/date-picker/date-picker.d.ts +7 -10
  128. package/components/date-picker/date-picker.js +16 -33
  129. package/components/date-picker/date-picker.js.map +1 -1
  130. package/components/date-picker/themes/date-picker.base.css.js +1 -1
  131. package/components/date-picker/themes/date-picker.base.css.js.map +1 -1
  132. package/components/date-picker/themes/shared/date-picker.common.css.js +1 -1
  133. package/components/date-picker/themes/shared/date-picker.common.css.js.map +1 -1
  134. package/components/date-picker/validators.d.ts +3 -0
  135. package/components/date-picker/validators.js +15 -0
  136. package/components/date-picker/validators.js.map +1 -0
  137. package/components/date-time-input/date-time-input.d.ts +3 -22
  138. package/components/date-time-input/date-time-input.js +8 -36
  139. package/components/date-time-input/date-time-input.js.map +1 -1
  140. package/components/date-time-input/date-util.js +3 -1
  141. package/components/date-time-input/date-util.js.map +1 -1
  142. package/components/date-time-input/validators.d.ts +3 -0
  143. package/components/date-time-input/validators.js +18 -0
  144. package/components/date-time-input/validators.js.map +1 -0
  145. package/components/dialog/dialog.d.ts +12 -25
  146. package/components/dialog/dialog.js +55 -77
  147. package/components/dialog/dialog.js.map +1 -1
  148. package/components/dialog/themes/dialog.base.css.js +1 -1
  149. package/components/dialog/themes/dialog.base.css.js.map +1 -1
  150. package/components/dialog/themes/shared/dialog.common.css.js +1 -1
  151. package/components/dialog/themes/shared/dialog.common.css.js.map +1 -1
  152. package/components/divider/divider.js.map +1 -1
  153. package/components/divider/themes/divider.base.css.js +1 -1
  154. package/components/divider/themes/divider.base.css.js.map +1 -1
  155. package/components/dropdown/dropdown-group.d.ts +1 -1
  156. package/components/dropdown/dropdown-group.js +5 -3
  157. package/components/dropdown/dropdown-group.js.map +1 -1
  158. package/components/dropdown/dropdown.d.ts +4 -11
  159. package/components/dropdown/dropdown.js +10 -23
  160. package/components/dropdown/dropdown.js.map +1 -1
  161. package/components/dropdown/themes/dropdown-group.base.css.js +1 -1
  162. package/components/dropdown/themes/dropdown-group.base.css.js.map +1 -1
  163. package/components/dropdown/themes/dropdown-header.base.css.js +1 -1
  164. package/components/dropdown/themes/dropdown-header.base.css.js.map +1 -1
  165. package/components/dropdown/themes/dropdown-item.base.css.js +1 -1
  166. package/components/dropdown/themes/dropdown-item.base.css.js.map +1 -1
  167. package/components/dropdown/themes/dropdown.base.css.js +1 -1
  168. package/components/dropdown/themes/dropdown.base.css.js.map +1 -1
  169. package/components/expansion-panel/expansion-panel.d.ts +10 -10
  170. package/components/expansion-panel/expansion-panel.js +39 -39
  171. package/components/expansion-panel/expansion-panel.js.map +1 -1
  172. package/components/expansion-panel/themes/expansion-panel.base.css.js +1 -1
  173. package/components/expansion-panel/themes/expansion-panel.base.css.js.map +1 -1
  174. package/components/icon/icon-references.d.ts +28 -0
  175. package/components/icon/icon-references.js +151 -0
  176. package/components/icon/icon-references.js.map +1 -0
  177. package/components/icon/icon-state.broadcast.d.ts +10 -0
  178. package/components/icon/icon-state.broadcast.js +36 -0
  179. package/components/icon/icon-state.broadcast.js.map +1 -0
  180. package/components/icon/icon.d.ts +3 -3
  181. package/components/icon/icon.js +13 -7
  182. package/components/icon/icon.js.map +1 -1
  183. package/components/icon/icon.registry.d.ts +14 -14
  184. package/components/icon/icon.registry.js +70 -26
  185. package/components/icon/icon.registry.js.map +1 -1
  186. package/components/icon/internal-icons-lib.d.ts +2 -2
  187. package/components/icon/internal-icons-lib.js +2 -2
  188. package/components/icon/internal-icons-lib.js.map +1 -1
  189. package/components/icon/registry/default-map.d.ts +12 -0
  190. package/components/icon/registry/default-map.js +31 -0
  191. package/components/icon/registry/default-map.js.map +1 -0
  192. package/components/icon/registry/parser.d.ts +6 -0
  193. package/components/icon/registry/parser.js +21 -0
  194. package/components/icon/registry/parser.js.map +1 -0
  195. package/components/icon/registry/types.d.ts +34 -0
  196. package/components/icon/registry/types.js +7 -0
  197. package/components/icon/registry/types.js.map +1 -0
  198. package/components/icon/themes/icon.base.css.js +1 -1
  199. package/components/icon/themes/icon.base.css.js.map +1 -1
  200. package/components/input/input-base.d.ts +8 -21
  201. package/components/input/input-base.js +12 -41
  202. package/components/input/input-base.js.map +1 -1
  203. package/components/input/input.d.ts +3 -29
  204. package/components/input/input.js +4 -78
  205. package/components/input/input.js.map +1 -1
  206. package/components/input/themes/input.base.css.js +1 -1
  207. package/components/input/themes/input.base.css.js.map +1 -1
  208. package/components/input/validators.d.ts +4 -0
  209. package/components/input/validators.js +30 -0
  210. package/components/input/validators.js.map +1 -0
  211. package/components/list/list.d.ts +1 -3
  212. package/components/list/list.js +1 -2
  213. package/components/list/list.js.map +1 -1
  214. package/components/list/themes/container.base.css.js +1 -1
  215. package/components/list/themes/container.base.css.js.map +1 -1
  216. package/components/mask-input/mask-input-base.d.ts +3 -2
  217. package/components/mask-input/mask-input-base.js.map +1 -1
  218. package/components/mask-input/mask-input.d.ts +1 -4
  219. package/components/mask-input/mask-input.js +7 -17
  220. package/components/mask-input/mask-input.js.map +1 -1
  221. package/components/mask-input/validators.d.ts +3 -0
  222. package/components/mask-input/validators.js +11 -0
  223. package/components/mask-input/validators.js.map +1 -0
  224. package/components/nav-drawer/nav-drawer-item.d.ts +1 -5
  225. package/components/nav-drawer/nav-drawer-item.js +9 -10
  226. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  227. package/components/nav-drawer/nav-drawer.d.ts +4 -3
  228. package/components/nav-drawer/nav-drawer.js +18 -7
  229. package/components/nav-drawer/nav-drawer.js.map +1 -1
  230. package/components/nav-drawer/themes/container.base.css.js +1 -1
  231. package/components/nav-drawer/themes/container.base.css.js.map +1 -1
  232. package/components/nav-drawer/themes/header-item.base.css.js +1 -1
  233. package/components/nav-drawer/themes/header-item.base.css.js.map +1 -1
  234. package/components/nav-drawer/themes/item.base.css.js +1 -1
  235. package/components/nav-drawer/themes/item.base.css.js.map +1 -1
  236. package/components/navbar/themes/navbar.base.css.js +1 -1
  237. package/components/navbar/themes/navbar.base.css.js.map +1 -1
  238. package/components/popover/themes/light/popover.base.css.js +1 -1
  239. package/components/popover/themes/light/popover.base.css.js.map +1 -1
  240. package/components/progress/base.d.ts +2 -1
  241. package/components/progress/base.js.map +1 -1
  242. package/components/progress/themes/circular/circular.progress.base.css.js +1 -1
  243. package/components/progress/themes/circular/circular.progress.base.css.js.map +1 -1
  244. package/components/progress/themes/linear/linear.progress.base.css.js +1 -1
  245. package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
  246. package/components/radio/radio.d.ts +9 -9
  247. package/components/radio/radio.js +17 -31
  248. package/components/radio/radio.js.map +1 -1
  249. package/components/radio/themes/radio.base.css.js +1 -1
  250. package/components/radio/themes/radio.base.css.js.map +1 -1
  251. package/components/radio/validators.d.ts +3 -0
  252. package/components/radio/validators.js +13 -0
  253. package/components/radio/validators.js.map +1 -0
  254. package/components/radio-group/radio-group.base.css.js +1 -1
  255. package/components/radio-group/radio-group.base.css.js.map +1 -1
  256. package/components/radio-group/radio-group.js.map +1 -1
  257. package/components/rating/rating.d.ts +1 -9
  258. package/components/rating/rating.js +6 -16
  259. package/components/rating/rating.js.map +1 -1
  260. package/components/rating/themes/rating-symbol.base.css.js +1 -1
  261. package/components/rating/themes/rating-symbol.base.css.js.map +1 -1
  262. package/components/rating/themes/rating.base.css.js +1 -1
  263. package/components/rating/themes/rating.base.css.js.map +1 -1
  264. package/components/ripple/ripple.material.css.js +1 -1
  265. package/components/ripple/ripple.material.css.js.map +1 -1
  266. package/components/select/select.d.ts +5 -33
  267. package/components/select/select.js +23 -66
  268. package/components/select/select.js.map +1 -1
  269. package/components/select/themes/select.base.css.js +1 -1
  270. package/components/select/themes/select.base.css.js.map +1 -1
  271. package/components/select/validators.d.ts +3 -0
  272. package/components/select/validators.js +5 -0
  273. package/components/select/validators.js.map +1 -0
  274. package/components/slider/range-slider.d.ts +0 -16
  275. package/components/slider/range-slider.js +0 -18
  276. package/components/slider/range-slider.js.map +1 -1
  277. package/components/slider/themes/slider.base.css.js +1 -1
  278. package/components/slider/themes/slider.base.css.js.map +1 -1
  279. package/components/snackbar/snackbar.js +3 -7
  280. package/components/snackbar/snackbar.js.map +1 -1
  281. package/components/snackbar/themes/snackbar.base.css.js +1 -1
  282. package/components/snackbar/themes/snackbar.base.css.js.map +1 -1
  283. package/components/stepper/animations.d.ts +7 -1
  284. package/components/stepper/animations.js +63 -15
  285. package/components/stepper/animations.js.map +1 -1
  286. package/components/stepper/step.d.ts +3 -1
  287. package/components/stepper/step.js +17 -6
  288. package/components/stepper/step.js.map +1 -1
  289. package/components/stepper/themes/step/step.base.css.js +1 -1
  290. package/components/stepper/themes/step/step.base.css.js.map +1 -1
  291. package/components/stepper/themes/stepper/stepper.base.css.js +1 -1
  292. package/components/stepper/themes/stepper/stepper.base.css.js.map +1 -1
  293. package/components/stepper/themes/stepper/stepper.bootstrap.css.js +1 -1
  294. package/components/stepper/themes/stepper/stepper.bootstrap.css.js.map +1 -1
  295. package/components/stepper/themes/stepper/stepper.fluent.css.js +1 -1
  296. package/components/stepper/themes/stepper/stepper.fluent.css.js.map +1 -1
  297. package/components/stepper/themes/stepper/stepper.indigo.css.js +1 -1
  298. package/components/stepper/themes/stepper/stepper.indigo.css.js.map +1 -1
  299. package/components/tabs/tabs.js +2 -3
  300. package/components/tabs/tabs.js.map +1 -1
  301. package/components/tabs/themes/tab.base.css.js +1 -1
  302. package/components/tabs/themes/tab.base.css.js.map +1 -1
  303. package/components/tabs/themes/tabs.base.css.js +1 -1
  304. package/components/tabs/themes/tabs.base.css.js.map +1 -1
  305. package/components/textarea/textarea.d.ts +13 -16
  306. package/components/textarea/textarea.js +10 -12
  307. package/components/textarea/textarea.js.map +1 -1
  308. package/components/textarea/themes/textarea.base.css.js +1 -1
  309. package/components/textarea/themes/textarea.base.css.js.map +1 -1
  310. package/components/textarea/validators.d.ts +3 -0
  311. package/components/textarea/validators.js +7 -0
  312. package/components/textarea/validators.js.map +1 -0
  313. package/components/toast/themes/toast.base.css.js +1 -1
  314. package/components/toast/themes/toast.base.css.js.map +1 -1
  315. package/components/tree/themes/container.base.css.js +1 -1
  316. package/components/tree/themes/container.base.css.js.map +1 -1
  317. package/components/tree/themes/item.base.css.js +1 -1
  318. package/components/tree/themes/item.base.css.js.map +1 -1
  319. package/components/tree/tree-item.d.ts +4 -4
  320. package/components/tree/tree-item.js +11 -23
  321. package/components/tree/tree-item.js.map +1 -1
  322. package/components/tree/tree.d.ts +3 -4
  323. package/components/tree/tree.js +1 -37
  324. package/components/tree/tree.js.map +1 -1
  325. package/components/types.d.ts +3 -0
  326. package/components/types.js +2 -0
  327. package/components/types.js.map +1 -0
  328. package/custom-elements.json +30656 -31315
  329. package/igniteui-webcomponents.css-data.json +5 -928
  330. package/igniteui-webcomponents.html-data.json +4 -2699
  331. package/index.d.ts +5 -4
  332. package/index.js +2 -3
  333. package/index.js.map +1 -1
  334. package/package.json +1 -1
  335. package/theming/config.js +3 -3
  336. package/theming/config.js.map +1 -1
  337. package/theming/theming-controller.d.ts +4 -6
  338. package/theming/theming-controller.js +30 -34
  339. package/theming/theming-controller.js.map +1 -1
  340. package/theming/theming-decorator.d.ts +29 -11
  341. package/theming/theming-decorator.js +21 -7
  342. package/theming/theming-decorator.js.map +1 -1
  343. package/theming/theming-event.js.map +1 -1
  344. package/theming/types.d.ts +5 -0
  345. package/theming/types.js.map +1 -1
  346. package/theming/utils.d.ts +1 -1
  347. package/theming/utils.js +8 -8
  348. package/theming/utils.js.map +1 -1
  349. package/web-types.json +12 -7621
  350. package/components/calendar/common/calendar-base.d.ts +0 -40
  351. package/components/calendar/common/calendar-base.js +0 -118
  352. package/components/calendar/common/calendar-base.js.map +0 -1
  353. package/components/calendar/common/calendar.model.d.ts +0 -128
  354. package/components/calendar/common/calendar.model.js +0 -246
  355. package/components/calendar/common/calendar.model.js.map +0 -1
  356. package/components/calendar/common/utils.d.ts +0 -12
  357. package/components/calendar/common/utils.js +0 -54
  358. package/components/calendar/common/utils.js.map +0 -1
  359. package/components/common/decorators/alternateName.d.ts +0 -7
  360. package/components/common/decorators/alternateName.js +0 -4
  361. package/components/common/decorators/alternateName.js.map +0 -1
  362. package/components/common/decorators/blazorSuppress.d.ts +0 -5
  363. package/components/common/decorators/blazorSuppress.js +0 -4
  364. package/components/common/decorators/blazorSuppress.js.map +0 -1
  365. package/components/common/decorators/blazorTwoWayBind.d.ts +0 -7
  366. package/components/common/decorators/blazorTwoWayBind.js +0 -4
  367. package/components/common/decorators/blazorTwoWayBind.js.map +0 -1
  368. package/components/common/mixins/sizable.d.ts +0 -13
  369. package/components/common/mixins/sizable.js +0 -27
  370. package/components/common/mixins/sizable.js.map +0 -1
  371. package/components/form/form.d.ts +0 -48
  372. package/components/form/form.js +0 -158
  373. package/components/form/form.js.map +0 -1
@@ -1,15 +1,13 @@
1
- import { themeSymbol } from '../../theming/theming-decorator.js';
2
1
  import { IgcBaseComboBoxLikeComponent } from '../common/mixins/combo-box.js';
3
2
  import type { AbstractConstructor } from '../common/mixins/constructor.js';
4
- import { type Validator } from '../common/validators.js';
5
3
  import IgcInputComponent from '../input/input.js';
6
4
  import { type IgcPlacement } from '../popover/popover.js';
7
5
  import IgcSelectGroupComponent from './select-group.js';
8
6
  import IgcSelectItemComponent from './select-item.js';
9
7
  export interface IgcSelectEventMap {
10
8
  igcChange: CustomEvent<IgcSelectItemComponent>;
11
- igcBlur: CustomEvent<void>;
12
- igcFocus: CustomEvent<void>;
9
+ focus: FocusEvent;
10
+ blur: FocusEvent;
13
11
  igcOpening: CustomEvent<void>;
14
12
  igcOpened: CustomEvent<void>;
15
13
  igcClosing: CustomEvent<void>;
@@ -30,8 +28,6 @@ declare const IgcSelectComponent_base: import("../common/mixins/constructor.js")
30
28
  * @slot toggle-icon - Renders content inside the suffix container.
31
29
  * @slot toggle-icon-expanded - Renders content for the toggle icon when the component is in open state.
32
30
  *
33
- * @fires igcFocus - Emitted when the select gains focus.
34
- * @fires igcBlur - Emitted when the select loses focus.
35
31
  * @fires igcChange - Emitted when the control's checked state changes.
36
32
  * @fires igcOpening - Emitted just before the list of options is opened.
37
33
  * @fires igcOpened - Emitted after the list of options is opened.
@@ -50,17 +46,14 @@ export default class IgcSelectComponent extends IgcSelectComponent_base {
50
46
  static readonly tagName = "igc-select";
51
47
  static styles: import("lit").CSSResult[];
52
48
  static register(): void;
53
- private readonly [themeSymbol];
54
49
  private _value;
55
50
  private _searchTerm;
56
51
  private _lastKeyTime;
57
- private _rootClickController;
58
52
  private _rootScrollController;
59
- private get isMaterialTheme();
60
53
  private get _activeItems();
61
54
  protected _selectedItem: IgcSelectItemComponent | null;
62
55
  protected _activeItem: IgcSelectItemComponent;
63
- protected validators: Validator<this>[];
56
+ protected get __validators(): import("../common/validators.js").Validator<IgcSelectComponent>[];
64
57
  protected input: IgcInputComponent;
65
58
  protected helperText: Array<HTMLElement>;
66
59
  protected inputSuffix: Array<HTMLElement>;
@@ -106,31 +99,11 @@ export default class IgcSelectComponent extends IgcSelectComponent_base {
106
99
  * @attr
107
100
  */
108
101
  placement: IgcPlacement;
109
- /**
110
- * @deprecated since version 4.3.0
111
- * @hidden @internal @private
112
- */
113
- positionStrategy: 'absolute' | 'fixed';
114
102
  /**
115
103
  * Determines the behavior of the component during scrolling of the parent container.
116
104
  * @attr scroll-strategy
117
105
  */
118
106
  scrollStrategy: 'scroll' | 'block' | 'close';
119
- /**
120
- * Whether the dropdown's width should be the same as the target's one.
121
- * @deprecated since version 4.3.0
122
- * @hidden @internal @private
123
- * @attr same-width
124
- */
125
- sameWidth: boolean;
126
- /**
127
- * Whether the component should be flipped to the opposite side of the target once it's about to overflow the visible area.
128
- * When true, once enough space is detected on its preferred side, it will flip back.
129
- * @deprecated since version 4.3.0
130
- * @hidden @internal @private
131
- * @attr
132
- */
133
- flip: boolean;
134
107
  /** Returns the items of the igc-select component. */
135
108
  get items(): IgcSelectItemComponent[];
136
109
  /** Returns the groups of the igc-select component. */
@@ -140,6 +113,7 @@ export default class IgcSelectComponent extends IgcSelectComponent_base {
140
113
  protected scrollStrategyChanged(): void;
141
114
  protected openChange(): void;
142
115
  constructor();
116
+ protected createRenderRoot(): HTMLElement | DocumentFragment;
143
117
  protected firstUpdated(): Promise<void>;
144
118
  private handleFocusIn;
145
119
  private handleFocusOut;
@@ -157,8 +131,7 @@ export default class IgcSelectComponent extends IgcSelectComponent_base {
157
131
  private onTabKey;
158
132
  protected onHomeKey(): void;
159
133
  protected onEndKey(): void;
160
- /** Monitor input slot changes and request update */
161
- protected inputSlotChanged(): void;
134
+ protected handleClosing(): void;
162
135
  private activateItem;
163
136
  private setSelectedItem;
164
137
  private _selectItem;
@@ -167,7 +140,6 @@ export default class IgcSelectComponent extends IgcSelectComponent_base {
167
140
  private clearSelectedItem;
168
141
  private focusItemOnOpen;
169
142
  protected getItem(value: string): IgcSelectItemComponent | undefined;
170
- private _stopPropagation;
171
143
  /** Sets focus on the component. */
172
144
  focus(options?: FocusOptions): void;
173
145
  /** Removes focus from the component. */
@@ -8,20 +8,16 @@ var IgcSelectComponent_1;
8
8
  import { html } from 'lit';
9
9
  import { property, query, queryAssignedElements, state, } from 'lit/decorators.js';
10
10
  import { ifDefined } from 'lit/directives/if-defined.js';
11
- import { themeSymbol, themes } from '../../theming/theming-decorator.js';
11
+ import { themes } from '../../theming/theming-decorator.js';
12
12
  import { addKeybindings, altKey, arrowDown, arrowLeft, arrowRight, arrowUp, endKey, enterKey, escapeKey, homeKey, spaceBar, tabKey, } from '../common/controllers/key-bindings.js';
13
- import { addRootClickHandler } from '../common/controllers/root-click.js';
14
13
  import { addRootScrollHandler } from '../common/controllers/root-scroll.js';
15
- import { alternateName } from '../common/decorators/alternateName.js';
16
14
  import { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';
17
- import { blazorSuppress } from '../common/decorators/blazorSuppress.js';
18
15
  import { watch } from '../common/decorators/watch.js';
19
16
  import { registerComponent } from '../common/definitions/register.js';
20
17
  import { IgcBaseComboBoxLikeComponent, getActiveItems, getItems, getNextActiveItem, getPreviousActiveItem, setInitialSelectionState, } from '../common/mixins/combo-box.js';
21
18
  import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
22
19
  import { FormAssociatedRequiredMixin } from '../common/mixins/form-associated-required.js';
23
20
  import { findElementFromEventPath, partNameMap } from '../common/util.js';
24
- import { requiredValidator } from '../common/validators.js';
25
21
  import IgcIconComponent from '../icon/icon.js';
26
22
  import IgcInputComponent from '../input/input.js';
27
23
  import IgcPopoverComponent from '../popover/popover.js';
@@ -31,16 +27,17 @@ import IgcSelectItemComponent from './select-item.js';
31
27
  import { styles } from './themes/select.base.css.js';
32
28
  import { styles as shared } from './themes/shared/select.common.css.js';
33
29
  import { all } from './themes/themes.js';
30
+ import { selectValidators } from './validators.js';
34
31
  let IgcSelectComponent = IgcSelectComponent_1 = class IgcSelectComponent extends FormAssociatedRequiredMixin(EventEmitterMixin(IgcBaseComboBoxLikeComponent)) {
35
32
  static register() {
36
33
  registerComponent(IgcSelectComponent_1, IgcIconComponent, IgcInputComponent, IgcPopoverComponent, IgcSelectGroupComponent, IgcSelectHeaderComponent, IgcSelectItemComponent);
37
34
  }
38
- get isMaterialTheme() {
39
- return this[themeSymbol] === 'material';
40
- }
41
35
  get _activeItems() {
42
36
  return Array.from(getActiveItems(this, IgcSelectItemComponent.tagName));
43
37
  }
38
+ get __validators() {
39
+ return selectValidators;
40
+ }
44
41
  get hasExpandedIcon() {
45
42
  return this._expandedIconSlot.length > 0;
46
43
  }
@@ -81,21 +78,15 @@ let IgcSelectComponent = IgcSelectComponent_1 = class IgcSelectComponent extends
81
78
  super();
82
79
  this._searchTerm = '';
83
80
  this._lastKeyTime = 0;
84
- this._rootClickController = addRootClickHandler(this, {
85
- hideCallback: () => this._hide(true),
86
- });
87
81
  this._rootScrollController = addRootScrollHandler(this, {
88
- hideCallback: () => this._hide(true),
82
+ hideCallback: this.handleClosing,
89
83
  });
90
84
  this._selectedItem = null;
91
- this.validators = [requiredValidator];
92
85
  this.outlined = false;
93
86
  this.distance = 0;
94
87
  this.placement = 'bottom-start';
95
- this.positionStrategy = 'fixed';
96
88
  this.scrollStrategy = 'scroll';
97
- this.sameWidth = true;
98
- this.flip = true;
89
+ this._rootClickController.update({ hideCallback: this.handleClosing });
99
90
  addKeybindings(this, {
100
91
  skip: () => this.disabled,
101
92
  bindingDefaults: { preventDefault: true, triggers: ['keydownRepeat'] },
@@ -116,6 +107,11 @@ let IgcSelectComponent = IgcSelectComponent_1 = class IgcSelectComponent extends
116
107
  this.addEventListener('focusin', this.handleFocusIn);
117
108
  this.addEventListener('focusout', this.handleFocusOut);
118
109
  }
110
+ createRenderRoot() {
111
+ const root = super.createRenderRoot();
112
+ root.addEventListener('slotchange', () => this.requestUpdate());
113
+ return root;
114
+ }
119
115
  async firstUpdated() {
120
116
  await this.updateComplete;
121
117
  const selected = setInitialSelectionState(this.items);
@@ -136,14 +132,12 @@ let IgcSelectComponent = IgcSelectComponent_1 = class IgcSelectComponent extends
136
132
  if (this.contains(relatedTarget) || this.open) {
137
133
  return;
138
134
  }
139
- this.emitEvent('igcFocus');
140
135
  }
141
136
  handleFocusOut({ relatedTarget }) {
142
137
  if (this.contains(relatedTarget)) {
143
138
  return;
144
139
  }
145
140
  this.checkValidity();
146
- this.emitEvent('igcBlur');
147
141
  }
148
142
  handleClick(event) {
149
143
  const item = findElementFromEventPath(IgcSelectItemComponent.tagName, event);
@@ -224,8 +218,8 @@ let IgcSelectComponent = IgcSelectComponent_1 = class IgcSelectComponent extends
224
218
  const item = this._activeItems.at(-1);
225
219
  this.open ? this._navigateToActiveItem(item) : this._selectItem(item);
226
220
  }
227
- inputSlotChanged() {
228
- this.requestUpdate();
221
+ handleClosing() {
222
+ this._hide(true);
229
223
  }
230
224
  activateItem(item) {
231
225
  if (this._activeItem) {
@@ -293,9 +287,6 @@ let IgcSelectComponent = IgcSelectComponent_1 = class IgcSelectComponent extends
293
287
  getItem(value) {
294
288
  return this.items.find((item) => item.value === value);
295
289
  }
296
- _stopPropagation(e) {
297
- e.stopPropagation();
298
- }
299
290
  focus(options) {
300
291
  this.input.focus(options);
301
292
  }
@@ -329,41 +320,27 @@ let IgcSelectComponent = IgcSelectComponent_1 = class IgcSelectComponent extends
329
320
  const suffixName = this.hasSuffixes ? 'suffix' : '';
330
321
  return html `
331
322
  <span slot=${prefixName}>
332
- <slot name="prefix" @slotchange=${this.inputSlotChanged}></slot>
323
+ <slot name="prefix"></slot>
333
324
  </span>
334
325
 
335
326
  <span slot=${suffixName}>
336
- <slot name="suffix" @slotchange=${this.inputSlotChanged}></slot>
327
+ <slot name="suffix"></slot>
337
328
  </span>
338
329
  `;
339
330
  }
340
331
  renderToggleIcon() {
341
332
  const parts = partNameMap({ 'toggle-icon': true, filled: this.value });
342
333
  const iconHidden = this.open && this.hasExpandedIcon;
343
- const iconExpandedHidden = !this.hasExpandedIcon || !this.open;
344
- const openIcon = this.isMaterialTheme
345
- ? 'keyboard_arrow_up'
346
- : 'arrow_drop_up';
347
- const closeIcon = this.isMaterialTheme
348
- ? 'keyboard_arrow_down'
349
- : 'arrow_drop_down';
334
+ const iconExpandedHidden = !(this.hasExpandedIcon && this.open);
350
335
  return html `
351
336
  <span slot="suffix" part=${parts} aria-hidden="true">
352
- <slot
353
- name="toggle-icon"
354
- ?hidden=${iconHidden}
355
- @slotchange=${this.inputSlotChanged}
356
- >
337
+ <slot name="toggle-icon" ?hidden=${iconHidden}>
357
338
  <igc-icon
358
- name=${this.open ? openIcon : closeIcon}
359
- collection="internal"
339
+ name=${this.open ? 'input_collapse' : 'input_expand'}
340
+ collection="default"
360
341
  ></igc-icon>
361
342
  </slot>
362
- <slot
363
- name="toggle-icon-expanded"
364
- ?hidden=${iconExpandedHidden}
365
- @slotchange=${this.inputSlotChanged}
366
- ></slot>
343
+ <slot name="toggle-icon-expanded" ?hidden=${iconExpandedHidden}></slot>
367
344
  </span>
368
345
  `;
369
346
  }
@@ -375,7 +352,7 @@ let IgcSelectComponent = IgcSelectComponent_1 = class IgcSelectComponent extends
375
352
  slot="anchor"
376
353
  ?hidden=${!this.hasHelperText}
377
354
  >
378
- <slot name="helper-text" @slotchange=${this.inputSlotChanged}></slot>
355
+ <slot name="helper-text"></slot>
379
356
  </div>
380
357
  `;
381
358
  }
@@ -400,8 +377,6 @@ let IgcSelectComponent = IgcSelectComponent_1 = class IgcSelectComponent extends
400
377
  .invalid=${this.invalid}
401
378
  .outlined=${this.outlined}
402
379
  @click=${this.handleAnchorClick}
403
- @igcFocus=${this._stopPropagation}
404
- @igcBlur=${this._stopPropagation}
405
380
  >
406
381
  ${this.renderInputSlots()} ${this.renderToggleIcon()}
407
382
  </igc-input>
@@ -483,32 +458,14 @@ __decorate([
483
458
  __decorate([
484
459
  property({ attribute: 'scroll-strategy' })
485
460
  ], IgcSelectComponent.prototype, "scrollStrategy", void 0);
486
- __decorate([
487
- property({ type: Boolean, attribute: 'same-width' })
488
- ], IgcSelectComponent.prototype, "sameWidth", void 0);
489
- __decorate([
490
- property({ type: Boolean })
491
- ], IgcSelectComponent.prototype, "flip", void 0);
492
461
  __decorate([
493
462
  watch('scrollStrategy', { waitUntilFirstUpdate: true })
494
463
  ], IgcSelectComponent.prototype, "scrollStrategyChanged", null);
495
464
  __decorate([
496
465
  watch('open', { waitUntilFirstUpdate: true })
497
466
  ], IgcSelectComponent.prototype, "openChange", null);
498
- __decorate([
499
- alternateName('focusComponent')
500
- ], IgcSelectComponent.prototype, "focus", null);
501
- __decorate([
502
- alternateName('blurComponent')
503
- ], IgcSelectComponent.prototype, "blur", null);
504
- __decorate([
505
- blazorSuppress()
506
- ], IgcSelectComponent.prototype, "navigateTo", null);
507
- __decorate([
508
- blazorSuppress()
509
- ], IgcSelectComponent.prototype, "select", null);
510
467
  IgcSelectComponent = IgcSelectComponent_1 = __decorate([
511
- themes(all, true),
468
+ themes(all),
512
469
  blazorAdditionalDependencies('IgcIconComponent, IgcInputComponent, IgcSelectGroupComponent, IgcSelectHeaderComponent, IgcSelectItemComponent')
513
470
  ], IgcSelectComponent);
514
471
  export default IgcSelectComponent;
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/components/select/select.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit';\nimport {\n property,\n query,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport { themeSymbol, themes } from '../../theming/theming-decorator.js';\nimport type { Theme } from '../../theming/types.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 '../common/controllers/key-bindings.js';\nimport { addRootClickHandler } from '../common/controllers/root-click.js';\nimport { addRootScrollHandler } from '../common/controllers/root-scroll.js';\nimport { alternateName } from '../common/decorators/alternateName.js';\nimport { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';\nimport { blazorSuppress } from '../common/decorators/blazorSuppress.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport {\n IgcBaseComboBoxLikeComponent,\n getActiveItems,\n getItems,\n getNextActiveItem,\n getPreviousActiveItem,\n setInitialSelectionState,\n} from '../common/mixins/combo-box.js';\nimport type { AbstractConstructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { FormAssociatedRequiredMixin } from '../common/mixins/form-associated-required.js';\nimport { findElementFromEventPath, partNameMap } from '../common/util.js';\nimport { type Validator, requiredValidator } from '../common/validators.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport IgcInputComponent from '../input/input.js';\nimport IgcPopoverComponent, { type IgcPlacement } from '../popover/popover.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';\n\nexport interface IgcSelectEventMap {\n igcChange: CustomEvent<IgcSelectItemComponent>;\n igcBlur: CustomEvent<void>;\n igcFocus: CustomEvent<void>;\n igcOpening: CustomEvent<void>;\n igcOpened: CustomEvent<void>;\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\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 *\n * @fires igcFocus - Emitted when the select gains focus.\n * @fires igcBlur - Emitted when the select loses focus.\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 igc-select.\n * @csspart input - The encapsulated igc-input of the igc-select.\n * @csspart label - The encapsulated text label of the igc-select.\n * @csspart prefix - The prefix wrapper of the input of the igc-select.\n * @csspart suffix - The suffix wrapper of the input of the igc-select.\n * @csspart toggle-icon - The toggle icon wrapper of the igc-select.\n * @csspart helper-text - The helper text wrapper of the igc-select.\n */\n@themes(all, true)\n@blazorAdditionalDependencies(\n 'IgcIconComponent, IgcInputComponent, IgcSelectGroupComponent, IgcSelectHeaderComponent, IgcSelectItemComponent'\n)\nexport default class IgcSelectComponent extends FormAssociatedRequiredMixin(\n EventEmitterMixin<\n IgcSelectEventMap,\n AbstractConstructor<IgcBaseComboBoxLikeComponent>\n >(IgcBaseComboBoxLikeComponent)\n) {\n public static readonly tagName = 'igc-select';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(\n IgcSelectComponent,\n IgcIconComponent,\n IgcInputComponent,\n IgcPopoverComponent,\n IgcSelectGroupComponent,\n IgcSelectHeaderComponent,\n IgcSelectItemComponent\n );\n }\n\n private declare readonly [themeSymbol]: Theme;\n private _value!: string;\n private _searchTerm = '';\n private _lastKeyTime = 0;\n\n private _rootClickController = addRootClickHandler(this, {\n hideCallback: () => this._hide(true),\n });\n\n private _rootScrollController = addRootScrollHandler(this, {\n hideCallback: () => this._hide(true),\n });\n\n private get isMaterialTheme() {\n return this[themeSymbol] === 'material';\n }\n\n private get _activeItems() {\n return Array.from(\n getActiveItems<IgcSelectItemComponent>(\n this,\n IgcSelectItemComponent.tagName\n )\n );\n }\n\n @state()\n protected _selectedItem: IgcSelectItemComponent | null = null;\n\n @state()\n protected _activeItem!: IgcSelectItemComponent;\n\n protected override validators: Validator<this>[] = [requiredValidator];\n\n @query(IgcInputComponent.tagName, true)\n protected input!: IgcInputComponent;\n\n @queryAssignedElements({ slot: 'helper-text' })\n protected helperText!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'suffix' })\n protected inputSuffix!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'prefix' })\n protected inputPrefix!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'toggle-icon-expanded' })\n protected _expandedIconSlot!: Array<HTMLElement>;\n\n protected get hasExpandedIcon() {\n return this._expandedIconSlot.length > 0;\n }\n\n protected get hasPrefixes() {\n return this.inputPrefix.length > 0;\n }\n\n protected get hasSuffixes() {\n return this.inputSuffix.length > 0;\n }\n\n protected get hasHelperText() {\n return this.helperText.length > 0;\n }\n\n /**\n * The value attribute of the control.\n * @attr\n */\n @property()\n public get value(): string {\n return this._value;\n }\n\n /* @tsTwoWayProperty(true, \"igcChange\", \"detail.value\", false) */\n public set value(value: string) {\n this._updateValue(value);\n const item = this.getItem(this._value);\n item ? this.setSelectedItem(item) : this.clearSelectedItem();\n }\n\n /**\n * The outlined attribute of the control.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public outlined = false;\n\n /**\n * The autofocus attribute of the control.\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 attribute of the control.\n * @attr\n */\n @property()\n public label!: string;\n\n /**\n * The placeholder attribute 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 * @type {'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'right' | 'right-start' | 'right-end' | 'left' | 'left-start' | 'left-end'}\n * @attr\n */\n @property()\n public placement: IgcPlacement = 'bottom-start';\n\n /**\n * @deprecated since version 4.3.0\n * @hidden @internal @private\n */\n public positionStrategy: 'absolute' | 'fixed' = 'fixed';\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: 'scroll' | 'block' | 'close' = 'scroll';\n\n /**\n * Whether the dropdown's width should be the same as the target's one.\n * @deprecated since version 4.3.0\n * @hidden @internal @private\n * @attr same-width\n */\n @property({ type: Boolean, attribute: 'same-width' })\n public sameWidth = true;\n\n /**\n * Whether the component should be flipped to the opposite side of the target once it's about to overflow the visible area.\n * When true, once enough space is detected on its preferred side, it will flip back.\n * @deprecated since version 4.3.0\n * @hidden @internal @private\n * @attr\n */\n @property({ type: Boolean })\n public flip = true;\n\n /** Returns the items of the igc-select component. */\n public get items() {\n return Array.from(\n getItems<IgcSelectItemComponent>(this, IgcSelectItemComponent.tagName)\n );\n }\n\n /** Returns the groups of the igc-select component. */\n public get groups() {\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() {\n return this._selectedItem;\n }\n\n @watch('scrollStrategy', { waitUntilFirstUpdate: true })\n protected scrollStrategyChanged() {\n this._rootScrollController.update({ resetListeners: true });\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n protected openChange() {\n this._rootClickController.update();\n this._rootScrollController.update();\n }\n\n constructor() {\n super();\n\n addKeybindings(this, {\n skip: () => this.disabled,\n bindingDefaults: { preventDefault: true, triggers: ['keydownRepeat'] },\n })\n .set([altKey, arrowDown], this.altArrowDown)\n .set([altKey, arrowUp], this.altArrowUp)\n .set(arrowDown, this.onArrowDown)\n .set(arrowUp, this.onArrowUp)\n .set(arrowLeft, this.onArrowUp)\n .set(arrowRight, this.onArrowDown)\n .set(tabKey, this.onTabKey, { preventDefault: false })\n .set(escapeKey, this.onEscapeKey)\n .set(homeKey, this.onHomeKey)\n .set(endKey, this.onEndKey)\n .set(spaceBar, this.onSpaceBarKey)\n .set(enterKey, this.onEnterKey);\n\n this.addEventListener('keydown', this.handleSearch);\n this.addEventListener('focusin', this.handleFocusIn);\n this.addEventListener('focusout', this.handleFocusOut);\n }\n\n protected override async firstUpdated() {\n await this.updateComplete;\n const selected = setInitialSelectionState(this.items);\n\n if (this.value && !selected) {\n this._selectItem(this.getItem(this.value), false);\n }\n\n if (selected && selected.value !== this.value) {\n this._defaultValue = selected.value;\n this._selectItem(selected, false);\n }\n\n if (this.autofocus) {\n this.focus();\n }\n\n this.updateValidity();\n }\n\n private handleFocusIn({ relatedTarget }: FocusEvent) {\n this._dirty = true;\n\n if (this.contains(relatedTarget as Node) || this.open) {\n return;\n }\n\n this.emitEvent('igcFocus');\n }\n\n private handleFocusOut({ relatedTarget }: FocusEvent) {\n if (this.contains(relatedTarget as Node)) {\n return;\n }\n\n this.checkValidity();\n this.emitEvent('igcBlur');\n }\n\n private handleClick(event: MouseEvent) {\n const item = findElementFromEventPath<IgcSelectItemComponent>(\n IgcSelectItemComponent.tagName,\n event\n );\n if (item && this._activeItems.includes(item)) {\n this._selectItem(item);\n }\n }\n\n private handleChange(item: IgcSelectItemComponent) {\n return this.emitEvent('igcChange', { detail: item });\n }\n\n private handleSearch(event: KeyboardEvent) {\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 if (item) {\n this.open ? this.activateItem(item) : this._selectItem(item);\n this._activeItem.focus();\n }\n }\n\n protected override handleAnchorClick(): void {\n super.handleAnchorClick();\n this.focusItemOnOpen();\n }\n\n private onEnterKey() {\n this.open && this._activeItem\n ? this._selectItem(this._activeItem)\n : this.handleAnchorClick();\n }\n\n private onSpaceBarKey() {\n if (!this.open) {\n this.handleAnchorClick();\n }\n }\n\n private onArrowDown() {\n const item = getNextActiveItem(this.items, this._activeItem);\n this.open ? this._navigateToActiveItem(item) : this._selectItem(item);\n }\n\n private onArrowUp() {\n const item = getPreviousActiveItem(this.items, this._activeItem);\n this.open ? this._navigateToActiveItem(item) : this._selectItem(item);\n }\n\n private altArrowDown() {\n if (!this.open) {\n this._show(true);\n this.focusItemOnOpen();\n }\n }\n\n private async altArrowUp() {\n if (this.open && (await this._hide(true))) {\n this.input.focus();\n }\n }\n\n protected async onEscapeKey() {\n if (await this._hide(true)) {\n this.input.focus();\n }\n }\n\n private onTabKey(event: KeyboardEvent) {\n if (this.open) {\n event.preventDefault();\n this._selectItem(this._activeItem);\n this._hide(true);\n }\n }\n\n protected onHomeKey() {\n const item = this._activeItems.at(0);\n this.open ? this._navigateToActiveItem(item) : this._selectItem(item);\n }\n\n protected onEndKey() {\n const item = this._activeItems.at(-1);\n this.open ? this._navigateToActiveItem(item) : this._selectItem(item);\n }\n\n /** Monitor input slot changes and request update */\n protected inputSlotChanged() {\n this.requestUpdate();\n }\n\n private activateItem(item: IgcSelectItemComponent) {\n if (this._activeItem) {\n this._activeItem.active = false;\n }\n\n this._activeItem = item;\n this._activeItem.active = true;\n }\n\n private setSelectedItem(item: IgcSelectItemComponent) {\n if (this._selectedItem) {\n this._selectedItem.selected = false;\n }\n\n this._selectedItem = item;\n this._selectedItem.selected = true;\n\n return this._selectedItem;\n }\n\n private _selectItem(item?: IgcSelectItemComponent, emit = true) {\n if (!item) {\n this.clearSelectedItem();\n this._updateValue();\n return null;\n }\n\n const items = this.items;\n const [previous, current] = [\n items.indexOf(this._selectedItem!),\n items.indexOf(item),\n ];\n\n if (previous === current) {\n return this._selectedItem;\n }\n\n const newItem = this.setSelectedItem(item);\n this.activateItem(newItem);\n this._updateValue(newItem.value);\n\n if (emit) this.handleChange(newItem);\n if (emit && this.open) this.input.focus();\n if (emit && !this.keepOpenOnSelect) this._hide(true);\n\n return this._selectedItem;\n }\n\n private _navigateToActiveItem(item?: IgcSelectItemComponent) {\n if (item) {\n this.activateItem(item);\n this._activeItem.focus({ preventScroll: true });\n item.scrollIntoView({ behavior: 'auto', block: 'nearest' });\n }\n }\n\n private _updateValue(value?: string) {\n this._value = value as string;\n this.setFormValue(this._value ? this._value : null);\n this.updateValidity();\n this.setInvalidState();\n }\n\n private clearSelectedItem() {\n if (this._selectedItem) {\n this._selectedItem.selected = false;\n }\n this._selectedItem = null;\n }\n\n private async focusItemOnOpen() {\n await this.updateComplete;\n (this._selectedItem || this._activeItem)?.focus();\n }\n\n protected getItem(value: string) {\n return this.items.find((item) => item.value === value);\n }\n\n private _stopPropagation(e: Event) {\n e.stopPropagation();\n }\n\n /** Sets focus on the component. */\n @alternateName('focusComponent')\n public override focus(options?: FocusOptions) {\n this.input.focus(options);\n }\n\n /** Removes focus from the component. */\n @alternateName('blurComponent')\n public override blur() {\n this.input.blur();\n super.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() {\n const valid = super.reportValidity();\n if (!valid) this.input.focus();\n return valid;\n }\n\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 /** 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 /** Navigates to the specified item. If it exists, returns the found item, otherwise - null. */\n @blazorSuppress()\n public navigateTo(value: string | number): IgcSelectItemComponent | null {\n const item =\n typeof value === 'string' ? this.getItem(value) : this.items[value];\n\n if (item) {\n this._navigateToActiveItem(item);\n }\n\n return item ?? null;\n }\n\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 /** Selects the item at the specified index. If it exists, returns the found item, otherwise - null. */\n public select(index: number): IgcSelectItemComponent | null;\n /** Selects the specified item. If it exists, returns the found item, otherwise - null. */\n @blazorSuppress()\n public select(value: string | number): IgcSelectItemComponent | null {\n const item =\n typeof value === 'string' ? 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() {\n this._updateValue();\n this.clearSelectedItem();\n }\n\n protected renderInputSlots() {\n const prefixName = this.hasPrefixes ? 'prefix' : '';\n const suffixName = this.hasSuffixes ? 'suffix' : '';\n\n return html`\n <span slot=${prefixName}>\n <slot name=\"prefix\" @slotchange=${this.inputSlotChanged}></slot>\n </span>\n\n <span slot=${suffixName}>\n <slot name=\"suffix\" @slotchange=${this.inputSlotChanged}></slot>\n </span>\n `;\n }\n\n protected renderToggleIcon() {\n const parts = partNameMap({ 'toggle-icon': true, filled: this.value! });\n const iconHidden = this.open && this.hasExpandedIcon;\n const iconExpandedHidden = !this.hasExpandedIcon || !this.open;\n\n const openIcon = this.isMaterialTheme\n ? 'keyboard_arrow_up'\n : 'arrow_drop_up';\n const closeIcon = this.isMaterialTheme\n ? 'keyboard_arrow_down'\n : 'arrow_drop_down';\n\n return html`\n <span slot=\"suffix\" part=${parts} aria-hidden=\"true\">\n <slot\n name=\"toggle-icon\"\n ?hidden=${iconHidden}\n @slotchange=${this.inputSlotChanged}\n >\n <igc-icon\n name=${this.open ? openIcon : closeIcon}\n collection=\"internal\"\n ></igc-icon>\n </slot>\n <slot\n name=\"toggle-icon-expanded\"\n ?hidden=${iconExpandedHidden}\n @slotchange=${this.inputSlotChanged}\n ></slot>\n </span>\n `;\n }\n\n protected renderHelperText() {\n return html`\n <div\n id=\"helper-text\"\n part=\"helper-text\"\n slot=\"anchor\"\n ?hidden=${!this.hasHelperText}\n >\n <slot name=\"helper-text\" @slotchange=${this.inputSlotChanged}></slot>\n </div>\n `;\n }\n\n protected renderInputAnchor() {\n const value = this.selectedItem?.textContent?.trim();\n\n return html`\n <igc-input\n id=\"input\"\n slot=\"anchor\"\n role=\"combobox\"\n readonly\n aria-controls=\"dropdown\"\n aria-describedby=\"helper-text\"\n aria-expanded=${this.open ? 'true' : 'false'}\n exportparts=\"container: input, input: native-input, label, prefix, suffix\"\n tabIndex=${this.disabled ? -1 : 0}\n value=${ifDefined(value)}\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 @igcFocus=${this._stopPropagation}\n @igcBlur=${this._stopPropagation}\n >\n ${this.renderInputSlots()} ${this.renderToggleIcon()}\n </igc-input>\n\n ${this.renderHelperText()}\n `;\n }\n\n protected renderDropdown() {\n return html`<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 protected override render() {\n return html`<igc-popover\n ?open=${this.open}\n flip\n shift\n same-width\n .offset=${this.distance}\n .placement=${this.placement}\n >${this.renderInputAnchor()} ${this.renderDropdown()}\n </igc-popover>`;\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 } from 'lit';\nimport {\n property,\n query,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport { themes } from '../../theming/theming-decorator.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 '../common/controllers/key-bindings.js';\nimport { addRootScrollHandler } from '../common/controllers/root-scroll.js';\nimport { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport {\n IgcBaseComboBoxLikeComponent,\n getActiveItems,\n getItems,\n getNextActiveItem,\n getPreviousActiveItem,\n setInitialSelectionState,\n} from '../common/mixins/combo-box.js';\nimport type { AbstractConstructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { FormAssociatedRequiredMixin } from '../common/mixins/form-associated-required.js';\nimport { findElementFromEventPath, partNameMap } from '../common/util.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport IgcInputComponent from '../input/input.js';\nimport IgcPopoverComponent, { type IgcPlacement } from '../popover/popover.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 IgcSelectEventMap {\n igcChange: CustomEvent<IgcSelectItemComponent>;\n // For analyzer meta only:\n focus: FocusEvent;\n blur: FocusEvent;\n igcOpening: CustomEvent<void>;\n igcOpened: CustomEvent<void>;\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\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 *\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 igc-select.\n * @csspart input - The encapsulated igc-input of the igc-select.\n * @csspart label - The encapsulated text label of the igc-select.\n * @csspart prefix - The prefix wrapper of the input of the igc-select.\n * @csspart suffix - The suffix wrapper of the input of the igc-select.\n * @csspart toggle-icon - The toggle icon wrapper of the igc-select.\n * @csspart helper-text - The helper text wrapper of the igc-select.\n */\n@themes(all)\n@blazorAdditionalDependencies(\n 'IgcIconComponent, IgcInputComponent, IgcSelectGroupComponent, IgcSelectHeaderComponent, IgcSelectItemComponent'\n)\nexport default class IgcSelectComponent extends FormAssociatedRequiredMixin(\n EventEmitterMixin<\n IgcSelectEventMap,\n AbstractConstructor<IgcBaseComboBoxLikeComponent>\n >(IgcBaseComboBoxLikeComponent)\n) {\n public static readonly tagName = 'igc-select';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(\n IgcSelectComponent,\n IgcIconComponent,\n IgcInputComponent,\n IgcPopoverComponent,\n IgcSelectGroupComponent,\n IgcSelectHeaderComponent,\n IgcSelectItemComponent\n );\n }\n\n private _value!: string;\n private _searchTerm = '';\n private _lastKeyTime = 0;\n\n private _rootScrollController = addRootScrollHandler(this, {\n hideCallback: this.handleClosing,\n });\n\n private get _activeItems() {\n return Array.from(\n getActiveItems<IgcSelectItemComponent>(\n this,\n IgcSelectItemComponent.tagName\n )\n );\n }\n\n @state()\n protected _selectedItem: IgcSelectItemComponent | null = null;\n\n @state()\n protected _activeItem!: IgcSelectItemComponent;\n\n protected override get __validators() {\n return selectValidators;\n }\n\n @query(IgcInputComponent.tagName, true)\n protected input!: IgcInputComponent;\n\n @queryAssignedElements({ slot: 'helper-text' })\n protected helperText!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'suffix' })\n protected inputSuffix!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'prefix' })\n protected inputPrefix!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'toggle-icon-expanded' })\n protected _expandedIconSlot!: Array<HTMLElement>;\n\n protected get hasExpandedIcon() {\n return this._expandedIconSlot.length > 0;\n }\n\n protected get hasPrefixes() {\n return this.inputPrefix.length > 0;\n }\n\n protected get hasSuffixes() {\n return this.inputSuffix.length > 0;\n }\n\n protected get hasHelperText() {\n return this.helperText.length > 0;\n }\n\n /**\n * The value attribute of the control.\n * @attr\n */\n @property()\n public get value(): string {\n return this._value;\n }\n\n /* @tsTwoWayProperty(true, \"igcChange\", \"detail.value\", false) */\n public set value(value: string) {\n this._updateValue(value);\n const item = this.getItem(this._value);\n item ? this.setSelectedItem(item) : this.clearSelectedItem();\n }\n\n /**\n * The outlined attribute of the control.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public outlined = false;\n\n /**\n * The autofocus attribute of the control.\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 attribute of the control.\n * @attr\n */\n @property()\n public label!: string;\n\n /**\n * The placeholder attribute 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 * @type {'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'right' | 'right-start' | 'right-end' | 'left' | 'left-start' | 'left-end'}\n * @attr\n */\n @property()\n public placement: IgcPlacement = '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: 'scroll' | 'block' | 'close' = 'scroll';\n\n /** Returns the items of the igc-select component. */\n public get items() {\n return Array.from(\n getItems<IgcSelectItemComponent>(this, IgcSelectItemComponent.tagName)\n );\n }\n\n /** Returns the groups of the igc-select component. */\n public get groups() {\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() {\n return this._selectedItem;\n }\n\n @watch('scrollStrategy', { waitUntilFirstUpdate: true })\n protected scrollStrategyChanged() {\n this._rootScrollController.update({ resetListeners: true });\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n protected openChange() {\n this._rootClickController.update();\n this._rootScrollController.update();\n }\n\n constructor() {\n super();\n\n this._rootClickController.update({ hideCallback: this.handleClosing });\n\n addKeybindings(this, {\n skip: () => this.disabled,\n bindingDefaults: { preventDefault: true, triggers: ['keydownRepeat'] },\n })\n .set([altKey, arrowDown], this.altArrowDown)\n .set([altKey, arrowUp], this.altArrowUp)\n .set(arrowDown, this.onArrowDown)\n .set(arrowUp, this.onArrowUp)\n .set(arrowLeft, this.onArrowUp)\n .set(arrowRight, this.onArrowDown)\n .set(tabKey, this.onTabKey, { preventDefault: false })\n .set(escapeKey, this.onEscapeKey)\n .set(homeKey, this.onHomeKey)\n .set(endKey, this.onEndKey)\n .set(spaceBar, this.onSpaceBarKey)\n .set(enterKey, this.onEnterKey);\n\n this.addEventListener('keydown', this.handleSearch);\n this.addEventListener('focusin', this.handleFocusIn);\n this.addEventListener('focusout', this.handleFocusOut);\n }\n\n protected override createRenderRoot() {\n const root = super.createRenderRoot();\n root.addEventListener('slotchange', () => this.requestUpdate());\n return root;\n }\n\n protected override async firstUpdated() {\n await this.updateComplete;\n const selected = setInitialSelectionState(this.items);\n\n if (this.value && !selected) {\n this._selectItem(this.getItem(this.value), false);\n }\n\n if (selected && selected.value !== this.value) {\n this._defaultValue = selected.value;\n this._selectItem(selected, false);\n }\n\n if (this.autofocus) {\n this.focus();\n }\n\n this.updateValidity();\n }\n\n private handleFocusIn({ relatedTarget }: FocusEvent) {\n this._dirty = true;\n\n if (this.contains(relatedTarget as Node) || this.open) {\n return;\n }\n }\n\n private handleFocusOut({ relatedTarget }: FocusEvent) {\n if (this.contains(relatedTarget as Node)) {\n return;\n }\n\n this.checkValidity();\n }\n\n private handleClick(event: MouseEvent) {\n const item = findElementFromEventPath<IgcSelectItemComponent>(\n IgcSelectItemComponent.tagName,\n event\n );\n if (item && this._activeItems.includes(item)) {\n this._selectItem(item);\n }\n }\n\n private handleChange(item: IgcSelectItemComponent) {\n return this.emitEvent('igcChange', { detail: item });\n }\n\n private handleSearch(event: KeyboardEvent) {\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 if (item) {\n this.open ? this.activateItem(item) : this._selectItem(item);\n this._activeItem.focus();\n }\n }\n\n protected override handleAnchorClick(): void {\n super.handleAnchorClick();\n this.focusItemOnOpen();\n }\n\n private onEnterKey() {\n this.open && this._activeItem\n ? this._selectItem(this._activeItem)\n : this.handleAnchorClick();\n }\n\n private onSpaceBarKey() {\n if (!this.open) {\n this.handleAnchorClick();\n }\n }\n\n private onArrowDown() {\n const item = getNextActiveItem(this.items, this._activeItem);\n this.open ? this._navigateToActiveItem(item) : this._selectItem(item);\n }\n\n private onArrowUp() {\n const item = getPreviousActiveItem(this.items, this._activeItem);\n this.open ? this._navigateToActiveItem(item) : this._selectItem(item);\n }\n\n private altArrowDown() {\n if (!this.open) {\n this._show(true);\n this.focusItemOnOpen();\n }\n }\n\n private async altArrowUp() {\n if (this.open && (await this._hide(true))) {\n this.input.focus();\n }\n }\n\n protected async onEscapeKey() {\n if (await this._hide(true)) {\n this.input.focus();\n }\n }\n\n private onTabKey(event: KeyboardEvent) {\n if (this.open) {\n event.preventDefault();\n this._selectItem(this._activeItem);\n this._hide(true);\n }\n }\n\n protected onHomeKey() {\n const item = this._activeItems.at(0);\n this.open ? this._navigateToActiveItem(item) : this._selectItem(item);\n }\n\n protected onEndKey() {\n const item = this._activeItems.at(-1);\n this.open ? this._navigateToActiveItem(item) : this._selectItem(item);\n }\n\n protected handleClosing() {\n this._hide(true);\n }\n\n private activateItem(item: IgcSelectItemComponent) {\n if (this._activeItem) {\n this._activeItem.active = false;\n }\n\n this._activeItem = item;\n this._activeItem.active = true;\n }\n\n private setSelectedItem(item: IgcSelectItemComponent) {\n if (this._selectedItem) {\n this._selectedItem.selected = false;\n }\n\n this._selectedItem = item;\n this._selectedItem.selected = true;\n\n return this._selectedItem;\n }\n\n private _selectItem(item?: IgcSelectItemComponent, emit = true) {\n if (!item) {\n this.clearSelectedItem();\n this._updateValue();\n return null;\n }\n\n const items = this.items;\n const [previous, current] = [\n items.indexOf(this._selectedItem!),\n items.indexOf(item),\n ];\n\n if (previous === current) {\n return this._selectedItem;\n }\n\n const newItem = this.setSelectedItem(item);\n this.activateItem(newItem);\n this._updateValue(newItem.value);\n\n if (emit) this.handleChange(newItem);\n if (emit && this.open) this.input.focus();\n if (emit && !this.keepOpenOnSelect) this._hide(true);\n\n return this._selectedItem;\n }\n\n private _navigateToActiveItem(item?: IgcSelectItemComponent) {\n if (item) {\n this.activateItem(item);\n this._activeItem.focus({ preventScroll: true });\n item.scrollIntoView({ behavior: 'auto', block: 'nearest' });\n }\n }\n\n private _updateValue(value?: string) {\n this._value = value as string;\n this.setFormValue(this._value ? this._value : null);\n this.updateValidity();\n this.setInvalidState();\n }\n\n private clearSelectedItem() {\n if (this._selectedItem) {\n this._selectedItem.selected = false;\n }\n this._selectedItem = null;\n }\n\n private async focusItemOnOpen() {\n await this.updateComplete;\n (this._selectedItem || this._activeItem)?.focus();\n }\n\n protected getItem(value: string) {\n return this.items.find((item) => item.value === value);\n }\n\n /* alternateName: focusComponent */\n /** Sets focus on the component. */\n public override focus(options?: FocusOptions) {\n this.input.focus(options);\n }\n\n /* alternateName: blurComponent */\n /** Removes focus from the component. */\n public override blur() {\n this.input.blur();\n super.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() {\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 =\n typeof value === 'string' ? 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 =\n typeof value === 'string' ? 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() {\n this._updateValue();\n this.clearSelectedItem();\n }\n\n protected renderInputSlots() {\n const prefixName = this.hasPrefixes ? 'prefix' : '';\n const suffixName = this.hasSuffixes ? 'suffix' : '';\n\n return html`\n <span slot=${prefixName}>\n <slot name=\"prefix\"></slot>\n </span>\n\n <span slot=${suffixName}>\n <slot name=\"suffix\"></slot>\n </span>\n `;\n }\n\n protected renderToggleIcon() {\n const parts = partNameMap({ 'toggle-icon': true, filled: this.value! });\n const iconHidden = this.open && this.hasExpandedIcon;\n const iconExpandedHidden = !(this.hasExpandedIcon && this.open);\n\n return html`\n <span slot=\"suffix\" part=${parts} aria-hidden=\"true\">\n <slot name=\"toggle-icon\" ?hidden=${iconHidden}>\n <igc-icon\n name=${this.open ? 'input_collapse' : 'input_expand'}\n collection=\"default\"\n ></igc-icon>\n </slot>\n <slot name=\"toggle-icon-expanded\" ?hidden=${iconExpandedHidden}></slot>\n </span>\n `;\n }\n\n protected renderHelperText() {\n return html`\n <div\n id=\"helper-text\"\n part=\"helper-text\"\n slot=\"anchor\"\n ?hidden=${!this.hasHelperText}\n >\n <slot name=\"helper-text\"></slot>\n </div>\n `;\n }\n\n protected renderInputAnchor() {\n const value = this.selectedItem?.textContent?.trim();\n\n return html`\n <igc-input\n id=\"input\"\n slot=\"anchor\"\n role=\"combobox\"\n readonly\n aria-controls=\"dropdown\"\n aria-describedby=\"helper-text\"\n aria-expanded=${this.open ? 'true' : 'false'}\n exportparts=\"container: input, input: native-input, label, prefix, suffix\"\n tabIndex=${this.disabled ? -1 : 0}\n value=${ifDefined(value)}\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`<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 protected override render() {\n return html`<igc-popover\n ?open=${this.open}\n flip\n shift\n same-width\n .offset=${this.distance}\n .placement=${this.placement}\n >${this.renderInputAnchor()} ${this.renderDropdown()}\n </igc-popover>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-select': IgcSelectComponent;\n }\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size);scrollbar-color:var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background)}:host *,:host *::before,:host *::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size);height:var(--ig-scrollbar-size);background:var(--ig-scrollbar-track-background)}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background)}:host([hidden]),[hidden]{display:none !important}:host{display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--ig-font-family)}[part=base]{overflow:hidden auto;min-width:7rem;z-index:10005}:host{display:block}[role=combobox]{outline-style:none}:host([disabled]) [role=combobox]{pointer-events:none}igc-input,igc-icon{--component-size: var(--select-size) !important;cursor:pointer}igc-input::part(input){cursor:pointer}igc-input::part(input)::-moz-selection{background:rgba(0,0,0,0)}igc-input::part(input)::selection{background:rgba(0,0,0,0)}[part=helper-text]{line-height:1}[part=helper-text] ::slotted([slot=helper-text]){font-family:var(--ig-caption-font-family, var(--ig-font-family));font-size:var(--ig-caption-font-size);font-weight:var(--ig-caption-font-weight);font-style:var(--ig-caption-font-style);line-height:var(--ig-caption-line-height);letter-spacing:var(--ig-caption-letter-spacing);text-transform:var(--ig-caption-text-transform);margin-top:var(--ig-caption-margin-top);margin-bottom:var(--ig-caption-margin-bottom);line-height:inherit}[name=prefix]::slotted(*),[name=suffix]::slotted(*){display:-webkit-box;display:-ms-flexbox;display:flex}`;
2
+ export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size);scrollbar-color:var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background)}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size);height:var(--ig-scrollbar-size);background:var(--ig-scrollbar-track-background)}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background)}:host *,:host *::before,:host *::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--ig-font-family)}[part=base]{overflow:hidden auto;min-width:7rem;z-index:10005}:host{display:block}[role=combobox]{outline-style:none}:host([disabled]) [role=combobox]{pointer-events:none}igc-input,igc-icon{--component-size: var(--select-size) !important;cursor:pointer}igc-input::part(input){cursor:pointer}igc-input::part(input)::-moz-selection{background:rgba(0,0,0,0)}igc-input::part(input)::selection{background:rgba(0,0,0,0)}[part=helper-text]{line-height:1}[part=helper-text] ::slotted([slot=helper-text]){font-family:var(--ig-caption-font-family, var(--ig-font-family));font-size:var(--ig-caption-font-size);font-weight:var(--ig-caption-font-weight);font-style:var(--ig-caption-font-style);line-height:var(--ig-caption-line-height);letter-spacing:var(--ig-caption-letter-spacing);text-transform:var(--ig-caption-text-transform);margin-top:var(--ig-caption-margin-top);margin-bottom:var(--ig-caption-margin-bottom);line-height:inherit}[name=prefix]::slotted(*),[name=suffix]::slotted(*){display:-webkit-box;display:-ms-flexbox;display:flex}`;
3
3
  //# sourceMappingURL=select.base.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select.base.css.js","sourceRoot":"","sources":["../../../../src/components/select/themes/select.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,i9DAAi9D,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size);scrollbar-color:var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background)}:host *,:host *::before,:host *::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size);height:var(--ig-scrollbar-size);background:var(--ig-scrollbar-track-background)}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background)}:host([hidden]),[hidden]{display:none !important}:host{display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--ig-font-family)}[part=base]{overflow:hidden auto;min-width:7rem;z-index:10005}:host{display:block}[role=combobox]{outline-style:none}:host([disabled]) [role=combobox]{pointer-events:none}igc-input,igc-icon{--component-size: var(--select-size) !important;cursor:pointer}igc-input::part(input){cursor:pointer}igc-input::part(input)::-moz-selection{background:rgba(0,0,0,0)}igc-input::part(input)::selection{background:rgba(0,0,0,0)}[part=helper-text]{line-height:1}[part=helper-text] ::slotted([slot=helper-text]){font-family:var(--ig-caption-font-family, var(--ig-font-family));font-size:var(--ig-caption-font-size);font-weight:var(--ig-caption-font-weight);font-style:var(--ig-caption-font-style);line-height:var(--ig-caption-line-height);letter-spacing:var(--ig-caption-letter-spacing);text-transform:var(--ig-caption-text-transform);margin-top:var(--ig-caption-margin-top);margin-bottom:var(--ig-caption-margin-bottom);line-height:inherit}[name=prefix]::slotted(*),[name=suffix]::slotted(*){display:-webkit-box;display:-ms-flexbox;display:flex}`;\n"]}
1
+ {"version":3,"file":"select.base.css.js","sourceRoot":"","sources":["../../../../src/components/select/themes/select.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,i9DAAi9D,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size);scrollbar-color:var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background)}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size);height:var(--ig-scrollbar-size);background:var(--ig-scrollbar-track-background)}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background)}:host *,:host *::before,:host *::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--ig-font-family)}[part=base]{overflow:hidden auto;min-width:7rem;z-index:10005}:host{display:block}[role=combobox]{outline-style:none}:host([disabled]) [role=combobox]{pointer-events:none}igc-input,igc-icon{--component-size: var(--select-size) !important;cursor:pointer}igc-input::part(input){cursor:pointer}igc-input::part(input)::-moz-selection{background:rgba(0,0,0,0)}igc-input::part(input)::selection{background:rgba(0,0,0,0)}[part=helper-text]{line-height:1}[part=helper-text] ::slotted([slot=helper-text]){font-family:var(--ig-caption-font-family, var(--ig-font-family));font-size:var(--ig-caption-font-size);font-weight:var(--ig-caption-font-weight);font-style:var(--ig-caption-font-style);line-height:var(--ig-caption-line-height);letter-spacing:var(--ig-caption-letter-spacing);text-transform:var(--ig-caption-text-transform);margin-top:var(--ig-caption-margin-top);margin-bottom:var(--ig-caption-margin-bottom);line-height:inherit}[name=prefix]::slotted(*),[name=suffix]::slotted(*){display:-webkit-box;display:-ms-flexbox;display:flex}`;\n"]}
@@ -0,0 +1,3 @@
1
+ import { type Validator } from '../common/validators.js';
2
+ import type IgcSelectComponent from './select.js';
3
+ export declare const selectValidators: Validator<IgcSelectComponent>[];
@@ -0,0 +1,5 @@
1
+ import { requiredValidator } from '../common/validators.js';
2
+ export const selectValidators = [
3
+ requiredValidator,
4
+ ];
5
+ //# sourceMappingURL=validators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/components/select/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5E,MAAM,CAAC,MAAM,gBAAgB,GAAoC;IAC/D,iBAAiB;CAClB,CAAC","sourcesContent":["import { type Validator, requiredValidator } from '../common/validators.js';\nimport type IgcSelectComponent from './select.js';\n\nexport const selectValidators: Validator<IgcSelectComponent>[] = [\n requiredValidator,\n];\n"]}
@@ -67,22 +67,6 @@ export default class IgcRangeSliderComponent extends IgcRangeSliderComponent_bas
67
67
  * @attr thumb-label-upper
68
68
  */
69
69
  thumbLabelUpper: string;
70
- /**
71
- * The aria label of the lower thumb.
72
- * @attr aria-label-lower
73
- *
74
- * @deprecated since v4.8.0. Use the `thumbLabelLower` property instead.
75
- */
76
- set ariaLabelLower(value: string);
77
- get ariaLabelLower(): string;
78
- /**
79
- * The aria label of the upper thumb.
80
- * @attr aria-label-upper
81
- *
82
- * @deprecated since v4.8.0. Use the `thumbLabelUpper` property instead.
83
- */
84
- set ariaLabelUpper(value: string);
85
- get ariaLabelUpper(): string;
86
70
  protected get activeValue(): number;
87
71
  protected normalizeValue(): void;
88
72
  protected getTrackStyle(): {
@@ -34,18 +34,6 @@ class IgcRangeSliderComponent extends EventEmitterMixin(IgcSliderBaseComponent)
34
34
  get upper() {
35
35
  return this._upper;
36
36
  }
37
- set ariaLabelLower(value) {
38
- this.thumbLabelLower = value;
39
- }
40
- get ariaLabelLower() {
41
- return this.thumbLabelLower;
42
- }
43
- set ariaLabelUpper(value) {
44
- this.thumbLabelUpper = value;
45
- }
46
- get ariaLabelUpper() {
47
- return this.thumbLabelUpper;
48
- }
49
37
  get activeValue() {
50
38
  return this.activeThumb === this.thumbFrom ? this.lower : this.upper;
51
39
  }
@@ -195,10 +183,4 @@ __decorate([
195
183
  __decorate([
196
184
  property({ attribute: 'thumb-label-upper' })
197
185
  ], IgcRangeSliderComponent.prototype, "thumbLabelUpper", void 0);
198
- __decorate([
199
- property({ attribute: 'aria-label-lower' })
200
- ], IgcRangeSliderComponent.prototype, "ariaLabelLower", null);
201
- __decorate([
202
- property({ attribute: 'aria-label-upper' })
203
- ], IgcRangeSliderComponent.prototype, "ariaLabelUpper", null);
204
186
  //# sourceMappingURL=range-slider.js.map