igniteui-webcomponents 4.11.1 → 5.0.0-rc.1

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 (367) hide show
  1. package/CHANGELOG.md +67 -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/themes/step/step.base.css.js +1 -1
  284. package/components/stepper/themes/step/step.base.css.js.map +1 -1
  285. package/components/stepper/themes/stepper/stepper.base.css.js +1 -1
  286. package/components/stepper/themes/stepper/stepper.base.css.js.map +1 -1
  287. package/components/stepper/themes/stepper/stepper.bootstrap.css.js +1 -1
  288. package/components/stepper/themes/stepper/stepper.bootstrap.css.js.map +1 -1
  289. package/components/stepper/themes/stepper/stepper.fluent.css.js +1 -1
  290. package/components/stepper/themes/stepper/stepper.fluent.css.js.map +1 -1
  291. package/components/stepper/themes/stepper/stepper.indigo.css.js +1 -1
  292. package/components/stepper/themes/stepper/stepper.indigo.css.js.map +1 -1
  293. package/components/tabs/tabs.js +2 -3
  294. package/components/tabs/tabs.js.map +1 -1
  295. package/components/tabs/themes/tab.base.css.js +1 -1
  296. package/components/tabs/themes/tab.base.css.js.map +1 -1
  297. package/components/tabs/themes/tabs.base.css.js +1 -1
  298. package/components/tabs/themes/tabs.base.css.js.map +1 -1
  299. package/components/textarea/textarea.d.ts +13 -16
  300. package/components/textarea/textarea.js +10 -12
  301. package/components/textarea/textarea.js.map +1 -1
  302. package/components/textarea/themes/textarea.base.css.js +1 -1
  303. package/components/textarea/themes/textarea.base.css.js.map +1 -1
  304. package/components/textarea/validators.d.ts +3 -0
  305. package/components/textarea/validators.js +7 -0
  306. package/components/textarea/validators.js.map +1 -0
  307. package/components/toast/themes/toast.base.css.js +1 -1
  308. package/components/toast/themes/toast.base.css.js.map +1 -1
  309. package/components/tree/themes/container.base.css.js +1 -1
  310. package/components/tree/themes/container.base.css.js.map +1 -1
  311. package/components/tree/themes/item.base.css.js +1 -1
  312. package/components/tree/themes/item.base.css.js.map +1 -1
  313. package/components/tree/tree-item.d.ts +4 -4
  314. package/components/tree/tree-item.js +11 -23
  315. package/components/tree/tree-item.js.map +1 -1
  316. package/components/tree/tree.d.ts +3 -4
  317. package/components/tree/tree.js +1 -37
  318. package/components/tree/tree.js.map +1 -1
  319. package/components/types.d.ts +3 -0
  320. package/components/types.js +2 -0
  321. package/components/types.js.map +1 -0
  322. package/custom-elements.json +30658 -31327
  323. package/igniteui-webcomponents.css-data.json +5 -928
  324. package/igniteui-webcomponents.html-data.json +4 -2699
  325. package/index.d.ts +5 -4
  326. package/index.js +2 -3
  327. package/index.js.map +1 -1
  328. package/package.json +1 -1
  329. package/theming/config.js +3 -3
  330. package/theming/config.js.map +1 -1
  331. package/theming/theming-controller.d.ts +4 -6
  332. package/theming/theming-controller.js +30 -34
  333. package/theming/theming-controller.js.map +1 -1
  334. package/theming/theming-decorator.d.ts +29 -11
  335. package/theming/theming-decorator.js +21 -7
  336. package/theming/theming-decorator.js.map +1 -1
  337. package/theming/theming-event.js.map +1 -1
  338. package/theming/types.d.ts +5 -0
  339. package/theming/types.js.map +1 -1
  340. package/theming/utils.d.ts +1 -1
  341. package/theming/utils.js +8 -8
  342. package/theming/utils.js.map +1 -1
  343. package/web-types.json +12 -7621
  344. package/components/calendar/common/calendar-base.d.ts +0 -40
  345. package/components/calendar/common/calendar-base.js +0 -118
  346. package/components/calendar/common/calendar-base.js.map +0 -1
  347. package/components/calendar/common/calendar.model.d.ts +0 -128
  348. package/components/calendar/common/calendar.model.js +0 -246
  349. package/components/calendar/common/calendar.model.js.map +0 -1
  350. package/components/calendar/common/utils.d.ts +0 -12
  351. package/components/calendar/common/utils.js +0 -54
  352. package/components/calendar/common/utils.js.map +0 -1
  353. package/components/common/decorators/alternateName.d.ts +0 -7
  354. package/components/common/decorators/alternateName.js +0 -4
  355. package/components/common/decorators/alternateName.js.map +0 -1
  356. package/components/common/decorators/blazorSuppress.d.ts +0 -5
  357. package/components/common/decorators/blazorSuppress.js +0 -4
  358. package/components/common/decorators/blazorSuppress.js.map +0 -1
  359. package/components/common/decorators/blazorTwoWayBind.d.ts +0 -7
  360. package/components/common/decorators/blazorTwoWayBind.js +0 -4
  361. package/components/common/decorators/blazorTwoWayBind.js.map +0 -1
  362. package/components/common/mixins/sizable.d.ts +0 -13
  363. package/components/common/mixins/sizable.js +0 -27
  364. package/components/common/mixins/sizable.js.map +0 -1
  365. package/components/form/form.d.ts +0 -48
  366. package/components/form/form.js +0 -158
  367. package/components/form/form.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,73 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
+
8
+ ## [Unreleased]
9
+
10
+ ### Changed
11
+ - **BREAKING**: Removed `igcFocus` and `igcBlur` events from buttons and inputs - Button, Icon Button, Checkbox, Switch, Combo, Date Time Input, Input, Mask Input, Radios, Select, Textarea.
12
+
13
+ Use the native `focus` & `blur` events instead.
14
+
15
+ Before:
16
+ ```ts
17
+ const input = document.createElement('igc-input');
18
+ input.addEventListener('igcFocus', focusHandler);
19
+ ```
20
+
21
+ Now:
22
+ ```ts
23
+ input.addEventListener('focus', focusHandler);
24
+ ```
25
+
26
+ - **BREAKING**: Checkbox, Switch `igcChange` event.
27
+
28
+ Before:
29
+ ```ts
30
+ CustomEvent<boolean>
31
+ ```
32
+
33
+ Now:
34
+ ```ts
35
+ CustomEvent<{ checked: boolean; value: string | undefined }>
36
+ ```
37
+
38
+
39
+ - **BREAKING**: Radio `igcChange` event.
40
+
41
+ Before:
42
+ ```ts
43
+ CustomEvent<boolean>
44
+ ```
45
+
46
+ Now:
47
+ ```ts
48
+ CustomEvent<{ checked: boolean; value: string | undefined }>
49
+ ```
50
+
51
+ ### Added
52
+ - Icon Registry [#1304](https://github.com/IgniteUI/igniteui-webcomponents/issues/1304)
53
+ - You can now register and replace icons by reference via the `setIconRef` function. To learn more check out the [documentation](https://www.infragistics.com/webcomponentssite/components/layouts/icon#icon-references).
54
+ - All components now use icons by reference internally so that it's easy to replace them without explicitly providing custom templates.
55
+
56
+ ### Removed
57
+ - **BREAKING**: igc-form - use the native form element instead.
58
+ - **BREAKING**: Range slider - `ariaThumbLower/ariaThumbUpper`. Use `thumbLabelLower/thumbLabelUpper` instead.
59
+ - **BREAKING**: Rating - `readonly` property. Use `readOnly` instead.
60
+ - **BREAKING**: Dialog - `closeOnEscape` property. Use `keepOpenOnEscape`.
61
+ - **BREAKING**: Combo, Select - `positionStrategy`, `flip`, `sameWidth` removed.
62
+ - **BREAKING**: Dropdown - `positionStrategy` removed.
63
+ - **BREAKING**: Input - `readonly`, `inputmode`, `maxlength` and `minlength`.
64
+ Use the native `readOnly`, `inputMode`, `maxLength` and `minLength` properties instead.
65
+ - **BREAKING**: Date-time-input - `minValue`/`mavValue` are removed. Use `min`/`max` instead.
66
+ - **BREAKING**: Removed `size` property from components.
67
+
68
+ ### Fixed
69
+ - Date-time input - update masked value according to the input format on focus when value is set [#1320](https://github.com/IgniteUI/igniteui-webcomponents/issues/1320)
70
+ - Radio - do not emit change event on already checked radio
71
+ - Calendar - add correct dates DOM parts based on active view [[#1278](https://github.com/IgniteUI/igniteui-webcomponents/issues/1278)]
72
+ - Date-picker, Dropdown & Select - showing the component programmatically in response to an outside click event closes the dropdown popover [#1339](https://github.com/IgniteUI/igniteui-webcomponents/issues/1339)
73
+
7
74
  ## [4.11.1] - 2024-07-03
8
75
  ### Changed
9
76
  - Stepper Design in vertical mode [#1246](https://github.com/IgniteUI/igniteui-webcomponents/issues/1246)
package/README.md CHANGED
@@ -1,76 +1,77 @@
1
1
  ![Logo Ignite UI Web Components)](https://user-images.githubusercontent.com/52001020/173785249-7ec6ad64-ebfe-402b-9a32-d40e50182b13.png)
2
2
 
3
-
4
3
  <h1 align="center">
5
- Ignite UI for Web Components - from Infragistics
4
+ Ignite UI for Web Components - from Infragistics
6
5
  </h1>
7
6
 
8
-
9
-
10
7
  [![Node.js CI](https://github.com/IgniteUI/igniteui-webcomponents/workflows/Node.js%20CI/badge.svg)](https://github.com/IgniteUI/igniteui-webcomponents/actions/workflows/node.js.yml)
11
8
  [![Coverage Status](https://coveralls.io/repos/github/IgniteUI/igniteui-webcomponents/badge.svg)](https://coveralls.io/github/IgniteUI/igniteui-webcomponents)
12
9
  [![npm version](https://badge.fury.io/js/igniteui-webcomponents.svg)](https://badge.fury.io/js/igniteui-webcomponents)
13
10
  [![Discord](https://img.shields.io/discord/836634487483269200?logo=discord&logoColor=ffffff)](https://discord.gg/39MjrTRqds)
14
11
 
15
- [Ignite UI for Web Components](https://www.infragistics.com/products/ignite-ui-web-components) is a complete library of UI components, giving you the ability to build modern web applications using encapsulation and the concept of reusable components in a dependency-free approach. See the [Storybook Here](https://igniteui.github.io/igniteui-webcomponents)!
16
- All components are based on the [Indigo.Design Design System](https://www.infragistics.com/products/appbuilder/ui-toolkit) and are backed by ready-to-use UI kits for Sketch, Adobe XD and Figma.
12
+ [Ignite UI for Web Components] is a complete library of UI components, giving you the ability to build modern web applications using encapsulation and the concept of reusable components in a dependency-free approach. All components are based on the [Indigo.Design Design System] and are backed by ready-to-use UI kits for Sketch, Adobe XD and Figma.
13
+
14
+ See the [Storybook Here](https://igniteui.github.io/igniteui-webcomponents)
17
15
 
18
16
  ## Browser Support
19
17
 
20
- ![chrome_48x48](https://user-images.githubusercontent.com/2188411/168109445-fbd7b217-35f9-44d1-8002-1eb97e39cdc6.png) | ![firefox_48x48](https://user-images.githubusercontent.com/2188411/168109465-e46305ee-f69f-4fa5-8f4a-14876f7fd3ca.png) | ![edge_48x48](https://user-images.githubusercontent.com/2188411/168109472-a730f8c0-3822-4ae6-9f54-785a66695245.png) | ![opera_48x48](https://user-images.githubusercontent.com/2188411/168109520-b6865a6c-b69f-44a4-9948-748d8afd687c.png) | ![safari_48x48](https://user-images.githubusercontent.com/2188411/168109527-6c58f2cf-7386-4b97-98b1-cfe0ab4e8626.png)
21
- --- | --- | --- | --- | --- |
22
- Latest | Latest | Latest | Latest | Latest |
18
+ | ![chrome_48x48] | ![firefox_48x48] | ![edge_48x48] | ![opera_48x48] | ![safari_48x48] |
19
+ | --------------- | ---------------- | ------------- | -------------- | --------------- |
20
+ | Latest ✔️ | Latest ✔️ | Latest ✔️ | Latest ✔️ | Latest ✔️ |
23
21
 
24
22
  ## Overview
25
23
 
26
- |Components|Status|Documentation|Released Version|
27
- |:--|:--:|:--:|:--:|
28
- |Combo|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/combo/overview)|[4.1.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/4.1.0)|
29
- |Stepper|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/stepper)|[4.1.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/4.1.0)|
30
- |Select|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/select)|[3.4.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/3.4.0)|
31
- |Dialog|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/notifications/dialog)|[3.4.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/3.4.0)|
32
- |Date Time Input|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/date-time-input)|[3.3.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/3.3.0)|
33
- |Tabs|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/tabs)|[3.3.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/3.3.0)|
34
- |Accordion|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/accordion)|[3.3.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/3.3.0)|
35
- |Mask Input|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/input)|[3.2.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/3.2.0)|
36
- |Expansion Panel|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/expansion-panel)|[3.2.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/3.2.0)|
37
- |Tree|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/tree)|[3.2.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/3.2.0)|
38
- |Drop Down|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/notifications/toast)|[2.2.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/2.2.0)|
39
- |Linear Progress|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/linear-progress)|[2.1.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/2.1.0)|
40
- |Circular Progress|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/circular-progress)|[2.1.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/2.1.0)|
41
- |Chip|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/chip)|[2.1.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/2.1.0)|
42
- |Snackbar|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/notifications/snackbar)|[2.1.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/2.1.0)|
43
- |Toast|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/notifications/toast)|[2.1.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/2.1.0)|
44
- |Rating|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/rating)|[2.1.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/2.1.0)|
45
- |Slider|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/slider)|[2.0.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/2.0.0)|
46
- |Range Slider|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/slider)|[2.0.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/2.0.0)|
47
- |Avatar|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/avatar)|[1.0.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/1.0.0)|
48
- |Badge|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/badge)|[1.0.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/1.0.0)|
49
- |Button|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/button)|[1.0.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/1.0.0)|
50
- |Calendar|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/scheduling/calendar)|[1.0.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/1.0.0)|
51
- |Card|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/card)|[1.0.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/1.0.0)|
52
- |Checkbox|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/checkbox)|[1.0.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/1.0.0)|
53
- |Form|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/form)|[1.0.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/1.0.0)|
54
- |Icon|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/icon)|[1.0.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/1.0.0)|
55
- |Icon Button|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/icon-button)|[1.0.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/1.0.0)|
56
- |Input|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/input)|[1.0.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/1.0.0)|
57
- |List|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/list)|[1.0.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/1.0.0)|
58
- |Navigation Bar (Navbar)|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/menus/navbar)|[1.0.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/1.0.0)|
59
- |Navigation Drawer|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/menus/navigation-drawer)|[1.0.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/1.0.0)|
60
- |Radio|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/radio)|[1.0.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/1.0.0)|
61
- |Radio Group|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/radio)|[1.0.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/1.0.0)|
62
- |Ripple|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/ripple)|[1.0.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/1.0.0)|
63
- |Switch|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/switch)|[1.0.0](https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/1.0.0)|
64
-
65
- ## Components available in [Ignite UI for WebComponents Grids](https://www.npmjs.com/package/igniteui-webcomponents-grids)
66
-
67
- |Components|Status|Documentation|Released Version|
68
- |:--|:--:|:--:|:--:|
69
- |Pivot Grid|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/pivot-grid/overview)|
70
- |Data Grid|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/grid/overview)||
71
- |Tree Grid|:white_check_mark:|[Docs](https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/tree-grid/overview)||
72
-
73
- ## Usage
24
+ | Components | Status | Documentation | Released Version |
25
+ | :---------------------- | :----: | :----------------------------: | :--------------: |
26
+ | Date picker | ✅ | [Docs][Date Picker Docs] | [4.10.0] |
27
+ | Divider | ✅ | [Docs][Divider Docs] | [4.10.0] |
28
+ | Banner | ✅ | [Docs][Banner Docs] | [4.10.0] |
29
+ | Button group | ✅ | [Docs][Button Group Docs] | [4.5.0] |
30
+ | Textarea | ✅ | [Docs][Textarea Docs] | [4.5.0] |
31
+ | Combo | ✅ | [Docs][Combo Docs] | [4.1.0] |
32
+ | Stepper | ✅ | [Docs][Stepper Docs] | [4.1.0] |
33
+ | Select | ✅ | [Docs][Select Docs] | [3.4.0] |
34
+ | Dialog | ✅ | [Docs][Dialog Docs] | [3.4.0] |
35
+ | Date Time Input | ✅ | [Docs][Date Time Input Docs] | [3.3.0] |
36
+ | Tabs | ✅ | [Docs][Tabs Docs] | [3.3.0] |
37
+ | Accordion | ✅ | [Docs][Accordion Docs] | [3.3.0] |
38
+ | Mask Input | ✅ | [Docs][Masked Input Docs] | [3.2.0] |
39
+ | Expansion Panel | ✅ | [Docs][Expansion Panel Docs] | [3.2.0] |
40
+ | Tree | ✅ | [Docs][Tree Docs] | [3.2.0] |
41
+ | Drop Down | ✅ | [Docs][Dropdown Docs] | [2.2.0] |
42
+ | Linear Progress | ✅ | [Docs][Linear Progress Docs] | [2.1.0] |
43
+ | Circular Progress | ✅ | [Docs][Circular Progress Docs] | [2.1.0] |
44
+ | Chip | ✅ | [Docs][Chip Docs] | [2.1.0] |
45
+ | Snackbar | ✅ | [Docs][Snackbar Docs] | [2.1.0] |
46
+ | Toast | ✅ | [Docs][Toast Docs] | [2.1.0] |
47
+ | Rating | ✅ | [Docs][Rating Docs] | [2.1.0] |
48
+ | Slider | ✅ | [Docs][Slider Docs] | [2.0.0] |
49
+ | Range Slider | ✅ | [Docs][Slider Docs] | [2.0.0] |
50
+ | Avatar | ✅ | [Docs][Avatar Docs] | [1.0.0] |
51
+ | Badge | ✅ | [Docs][Badge Docs] | [1.0.0] |
52
+ | Button | ✅ | [Docs][Button Docs] | [1.0.0] |
53
+ | Calendar | ✅ | [Docs][Calendar Docs] | [1.0.0] |
54
+ | Card | ✅ | [Docs][Card Docs] | [1.0.0] |
55
+ | Checkbox | ✅ | [Docs][Checkbox Docs] | [1.0.0] |
56
+ | Form | ✅ | [Docs][Form Docs] | [1.0.0] |
57
+ | Icon | ✅ | [Docs][Icon Docs] | [1.0.0] |
58
+ | Icon Button | ✅ | [Docs][Icon Button Docs] | [1.0.0] |
59
+ | Input | ✅ | [Docs][Input Docs] | [1.0.0] |
60
+ | List | ✅ | [Docs][List Docs] | [1.0.0] |
61
+ | Navigation Bar (Navbar) | ✅ | [Docs][Navigation Bar Docs] | [1.0.0] |
62
+ | Navigation Drawer | ✅ | [Docs][Navigation Drawer Docs] | [1.0.0] |
63
+ | Radio | ✅ | [Docs][Radio Docs] | [1.0.0] |
64
+ | Radio Group | ✅ | [Docs][Radio Docs] | [1.0.0] |
65
+ | Ripple || [Docs][Ripple Docs] | [1.0.0] |
66
+ | Switch | ✅ | [Docs][Switch Docs] | [1.0.0] |
67
+
68
+ ## Components available in [Ignite UI for WebComponents Grids]
69
+
70
+ | Components | Status | Documentation |
71
+ | :--------- | :----: | :---------------------: |
72
+ | Pivot Grid | ✅ | [Docs][Pivot Grid Docs] |
73
+ | Data Grid | ✅ | [Docs][Data Grid Docs] |
74
+ | Tree Grid | ✅ | [Docs][Tree Grid Docs] |
74
75
 
75
76
  ### The Lightweight Web Components Data Grid and Data Table
76
77
 
@@ -78,20 +79,26 @@ The Ignite UI for Web Components Data Grid and Table are both lightweight and de
78
79
 
79
80
  ### Dock Manager - EXCLUSIVE FEATURE
80
81
 
81
- ![Dock Manager](https://github.com/IgniteUI/igniteui-webcomponents/assets/52001020/a9643f17-f1c2-4554-87aa-96c9daea13b0)
82
+ ![Dock Manager Picture]
82
83
 
83
- Provide a complete windowing experience, splitting complex layouts into smaller, easier-to-manage panes.
84
+ Provide a complete windowing experience, splitting complex layouts into smaller, easier-to-manage panes.
85
+
86
+ ## Usage
84
87
 
85
88
  In order to use the Ignite UI Web Components in your application you should install the `igniteui-webcomponents` package:
86
89
 
87
- ```
90
+ ```sh
88
91
  npm install igniteui-webcomponents
89
92
  ```
90
93
 
91
94
  Next you will need to import the components that you want to use. You could import one or more components using the `defineComponents` function like this:
92
95
 
93
96
  ```ts
94
- import { defineComponents, IgcAvatarComponent, IgcBadgeComponent } from 'igniteui-webcomponents';
97
+ import {
98
+ defineComponents,
99
+ IgcAvatarComponent,
100
+ IgcBadgeComponent,
101
+ } from 'igniteui-webcomponents';
95
102
 
96
103
  defineComponents(IgcAvatarComponent, IgcBadgeComponent);
97
104
  ```
@@ -109,81 +116,132 @@ Please note that importing all of the components will increase the bundle size o
109
116
  After the components are imported you could use them in your html:
110
117
 
111
118
  ```html
112
- <igc-avatar initials="AZ"></igc-avatar>
113
- <igc-badge></igc-badge>
119
+ <igc-avatar initials="AZ"></igc-avatar><igc-badge></igc-badge>
114
120
  ```
115
121
 
116
- ### Tooling Support
117
- The package contains its own [Custom Elements Manifest](https://custom-elements-manifest.open-wc.org/blog/intro/) as well
118
- as [Custom Data Format](https://code.visualstudio.com/blogs/2020/02/24/custom-data-format) for VSCode.
119
- Refer to your IDE/toolchain documentation to see if you can take advantage of this metadata for linting, type hints and documentation.
122
+ ### Additional tooling
120
123
 
121
- Here is a how to enable VSCode auto-completion and hover information for HTML entities from the package.
124
+ The package comes with its own [Custom Elements Manifest], [VSCode Custom Data Format] for VSCode and [Web Types] for JetBrains IDEs.
125
+ Refer to the documentation of your editor of choice to see if you can take advantage of this metadata for linting, intellisense and documentation.
122
126
 
123
- Add the following line to your user or workspace settings:
124
- ```json
125
- {
126
- "html.customData": [
127
- "./node_modules/igniteui-webcomponents/vscode-html-custom-data.json"
128
- ]
129
- }
130
- ```
127
+ | Package path | Description |
128
+ | ------------------------------------------------------------ | ---------------------------------- |
129
+ | igniteui-webcomponents/custom-elements.json | Custom Elements Manifest |
130
+ | igniteui-webcomponents/web-types.json | Web Types for JetBrains based IDEs |
131
+ | igniteui-webcomponents/igniteui-webcomponents.css-data.json | VSCode CSS custom data |
132
+ | igniteui-webcomponents/igniteui-webcomponents.html-data.json | VSCode HTML custom data |
131
133
 
134
+ ## Contributing
132
135
 
133
- ## Setup
136
+ Follow the [Contribution Guidelines] to setup a development
137
+ environment.
134
138
 
135
- In order to run the repository locally from the root folder run:
139
+ ### Linting and Formatting
136
140
 
137
- ```
138
- npm install
139
- ```
141
+ To scan the project for linting errors, run:
140
142
 
141
- ## Linting with ESLint, Prettier, and Types
142
- To scan the project for linting errors, run
143
- ```bash
143
+ ```sh
144
144
  npm run lint
145
145
  ```
146
146
 
147
- You can lint with ESLint and Prettier individually as well
148
- ```bash
149
- npm run lint:eslint
150
- ```
151
- ```bash
152
- npm run lint:prettier
153
- ```
147
+ To automatically fix most linting and formatting errors, run:
154
148
 
155
- To automatically fix many linting errors, run
156
- ```bash
149
+ ```sh
157
150
  npm run format
158
151
  ```
159
152
 
160
- You can format using ESLint and Prettier individually as well
161
- ```bash
162
- npm run format:eslint
163
- ```
164
- ```bash
165
- npm run format:prettier
166
- ```
153
+ Linting and formatting are also set to run in a pre-commit hook in the project.
154
+
155
+ ### Testing with Web Test Runner
167
156
 
168
- ## Testing with Web Test Runner
169
- To run the suite of Web Test Runner tests, run
170
- ```bash
157
+ To run the suite of Web Test Runner tests, run:
158
+
159
+ ```sh
171
160
  npm run test
172
161
  ```
173
162
 
174
- To run the tests in watch mode (for &lt;abbr title=&#34;test driven development&#34;&gt;TDD&lt;/abbr&gt;, for example), run
163
+ To run the tests in watch mode, run:
175
164
 
176
- ```bash
165
+ ```sh
177
166
  npm run test:watch
178
167
  ```
179
168
 
180
- ## Demoing with Storybook
181
- To run a local instance of Storybook for your component, run
182
- ```bash
169
+ ### Demoing with Storybook
170
+
171
+ To start a local instance of Storybook for your component, run:
172
+
173
+ ```sh
183
174
  npm run storybook
184
175
  ```
185
176
 
186
- To build a production version of Storybook, run
187
- ```bash
177
+ To build a production version of Storybook, run:
178
+
179
+ ```sh
188
180
  npm run storybook:build
189
181
  ```
182
+
183
+ [Ignite UI for Web Components]: https://www.infragistics.com/products/ignite-ui-web-components
184
+ [Indigo.Design Design System]: https://www.infragistics.com/products/appbuilder/ui-toolkit
185
+ [Ignite UI for WebComponents Grids]: https://www.npmjs.com/package/igniteui-webcomponents-grids
186
+ [Dock Manager Picture]: https://github.com/IgniteUI/igniteui-webcomponents/assets/52001020/a9643f17-f1c2-4554-87aa-96c9daea13b0
187
+ [Custom Elements Manifest]: https://github.com/webcomponents/custom-elements-manifest
188
+ [VSCode Custom Data Format]: https://github.com/microsoft/vscode-custom-data
189
+ [Web Types]: https://plugins.jetbrains.com/docs/intellij/websymbols-web-types.html
190
+ [chrome_48x48]: https://user-images.githubusercontent.com/2188411/168109445-fbd7b217-35f9-44d1-8002-1eb97e39cdc6.png
191
+ [firefox_48x48]: https://user-images.githubusercontent.com/2188411/168109465-e46305ee-f69f-4fa5-8f4a-14876f7fd3ca.png
192
+ [edge_48x48]: https://user-images.githubusercontent.com/2188411/168109472-a730f8c0-3822-4ae6-9f54-785a66695245.png
193
+ [opera_48x48]: https://user-images.githubusercontent.com/2188411/168109520-b6865a6c-b69f-44a4-9948-748d8afd687c.png
194
+ [safari_48x48]: https://user-images.githubusercontent.com/2188411/168109527-6c58f2cf-7386-4b97-98b1-cfe0ab4e8626.png
195
+ [Contribution Guidelines]: https://github.com/IgniteUI/igniteui-webcomponents/blob/master/.github/CONTRIBUTING.md
196
+ [Pivot Grid Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/pivot-grid/overview
197
+ [Data Grid Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/grid/overview
198
+ [Tree Grid Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/tree-grid/overview
199
+ [Switch Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/switch
200
+ [Ripple Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/ripple
201
+ [Radio Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/radio
202
+ [Navigation Drawer Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/menus/navigation-drawer
203
+ [Navigation Bar Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/menus/navbar
204
+ [List Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/list
205
+ [Input Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/input
206
+ [Icon Button Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/icon-button
207
+ [Icon Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/icon
208
+ [Form Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/form
209
+ [Checkbox Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/checkbox
210
+ [Card Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/card
211
+ [Calendar Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/scheduling/calendar
212
+ [Button Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/button
213
+ [Badge Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/badge
214
+ [Avatar Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/avatar
215
+ [Slider Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/slider
216
+ [Rating Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/rating
217
+ [Toast Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/notifications/toast
218
+ [Snackbar Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/notifications/snackbar
219
+ [Chip Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/chip
220
+ [Circular Progress Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/circular-progress
221
+ [Linear Progress Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/linear-progress
222
+ [Dropdown Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/notifications/toast
223
+ [Tree Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/tree
224
+ [Expansion Panel Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/expansion-panel
225
+ [Masked Input Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/input
226
+ [Accordion Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/accordion
227
+ [Tabs Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/tabs
228
+ [Date Time Input Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/date-time-input
229
+ [Dialog Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/notifications/dialog
230
+ [Select Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/select
231
+ [Stepper Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/stepper
232
+ [Combo Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/combo/overview
233
+ [Textarea Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/text-area
234
+ [Button Group Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/button-group
235
+ [Banner Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/banner
236
+ [Divider Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/divider
237
+ [Date Picker Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/date-picker
238
+ [1.0.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/1.0.0
239
+ [2.0.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/2.0.0
240
+ [2.1.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/2.1.0
241
+ [2.2.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/2.2.0
242
+ [3.2.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/3.2.0
243
+ [3.3.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/3.3.0
244
+ [3.4.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/3.4.0
245
+ [4.1.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/4.1.0
246
+ [4.5.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/4.5.0
247
+ [4.10.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/4.10.0
@@ -34,9 +34,9 @@ export default class IgcAccordionComponent extends LitElement {
34
34
  private closePanel;
35
35
  private openPanel;
36
36
  /** Hides all of the child expansion panels' contents. */
37
- hideAll(): void;
37
+ hideAll(): Promise<void>;
38
38
  /** Shows all of the child expansion panels' contents. */
39
- showAll(): void;
39
+ showAll(): Promise<void>;
40
40
  protected render(): import("lit-html").TemplateResult<1>;
41
41
  }
42
42
  declare global {
@@ -7,7 +7,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { LitElement, html } from 'lit';
8
8
  import { property, queryAssignedElements } from 'lit/decorators.js';
9
9
  import { addKeybindings, altKey, arrowDown, arrowUp, endKey, homeKey, shiftKey, } from '../common/controllers/key-bindings.js';
10
- import { blazorSuppress } from '../common/decorators/blazorSuppress.js';
11
10
  import { registerComponent } from '../common/definitions/register.js';
12
11
  import IgcExpansionPanelComponent from '../expansion-panel/expansion-panel.js';
13
12
  import { styles } from './themes/accordion.base.css.js';
@@ -57,70 +56,60 @@ class IgcAccordionComponent extends LitElement {
57
56
  this.getPanelHeader(next).focus();
58
57
  }
59
58
  collapseAll() {
60
- const panels = this.enabledPanels;
61
- for (const panel of panels) {
59
+ for (const panel of this.enabledPanels) {
62
60
  this.closePanel(panel);
63
61
  }
64
62
  }
65
63
  expandAll(event) {
66
64
  const current = event.target;
67
- const panels = this.enabledPanels;
68
- if (this.singleExpand) {
69
- for (const panel of panels) {
65
+ for (const panel of this.enabledPanels) {
66
+ if (this.singleExpand) {
70
67
  current === panel ? this.openPanel(panel) : this.closePanel(panel);
71
68
  }
72
- }
73
- else {
74
- for (const panel of panels) {
69
+ else {
75
70
  this.openPanel(panel);
76
71
  }
77
72
  }
78
73
  }
79
74
  handlePanelOpening(event) {
80
- const panel = event.target;
81
- if (!this.singleExpand || !this.panels.includes(panel)) {
75
+ const current = event.target;
76
+ if (!(this.singleExpand && this.panels.includes(current))) {
82
77
  return;
83
78
  }
84
- this.enabledPanels.forEach((p) => {
85
- if (p.open && p !== panel) {
86
- this.closePanel(p);
79
+ for (const panel of this.enabledPanels) {
80
+ if (panel.open && panel !== current) {
81
+ this.closePanel(panel);
87
82
  }
88
- });
83
+ }
89
84
  }
90
85
  getNextPanel(panel, dir = 1) {
91
86
  const idx = this.enabledPanels.indexOf(panel);
92
87
  return this.enabledPanels[idx + dir] || panel;
93
88
  }
94
89
  getPanelHeader(panel) {
95
- return panel.shadowRoot?.querySelector('div[part="header"]');
90
+ return panel.renderRoot.querySelector('div[part="header"]');
96
91
  }
97
92
  async closePanel(panel) {
98
- if (!panel.open) {
93
+ if (!(panel.open &&
94
+ panel.emitEvent('igcClosing', { cancelable: true, detail: panel }))) {
99
95
  return;
100
96
  }
101
- if (!panel.emitEvent('igcClosing', { cancelable: true, detail: panel })) {
102
- return;
103
- }
104
- panel.hide();
105
- await panel.updateComplete;
97
+ await panel.hide();
106
98
  panel.emitEvent('igcClosed', { detail: panel });
107
99
  }
108
100
  async openPanel(panel) {
109
- if (panel.open) {
110
- return;
111
- }
112
- if (!panel.emitEvent('igcOpening', { cancelable: true, detail: panel })) {
101
+ if (panel.open ||
102
+ !panel.emitEvent('igcOpening', { cancelable: true, detail: panel })) {
113
103
  return;
114
104
  }
115
- panel.show();
116
- await panel.updateComplete;
105
+ await panel.show();
117
106
  panel.emitEvent('igcOpened', { detail: panel });
118
107
  }
119
- hideAll() {
120
- this.panels.forEach((p) => p.hide());
108
+ async hideAll() {
109
+ await Promise.all(this.panels.map((panel) => panel.hide()));
121
110
  }
122
- showAll() {
123
- this.panels.forEach((p) => p.show());
111
+ async showAll() {
112
+ await Promise.all(this.panels.map((panel) => panel.show()));
124
113
  }
125
114
  render() {
126
115
  return html `<slot></slot>`;
@@ -130,13 +119,14 @@ IgcAccordionComponent.tagName = 'igc-accordion';
130
119
  IgcAccordionComponent.styles = styles;
131
120
  export default IgcAccordionComponent;
132
121
  __decorate([
133
- queryAssignedElements({ selector: 'igc-expansion-panel:not([disabled])' })
122
+ queryAssignedElements({
123
+ selector: `${IgcExpansionPanelComponent.tagName}:not([disabled])`,
124
+ })
134
125
  ], IgcAccordionComponent.prototype, "enabledPanels", void 0);
135
126
  __decorate([
136
127
  property({ attribute: 'single-expand', reflect: true, type: Boolean })
137
128
  ], IgcAccordionComponent.prototype, "singleExpand", void 0);
138
129
  __decorate([
139
- queryAssignedElements({ selector: 'igc-expansion-panel' }),
140
- blazorSuppress()
130
+ queryAssignedElements({ selector: IgcExpansionPanelComponent.tagName })
141
131
  ], IgcAccordionComponent.prototype, "panels", void 0);
142
132
  //# sourceMappingURL=accordion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../../src/components/accordion/accordion.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,EACL,cAAc,EACd,MAAM,EACN,SAAS,EACT,OAAO,EACP,MAAM,EACN,OAAO,EACP,QAAQ,GACT,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,0BAA0B,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAUxD,MAAqB,qBAAsB,SAAQ,UAAU;IAKpD,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,qBAAqB,EAAE,0BAA0B,CAAC,CAAC;IACvE,CAAC;IAKD,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,IAAY,WAAW;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IAcD;QACE,KAAK,EAAE,CAAC;QARH,iBAAY,GAAG,KAAK,CAAC;QAU1B,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAE7D,cAAc,CAAC,IAAI,EAAE;YACnB,IAAI,EAAE,IAAI,CAAC,cAAc;YACzB,eAAe,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;SAC1C,CAAC;aACC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;aAClE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;aAChE,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;aAC/B,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;aACjC,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;aAClD,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACxD,CAAC;IAEO,cAAc,CAAC,MAAe;QACpC,OAAO,CAAC,CACN,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC,OAAO,CAAC;YAClD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAoC,CAAC,CAClE,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,KAAoB;QACvC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAoC,CAAC;QAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAE5C,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAEO,YAAY,CAAC,KAAoB;QACvC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAoC,CAAC;QAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAE3C,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAEO,WAAW;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;QAClC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,KAAoB;QACpC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAoC,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;QAElC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,KAAY;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAoC,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACvD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/B,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;gBAC1B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,YAAY,CAAC,KAAiC,EAAE,MAAc,CAAC;QACrE,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC;IAChD,CAAC;IAEO,cAAc,CAAC,KAAiC;QACtD,OAAO,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,oBAAoB,CAAgB,CAAC;IAC9E,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,KAAiC;QACxD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACxE,OAAO;QACT,CAAC;QACD,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,MAAM,KAAK,CAAC,cAAc,CAAC;QAE3B,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAClD,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,KAAiC;QACvD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACxE,OAAO;QACT,CAAC;QAED,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,MAAM,KAAK,CAAC,cAAc,CAAC;QAE3B,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAClD,CAAC;IAGM,OAAO;QACZ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAGM,OAAO;QACZ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;;AA/JsB,6BAAO,GAAG,eAAe,AAAlB,CAAmB;AAC1B,4BAAM,GAAG,MAAM,AAAT,CAAU;eAFpB,qBAAqB;AAUhC;IADP,qBAAqB,CAAC,EAAE,QAAQ,EAAE,qCAAqC,EAAE,CAAC;4DACjB;AAenD;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;2DAC3C;AAKrB;IAFN,qBAAqB,CAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAC1D,cAAc,EAAE;qDACiC","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property, queryAssignedElements } from 'lit/decorators.js';\n\nimport {\n addKeybindings,\n altKey,\n arrowDown,\n arrowUp,\n endKey,\n homeKey,\n shiftKey,\n} from '../common/controllers/key-bindings.js';\nimport { blazorSuppress } from '../common/decorators/blazorSuppress.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport IgcExpansionPanelComponent from '../expansion-panel/expansion-panel.js';\nimport { styles } from './themes/accordion.base.css.js';\n\n/**\n * The Accordion is a container-based component that can house multiple expansion panels\n * and offers keyboard navigation.\n *\n * @element igc-accordion\n *\n * @slot - Renders the expansion panels inside default slot.\n */\nexport default class IgcAccordionComponent extends LitElement {\n public static readonly tagName = 'igc-accordion';\n public static override styles = styles;\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcAccordionComponent, IgcExpansionPanelComponent);\n }\n\n @queryAssignedElements({ selector: 'igc-expansion-panel:not([disabled])' })\n private enabledPanels!: Array<IgcExpansionPanelComponent>;\n\n private get firstEnabled() {\n return this.enabledPanels[0];\n }\n\n private get lastEnabled() {\n return this.enabledPanels[this.enabledPanels.length - 1];\n }\n\n /**\n * Allows only one panel to be expanded at a time.\n * @attr single-expand\n */\n @property({ attribute: 'single-expand', reflect: true, type: Boolean })\n public singleExpand = false;\n\n /** Returns all of the accordions's direct igc-expansion-panel children. */\n @queryAssignedElements({ selector: 'igc-expansion-panel' })\n @blazorSuppress()\n public panels!: Array<IgcExpansionPanelComponent>;\n\n constructor() {\n super();\n\n this.addEventListener('igcOpening', this.handlePanelOpening);\n\n addKeybindings(this, {\n skip: this.skipKeybinding,\n bindingDefaults: { preventDefault: true },\n })\n .set(homeKey, () => this.getPanelHeader(this.firstEnabled).focus())\n .set(endKey, () => this.getPanelHeader(this.lastEnabled).focus())\n .set(arrowUp, this.navigatePrev)\n .set(arrowDown, this.navigateNext)\n .set([shiftKey, altKey, arrowDown], this.expandAll)\n .set([shiftKey, altKey, arrowUp], this.collapseAll);\n }\n\n private skipKeybinding(target: Element) {\n return !(\n target.matches(IgcExpansionPanelComponent.tagName) &&\n this.enabledPanels.includes(target as IgcExpansionPanelComponent)\n );\n }\n\n private navigatePrev(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n const next = this.getNextPanel(current, -1);\n\n if (event.altKey || next === current) {\n return;\n }\n\n this.getPanelHeader(next).focus();\n }\n\n private navigateNext(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n const next = this.getNextPanel(current, 1);\n\n if (event.altKey || next === current) {\n return;\n }\n\n this.getPanelHeader(next).focus();\n }\n\n private collapseAll() {\n const panels = this.enabledPanels;\n for (const panel of panels) {\n this.closePanel(panel);\n }\n }\n\n private expandAll(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n const panels = this.enabledPanels;\n\n if (this.singleExpand) {\n for (const panel of panels) {\n current === panel ? this.openPanel(panel) : this.closePanel(panel);\n }\n } else {\n for (const panel of panels) {\n this.openPanel(panel);\n }\n }\n }\n\n private handlePanelOpening(event: Event) {\n const panel = event.target as IgcExpansionPanelComponent;\n if (!this.singleExpand || !this.panels.includes(panel)) {\n return;\n }\n this.enabledPanels.forEach((p) => {\n if (p.open && p !== panel) {\n this.closePanel(p);\n }\n });\n }\n\n private getNextPanel(panel: IgcExpansionPanelComponent, dir: 1 | -1 = 1) {\n const idx = this.enabledPanels.indexOf(panel);\n return this.enabledPanels[idx + dir] || panel;\n }\n\n private getPanelHeader(panel: IgcExpansionPanelComponent) {\n return panel.shadowRoot?.querySelector('div[part=\"header\"]') as HTMLElement;\n }\n\n private async closePanel(panel: IgcExpansionPanelComponent) {\n if (!panel.open) {\n return;\n }\n if (!panel.emitEvent('igcClosing', { cancelable: true, detail: panel })) {\n return;\n }\n panel.hide();\n await panel.updateComplete;\n\n panel.emitEvent('igcClosed', { detail: panel });\n }\n\n private async openPanel(panel: IgcExpansionPanelComponent) {\n if (panel.open) {\n return;\n }\n if (!panel.emitEvent('igcOpening', { cancelable: true, detail: panel })) {\n return;\n }\n\n panel.show();\n await panel.updateComplete;\n\n panel.emitEvent('igcOpened', { detail: panel });\n }\n\n /** Hides all of the child expansion panels' contents. */\n public hideAll() {\n this.panels.forEach((p) => p.hide());\n }\n\n /** Shows all of the child expansion panels' contents. */\n public showAll() {\n this.panels.forEach((p) => p.show());\n }\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-accordion': IgcAccordionComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../../src/components/accordion/accordion.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property, queryAssignedElements } from 'lit/decorators.js';\n\nimport {\n addKeybindings,\n altKey,\n arrowDown,\n arrowUp,\n endKey,\n homeKey,\n shiftKey,\n} from '../common/controllers/key-bindings.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport IgcExpansionPanelComponent from '../expansion-panel/expansion-panel.js';\nimport { styles } from './themes/accordion.base.css.js';\n\n/**\n * The Accordion is a container-based component that can house multiple expansion panels\n * and offers keyboard navigation.\n *\n * @element igc-accordion\n *\n * @slot - Renders the expansion panels inside default slot.\n */\nexport default class IgcAccordionComponent extends LitElement {\n public static readonly tagName = 'igc-accordion';\n public static override styles = styles;\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcAccordionComponent, IgcExpansionPanelComponent);\n }\n\n @queryAssignedElements({\n selector: `${IgcExpansionPanelComponent.tagName}:not([disabled])`,\n })\n private enabledPanels!: Array<IgcExpansionPanelComponent>;\n\n private get firstEnabled() {\n return this.enabledPanels[0];\n }\n\n private get lastEnabled() {\n return this.enabledPanels[this.enabledPanels.length - 1];\n }\n\n /**\n * Allows only one panel to be expanded at a time.\n * @attr single-expand\n */\n @property({ attribute: 'single-expand', reflect: true, type: Boolean })\n public singleExpand = false;\n\n /* blazorSuppress */\n /** Returns all of the accordions's direct igc-expansion-panel children. */\n @queryAssignedElements({ selector: IgcExpansionPanelComponent.tagName })\n public panels!: Array<IgcExpansionPanelComponent>;\n\n constructor() {\n super();\n\n this.addEventListener('igcOpening', this.handlePanelOpening);\n\n addKeybindings(this, {\n skip: this.skipKeybinding,\n bindingDefaults: { preventDefault: true },\n })\n .set(homeKey, () => this.getPanelHeader(this.firstEnabled).focus())\n .set(endKey, () => this.getPanelHeader(this.lastEnabled).focus())\n .set(arrowUp, this.navigatePrev)\n .set(arrowDown, this.navigateNext)\n .set([shiftKey, altKey, arrowDown], this.expandAll)\n .set([shiftKey, altKey, arrowUp], this.collapseAll);\n }\n\n private skipKeybinding(target: Element) {\n return !(\n target.matches(IgcExpansionPanelComponent.tagName) &&\n this.enabledPanels.includes(target as IgcExpansionPanelComponent)\n );\n }\n\n private navigatePrev(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n const next = this.getNextPanel(current, -1);\n\n if (event.altKey || next === current) {\n return;\n }\n\n this.getPanelHeader(next).focus();\n }\n\n private navigateNext(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n const next = this.getNextPanel(current, 1);\n\n if (event.altKey || next === current) {\n return;\n }\n\n this.getPanelHeader(next).focus();\n }\n\n private collapseAll() {\n for (const panel of this.enabledPanels) {\n this.closePanel(panel);\n }\n }\n\n private expandAll(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n\n for (const panel of this.enabledPanels) {\n if (this.singleExpand) {\n current === panel ? this.openPanel(panel) : this.closePanel(panel);\n } else {\n this.openPanel(panel);\n }\n }\n }\n\n private handlePanelOpening(event: Event) {\n const current = event.target as IgcExpansionPanelComponent;\n\n if (!(this.singleExpand && this.panels.includes(current))) {\n return;\n }\n\n for (const panel of this.enabledPanels) {\n if (panel.open && panel !== current) {\n this.closePanel(panel);\n }\n }\n }\n\n private getNextPanel(panel: IgcExpansionPanelComponent, dir: 1 | -1 = 1) {\n const idx = this.enabledPanels.indexOf(panel);\n return this.enabledPanels[idx + dir] || panel;\n }\n\n private getPanelHeader(panel: IgcExpansionPanelComponent) {\n return panel.renderRoot.querySelector('div[part=\"header\"]') as HTMLElement;\n }\n\n private async closePanel(panel: IgcExpansionPanelComponent) {\n if (\n !(\n panel.open &&\n panel.emitEvent('igcClosing', { cancelable: true, detail: panel })\n )\n ) {\n return;\n }\n\n await panel.hide();\n panel.emitEvent('igcClosed', { detail: panel });\n }\n\n private async openPanel(panel: IgcExpansionPanelComponent) {\n if (\n panel.open ||\n !panel.emitEvent('igcOpening', { cancelable: true, detail: panel })\n ) {\n return;\n }\n\n await panel.show();\n panel.emitEvent('igcOpened', { detail: panel });\n }\n\n /** Hides all of the child expansion panels' contents. */\n public async hideAll(): Promise<void> {\n await Promise.all(this.panels.map((panel) => panel.hide()));\n }\n\n /** Shows all of the child expansion panels' contents. */\n public async showAll(): Promise<void> {\n await Promise.all(this.panels.map((panel) => panel.show()));\n }\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-accordion': IgcAccordionComponent;\n }\n}\n"]}