igniteui-webcomponents 6.1.2 → 6.2.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 (502) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/LICENSE +1 -1
  3. package/README.md +13 -1
  4. package/components/accordion/accordion.js +1 -4
  5. package/components/accordion/accordion.js.map +1 -1
  6. package/components/accordion/themes/accordion.base.css.js +1 -1
  7. package/components/accordion/themes/accordion.base.css.js.map +1 -1
  8. package/components/banner/themes/banner.base.css.js +1 -1
  9. package/components/banner/themes/banner.base.css.js.map +1 -1
  10. package/components/banner/themes/shared/banner.bootstrap.css.js +1 -1
  11. package/components/banner/themes/shared/banner.bootstrap.css.js.map +1 -1
  12. package/components/banner/themes/shared/banner.fluent.css.js +1 -1
  13. package/components/banner/themes/shared/banner.fluent.css.js.map +1 -1
  14. package/components/banner/themes/shared/banner.indigo.css.js +1 -1
  15. package/components/banner/themes/shared/banner.indigo.css.js.map +1 -1
  16. package/components/banner/themes/shared/banner.material.css.js +1 -1
  17. package/components/banner/themes/shared/banner.material.css.js.map +1 -1
  18. package/components/button/themes/button/button.base.css.js +1 -1
  19. package/components/button/themes/button/button.base.css.js.map +1 -1
  20. package/components/button/themes/button/shared/button.common.css.js +1 -1
  21. package/components/button/themes/button/shared/button.common.css.js.map +1 -1
  22. package/components/button/themes/button/shared/button.fluent.css.js +1 -1
  23. package/components/button/themes/button/shared/button.fluent.css.js.map +1 -1
  24. package/components/button/themes/button/shared/button.indigo.css.js +1 -1
  25. package/components/button/themes/button/shared/button.indigo.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/themes/icon-button/shared/icon-button.bootstrap.css.js +1 -1
  29. package/components/button/themes/icon-button/shared/icon-button.bootstrap.css.js.map +1 -1
  30. package/components/button/themes/icon-button/shared/icon-button.fluent.css.js +1 -1
  31. package/components/button/themes/icon-button/shared/icon-button.fluent.css.js.map +1 -1
  32. package/components/button/themes/icon-button/shared/icon-button.indigo.css.js +1 -1
  33. package/components/button/themes/icon-button/shared/icon-button.indigo.css.js.map +1 -1
  34. package/components/button/themes/icon-button/shared/icon-button.material.css.js +1 -1
  35. package/components/button/themes/icon-button/shared/icon-button.material.css.js.map +1 -1
  36. package/components/button-group/themes/shared/button/button.bootstrap.css.js +1 -1
  37. package/components/button-group/themes/shared/button/button.bootstrap.css.js.map +1 -1
  38. package/components/button-group/themes/shared/button/button.common.css.js +1 -1
  39. package/components/button-group/themes/shared/button/button.common.css.js.map +1 -1
  40. package/components/button-group/themes/shared/button/button.indigo.css.js +1 -1
  41. package/components/button-group/themes/shared/button/button.indigo.css.js.map +1 -1
  42. package/components/calendar/calendar.d.ts +1 -1
  43. package/components/calendar/days-view/days-view.js +1 -3
  44. package/components/calendar/days-view/days-view.js.map +1 -1
  45. package/components/calendar/months-view/months-view.js +1 -3
  46. package/components/calendar/months-view/months-view.js.map +1 -1
  47. package/components/calendar/themes/calendar.base.css.js +1 -1
  48. package/components/calendar/themes/calendar.base.css.js.map +1 -1
  49. package/components/calendar/themes/days-view.base.css.js +1 -1
  50. package/components/calendar/themes/days-view.base.css.js.map +1 -1
  51. package/components/calendar/themes/shared/bootstrap/calendar.bootstrap.css.js +1 -1
  52. package/components/calendar/themes/shared/bootstrap/calendar.bootstrap.css.js.map +1 -1
  53. package/components/calendar/themes/shared/bootstrap/days-view.bootstrap.css.js +1 -1
  54. package/components/calendar/themes/shared/bootstrap/days-view.bootstrap.css.js.map +1 -1
  55. package/components/calendar/themes/shared/bootstrap/year-month-view.bootstrap.css.js +1 -1
  56. package/components/calendar/themes/shared/bootstrap/year-month-view.bootstrap.css.js.map +1 -1
  57. package/components/calendar/themes/shared/fluent/calendar.fluent.css.js +1 -1
  58. package/components/calendar/themes/shared/fluent/calendar.fluent.css.js.map +1 -1
  59. package/components/calendar/themes/shared/indigo/calendar.indigo.css.js +1 -1
  60. package/components/calendar/themes/shared/indigo/calendar.indigo.css.js.map +1 -1
  61. package/components/calendar/themes/shared/material/calendar.material.css.js +1 -1
  62. package/components/calendar/themes/shared/material/calendar.material.css.js.map +1 -1
  63. package/components/calendar/themes/year-month-view.base.css.js +1 -1
  64. package/components/calendar/themes/year-month-view.base.css.js.map +1 -1
  65. package/components/calendar/years-view/years-view.js +1 -3
  66. package/components/calendar/years-view/years-view.js.map +1 -1
  67. package/components/card/themes/card.actions.base.css.js +1 -1
  68. package/components/card/themes/card.actions.base.css.js.map +1 -1
  69. package/components/card/themes/card.content.base.css.js +1 -1
  70. package/components/card/themes/card.content.base.css.js.map +1 -1
  71. package/components/card/themes/card.header.base.css.js +1 -1
  72. package/components/card/themes/card.header.base.css.js.map +1 -1
  73. package/components/card/themes/content.js +7 -0
  74. package/components/card/themes/content.js.map +1 -1
  75. package/components/card/themes/shared/actions/card.actions.bootstrap.css.js +1 -1
  76. package/components/card/themes/shared/actions/card.actions.bootstrap.css.js.map +1 -1
  77. package/components/card/themes/shared/actions/card.actions.indigo.css.js +1 -1
  78. package/components/card/themes/shared/actions/card.actions.indigo.css.js.map +1 -1
  79. package/components/card/themes/shared/container/card.bootstrap.css.js +1 -1
  80. package/components/card/themes/shared/container/card.bootstrap.css.js.map +1 -1
  81. package/components/card/themes/shared/container/card.indigo.css.js +1 -1
  82. package/components/card/themes/shared/container/card.indigo.css.js.map +1 -1
  83. package/components/card/themes/shared/content/card.content.bootstrap.css.js +1 -1
  84. package/components/card/themes/shared/content/card.content.bootstrap.css.js.map +1 -1
  85. package/components/card/themes/shared/content/card.content.indigo.css.d.ts +1 -0
  86. package/components/card/themes/shared/content/card.content.indigo.css.js +3 -0
  87. package/components/card/themes/shared/content/card.content.indigo.css.js.map +1 -0
  88. package/components/card/themes/shared/header/card.header.fluent.css.js +1 -1
  89. package/components/card/themes/shared/header/card.header.fluent.css.js.map +1 -1
  90. package/components/card/themes/shared/header/card.header.indigo.css.js +1 -1
  91. package/components/card/themes/shared/header/card.header.indigo.css.js.map +1 -1
  92. package/components/carousel/carousel-indicator.d.ts +1 -1
  93. package/components/carousel/carousel-indicator.js.map +1 -1
  94. package/components/carousel/carousel-slide.d.ts +3 -3
  95. package/components/carousel/carousel-slide.js +7 -13
  96. package/components/carousel/carousel-slide.js.map +1 -1
  97. package/components/carousel/carousel.d.ts +39 -38
  98. package/components/carousel/carousel.js +160 -156
  99. package/components/carousel/carousel.js.map +1 -1
  100. package/components/carousel/themes/carousel.base.css.js +1 -1
  101. package/components/carousel/themes/carousel.base.css.js.map +1 -1
  102. package/components/carousel/themes/shared/carousel.indigo.css.js +1 -1
  103. package/components/carousel/themes/shared/carousel.indigo.css.js.map +1 -1
  104. package/components/checkbox/checkbox-base.d.ts +3 -5
  105. package/components/checkbox/checkbox-base.js +15 -21
  106. package/components/checkbox/checkbox-base.js.map +1 -1
  107. package/components/checkbox/checkbox.d.ts +3 -4
  108. package/components/checkbox/checkbox.js +18 -17
  109. package/components/checkbox/checkbox.js.map +1 -1
  110. package/components/checkbox/switch.d.ts +0 -1
  111. package/components/checkbox/switch.js +7 -10
  112. package/components/checkbox/switch.js.map +1 -1
  113. package/components/checkbox/themes/dark/checkbox/checkbox.bootstrap.css.js +1 -1
  114. package/components/checkbox/themes/dark/checkbox/checkbox.bootstrap.css.js.map +1 -1
  115. package/components/checkbox/themes/dark/checkbox/checkbox.fluent.css.js +1 -1
  116. package/components/checkbox/themes/dark/checkbox/checkbox.fluent.css.js.map +1 -1
  117. package/components/checkbox/themes/dark/switch/switch.bootstrap.css.js +1 -1
  118. package/components/checkbox/themes/dark/switch/switch.bootstrap.css.js.map +1 -1
  119. package/components/checkbox/themes/dark/switch/switch.fluent.css.js +1 -1
  120. package/components/checkbox/themes/dark/switch/switch.fluent.css.js.map +1 -1
  121. package/components/checkbox/themes/dark/switch/switch.indigo.css.js +1 -1
  122. package/components/checkbox/themes/dark/switch/switch.indigo.css.js.map +1 -1
  123. package/components/checkbox/themes/dark/switch/switch.material.css.js +1 -1
  124. package/components/checkbox/themes/dark/switch/switch.material.css.js.map +1 -1
  125. package/components/checkbox/themes/light/switch/switch.bootstrap.css.js +1 -1
  126. package/components/checkbox/themes/light/switch/switch.bootstrap.css.js.map +1 -1
  127. package/components/checkbox/themes/light/switch/switch.fluent.css.js +1 -1
  128. package/components/checkbox/themes/light/switch/switch.fluent.css.js.map +1 -1
  129. package/components/checkbox/themes/light/switch/switch.indigo.css.js +1 -1
  130. package/components/checkbox/themes/light/switch/switch.indigo.css.js.map +1 -1
  131. package/components/checkbox/themes/light/switch/switch.material.css.js +1 -1
  132. package/components/checkbox/themes/light/switch/switch.material.css.js.map +1 -1
  133. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js +1 -1
  134. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js.map +1 -1
  135. package/components/checkbox/themes/shared/checkbox/checkbox.common.css.js +1 -1
  136. package/components/checkbox/themes/shared/checkbox/checkbox.common.css.js.map +1 -1
  137. package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js +1 -1
  138. package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js.map +1 -1
  139. package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js +1 -1
  140. package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js.map +1 -1
  141. package/components/checkbox/themes/shared/checkbox/checkbox.material.css.js +1 -1
  142. package/components/checkbox/themes/shared/checkbox/checkbox.material.css.js.map +1 -1
  143. package/components/checkbox/themes/shared/switch/switch.bootstrap.css.js +1 -1
  144. package/components/checkbox/themes/shared/switch/switch.bootstrap.css.js.map +1 -1
  145. package/components/checkbox/themes/shared/switch/switch.common.css.js +1 -1
  146. package/components/checkbox/themes/shared/switch/switch.common.css.js.map +1 -1
  147. package/components/checkbox/themes/shared/switch/switch.fluent.css.js +1 -1
  148. package/components/checkbox/themes/shared/switch/switch.fluent.css.js.map +1 -1
  149. package/components/checkbox/themes/shared/switch/switch.indigo.css.js +1 -1
  150. package/components/checkbox/themes/shared/switch/switch.indigo.css.js.map +1 -1
  151. package/components/chip/chip.d.ts +11 -11
  152. package/components/chip/chip.js +61 -65
  153. package/components/chip/chip.js.map +1 -1
  154. package/components/chip/themes/chip.base.css.js +1 -1
  155. package/components/chip/themes/chip.base.css.js.map +1 -1
  156. package/components/chip/themes/shared/chip.indigo.css.js +1 -1
  157. package/components/chip/themes/shared/chip.indigo.css.js.map +1 -1
  158. package/components/combo/combo.d.ts +3 -3
  159. package/components/combo/combo.js +12 -6
  160. package/components/combo/combo.js.map +1 -1
  161. package/components/combo/controllers/navigation.js +1 -1
  162. package/components/combo/controllers/navigation.js.map +1 -1
  163. package/components/combo/themes/combo-item.base.css.js +1 -1
  164. package/components/combo/themes/combo-item.base.css.js.map +1 -1
  165. package/components/combo/themes/combo.base.css.js +1 -1
  166. package/components/combo/themes/combo.base.css.js.map +1 -1
  167. package/components/combo/themes/shared/combo.bootstrap.css.js +1 -1
  168. package/components/combo/themes/shared/combo.bootstrap.css.js.map +1 -1
  169. package/components/combo/themes/shared/combo.common.css.js +1 -1
  170. package/components/combo/themes/shared/combo.common.css.js.map +1 -1
  171. package/components/combo/themes/shared/combo.fluent.css.js +1 -1
  172. package/components/combo/themes/shared/combo.fluent.css.js.map +1 -1
  173. package/components/combo/themes/shared/combo.indigo.css.js +1 -1
  174. package/components/combo/themes/shared/combo.indigo.css.js.map +1 -1
  175. package/components/combo/themes/shared/combo.material.css.js +1 -1
  176. package/components/combo/themes/shared/combo.material.css.js.map +1 -1
  177. package/components/common/controllers/internals.d.ts +66 -2
  178. package/components/common/controllers/internals.js +21 -0
  179. package/components/common/controllers/internals.js.map +1 -1
  180. package/components/common/controllers/key-bindings.js +4 -3
  181. package/components/common/controllers/key-bindings.js.map +1 -1
  182. package/components/common/controllers/slot.d.ts +87 -0
  183. package/components/common/controllers/slot.js +75 -0
  184. package/components/common/controllers/slot.js.map +1 -0
  185. package/components/common/mixins/forms/associated.d.ts +1 -1
  186. package/components/common/mixins/forms/associated.js +91 -36
  187. package/components/common/mixins/forms/associated.js.map +1 -1
  188. package/components/common/mixins/forms/form-transformers.d.ts +21 -0
  189. package/components/common/mixins/forms/form-transformers.js +64 -0
  190. package/components/common/mixins/forms/form-transformers.js.map +1 -0
  191. package/components/common/mixins/forms/form-value.d.ts +7 -36
  192. package/components/common/mixins/forms/form-value.js +2 -64
  193. package/components/common/mixins/forms/form-value.js.map +1 -1
  194. package/components/common/mixins/forms/types.d.ts +19 -10
  195. package/components/common/mixins/forms/types.js +2 -1
  196. package/components/common/mixins/forms/types.js.map +1 -1
  197. package/components/common/util.d.ts +20 -0
  198. package/components/common/util.js +59 -1
  199. package/components/common/util.js.map +1 -1
  200. package/components/date-picker/date-picker.d.ts +1 -3
  201. package/components/date-picker/date-picker.js +13 -15
  202. package/components/date-picker/date-picker.js.map +1 -1
  203. package/components/date-picker/themes/dark/date-picker.indigo.css.js +1 -1
  204. package/components/date-picker/themes/dark/date-picker.indigo.css.js.map +1 -1
  205. package/components/date-picker/themes/date-picker.base.css.js +1 -1
  206. package/components/date-picker/themes/date-picker.base.css.js.map +1 -1
  207. package/components/date-picker/themes/shared/date-picker.bootstrap.css.js +1 -1
  208. package/components/date-picker/themes/shared/date-picker.bootstrap.css.js.map +1 -1
  209. package/components/date-picker/themes/shared/date-picker.common.css.js +1 -1
  210. package/components/date-picker/themes/shared/date-picker.common.css.js.map +1 -1
  211. package/components/date-picker/themes/shared/date-picker.fluent.css.js +1 -1
  212. package/components/date-picker/themes/shared/date-picker.fluent.css.js.map +1 -1
  213. package/components/date-picker/themes/shared/date-picker.indigo.css.js +1 -1
  214. package/components/date-picker/themes/shared/date-picker.indigo.css.js.map +1 -1
  215. package/components/date-picker/themes/shared/date-picker.material.css.js +1 -1
  216. package/components/date-picker/themes/shared/date-picker.material.css.js.map +1 -1
  217. package/components/date-range-picker/date-range-picker.base.css.js +1 -1
  218. package/components/date-range-picker/date-range-picker.base.css.js.map +1 -1
  219. package/components/date-range-picker/date-range-picker.d.ts +2 -4
  220. package/components/date-range-picker/date-range-picker.js +19 -27
  221. package/components/date-range-picker/date-range-picker.js.map +1 -1
  222. package/components/date-range-picker/predefined-ranges-area.base.css.js +1 -1
  223. package/components/date-range-picker/predefined-ranges-area.base.css.js.map +1 -1
  224. package/components/date-range-picker/themes/dark/date-range-picker.indigo.css.js +1 -1
  225. package/components/date-range-picker/themes/dark/date-range-picker.indigo.css.js.map +1 -1
  226. package/components/date-range-picker/themes/shared/date-range-picker.bootstrap.css.js +1 -1
  227. package/components/date-range-picker/themes/shared/date-range-picker.bootstrap.css.js.map +1 -1
  228. package/components/date-range-picker/themes/shared/date-range-picker.common.css.js +1 -1
  229. package/components/date-range-picker/themes/shared/date-range-picker.common.css.js.map +1 -1
  230. package/components/date-range-picker/themes/shared/date-range-picker.fluent.css.js +1 -1
  231. package/components/date-range-picker/themes/shared/date-range-picker.fluent.css.js.map +1 -1
  232. package/components/date-range-picker/themes/shared/date-range-picker.indigo.css.js +1 -1
  233. package/components/date-range-picker/themes/shared/date-range-picker.indigo.css.js.map +1 -1
  234. package/components/date-range-picker/themes/shared/date-range-picker.material.css.js +1 -1
  235. package/components/date-range-picker/themes/shared/date-range-picker.material.css.js.map +1 -1
  236. package/components/date-time-input/date-time-input.d.ts +1 -2
  237. package/components/date-time-input/date-time-input.js +8 -8
  238. package/components/date-time-input/date-time-input.js.map +1 -1
  239. package/components/dialog/dialog.d.ts +23 -25
  240. package/components/dialog/dialog.js +108 -115
  241. package/components/dialog/dialog.js.map +1 -1
  242. package/components/dialog/themes/dark/dialog.bootstrap.css.js +1 -1
  243. package/components/dialog/themes/dark/dialog.bootstrap.css.js.map +1 -1
  244. package/components/dialog/themes/dialog.base.css.js +1 -1
  245. package/components/dialog/themes/dialog.base.css.js.map +1 -1
  246. package/components/dialog/themes/shared/dialog.bootstrap.css.js +1 -1
  247. package/components/dialog/themes/shared/dialog.bootstrap.css.js.map +1 -1
  248. package/components/dialog/themes/shared/dialog.common.css.js +1 -1
  249. package/components/dialog/themes/shared/dialog.common.css.js.map +1 -1
  250. package/components/dialog/themes/shared/dialog.fluent.css.js +1 -1
  251. package/components/dialog/themes/shared/dialog.fluent.css.js.map +1 -1
  252. package/components/dialog/themes/shared/dialog.indigo.css.js +1 -1
  253. package/components/dialog/themes/shared/dialog.indigo.css.js.map +1 -1
  254. package/components/dropdown/themes/dropdown-group.base.css.js +1 -1
  255. package/components/dropdown/themes/dropdown-group.base.css.js.map +1 -1
  256. package/components/dropdown/themes/dropdown-item.base.css.js +1 -1
  257. package/components/dropdown/themes/dropdown-item.base.css.js.map +1 -1
  258. package/components/dropdown/themes/shared/dropdown.indigo.css.js +1 -1
  259. package/components/dropdown/themes/shared/dropdown.indigo.css.js.map +1 -1
  260. package/components/dropdown/themes/shared/group/dropdown-group.fluent.css.js +1 -1
  261. package/components/dropdown/themes/shared/group/dropdown-group.fluent.css.js.map +1 -1
  262. package/components/dropdown/themes/shared/header/dropdown-header.common.css.js +1 -1
  263. package/components/dropdown/themes/shared/header/dropdown-header.common.css.js.map +1 -1
  264. package/components/dropdown/themes/shared/header/dropdown-header.indigo.css.js +1 -1
  265. package/components/dropdown/themes/shared/header/dropdown-header.indigo.css.js.map +1 -1
  266. package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js +1 -1
  267. package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js.map +1 -1
  268. package/components/expansion-panel/expansion-panel.d.ts +12 -14
  269. package/components/expansion-panel/expansion-panel.js +43 -57
  270. package/components/expansion-panel/expansion-panel.js.map +1 -1
  271. package/components/expansion-panel/themes/expansion-panel.base.css.js +1 -1
  272. package/components/expansion-panel/themes/expansion-panel.base.css.js.map +1 -1
  273. package/components/expansion-panel/themes/shared/expansion-panel.indigo.css.js +1 -1
  274. package/components/expansion-panel/themes/shared/expansion-panel.indigo.css.js.map +1 -1
  275. package/components/file-input/file-input.d.ts +1 -7
  276. package/components/file-input/file-input.js +13 -21
  277. package/components/file-input/file-input.js.map +1 -1
  278. package/components/file-input/themes/shared/file-input.bootstrap.css.js +1 -1
  279. package/components/file-input/themes/shared/file-input.bootstrap.css.js.map +1 -1
  280. package/components/file-input/themes/shared/file-input.material.css.js +1 -1
  281. package/components/file-input/themes/shared/file-input.material.css.js.map +1 -1
  282. package/components/input/input.d.ts +1 -8
  283. package/components/input/input.js +16 -23
  284. package/components/input/input.js.map +1 -1
  285. package/components/input/themes/shared/input.bootstrap.css.js +1 -1
  286. package/components/input/themes/shared/input.bootstrap.css.js.map +1 -1
  287. package/components/input/themes/shared/input.common.css.js +1 -1
  288. package/components/input/themes/shared/input.common.css.js.map +1 -1
  289. package/components/input/themes/shared/input.fluent.css.js +1 -1
  290. package/components/input/themes/shared/input.fluent.css.js.map +1 -1
  291. package/components/input/themes/shared/input.indigo.css.js +1 -1
  292. package/components/input/themes/shared/input.indigo.css.js.map +1 -1
  293. package/components/input/themes/shared/input.material.css.js +1 -1
  294. package/components/input/themes/shared/input.material.css.js.map +1 -1
  295. package/components/list/themes/header.base.css.js +1 -1
  296. package/components/list/themes/header.base.css.js.map +1 -1
  297. package/components/list/themes/item.base.css.js +1 -1
  298. package/components/list/themes/item.base.css.js.map +1 -1
  299. package/components/list/themes/shared/header/list-header.indigo.css.js +1 -1
  300. package/components/list/themes/shared/header/list-header.indigo.css.js.map +1 -1
  301. package/components/list/themes/shared/item/list-item.indigo.css.js +1 -1
  302. package/components/list/themes/shared/item/list-item.indigo.css.js.map +1 -1
  303. package/components/mask-input/mask-input-base.js +1 -0
  304. package/components/mask-input/mask-input-base.js.map +1 -1
  305. package/components/mask-input/mask-input.d.ts +2 -3
  306. package/components/mask-input/mask-input.js +5 -8
  307. package/components/mask-input/mask-input.js.map +1 -1
  308. package/components/nav-drawer/nav-drawer-item.d.ts +3 -4
  309. package/components/nav-drawer/nav-drawer-item.js +15 -18
  310. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  311. package/components/nav-drawer/nav-drawer.d.ts +1 -2
  312. package/components/nav-drawer/nav-drawer.js +9 -11
  313. package/components/nav-drawer/nav-drawer.js.map +1 -1
  314. package/components/nav-drawer/themes/container.base.css.js +1 -1
  315. package/components/nav-drawer/themes/container.base.css.js.map +1 -1
  316. package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js +1 -1
  317. package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js.map +1 -1
  318. package/components/nav-drawer/themes/shared/container/nav-drawer.common.css.js +1 -1
  319. package/components/nav-drawer/themes/shared/container/nav-drawer.common.css.js.map +1 -1
  320. package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js +1 -1
  321. package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js.map +1 -1
  322. package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js +1 -1
  323. package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js.map +1 -1
  324. package/components/nav-drawer/themes/shared/header-item/header-item.bootstrap.css.js +1 -1
  325. package/components/nav-drawer/themes/shared/header-item/header-item.bootstrap.css.js.map +1 -1
  326. package/components/nav-drawer/themes/shared/header-item/header-item.fluent.css.js +1 -1
  327. package/components/nav-drawer/themes/shared/header-item/header-item.fluent.css.js.map +1 -1
  328. package/components/nav-drawer/themes/shared/header-item/header-item.indigo.css.js +1 -1
  329. package/components/nav-drawer/themes/shared/header-item/header-item.indigo.css.js.map +1 -1
  330. package/components/nav-drawer/themes/shared/header-item/header-item.material.css.js +1 -1
  331. package/components/nav-drawer/themes/shared/header-item/header-item.material.css.js.map +1 -1
  332. package/components/nav-drawer/themes/shared/item/item.bootstrap.css.js +1 -1
  333. package/components/nav-drawer/themes/shared/item/item.bootstrap.css.js.map +1 -1
  334. package/components/nav-drawer/themes/shared/item/item.fluent.css.js +1 -1
  335. package/components/nav-drawer/themes/shared/item/item.fluent.css.js.map +1 -1
  336. package/components/nav-drawer/themes/shared/item/item.indigo.css.js +1 -1
  337. package/components/nav-drawer/themes/shared/item/item.indigo.css.js.map +1 -1
  338. package/components/nav-drawer/themes/shared/item/item.material.css.js +1 -1
  339. package/components/nav-drawer/themes/shared/item/item.material.css.js.map +1 -1
  340. package/components/navbar/themes/navbar.base.css.js +1 -1
  341. package/components/navbar/themes/navbar.base.css.js.map +1 -1
  342. package/components/navbar/themes/shared/navbar.bootstrap.css.js +1 -1
  343. package/components/navbar/themes/shared/navbar.bootstrap.css.js.map +1 -1
  344. package/components/navbar/themes/shared/navbar.indigo.css.js +1 -1
  345. package/components/navbar/themes/shared/navbar.indigo.css.js.map +1 -1
  346. package/components/popover/popover.d.ts +17 -16
  347. package/components/popover/popover.js +81 -91
  348. package/components/popover/popover.js.map +1 -1
  349. package/components/progress/base.d.ts +8 -8
  350. package/components/progress/base.js +19 -23
  351. package/components/progress/base.js.map +1 -1
  352. package/components/progress/circular-gradient.js.map +1 -1
  353. package/components/progress/circular-progress.d.ts +3 -4
  354. package/components/progress/circular-progress.js +15 -18
  355. package/components/progress/circular-progress.js.map +1 -1
  356. package/components/progress/linear-progress.d.ts +1 -0
  357. package/components/progress/linear-progress.js +5 -1
  358. package/components/progress/linear-progress.js.map +1 -1
  359. package/components/progress/themes/linear/shared/linear.progress.fluent.css.js +1 -1
  360. package/components/progress/themes/linear/shared/linear.progress.fluent.css.js.map +1 -1
  361. package/components/progress/themes/linear/shared/linear.progress.indigo.css.js +1 -1
  362. package/components/progress/themes/linear/shared/linear.progress.indigo.css.js.map +1 -1
  363. package/components/radio/radio.d.ts +3 -5
  364. package/components/radio/radio.js +33 -31
  365. package/components/radio/radio.js.map +1 -1
  366. package/components/radio/themes/dark/radio.fluent.css.js +1 -1
  367. package/components/radio/themes/dark/radio.fluent.css.js.map +1 -1
  368. package/components/radio/themes/shared/radio.bootstrap.css.js +1 -1
  369. package/components/radio/themes/shared/radio.bootstrap.css.js.map +1 -1
  370. package/components/radio/themes/shared/radio.common.css.js +1 -1
  371. package/components/radio/themes/shared/radio.common.css.js.map +1 -1
  372. package/components/radio/themes/shared/radio.fluent.css.js +1 -1
  373. package/components/radio/themes/shared/radio.fluent.css.js.map +1 -1
  374. package/components/radio/themes/shared/radio.indigo.css.js +1 -1
  375. package/components/radio/themes/shared/radio.indigo.css.js.map +1 -1
  376. package/components/radio/themes/shared/radio.material.css.js +1 -1
  377. package/components/radio/themes/shared/radio.material.css.js.map +1 -1
  378. package/components/radio-group/radio-group.d.ts +4 -4
  379. package/components/radio-group/radio-group.js +24 -21
  380. package/components/radio-group/radio-group.js.map +1 -1
  381. package/components/radio-group/themes/radio-group.base.css.js +1 -1
  382. package/components/radio-group/themes/radio-group.base.css.js.map +1 -1
  383. package/components/radio-group/themes/shared/radio-group.bootstrap.css.js +1 -1
  384. package/components/radio-group/themes/shared/radio-group.bootstrap.css.js.map +1 -1
  385. package/components/radio-group/themes/shared/radio-group.fluent.css.js +1 -1
  386. package/components/radio-group/themes/shared/radio-group.fluent.css.js.map +1 -1
  387. package/components/radio-group/themes/shared/radio-group.indigo.css.js +1 -1
  388. package/components/radio-group/themes/shared/radio-group.indigo.css.js.map +1 -1
  389. package/components/radio-group/themes/shared/radio-group.material.css.js +1 -1
  390. package/components/radio-group/themes/shared/radio-group.material.css.js.map +1 -1
  391. package/components/rating/rating.d.ts +1 -2
  392. package/components/rating/rating.js +4 -4
  393. package/components/rating/rating.js.map +1 -1
  394. package/components/rating/themes/rating.base.css.js +1 -1
  395. package/components/rating/themes/rating.base.css.js.map +1 -1
  396. package/components/rating/themes/shared/rating.indigo.css.js +1 -1
  397. package/components/rating/themes/shared/rating.indigo.css.js.map +1 -1
  398. package/components/resize-container/resize-container.d.ts +1 -1
  399. package/components/select/select.d.ts +35 -38
  400. package/components/select/select.js +138 -147
  401. package/components/select/select.js.map +1 -1
  402. package/components/select/themes/dark/select.bootstrap.css.js +1 -1
  403. package/components/select/themes/dark/select.bootstrap.css.js.map +1 -1
  404. package/components/select/themes/light/select.bootstrap.css.js +1 -1
  405. package/components/select/themes/light/select.bootstrap.css.js.map +1 -1
  406. package/components/select/themes/shared/select.bootstrap.css.js +1 -1
  407. package/components/select/themes/shared/select.bootstrap.css.js.map +1 -1
  408. package/components/select/themes/shared/select.common.css.js +1 -1
  409. package/components/select/themes/shared/select.common.css.js.map +1 -1
  410. package/components/select/themes/shared/select.fluent.css.js +1 -1
  411. package/components/select/themes/shared/select.fluent.css.js.map +1 -1
  412. package/components/select/themes/shared/select.indigo.css.js +1 -1
  413. package/components/select/themes/shared/select.indigo.css.js.map +1 -1
  414. package/components/select/themes/shared/select.material.css.js +1 -1
  415. package/components/select/themes/shared/select.material.css.js.map +1 -1
  416. package/components/slider/slider-base.js +0 -1
  417. package/components/slider/slider-base.js.map +1 -1
  418. package/components/slider/slider-label.js.map +1 -1
  419. package/components/slider/slider.d.ts +1 -2
  420. package/components/slider/slider.js +5 -2
  421. package/components/slider/slider.js.map +1 -1
  422. package/components/slider/themes/shared/slider.common.css.js +1 -1
  423. package/components/slider/themes/shared/slider.common.css.js.map +1 -1
  424. package/components/slider/themes/slider.base.css.js +1 -1
  425. package/components/slider/themes/slider.base.css.js.map +1 -1
  426. package/components/snackbar/themes/shared/snackbar.indigo.css.js +1 -1
  427. package/components/snackbar/themes/shared/snackbar.indigo.css.js.map +1 -1
  428. package/components/snackbar/themes/snackbar.base.css.js +1 -1
  429. package/components/snackbar/themes/snackbar.base.css.js.map +1 -1
  430. package/components/stepper/step.d.ts +1 -1
  431. package/components/tabs/tabs.js +0 -1
  432. package/components/tabs/tabs.js.map +1 -1
  433. package/components/tabs/themes/shared/tab/tab.bootstrap.css.js +1 -1
  434. package/components/tabs/themes/shared/tab/tab.bootstrap.css.js.map +1 -1
  435. package/components/tabs/themes/shared/tab/tab.fluent.css.js +1 -1
  436. package/components/tabs/themes/shared/tab/tab.fluent.css.js.map +1 -1
  437. package/components/tabs/themes/shared/tab/tab.indigo.css.js +1 -1
  438. package/components/tabs/themes/shared/tab/tab.indigo.css.js.map +1 -1
  439. package/components/tabs/themes/shared/tab/tab.material.css.js +1 -1
  440. package/components/tabs/themes/shared/tab/tab.material.css.js.map +1 -1
  441. package/components/textarea/textarea.d.ts +14 -21
  442. package/components/textarea/textarea.js +66 -90
  443. package/components/textarea/textarea.js.map +1 -1
  444. package/components/textarea/themes/shared/textarea.bootstrap.css.js +1 -1
  445. package/components/textarea/themes/shared/textarea.bootstrap.css.js.map +1 -1
  446. package/components/textarea/themes/shared/textarea.common.css.js +1 -1
  447. package/components/textarea/themes/shared/textarea.common.css.js.map +1 -1
  448. package/components/textarea/themes/shared/textarea.fluent.css.js +1 -1
  449. package/components/textarea/themes/shared/textarea.fluent.css.js.map +1 -1
  450. package/components/textarea/themes/shared/textarea.indigo.css.js +1 -1
  451. package/components/textarea/themes/shared/textarea.indigo.css.js.map +1 -1
  452. package/components/textarea/themes/shared/textarea.material.css.js +1 -1
  453. package/components/textarea/themes/shared/textarea.material.css.js.map +1 -1
  454. package/components/textarea/themes/textarea.base.css.js +1 -1
  455. package/components/textarea/themes/textarea.base.css.js.map +1 -1
  456. package/components/tile-manager/position.js +2 -1
  457. package/components/tile-manager/position.js.map +1 -1
  458. package/components/tile-manager/resize-state.js +1 -1
  459. package/components/tile-manager/resize-state.js.map +1 -1
  460. package/components/tile-manager/tile.d.ts +8 -12
  461. package/components/tile-manager/tile.js +16 -37
  462. package/components/tile-manager/tile.js.map +1 -1
  463. package/components/toast/themes/shared/toast.bootstrap.css.js +1 -1
  464. package/components/toast/themes/shared/toast.bootstrap.css.js.map +1 -1
  465. package/components/toast/themes/shared/toast.common.css.js +1 -1
  466. package/components/toast/themes/shared/toast.common.css.js.map +1 -1
  467. package/components/toast/themes/shared/toast.fluent.css.js +1 -1
  468. package/components/toast/themes/shared/toast.fluent.css.js.map +1 -1
  469. package/components/toast/themes/toast.base.css.js +1 -1
  470. package/components/toast/themes/toast.base.css.js.map +1 -1
  471. package/components/tooltip/themes/tooltip.base.css.js +1 -1
  472. package/components/tooltip/themes/tooltip.base.css.js.map +1 -1
  473. package/components/tree/themes/item.base.css.js +1 -1
  474. package/components/tree/themes/item.base.css.js.map +1 -1
  475. package/components/tree/themes/shared/item.common.css.js +1 -1
  476. package/components/tree/themes/shared/item.common.css.js.map +1 -1
  477. package/components/tree/themes/shared/item.indigo.css.js +1 -1
  478. package/components/tree/themes/shared/item.indigo.css.js.map +1 -1
  479. package/components/tree/themes/shared/item.material.css.js +1 -1
  480. package/components/tree/themes/shared/item.material.css.js.map +1 -1
  481. package/components/tree/tree.js +3 -1
  482. package/components/tree/tree.js.map +1 -1
  483. package/components/tree/tree.navigation.js +3 -3
  484. package/components/tree/tree.navigation.js.map +1 -1
  485. package/components/tree/tree.selection.js +6 -2
  486. package/components/tree/tree.selection.js.map +1 -1
  487. package/components/validation-container/validation-container.d.ts +2 -1
  488. package/components/validation-container/validation-container.js +19 -14
  489. package/components/validation-container/validation-container.js.map +1 -1
  490. package/custom-elements.json +9456 -6460
  491. package/igniteui-webcomponents.css-data.json +1 -1
  492. package/igniteui-webcomponents.html-data.json +1 -1
  493. package/package.json +1 -1
  494. package/themes/dark/bootstrap.css +1 -1
  495. package/themes/dark/fluent.css +1 -1
  496. package/themes/dark/indigo.css +1 -1
  497. package/themes/dark/material.css +1 -1
  498. package/themes/light/bootstrap.css +1 -1
  499. package/themes/light/fluent.css +1 -1
  500. package/themes/light/indigo.css +1 -1
  501. package/themes/light/material.css +1 -1
  502. package/web-types.json +2 -2
@@ -6,7 +6,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { ContextProvider } from '@lit/context';
8
8
  import { html, LitElement, nothing } from 'lit';
9
- import { property, queryAll, queryAssignedElements, state, } from 'lit/decorators.js';
9
+ import { property, queryAll, state } from 'lit/decorators.js';
10
+ import { cache } from 'lit/directives/cache.js';
10
11
  import { createRef, ref } from 'lit/directives/ref.js';
11
12
  import { styleMap } from 'lit/directives/style-map.js';
12
13
  import { addThemingController } from '../../theming/theming-controller.js';
@@ -16,11 +17,12 @@ import { addGesturesController, } from '../common/controllers/gestures.js';
16
17
  import { addInternalsController } from '../common/controllers/internals.js';
17
18
  import { addKeybindings, arrowLeft, arrowRight, endKey, homeKey, } from '../common/controllers/key-bindings.js';
18
19
  import { createMutationController, } from '../common/controllers/mutation-observer.js';
20
+ import { addSlotController, setSlots, } from '../common/controllers/slot.js';
19
21
  import { watch } from '../common/decorators/watch.js';
20
22
  import { registerComponent } from '../common/definitions/register.js';
21
23
  import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
22
24
  import { partMap } from '../common/part-map.js';
23
- import { addSafeEventListener, asNumber, createCounter, findElementFromEventPath, first, formatString, isLTR, last, wrap, } from '../common/util.js';
25
+ import { addSafeEventListener, asNumber, findElementFromEventPath, first, formatString, isEmpty, isLTR, last, wrap, } from '../common/util.js';
24
26
  import IgcIconComponent from '../icon/icon.js';
25
27
  import IgcCarouselIndicatorComponent from './carousel-indicator.js';
26
28
  import IgcCarouselIndicatorContainerComponent from './carousel-indicator-container.js';
@@ -28,40 +30,32 @@ import IgcCarouselSlideComponent from './carousel-slide.js';
28
30
  import { styles } from './themes/carousel.base.css.js';
29
31
  import { all } from './themes/container.js';
30
32
  import { styles as shared } from './themes/shared/carousel.common.css.js';
33
+ let nextId = 1;
34
+ const Slots = setSlots('indicator', 'previous-button', 'next-button');
31
35
  class IgcCarouselComponent extends EventEmitterMixin(LitElement) {
32
36
  static register() {
33
37
  registerComponent(IgcCarouselComponent, IgcCarouselIndicatorComponent, IgcCarouselIndicatorContainerComponent, IgcCarouselSlideComponent, IgcIconComponent, IgcButtonComponent);
34
38
  }
35
- get hasProjectedIndicators() {
36
- return this._projectedIndicators.length > 0;
39
+ get _hasProjectedIndicators() {
40
+ return !isEmpty(this._projectedIndicators);
37
41
  }
38
- get showIndicatorsLabel() {
42
+ get _showIndicatorsLabel() {
39
43
  return this.total > this.maximumIndicatorsCount;
40
44
  }
41
- get nextIndex() {
45
+ get _nextIndex() {
42
46
  return wrap(0, this.total - 1, this.current + 1);
43
47
  }
44
- get prevIndex() {
48
+ get _previousIndex() {
45
49
  return wrap(0, this.total - 1, this.current - 1);
46
50
  }
47
- _observerCallback({ changes: { added, attributes }, }) {
48
- const activeSlides = this.slides.filter((slide) => slide.active);
49
- if (activeSlides.length <= 1) {
50
- return;
51
- }
52
- const idx = this.slides.indexOf(added.length ? last(added).node : last(attributes).node);
53
- for (const [i, slide] of this.slides.entries()) {
54
- if (slide.active && i !== idx) {
55
- slide.active = false;
56
- }
57
- }
58
- this.activateSlide(this.slides[idx]);
51
+ get slides() {
52
+ return Array.from(this._slides);
59
53
  }
60
54
  get total() {
61
- return this.slides.length;
55
+ return this._slides.length;
62
56
  }
63
57
  get current() {
64
- return Math.max(0, this.slides.indexOf(this._activeSlide));
58
+ return Math.max(0, this._slides.indexOf(this._activeSlide));
65
59
  }
66
60
  get isPlaying() {
67
61
  return this._playing;
@@ -69,22 +63,30 @@ class IgcCarouselComponent extends EventEmitterMixin(LitElement) {
69
63
  get isPaused() {
70
64
  return this._paused;
71
65
  }
72
- contextChanged() {
66
+ _contextChanged() {
73
67
  this._context.setValue(this, true);
74
68
  }
75
- intervalChange() {
69
+ _intervalChange() {
76
70
  if (!this.isPlaying) {
77
71
  this._playing = true;
78
72
  }
79
- this.restartInterval();
73
+ this._restartInterval();
80
74
  }
81
75
  constructor() {
82
76
  super();
83
- this._carouselId = `igc-carousel-${IgcCarouselComponent.increment()}`;
77
+ this._carouselId = `igc-carousel-${nextId++}`;
84
78
  this._paused = false;
85
79
  this._hasKeyboardInteractionOnIndicators = false;
86
80
  this._hasPointerInteraction = false;
87
81
  this._hasInnerFocus = false;
82
+ this._slides = [];
83
+ this._projectedIndicators = [];
84
+ this._playing = false;
85
+ this._slots = addSlotController(this, {
86
+ slots: Slots,
87
+ onChange: this._handleSlotChange,
88
+ initial: true,
89
+ });
88
90
  this._context = new ContextProvider(this, {
89
91
  context: carouselContext,
90
92
  initialValue: this,
@@ -93,7 +95,6 @@ class IgcCarouselComponent extends EventEmitterMixin(LitElement) {
93
95
  this._indicatorsContainerRef = createRef();
94
96
  this._prevButtonRef = createRef();
95
97
  this._nextButtonRef = createRef();
96
- this._playing = false;
97
98
  this.disableLoop = false;
98
99
  this.disablePauseOnInteraction = false;
99
100
  this.hideNavigation = false;
@@ -111,34 +112,31 @@ class IgcCarouselComponent extends EventEmitterMixin(LitElement) {
111
112
  },
112
113
  });
113
114
  addThemingController(this, all);
114
- addSafeEventListener(this, 'pointerenter', this.handlePointerInteraction);
115
- addSafeEventListener(this, 'pointerleave', this.handlePointerInteraction);
116
- addSafeEventListener(this, 'focusin', this.handleFocusInteraction);
117
- addSafeEventListener(this, 'focusout', this.handleFocusInteraction);
115
+ addSafeEventListener(this, 'pointerenter', this._handlePointerInteraction);
116
+ addSafeEventListener(this, 'pointerleave', this._handlePointerInteraction);
117
+ addSafeEventListener(this, 'focusin', this._handleFocusInteraction);
118
+ addSafeEventListener(this, 'focusout', this._handleFocusInteraction);
118
119
  addGesturesController(this, {
119
120
  ref: this._carouselSlidesContainerRef,
120
121
  touchOnly: true,
121
122
  })
122
- .set('swipe-left', this.handleHorizontalSwipe)
123
- .set('swipe-right', this.handleHorizontalSwipe)
124
- .set('swipe-up', this.handleVerticalSwipe)
125
- .set('swipe-down', this.handleVerticalSwipe);
123
+ .set('swipe-left', this._handleHorizontalSwipe)
124
+ .set('swipe-right', this._handleHorizontalSwipe)
125
+ .set('swipe-up', this._handleVerticalSwipe)
126
+ .set('swipe-down', this._handleVerticalSwipe);
126
127
  addKeybindings(this, {
127
128
  ref: this._indicatorsContainerRef,
128
- bindingDefaults: { preventDefault: true },
129
129
  })
130
- .set(arrowLeft, this.handleArrowLeft)
131
- .set(arrowRight, this.handleArrowRight)
132
- .set(homeKey, this.handleHomeKey)
133
- .set(endKey, this.handleEndKey);
130
+ .set(arrowLeft, this._handleArrowLeft)
131
+ .set(arrowRight, this._handleArrowRight)
132
+ .set(homeKey, this._handleHomeKey)
133
+ .set(endKey, this._handleEndKey);
134
134
  addKeybindings(this, {
135
135
  ref: this._prevButtonRef,
136
- bindingDefaults: { preventDefault: true },
137
- }).setActivateHandler(this.handleNavigationInteractionPrevious);
136
+ }).setActivateHandler(this._handleNavigationInteractionPrevious);
138
137
  addKeybindings(this, {
139
138
  ref: this._nextButtonRef,
140
- bindingDefaults: { preventDefault: true },
141
- }).setActivateHandler(this.handleNavigationInteractionNext);
139
+ }).setActivateHandler(this._handleNavigationInteractionNext);
142
140
  createMutationController(this, {
143
141
  callback: this._observerCallback,
144
142
  filter: [IgcCarouselSlideComponent.tagName],
@@ -149,64 +147,82 @@ class IgcCarouselComponent extends EventEmitterMixin(LitElement) {
149
147
  },
150
148
  });
151
149
  }
152
- handleSlotChange() {
153
- if (this.total) {
154
- this.activateSlide(this.slides.findLast((slide) => slide.active) ?? first(this.slides));
150
+ async firstUpdated() {
151
+ await this.updateComplete;
152
+ if (!isEmpty(this._slides)) {
153
+ this._activateSlide(this._slides.findLast((slide) => slide.active) ?? first(this._slides));
154
+ }
155
+ }
156
+ _observerCallback({ changes: { added, attributes }, }) {
157
+ const activeSlides = this._slides.filter((slide) => slide.active);
158
+ if (activeSlides.length <= 1) {
159
+ return;
155
160
  }
161
+ const idx = this._slides.indexOf(added.length ? last(added).node : last(attributes).node);
162
+ for (const [i, slide] of this._slides.entries()) {
163
+ if (slide.active && i !== idx) {
164
+ slide.active = false;
165
+ }
166
+ }
167
+ this._activateSlide(this._slides[idx]);
156
168
  }
157
- handleIndicatorSlotChange() {
158
- this.requestUpdate();
169
+ _handleSlotChange(params) {
170
+ if (params.isDefault || params.isInitial) {
171
+ this._slides = this._slots.getAssignedElements('[default]', {
172
+ selector: IgcCarouselSlideComponent.tagName,
173
+ });
174
+ }
175
+ if (params.slot === 'indicator') {
176
+ this._projectedIndicators = this._slots.getAssignedElements('indicator', {
177
+ selector: IgcCarouselIndicatorComponent.tagName,
178
+ });
179
+ }
159
180
  }
160
- handlePointerInteraction(event) {
181
+ _handlePointerInteraction(event) {
161
182
  this._hasPointerInteraction = event.type === 'pointerenter';
162
183
  if (!this._hasInnerFocus) {
163
- this.handlePauseOnInteraction();
184
+ this._handlePauseOnInteraction();
164
185
  }
165
186
  }
166
- handleFocusInteraction(event) {
187
+ _handleFocusInteraction(event) {
167
188
  const node = event.relatedTarget;
168
189
  if (this.contains(node)) {
169
190
  return;
170
191
  }
171
192
  this._hasInnerFocus = event.type === 'focusin';
172
193
  if (!this._hasPointerInteraction) {
173
- this.handlePauseOnInteraction();
194
+ this._handlePauseOnInteraction();
174
195
  }
175
196
  }
176
- handlePauseOnInteraction() {
177
- if (!this.interval || this.disablePauseOnInteraction)
178
- return;
179
- if (this.isPlaying) {
180
- this.pause();
181
- this.emitEvent('igcPaused');
182
- }
183
- else {
184
- this.play();
185
- this.emitEvent('igcPlaying');
186
- }
197
+ async _handleIndicatorClick(event) {
198
+ const indicator = findElementFromEventPath(IgcCarouselIndicatorComponent.tagName, event);
199
+ const index = this._hasProjectedIndicators
200
+ ? this._projectedIndicators.indexOf(indicator)
201
+ : Array.from(this._defaultIndicators).indexOf(indicator);
202
+ this._handleInteraction(() => this.select(this._slides[index], index > this.current ? 'next' : 'prev'));
187
203
  }
188
- async handleArrowLeft() {
204
+ async _handleArrowLeft() {
189
205
  this._hasKeyboardInteractionOnIndicators = true;
190
- this.handleInteraction(isLTR(this) ? this.prev : this.next);
206
+ this._handleInteraction(isLTR(this) ? this.prev : this.next);
191
207
  }
192
- async handleArrowRight() {
208
+ async _handleArrowRight() {
193
209
  this._hasKeyboardInteractionOnIndicators = true;
194
- this.handleInteraction(isLTR(this) ? this.next : this.prev);
210
+ this._handleInteraction(isLTR(this) ? this.next : this.prev);
195
211
  }
196
- async handleHomeKey() {
212
+ async _handleHomeKey() {
197
213
  this._hasKeyboardInteractionOnIndicators = true;
198
- this.handleInteraction(() => this.select(isLTR(this) ? first(this.slides) : last(this.slides)));
214
+ this._handleInteraction(() => this.select(isLTR(this) ? first(this._slides) : last(this._slides)));
199
215
  }
200
- async handleEndKey() {
216
+ async _handleEndKey() {
201
217
  this._hasKeyboardInteractionOnIndicators = true;
202
- this.handleInteraction(() => this.select(isLTR(this) ? last(this.slides) : first(this.slides)));
218
+ this._handleInteraction(() => this.select(isLTR(this) ? last(this._slides) : first(this._slides)));
203
219
  }
204
- handleVerticalSwipe({ data: { direction } }) {
220
+ _handleVerticalSwipe({ data: { direction } }) {
205
221
  if (this.vertical) {
206
- this.handleInteraction(direction === 'up' ? this.next : this.prev);
222
+ this._handleInteraction(direction === 'up' ? this.next : this.prev);
207
223
  }
208
224
  }
209
- handleHorizontalSwipe({ data: { direction } }) {
225
+ _handleHorizontalSwipe({ data: { direction } }) {
210
226
  if (!this.vertical) {
211
227
  const callback = () => {
212
228
  if (isLTR(this)) {
@@ -214,68 +230,75 @@ class IgcCarouselComponent extends EventEmitterMixin(LitElement) {
214
230
  }
215
231
  return direction === 'left' ? this.prev : this.next;
216
232
  };
217
- this.handleInteraction(callback());
233
+ this._handleInteraction(callback());
218
234
  }
219
235
  }
220
- async handleIndicatorClick(event) {
221
- const indicator = findElementFromEventPath(IgcCarouselIndicatorComponent.tagName, event);
222
- const index = this.hasProjectedIndicators
223
- ? this._projectedIndicators.indexOf(indicator)
224
- : Array.from(this._defaultIndicators).indexOf(indicator);
225
- this.handleInteraction(() => this.select(this.slides[index], index > this.current ? 'next' : 'prev'));
226
- }
227
- handleNavigationInteractionNext() {
228
- this.handleInteraction(this.next);
236
+ _handleNavigationInteractionNext() {
237
+ this._handleInteraction(this.next);
229
238
  }
230
- handleNavigationInteractionPrevious() {
231
- this.handleInteraction(this.prev);
239
+ _handleNavigationInteractionPrevious() {
240
+ this._handleInteraction(this.prev);
232
241
  }
233
- async handleInteraction(callback) {
242
+ async _handleInteraction(callback) {
234
243
  if (this.interval) {
235
- this.resetInterval();
244
+ this._resetInterval();
236
245
  }
237
246
  if (await callback.call(this)) {
238
247
  this.emitEvent('igcSlideChanged', { detail: this.current });
239
248
  }
240
249
  if (this.interval) {
241
- this.restartInterval();
250
+ this._restartInterval();
242
251
  }
243
252
  }
244
- activateSlide(slide) {
253
+ _handlePauseOnInteraction() {
254
+ if (!this.interval || this.disablePauseOnInteraction)
255
+ return;
256
+ if (this.isPlaying) {
257
+ this.pause();
258
+ this.emitEvent('igcPaused');
259
+ }
260
+ else {
261
+ this.play();
262
+ this.emitEvent('igcPlaying');
263
+ }
264
+ }
265
+ _activateSlide(slide) {
245
266
  if (this._activeSlide) {
246
267
  this._activeSlide.active = false;
247
268
  }
248
269
  this._activeSlide = slide;
249
270
  this._activeSlide.active = true;
250
271
  if (this._hasKeyboardInteractionOnIndicators) {
251
- this.hasProjectedIndicators
272
+ this._hasProjectedIndicators
252
273
  ? this._projectedIndicators[this.current].focus()
253
274
  : this._defaultIndicators[this.current].focus();
254
275
  this._hasKeyboardInteractionOnIndicators = false;
255
276
  }
256
277
  }
257
- updateProjectedIndicators() {
258
- for (const [idx, slide] of this.slides.entries()) {
278
+ _updateProjectedIndicators() {
279
+ for (const [idx, slide] of this._slides.entries()) {
259
280
  const indicator = this._projectedIndicators[idx];
260
281
  indicator.active = slide.active;
261
282
  indicator.index = idx;
262
- this.setAttribute('aria-controls', slide.id);
283
+ }
284
+ if (this._activeSlide) {
285
+ this.setAttribute('aria-controls', this._activeSlide.id);
263
286
  }
264
287
  }
265
- resetInterval() {
288
+ _resetInterval() {
266
289
  if (this._lastInterval) {
267
290
  clearInterval(this._lastInterval);
268
291
  this._lastInterval = null;
269
292
  }
270
293
  }
271
- restartInterval() {
272
- this.resetInterval();
294
+ _restartInterval() {
295
+ this._resetInterval();
273
296
  if (asNumber(this.interval) > 0) {
274
297
  this._lastInterval = setInterval(() => {
275
298
  if (this.isPlaying &&
276
299
  this.total &&
277
- !(this.disableLoop && this.nextIndex === 0)) {
278
- this.select(this.slides[this.nextIndex], 'next');
300
+ !(this.disableLoop && this._nextIndex === 0)) {
301
+ this.select(this.slides[this._nextIndex], 'next');
279
302
  this.emitEvent('igcSlideChanged', { detail: this.current });
280
303
  }
281
304
  else {
@@ -284,18 +307,18 @@ class IgcCarouselComponent extends EventEmitterMixin(LitElement) {
284
307
  }, this.interval);
285
308
  }
286
309
  }
287
- async animateSlides(nextSlide, currentSlide, dir) {
310
+ async _animateSlides(nextSlide, currentSlide, dir) {
288
311
  if (dir === 'next') {
289
312
  currentSlide.previous = true;
290
313
  currentSlide.toggleAnimation('out');
291
- this.activateSlide(nextSlide);
314
+ this._activateSlide(nextSlide);
292
315
  await nextSlide.toggleAnimation('in');
293
316
  currentSlide.previous = false;
294
317
  }
295
318
  else {
296
319
  currentSlide.previous = true;
297
320
  currentSlide.toggleAnimation('in', 'reverse');
298
- this.activateSlide(nextSlide);
321
+ this._activateSlide(nextSlide);
299
322
  await nextSlide.toggleAnimation('out', 'reverse');
300
323
  currentSlide.previous = false;
301
324
  }
@@ -304,49 +327,49 @@ class IgcCarouselComponent extends EventEmitterMixin(LitElement) {
304
327
  if (!this.isPlaying) {
305
328
  this._paused = false;
306
329
  this._playing = true;
307
- this.restartInterval();
330
+ this._restartInterval();
308
331
  }
309
332
  }
310
333
  pause() {
311
334
  if (this.isPlaying) {
312
335
  this._playing = false;
313
336
  this._paused = true;
314
- this.resetInterval();
337
+ this._resetInterval();
315
338
  }
316
339
  }
317
340
  async next() {
318
- if (this.disableLoop && this.nextIndex === 0) {
341
+ if (this.disableLoop && this._nextIndex === 0) {
319
342
  this.pause();
320
343
  return false;
321
344
  }
322
- return await this.select(this.slides[this.nextIndex], 'next');
345
+ return await this.select(this._slides[this._nextIndex], 'next');
323
346
  }
324
347
  async prev() {
325
- if (this.disableLoop && this.prevIndex === this.total - 1) {
348
+ if (this.disableLoop && this._previousIndex === this.total - 1) {
326
349
  this.pause();
327
350
  return false;
328
351
  }
329
- return await this.select(this.slides[this.prevIndex], 'prev');
352
+ return await this.select(this._slides[this._previousIndex], 'prev');
330
353
  }
331
354
  async select(slideOrIndex, animationDirection) {
332
355
  let index;
333
356
  let slide;
334
357
  if (typeof slideOrIndex === 'number') {
335
358
  index = slideOrIndex;
336
- slide = this.slides.at(index);
359
+ slide = this._slides.at(index);
337
360
  }
338
361
  else {
339
362
  slide = slideOrIndex;
340
- index = this.slides.indexOf(slide);
363
+ index = this._slides.indexOf(slide);
341
364
  }
342
365
  if (index === this.current || index === -1 || !slide) {
343
366
  return false;
344
367
  }
345
368
  const dir = animationDirection ?? (index > this.current ? 'next' : 'prev');
346
- await this.animateSlides(slide, this._activeSlide, dir);
369
+ await this._animateSlides(slide, this._activeSlide, dir);
347
370
  return true;
348
371
  }
349
- navigationTemplate() {
372
+ _renderNavigation() {
350
373
  return html `
351
374
  <igc-button
352
375
  ${ref(this._prevButtonRef)}
@@ -355,7 +378,7 @@ class IgcCarouselComponent extends EventEmitterMixin(LitElement) {
355
378
  aria-label="Previous slide"
356
379
  aria-controls=${this._carouselId}
357
380
  ?disabled=${this.disableLoop && this.current === 0}
358
- @click=${this.handleNavigationInteractionPrevious}
381
+ @click=${this._handleNavigationInteractionPrevious}
359
382
  >
360
383
  <slot name="previous-button">
361
384
  <igc-icon
@@ -365,6 +388,7 @@ class IgcCarouselComponent extends EventEmitterMixin(LitElement) {
365
388
  ></igc-icon>
366
389
  </slot>
367
390
  </igc-button>
391
+
368
392
  <igc-button
369
393
  ${ref(this._nextButtonRef)}
370
394
  type="button"
@@ -372,7 +396,7 @@ class IgcCarouselComponent extends EventEmitterMixin(LitElement) {
372
396
  aria-label="Next slide"
373
397
  aria-controls=${this._carouselId}
374
398
  ?disabled=${this.disableLoop && this.current === this.total - 1}
375
- @click=${this.handleNavigationInteractionNext}
399
+ @click=${this._handleNavigationInteractionNext}
376
400
  >
377
401
  <slot name="next-button">
378
402
  <igc-icon
@@ -384,8 +408,8 @@ class IgcCarouselComponent extends EventEmitterMixin(LitElement) {
384
408
  </igc-button>
385
409
  `;
386
410
  }
387
- *renderIndicators() {
388
- for (const [i, slide] of this.slides.entries()) {
411
+ *_renderIndicators() {
412
+ for (const [i, slide] of this._slides.entries()) {
389
413
  const forward = slide.active ? 'visible' : 'hidden';
390
414
  const backward = slide.active ? 'hidden' : 'visible';
391
415
  yield html `
@@ -407,7 +431,7 @@ class IgcCarouselComponent extends EventEmitterMixin(LitElement) {
407
431
  `;
408
432
  }
409
433
  }
410
- indicatorTemplate() {
434
+ _renderIndicatorContainer() {
411
435
  const parts = {
412
436
  indicators: true,
413
437
  start: this.indicatorsOrientation === 'start',
@@ -419,20 +443,16 @@ class IgcCarouselComponent extends EventEmitterMixin(LitElement) {
419
443
  role="tablist"
420
444
  part=${partMap(parts)}
421
445
  >
422
- <slot
423
- name="indicator"
424
- @slotchange=${this.handleIndicatorSlotChange}
425
- @click=${this.handleIndicatorClick}
426
- >
427
- ${this.hasProjectedIndicators
428
- ? this.updateProjectedIndicators()
429
- : this.renderIndicators()}
446
+ <slot name="indicator" @click=${this._handleIndicatorClick}>
447
+ ${cache(this._hasProjectedIndicators
448
+ ? this._updateProjectedIndicators()
449
+ : this._renderIndicators())}
430
450
  </slot>
431
451
  </div>
432
452
  </igc-carousel-indicator-container>
433
453
  `;
434
454
  }
435
- labelTemplate() {
455
+ _renderLabel() {
436
456
  const parts = {
437
457
  label: true,
438
458
  indicators: true,
@@ -446,21 +466,19 @@ class IgcCarouselComponent extends EventEmitterMixin(LitElement) {
446
466
  `;
447
467
  }
448
468
  render() {
469
+ const hasNoIndicators = this.hideIndicators || this._showIndicatorsLabel;
470
+ const hasLabel = !this.hideIndicators && this._showIndicatorsLabel;
449
471
  return html `
450
472
  <section>
451
- ${this.hideNavigation ? nothing : this.navigationTemplate()}
452
- ${this.hideIndicators || this.showIndicatorsLabel
453
- ? nothing
454
- : this.indicatorTemplate()}
455
- ${!this.hideIndicators && this.showIndicatorsLabel
456
- ? this.labelTemplate()
457
- : nothing}
473
+ ${cache(this.hideNavigation ? nothing : this._renderNavigation())}
474
+ ${hasNoIndicators ? nothing : this._renderIndicatorContainer()}
475
+ ${hasLabel ? this._renderLabel() : nothing}
458
476
  <div
459
477
  ${ref(this._carouselSlidesContainerRef)}
460
478
  id=${this._carouselId}
461
479
  aria-live=${this.interval && this._playing ? 'off' : 'polite'}
462
480
  >
463
- <slot @slotchange=${this.handleSlotChange}></slot>
481
+ <slot></slot>
464
482
  </div>
465
483
  </section>
466
484
  `;
@@ -468,23 +486,16 @@ class IgcCarouselComponent extends EventEmitterMixin(LitElement) {
468
486
  }
469
487
  IgcCarouselComponent.styles = [styles, shared];
470
488
  IgcCarouselComponent.tagName = 'igc-carousel';
471
- IgcCarouselComponent.increment = createCounter();
472
489
  export default IgcCarouselComponent;
473
- __decorate([
474
- queryAll(IgcCarouselIndicatorComponent.tagName)
475
- ], IgcCarouselComponent.prototype, "_defaultIndicators", void 0);
476
- __decorate([
477
- queryAssignedElements({
478
- selector: IgcCarouselIndicatorComponent.tagName,
479
- slot: 'indicator',
480
- })
481
- ], IgcCarouselComponent.prototype, "_projectedIndicators", void 0);
482
490
  __decorate([
483
491
  state()
484
492
  ], IgcCarouselComponent.prototype, "_activeSlide", void 0);
485
493
  __decorate([
486
494
  state()
487
495
  ], IgcCarouselComponent.prototype, "_playing", void 0);
496
+ __decorate([
497
+ queryAll(IgcCarouselIndicatorComponent.tagName)
498
+ ], IgcCarouselComponent.prototype, "_defaultIndicators", void 0);
488
499
  __decorate([
489
500
  property({ type: Boolean, reflect: true, attribute: 'disable-loop' })
490
501
  ], IgcCarouselComponent.prototype, "disableLoop", void 0);
@@ -505,7 +516,7 @@ __decorate([
505
516
  property({ type: Boolean, reflect: true })
506
517
  ], IgcCarouselComponent.prototype, "vertical", void 0);
507
518
  __decorate([
508
- property({ reflect: false, attribute: 'indicators-orientation' })
519
+ property({ attribute: 'indicators-orientation' })
509
520
  ], IgcCarouselComponent.prototype, "indicatorsOrientation", void 0);
510
521
  __decorate([
511
522
  property({ attribute: 'indicators-label-format' })
@@ -514,27 +525,20 @@ __decorate([
514
525
  property({ attribute: 'slides-label-format' })
515
526
  ], IgcCarouselComponent.prototype, "slidesLabelFormat", void 0);
516
527
  __decorate([
517
- property({ type: Number, reflect: false })
528
+ property({ type: Number })
518
529
  ], IgcCarouselComponent.prototype, "interval", void 0);
519
530
  __decorate([
520
- property({
521
- type: Number,
522
- reflect: false,
523
- attribute: 'maximum-indicators-count',
524
- })
531
+ property({ type: Number, attribute: 'maximum-indicators-count' })
525
532
  ], IgcCarouselComponent.prototype, "maximumIndicatorsCount", void 0);
526
533
  __decorate([
527
534
  property({ attribute: 'animation-type' })
528
535
  ], IgcCarouselComponent.prototype, "animationType", void 0);
529
- __decorate([
530
- queryAssignedElements({ selector: IgcCarouselSlideComponent.tagName })
531
- ], IgcCarouselComponent.prototype, "slides", void 0);
532
536
  __decorate([
533
537
  watch('animationType'),
534
538
  watch('slidesLabelFormat'),
535
539
  watch('indicatorsLabelFormat')
536
- ], IgcCarouselComponent.prototype, "contextChanged", null);
540
+ ], IgcCarouselComponent.prototype, "_contextChanged", null);
537
541
  __decorate([
538
542
  watch('interval')
539
- ], IgcCarouselComponent.prototype, "intervalChange", null);
543
+ ], IgcCarouselComponent.prototype, "_intervalChange", null);
540
544
  //# sourceMappingURL=carousel.js.map