igniteui-webcomponents 4.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (642) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/components/accordion/accordion.d.ts +4 -0
  3. package/components/accordion/accordion.js +3 -3
  4. package/components/accordion/accordion.js.map +1 -1
  5. package/components/accordion/themes/accordion.base.css.js +1 -1
  6. package/components/accordion/themes/accordion.base.css.js.map +1 -1
  7. package/components/avatar/avatar.d.ts +16 -4
  8. package/components/avatar/avatar.js +6 -6
  9. package/components/avatar/avatar.js.map +1 -1
  10. package/components/avatar/themes/avatar.base.css.js +1 -1
  11. package/components/avatar/themes/avatar.base.css.js.map +1 -1
  12. package/components/avatar/themes/avatar.bootstrap.css.js +1 -1
  13. package/components/avatar/themes/avatar.bootstrap.css.js.map +1 -1
  14. package/components/badge/badge.d.ts +12 -3
  15. package/components/badge/badge.js.map +1 -1
  16. package/components/badge/themes/light/badge.base.css.js +1 -1
  17. package/components/badge/themes/light/badge.base.css.js.map +1 -1
  18. package/components/badge/themes/light/badge.bootstrap.css.js +1 -1
  19. package/components/badge/themes/light/badge.bootstrap.css.js.map +1 -1
  20. package/components/button/button-base.d.ts +15 -3
  21. package/components/button/button-base.js.map +1 -1
  22. package/components/button/button.d.ts +4 -1
  23. package/components/button/button.js.map +1 -1
  24. package/components/button/icon-button.d.ts +16 -4
  25. package/components/button/icon-button.js.map +1 -1
  26. package/components/button/themes/button/dark/button.fluent.css.js +1 -1
  27. package/components/button/themes/button/dark/button.fluent.css.js.map +1 -1
  28. package/components/button/themes/button/light/button.base.css.js +1 -1
  29. package/components/button/themes/button/light/button.base.css.js.map +1 -1
  30. package/components/button/themes/button/light/button.bootstrap.css.js +1 -1
  31. package/components/button/themes/button/light/button.bootstrap.css.js.map +1 -1
  32. package/components/button/themes/button/light/button.fluent.css.js +1 -1
  33. package/components/button/themes/button/light/button.fluent.css.js.map +1 -1
  34. package/components/button/themes/button/light/button.indigo.css.js +1 -1
  35. package/components/button/themes/button/light/button.indigo.css.js.map +1 -1
  36. package/components/button/themes/button/light/button.material.css.js +1 -1
  37. package/components/button/themes/button/light/button.material.css.js.map +1 -1
  38. package/components/button/themes/icon-button/dark/icon-button.fluent.css.js +1 -1
  39. package/components/button/themes/icon-button/dark/icon-button.fluent.css.js.map +1 -1
  40. package/components/button/themes/icon-button/light/icon-button.base.css.js +1 -1
  41. package/components/button/themes/icon-button/light/icon-button.base.css.js.map +1 -1
  42. package/components/button/themes/icon-button/light/icon-button.bootstrap.css.js +1 -1
  43. package/components/button/themes/icon-button/light/icon-button.bootstrap.css.js.map +1 -1
  44. package/components/button/themes/icon-button/light/icon-button.fluent.css.js +1 -1
  45. package/components/button/themes/icon-button/light/icon-button.fluent.css.js.map +1 -1
  46. package/components/button/themes/icon-button/light/icon-button.indigo.css.js +1 -1
  47. package/components/button/themes/icon-button/light/icon-button.indigo.css.js.map +1 -1
  48. package/components/button/themes/icon-button/light/icon-button.material.css.js +1 -1
  49. package/components/button/themes/icon-button/light/icon-button.material.css.js.map +1 -1
  50. package/components/calendar/calendar.js +3 -3
  51. package/components/calendar/calendar.js.map +1 -1
  52. package/components/calendar/common/calendar-base.js.map +1 -1
  53. package/components/calendar/common/calendar.model.d.ts +1 -1
  54. package/components/calendar/days-view/days-view.js +6 -6
  55. package/components/calendar/days-view/days-view.js.map +1 -1
  56. package/components/calendar/months-view/months-view.js +3 -3
  57. package/components/calendar/months-view/months-view.js.map +1 -1
  58. package/components/calendar/themes/bootstrap/calendar.bootstrap.css.js +1 -1
  59. package/components/calendar/themes/bootstrap/calendar.bootstrap.css.js.map +1 -1
  60. package/components/calendar/themes/bootstrap/days-view.bootstrap.css.js +1 -1
  61. package/components/calendar/themes/bootstrap/days-view.bootstrap.css.js.map +1 -1
  62. package/components/calendar/themes/bootstrap/year-month-view.bootstrap.css.js +1 -1
  63. package/components/calendar/themes/bootstrap/year-month-view.bootstrap.css.js.map +1 -1
  64. package/components/calendar/themes/calendar.base.css.js +1 -1
  65. package/components/calendar/themes/calendar.base.css.js.map +1 -1
  66. package/components/calendar/themes/days-view.base.css.js +1 -1
  67. package/components/calendar/themes/days-view.base.css.js.map +1 -1
  68. package/components/calendar/themes/fluent/calendar.fluent.css.js +1 -1
  69. package/components/calendar/themes/fluent/calendar.fluent.css.js.map +1 -1
  70. package/components/calendar/themes/fluent/days-view.fluent.css.js +1 -1
  71. package/components/calendar/themes/fluent/days-view.fluent.css.js.map +1 -1
  72. package/components/calendar/themes/fluent/year-month-view.fluent.css.js +1 -1
  73. package/components/calendar/themes/fluent/year-month-view.fluent.css.js.map +1 -1
  74. package/components/calendar/themes/year-month-view.base.css.js +1 -1
  75. package/components/calendar/themes/year-month-view.base.css.js.map +1 -1
  76. package/components/calendar/years-view/years-view.js +3 -3
  77. package/components/calendar/years-view/years-view.js.map +1 -1
  78. package/components/card/card.actions.d.ts +4 -1
  79. package/components/card/card.actions.js.map +1 -1
  80. package/components/card/card.content.js.map +1 -1
  81. package/components/card/card.d.ts +4 -1
  82. package/components/card/card.header.js.map +1 -1
  83. package/components/card/card.js.map +1 -1
  84. package/components/card/themes/light/card.actions.bootstrap.css.js +1 -1
  85. package/components/card/themes/light/card.actions.bootstrap.css.js.map +1 -1
  86. package/components/card/themes/light/card.actions.material.css.js +1 -1
  87. package/components/card/themes/light/card.actions.material.css.js.map +1 -1
  88. package/components/card/themes/light/card.bootstrap.css.js +1 -1
  89. package/components/card/themes/light/card.bootstrap.css.js.map +1 -1
  90. package/components/card/themes/light/card.content.bootstrap.css.js +1 -1
  91. package/components/card/themes/light/card.content.bootstrap.css.js.map +1 -1
  92. package/components/card/themes/light/card.content.indigo.css.js +1 -1
  93. package/components/card/themes/light/card.content.indigo.css.js.map +1 -1
  94. package/components/card/themes/light/card.content.material.css.js +1 -1
  95. package/components/card/themes/light/card.content.material.css.js.map +1 -1
  96. package/components/card/themes/light/card.fluent.css.js +1 -1
  97. package/components/card/themes/light/card.fluent.css.js.map +1 -1
  98. package/components/card/themes/light/card.header.bootstrap.css.js +1 -1
  99. package/components/card/themes/light/card.header.bootstrap.css.js.map +1 -1
  100. package/components/card/themes/light/card.header.fluent.css.js +1 -1
  101. package/components/card/themes/light/card.header.fluent.css.js.map +1 -1
  102. package/components/card/themes/light/card.header.indigo.css.js +1 -1
  103. package/components/card/themes/light/card.header.indigo.css.js.map +1 -1
  104. package/components/card/themes/light/card.header.material.css.js +1 -1
  105. package/components/card/themes/light/card.header.material.css.js.map +1 -1
  106. package/components/card/themes/light/card.material.css.js +1 -1
  107. package/components/card/themes/light/card.material.css.js.map +1 -1
  108. package/components/card/themes/light/card.media.material.css.js +1 -1
  109. package/components/card/themes/light/card.media.material.css.js.map +1 -1
  110. package/components/checkbox/checkbox-base.d.ts +31 -7
  111. package/components/checkbox/checkbox-base.js +14 -1
  112. package/components/checkbox/checkbox-base.js.map +1 -1
  113. package/components/checkbox/checkbox.d.ts +4 -1
  114. package/components/checkbox/checkbox.js +1 -0
  115. package/components/checkbox/checkbox.js.map +1 -1
  116. package/components/checkbox/switch.js +1 -0
  117. package/components/checkbox/switch.js.map +1 -1
  118. package/components/checkbox/themes/dark/checkbox.fluent.css.js +1 -1
  119. package/components/checkbox/themes/dark/checkbox.fluent.css.js.map +1 -1
  120. package/components/checkbox/themes/dark/checkbox.indigo.css.js +1 -1
  121. package/components/checkbox/themes/dark/checkbox.indigo.css.js.map +1 -1
  122. package/components/checkbox/themes/dark/switch.fluent.css.js +1 -1
  123. package/components/checkbox/themes/dark/switch.fluent.css.js.map +1 -1
  124. package/components/checkbox/themes/dark/switch.indigo.css.js +1 -1
  125. package/components/checkbox/themes/dark/switch.indigo.css.js.map +1 -1
  126. package/components/checkbox/themes/light/checkbox.base.css.js +2 -8
  127. package/components/checkbox/themes/light/checkbox.base.css.js.map +1 -1
  128. package/components/checkbox/themes/light/checkbox.bootstrap.css.js +1 -1
  129. package/components/checkbox/themes/light/checkbox.bootstrap.css.js.map +1 -1
  130. package/components/checkbox/themes/light/checkbox.fluent.css.js +1 -1
  131. package/components/checkbox/themes/light/checkbox.fluent.css.js.map +1 -1
  132. package/components/checkbox/themes/light/checkbox.indigo.css.js +1 -1
  133. package/components/checkbox/themes/light/checkbox.indigo.css.js.map +1 -1
  134. package/components/checkbox/themes/light/checkbox.material.css.js +1 -1
  135. package/components/checkbox/themes/light/checkbox.material.css.js.map +1 -1
  136. package/components/checkbox/themes/light/switch.base.css.js +2 -8
  137. package/components/checkbox/themes/light/switch.base.css.js.map +1 -1
  138. package/components/checkbox/themes/light/switch.bootstrap.css.js +1 -1
  139. package/components/checkbox/themes/light/switch.bootstrap.css.js.map +1 -1
  140. package/components/checkbox/themes/light/switch.fluent.css.js +1 -1
  141. package/components/checkbox/themes/light/switch.fluent.css.js.map +1 -1
  142. package/components/checkbox/themes/light/switch.indigo.css.js +1 -1
  143. package/components/checkbox/themes/light/switch.indigo.css.js.map +1 -1
  144. package/components/checkbox/themes/light/switch.material.css.js +1 -1
  145. package/components/checkbox/themes/light/switch.material.css.js.map +1 -1
  146. package/components/chip/chip.d.ts +20 -5
  147. package/components/chip/chip.js.map +1 -1
  148. package/components/chip/themes/chip.base.css.js +1 -1
  149. package/components/chip/themes/chip.base.css.js.map +1 -1
  150. package/components/chip/themes/chip.bootstrap.css.js +1 -1
  151. package/components/chip/themes/chip.bootstrap.css.js.map +1 -1
  152. package/components/chip/themes/chip.fluent.css.js +1 -1
  153. package/components/chip/themes/chip.fluent.css.js.map +1 -1
  154. package/components/chip/themes/chip.indigo.css.js +1 -1
  155. package/components/chip/themes/chip.indigo.css.js.map +1 -1
  156. package/components/chip/themes/chip.material.css.js +1 -1
  157. package/components/chip/themes/chip.material.css.js.map +1 -1
  158. package/components/combo/combo-header.d.ts +11 -0
  159. package/components/combo/combo-header.js +23 -0
  160. package/components/combo/combo-header.js.map +1 -0
  161. package/components/combo/combo-item.d.ts +22 -0
  162. package/components/combo/combo-item.js +67 -0
  163. package/components/combo/combo-item.js.map +1 -0
  164. package/components/combo/combo-list.d.ts +11 -0
  165. package/components/combo/combo-list.js +14 -0
  166. package/components/combo/combo-list.js.map +1 -0
  167. package/components/combo/combo.d.ts +254 -0
  168. package/components/combo/combo.js +518 -0
  169. package/components/combo/combo.js.map +1 -0
  170. package/components/combo/controllers/data.d.ts +17 -0
  171. package/components/combo/controllers/data.js +36 -0
  172. package/components/combo/controllers/data.js.map +1 -0
  173. package/components/combo/controllers/navigation.d.ts +43 -0
  174. package/components/combo/controllers/navigation.js +155 -0
  175. package/components/combo/controllers/navigation.js.map +1 -0
  176. package/components/combo/controllers/selection.d.ts +23 -0
  177. package/components/combo/controllers/selection.js +157 -0
  178. package/components/combo/controllers/selection.js.map +1 -0
  179. package/components/combo/operations/filter.d.ts +4 -0
  180. package/components/combo/operations/filter.js +15 -0
  181. package/components/combo/operations/filter.js.map +1 -0
  182. package/components/combo/operations/group.d.ts +9 -0
  183. package/components/combo/operations/group.js +56 -0
  184. package/components/combo/operations/group.js.map +1 -0
  185. package/components/combo/themes/dark/combo.bootstrap.css.d.ts +1 -0
  186. package/components/combo/themes/dark/combo.bootstrap.css.js +3 -0
  187. package/components/combo/themes/dark/combo.bootstrap.css.js.map +1 -0
  188. package/components/combo/themes/dark/combo.fluent.css.d.ts +1 -0
  189. package/components/combo/themes/dark/combo.fluent.css.js +3 -0
  190. package/components/combo/themes/dark/combo.fluent.css.js.map +1 -0
  191. package/components/combo/themes/dark/combo.indigo.css.d.ts +1 -0
  192. package/components/combo/themes/dark/combo.indigo.css.js +3 -0
  193. package/components/combo/themes/dark/combo.indigo.css.js.map +1 -0
  194. package/components/combo/themes/dark/combo.material.css.d.ts +1 -0
  195. package/components/combo/themes/dark/combo.material.css.js +3 -0
  196. package/components/combo/themes/dark/combo.material.css.js.map +1 -0
  197. package/components/combo/themes/light/combo.base.css.d.ts +1 -0
  198. package/components/combo/themes/light/combo.base.css.js +174 -0
  199. package/components/combo/themes/light/combo.base.css.js.map +1 -0
  200. package/components/combo/themes/light/combo.bootstrap.css.d.ts +1 -0
  201. package/components/combo/themes/light/combo.bootstrap.css.js +94 -0
  202. package/components/combo/themes/light/combo.bootstrap.css.js.map +1 -0
  203. package/components/combo/themes/light/combo.fluent.css.d.ts +1 -0
  204. package/components/combo/themes/light/combo.fluent.css.js +70 -0
  205. package/components/combo/themes/light/combo.fluent.css.js.map +1 -0
  206. package/components/combo/themes/light/combo.indigo.css.d.ts +1 -0
  207. package/components/combo/themes/light/combo.indigo.css.js +41 -0
  208. package/components/combo/themes/light/combo.indigo.css.js.map +1 -0
  209. package/components/combo/themes/light/combo.material.css.d.ts +1 -0
  210. package/components/combo/themes/light/combo.material.css.js +84 -0
  211. package/components/combo/themes/light/combo.material.css.js.map +1 -0
  212. package/components/combo/themes/light/header/combo-header.base.css.d.ts +1 -0
  213. package/components/combo/themes/light/header/combo-header.base.css.js +66 -0
  214. package/components/combo/themes/light/header/combo-header.base.css.js.map +1 -0
  215. package/components/combo/themes/light/item/combo-item.base.css.d.ts +1 -0
  216. package/components/combo/themes/light/item/combo-item.base.css.js +135 -0
  217. package/components/combo/themes/light/item/combo-item.base.css.js.map +1 -0
  218. package/components/combo/types.d.ts +39 -0
  219. package/components/combo/types.js +2 -0
  220. package/components/combo/types.js.map +1 -0
  221. package/components/combo/utils/converters.d.ts +3 -0
  222. package/components/combo/utils/converters.js +9 -0
  223. package/components/combo/utils/converters.js.map +1 -0
  224. package/components/common/decorators/index.d.ts +9 -9
  225. package/components/common/decorators/index.js +9 -9
  226. package/components/common/decorators/index.js.map +1 -1
  227. package/components/common/definitions/defineAllComponents.js +6 -0
  228. package/components/common/definitions/defineAllComponents.js.map +1 -1
  229. package/components/common/mixins/constructor.d.ts +2 -2
  230. package/components/common/mixins/event-emitter.d.ts +2 -2
  231. package/components/common/mixins/event-emitter.js.map +1 -1
  232. package/components/common/mixins/sizable.d.ts +1 -1
  233. package/components/common/mixins/sizable.js.map +1 -1
  234. package/components/common/types.d.ts +1 -1
  235. package/components/date-time-input/date-time-input.d.ts +27 -8
  236. package/components/date-time-input/date-time-input.js +23 -22
  237. package/components/date-time-input/date-time-input.js.map +1 -1
  238. package/components/dialog/dialog.d.ts +17 -4
  239. package/components/dialog/dialog.js.map +1 -1
  240. package/components/dialog/themes/light/dialog.base.css.js +1 -2
  241. package/components/dialog/themes/light/dialog.base.css.js.map +1 -1
  242. package/components/dialog/themes/light/dialog.bootstrap.css.js +1 -1
  243. package/components/dialog/themes/light/dialog.bootstrap.css.js.map +1 -1
  244. package/components/dialog/themes/light/dialog.fluent.css.js +1 -1
  245. package/components/dialog/themes/light/dialog.fluent.css.js.map +1 -1
  246. package/components/dialog/themes/light/dialog.indigo.css.js +1 -1
  247. package/components/dialog/themes/light/dialog.indigo.css.js.map +1 -1
  248. package/components/dialog/themes/light/dialog.material.css.js +1 -1
  249. package/components/dialog/themes/light/dialog.material.css.js.map +1 -1
  250. package/components/dropdown/dropdown-group.js.map +1 -1
  251. package/components/dropdown/dropdown-header.js.map +1 -1
  252. package/components/dropdown/dropdown-item.d.ts +4 -0
  253. package/components/dropdown/dropdown-item.js +1 -1
  254. package/components/dropdown/dropdown-item.js.map +1 -1
  255. package/components/dropdown/dropdown.d.ts +30 -7
  256. package/components/dropdown/dropdown.js +27 -27
  257. package/components/dropdown/dropdown.js.map +1 -1
  258. package/components/dropdown/themes/dark/dropdown.bootstrap.css.js +1 -1
  259. package/components/dropdown/themes/dark/dropdown.bootstrap.css.js.map +1 -1
  260. package/components/dropdown/themes/dark/dropdown.fluent.css.js +1 -1
  261. package/components/dropdown/themes/dark/dropdown.fluent.css.js.map +1 -1
  262. package/components/dropdown/themes/dark/dropdown.indigo.css.js +1 -1
  263. package/components/dropdown/themes/dark/dropdown.indigo.css.js.map +1 -1
  264. package/components/dropdown/themes/light/dropdown-group.base.css.js +1 -1
  265. package/components/dropdown/themes/light/dropdown-group.base.css.js.map +1 -1
  266. package/components/dropdown/themes/light/dropdown-group.fluent.css.js +1 -1
  267. package/components/dropdown/themes/light/dropdown-group.fluent.css.js.map +1 -1
  268. package/components/dropdown/themes/light/dropdown-header.base.css.js +1 -1
  269. package/components/dropdown/themes/light/dropdown-header.base.css.js.map +1 -1
  270. package/components/dropdown/themes/light/dropdown-header.bootstrap.css.js +1 -1
  271. package/components/dropdown/themes/light/dropdown-header.bootstrap.css.js.map +1 -1
  272. package/components/dropdown/themes/light/dropdown-header.fluent.css.js +1 -1
  273. package/components/dropdown/themes/light/dropdown-header.fluent.css.js.map +1 -1
  274. package/components/dropdown/themes/light/dropdown-item.base.css.js +1 -1
  275. package/components/dropdown/themes/light/dropdown-item.base.css.js.map +1 -1
  276. package/components/dropdown/themes/light/dropdown-item.bootstrap.css.js +1 -1
  277. package/components/dropdown/themes/light/dropdown-item.bootstrap.css.js.map +1 -1
  278. package/components/dropdown/themes/light/dropdown-item.fluent.css.js +1 -1
  279. package/components/dropdown/themes/light/dropdown-item.fluent.css.js.map +1 -1
  280. package/components/dropdown/themes/light/dropdown-item.indigo.css.js +1 -1
  281. package/components/dropdown/themes/light/dropdown-item.indigo.css.js.map +1 -1
  282. package/components/dropdown/themes/light/dropdown.base.css.js +1 -1
  283. package/components/dropdown/themes/light/dropdown.base.css.js.map +1 -1
  284. package/components/dropdown/themes/light/dropdown.bootstrap.css.js +1 -1
  285. package/components/dropdown/themes/light/dropdown.bootstrap.css.js.map +1 -1
  286. package/components/dropdown/themes/light/dropdown.fluent.css.js +1 -1
  287. package/components/dropdown/themes/light/dropdown.fluent.css.js.map +1 -1
  288. package/components/dropdown/themes/light/dropdown.indigo.css.js +1 -1
  289. package/components/dropdown/themes/light/dropdown.indigo.css.js.map +1 -1
  290. package/components/expansion-panel/expansion-panel.d.ts +12 -3
  291. package/components/expansion-panel/expansion-panel.js.map +1 -1
  292. package/components/expansion-panel/themes/light/expansion-panel.base.css.js +1 -1
  293. package/components/expansion-panel/themes/light/expansion-panel.base.css.js.map +1 -1
  294. package/components/expansion-panel/themes/light/expansion-panel.bootstrap.css.js +1 -1
  295. package/components/expansion-panel/themes/light/expansion-panel.bootstrap.css.js.map +1 -1
  296. package/components/expansion-panel/themes/light/expansion-panel.fluent.css.js +1 -1
  297. package/components/expansion-panel/themes/light/expansion-panel.fluent.css.js.map +1 -1
  298. package/components/expansion-panel/themes/light/expansion-panel.indigo.css.js +1 -1
  299. package/components/expansion-panel/themes/light/expansion-panel.indigo.css.js.map +1 -1
  300. package/components/form/form.js +1 -0
  301. package/components/form/form.js.map +1 -1
  302. package/components/icon/icon.d.ts +6 -10
  303. package/components/icon/icon.js +17 -25
  304. package/components/icon/icon.js.map +1 -1
  305. package/components/icon/icon.material.css.js +3 -3
  306. package/components/icon/icon.material.css.js.map +1 -1
  307. package/components/icon/icon.registry.js +9 -5
  308. package/components/icon/icon.registry.js.map +1 -1
  309. package/components/input/input-base.d.ts +32 -7
  310. package/components/input/input-base.js.map +1 -1
  311. package/components/input/input.d.ts +48 -11
  312. package/components/input/input.js.map +1 -1
  313. package/components/input/themes/dark/input.dark.indigo.css.js +1 -1
  314. package/components/input/themes/dark/input.dark.indigo.css.js.map +1 -1
  315. package/components/input/themes/dark/input.dark.material.css.js +1 -1
  316. package/components/input/themes/dark/input.dark.material.css.js.map +1 -1
  317. package/components/input/themes/light/input.base.css.js +8 -2
  318. package/components/input/themes/light/input.base.css.js.map +1 -1
  319. package/components/input/themes/light/input.bootstrap.css.js +32 -5
  320. package/components/input/themes/light/input.bootstrap.css.js.map +1 -1
  321. package/components/input/themes/light/input.fluent.css.js +23 -5
  322. package/components/input/themes/light/input.fluent.css.js.map +1 -1
  323. package/components/input/themes/light/input.indigo.css.js +16 -9
  324. package/components/input/themes/light/input.indigo.css.js.map +1 -1
  325. package/components/input/themes/light/input.material.css.js +59 -37
  326. package/components/input/themes/light/input.material.css.js.map +1 -1
  327. package/components/list/list-header.js.map +1 -1
  328. package/components/list/list-item.js.map +1 -1
  329. package/components/list/list.js.map +1 -1
  330. package/components/list/themes/dark/list.bootstrap.css.js +1 -1
  331. package/components/list/themes/dark/list.bootstrap.css.js.map +1 -1
  332. package/components/list/themes/dark/list.fluent.css.js +1 -1
  333. package/components/list/themes/dark/list.fluent.css.js.map +1 -1
  334. package/components/list/themes/dark/list.indigo.css.js +1 -1
  335. package/components/list/themes/dark/list.indigo.css.js.map +1 -1
  336. package/components/list/themes/light/list-header.base.css.js +1 -1
  337. package/components/list/themes/light/list-header.base.css.js.map +1 -1
  338. package/components/list/themes/light/list-header.indigo.css.js +1 -1
  339. package/components/list/themes/light/list-header.indigo.css.js.map +1 -1
  340. package/components/list/themes/light/list-item.base.css.js +1 -1
  341. package/components/list/themes/light/list-item.base.css.js.map +1 -1
  342. package/components/list/themes/light/list-item.bootstrap.css.js +1 -1
  343. package/components/list/themes/light/list-item.bootstrap.css.js.map +1 -1
  344. package/components/list/themes/light/list-item.fluent.css.js +1 -1
  345. package/components/list/themes/light/list-item.fluent.css.js.map +1 -1
  346. package/components/list/themes/light/list-item.indigo.css.js +1 -1
  347. package/components/list/themes/light/list-item.indigo.css.js.map +1 -1
  348. package/components/list/themes/light/list.base.css.js +1 -1
  349. package/components/list/themes/light/list.base.css.js.map +1 -1
  350. package/components/list/themes/light/list.bootstrap.css.js +1 -1
  351. package/components/list/themes/light/list.bootstrap.css.js.map +1 -1
  352. package/components/mask-input/mask-input-base.d.ts +6 -7
  353. package/components/mask-input/mask-input-base.js +22 -13
  354. package/components/mask-input/mask-input-base.js.map +1 -1
  355. package/components/mask-input/mask-input.d.ts +11 -10
  356. package/components/mask-input/mask-input.js +17 -23
  357. package/components/mask-input/mask-input.js.map +1 -1
  358. package/components/mask-input/mask-parser.d.ts +3 -1
  359. package/components/mask-input/mask-parser.js +16 -0
  360. package/components/mask-input/mask-parser.js.map +1 -1
  361. package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
  362. package/components/nav-drawer/nav-drawer-item.d.ts +8 -2
  363. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  364. package/components/nav-drawer/nav-drawer.d.ts +8 -2
  365. package/components/nav-drawer/nav-drawer.js.map +1 -1
  366. package/components/nav-drawer/themes/dark/nav-drawer-item.base.css.js +1 -1
  367. package/components/nav-drawer/themes/dark/nav-drawer-item.base.css.js.map +1 -1
  368. package/components/nav-drawer/themes/dark/nav-drawer-item.bootstrap.css.js +1 -1
  369. package/components/nav-drawer/themes/dark/nav-drawer-item.bootstrap.css.js.map +1 -1
  370. package/components/nav-drawer/themes/dark/nav-drawer-item.fluent.css.js +1 -1
  371. package/components/nav-drawer/themes/dark/nav-drawer-item.fluent.css.js.map +1 -1
  372. package/components/nav-drawer/themes/dark/nav-drawer-item.indigo.css.js +1 -1
  373. package/components/nav-drawer/themes/dark/nav-drawer-item.indigo.css.js.map +1 -1
  374. package/components/nav-drawer/themes/dark/nav-drawer.indigo.css.js +1 -1
  375. package/components/nav-drawer/themes/dark/nav-drawer.indigo.css.js.map +1 -1
  376. package/components/nav-drawer/themes/light/fluent/nav-drawer-header-item.fluent.css.js +1 -1
  377. package/components/nav-drawer/themes/light/fluent/nav-drawer-header-item.fluent.css.js.map +1 -1
  378. package/components/nav-drawer/themes/light/fluent/nav-drawer-item.fluent.css.js +1 -1
  379. package/components/nav-drawer/themes/light/fluent/nav-drawer-item.fluent.css.js.map +1 -1
  380. package/components/nav-drawer/themes/light/indigo/nav-drawer-header-item.indigo.css.js +1 -1
  381. package/components/nav-drawer/themes/light/indigo/nav-drawer-header-item.indigo.css.js.map +1 -1
  382. package/components/nav-drawer/themes/light/indigo/nav-drawer-item.indigo.css.js +1 -1
  383. package/components/nav-drawer/themes/light/indigo/nav-drawer-item.indigo.css.js.map +1 -1
  384. package/components/nav-drawer/themes/light/indigo/nav-drawer.indigo.css.js +1 -1
  385. package/components/nav-drawer/themes/light/indigo/nav-drawer.indigo.css.js.map +1 -1
  386. package/components/nav-drawer/themes/light/nav-drawer-header-item.base.css.js +1 -1
  387. package/components/nav-drawer/themes/light/nav-drawer-header-item.base.css.js.map +1 -1
  388. package/components/nav-drawer/themes/light/nav-drawer-item.base.css.js +1 -1
  389. package/components/nav-drawer/themes/light/nav-drawer-item.base.css.js.map +1 -1
  390. package/components/nav-drawer/themes/light/nav-drawer.base.css.js +1 -1
  391. package/components/nav-drawer/themes/light/nav-drawer.base.css.js.map +1 -1
  392. package/components/navbar/navbar.js.map +1 -1
  393. package/components/navbar/themes/light/navbar.base.css.js +1 -1
  394. package/components/navbar/themes/light/navbar.base.css.js.map +1 -1
  395. package/components/navbar/themes/light/navbar.bootstrap.css.js +1 -1
  396. package/components/navbar/themes/light/navbar.bootstrap.css.js.map +1 -1
  397. package/components/navbar/themes/light/navbar.fluent.css.js +1 -1
  398. package/components/navbar/themes/light/navbar.fluent.css.js.map +1 -1
  399. package/components/navbar/themes/light/navbar.indigo.css.js +1 -1
  400. package/components/navbar/themes/light/navbar.indigo.css.js.map +1 -1
  401. package/components/progress/base.d.ts +25 -6
  402. package/components/progress/base.js.map +1 -1
  403. package/components/progress/circular-gradient.d.ts +12 -3
  404. package/components/progress/circular-gradient.js.map +1 -1
  405. package/components/progress/circular-progress.js.map +1 -1
  406. package/components/progress/linear-progress.d.ts +8 -2
  407. package/components/progress/linear-progress.js.map +1 -1
  408. package/components/progress/themes/circular/circular.progress.base.css.js +1 -1
  409. package/components/progress/themes/circular/circular.progress.base.css.js.map +1 -1
  410. package/components/progress/themes/circular/circular.progress.bootstrap.css.js +1 -1
  411. package/components/progress/themes/circular/circular.progress.bootstrap.css.js.map +1 -1
  412. package/components/progress/themes/circular/circular.progress.fluent.css.js +1 -1
  413. package/components/progress/themes/circular/circular.progress.fluent.css.js.map +1 -1
  414. package/components/progress/themes/linear/linear.progress.base.css.js +1 -1
  415. package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
  416. package/components/progress/themes/linear/linear.progress.bootstrap.css.js +1 -1
  417. package/components/progress/themes/linear/linear.progress.bootstrap.css.js.map +1 -1
  418. package/components/progress/themes/linear/linear.progress.fluent.css.js +1 -1
  419. package/components/progress/themes/linear/linear.progress.fluent.css.js.map +1 -1
  420. package/components/progress/themes/linear/linear.progress.indigo.css.js +1 -1
  421. package/components/progress/themes/linear/linear.progress.indigo.css.js.map +1 -1
  422. package/components/radio/radio.d.ts +35 -8
  423. package/components/radio/radio.js +15 -1
  424. package/components/radio/radio.js.map +1 -1
  425. package/components/radio/themes/dark/radio.fluent.css.js +1 -1
  426. package/components/radio/themes/dark/radio.fluent.css.js.map +1 -1
  427. package/components/radio/themes/dark/radio.indigo.css.js +1 -1
  428. package/components/radio/themes/dark/radio.indigo.css.js.map +1 -1
  429. package/components/radio/themes/light/radio.base.css.js +2 -8
  430. package/components/radio/themes/light/radio.base.css.js.map +1 -1
  431. package/components/radio/themes/light/radio.bootstrap.css.js +1 -1
  432. package/components/radio/themes/light/radio.bootstrap.css.js.map +1 -1
  433. package/components/radio/themes/light/radio.fluent.css.js +2 -1
  434. package/components/radio/themes/light/radio.fluent.css.js.map +1 -1
  435. package/components/radio/themes/light/radio.indigo.css.js +1 -1
  436. package/components/radio/themes/light/radio.indigo.css.js.map +1 -1
  437. package/components/radio/themes/light/radio.material.css.js +1 -1
  438. package/components/radio/themes/light/radio.material.css.js.map +1 -1
  439. package/components/radio-group/radio-group.base.css.js +1 -1
  440. package/components/radio-group/radio-group.base.css.js.map +1 -1
  441. package/components/radio-group/radio-group.d.ts +4 -0
  442. package/components/radio-group/radio-group.js.map +1 -1
  443. package/components/rating/rating-symbol.base.css.js +1 -1
  444. package/components/rating/rating-symbol.base.css.js.map +1 -1
  445. package/components/rating/rating-symbol.d.ts +1 -0
  446. package/components/rating/rating-symbol.js +4 -0
  447. package/components/rating/rating-symbol.js.map +1 -1
  448. package/components/rating/rating.base.css.js +1 -1
  449. package/components/rating/rating.base.css.js.map +1 -1
  450. package/components/rating/rating.bootstrap.css.js +1 -1
  451. package/components/rating/rating.bootstrap.css.js.map +1 -1
  452. package/components/rating/rating.d.ts +31 -7
  453. package/components/rating/rating.fluent.css.js +1 -1
  454. package/components/rating/rating.fluent.css.js.map +1 -1
  455. package/components/rating/rating.indigo.css.js +1 -1
  456. package/components/rating/rating.indigo.css.js.map +1 -1
  457. package/components/rating/rating.js +15 -15
  458. package/components/rating/rating.js.map +1 -1
  459. package/components/select/select-group.d.ts +4 -0
  460. package/components/select/select-group.js.map +1 -1
  461. package/components/select/select.d.ts +52 -13
  462. package/components/select/select.js +17 -7
  463. package/components/select/select.js.map +1 -1
  464. package/components/select/themes/dark/select.fluent.css.js +1 -1
  465. package/components/select/themes/dark/select.fluent.css.js.map +1 -1
  466. package/components/select/themes/dark/select.indigo.css.js +1 -1
  467. package/components/select/themes/dark/select.indigo.css.js.map +1 -1
  468. package/components/select/themes/dark/select.material.css.js +1 -1
  469. package/components/select/themes/dark/select.material.css.js.map +1 -1
  470. package/components/select/themes/light/select.base.css.js +5 -1
  471. package/components/select/themes/light/select.base.css.js.map +1 -1
  472. package/components/select/themes/light/select.bootstrap.css.js +3 -5
  473. package/components/select/themes/light/select.bootstrap.css.js.map +1 -1
  474. package/components/select/themes/light/select.fluent.css.js +1 -1
  475. package/components/select/themes/light/select.fluent.css.js.map +1 -1
  476. package/components/select/themes/light/select.indigo.css.js +5 -1
  477. package/components/select/themes/light/select.indigo.css.js.map +1 -1
  478. package/components/select/themes/light/select.material.css.js +7 -10
  479. package/components/select/themes/light/select.material.css.js.map +1 -1
  480. package/components/slider/range-slider.d.ts +4 -0
  481. package/components/slider/range-slider.js.map +1 -1
  482. package/components/slider/slider-base.d.ts +16 -0
  483. package/components/slider/slider-base.js +70 -70
  484. package/components/slider/slider-base.js.map +1 -1
  485. package/components/slider/slider.d.ts +2 -0
  486. package/components/slider/slider.js.map +1 -1
  487. package/components/slider/themes/dark/slider.bootstrap.css.js +1 -1
  488. package/components/slider/themes/dark/slider.bootstrap.css.js.map +1 -1
  489. package/components/slider/themes/dark/slider.fluent.css.js +1 -1
  490. package/components/slider/themes/dark/slider.fluent.css.js.map +1 -1
  491. package/components/slider/themes/dark/slider.indigo.css.js +1 -1
  492. package/components/slider/themes/dark/slider.indigo.css.js.map +1 -1
  493. package/components/slider/themes/light/slider.base.css.js +1 -1
  494. package/components/slider/themes/light/slider.base.css.js.map +1 -1
  495. package/components/slider/themes/light/slider.bootstrap.css.js +1 -1
  496. package/components/slider/themes/light/slider.bootstrap.css.js.map +1 -1
  497. package/components/slider/themes/light/slider.fluent.css.js +1 -1
  498. package/components/slider/themes/light/slider.fluent.css.js.map +1 -1
  499. package/components/slider/themes/light/slider.indigo.css.js +1 -1
  500. package/components/slider/themes/light/slider.indigo.css.js.map +1 -1
  501. package/components/slider/themes/light/slider.material.css.js +1 -1
  502. package/components/slider/themes/light/slider.material.css.js.map +1 -1
  503. package/components/snackbar/snackbar.d.ts +16 -4
  504. package/components/snackbar/snackbar.js.map +1 -1
  505. package/components/snackbar/themes/dark/snackbar.indigo.css.js +1 -1
  506. package/components/snackbar/themes/dark/snackbar.indigo.css.js.map +1 -1
  507. package/components/snackbar/themes/light/snackbar.base.css.js +1 -1
  508. package/components/snackbar/themes/light/snackbar.base.css.js.map +1 -1
  509. package/components/snackbar/themes/light/snackbar.bootstrap.css.js +1 -1
  510. package/components/snackbar/themes/light/snackbar.bootstrap.css.js.map +1 -1
  511. package/components/snackbar/themes/light/snackbar.fluent.css.js +1 -1
  512. package/components/snackbar/themes/light/snackbar.fluent.css.js.map +1 -1
  513. package/components/snackbar/themes/light/snackbar.indigo.css.js +1 -1
  514. package/components/snackbar/themes/light/snackbar.indigo.css.js.map +1 -1
  515. package/components/stepper/step.d.ts +94 -0
  516. package/components/stepper/step.js +211 -0
  517. package/components/stepper/step.js.map +1 -0
  518. package/components/stepper/stepper.common.d.ts +11 -0
  519. package/components/stepper/stepper.common.js +2 -0
  520. package/components/stepper/stepper.common.js.map +1 -0
  521. package/components/stepper/stepper.d.ts +110 -0
  522. package/components/stepper/stepper.js +345 -0
  523. package/components/stepper/stepper.js.map +1 -0
  524. package/components/stepper/themes/step/dark/step.bootstrap.css.d.ts +1 -0
  525. package/components/stepper/themes/step/dark/step.bootstrap.css.js +3 -0
  526. package/components/stepper/themes/step/dark/step.bootstrap.css.js.map +1 -0
  527. package/components/stepper/themes/step/dark/step.fluent.css.d.ts +1 -0
  528. package/components/stepper/themes/step/dark/step.fluent.css.js +3 -0
  529. package/components/stepper/themes/step/dark/step.fluent.css.js.map +1 -0
  530. package/components/stepper/themes/step/dark/step.indigo.css.d.ts +1 -0
  531. package/components/stepper/themes/step/dark/step.indigo.css.js +3 -0
  532. package/components/stepper/themes/step/dark/step.indigo.css.js.map +1 -0
  533. package/components/stepper/themes/step/dark/step.material.css.d.ts +1 -0
  534. package/components/stepper/themes/step/dark/step.material.css.js +3 -0
  535. package/components/stepper/themes/step/dark/step.material.css.js.map +1 -0
  536. package/components/stepper/themes/step/light/step.base.css.d.ts +1 -0
  537. package/components/stepper/themes/step/light/step.base.css.js +456 -0
  538. package/components/stepper/themes/step/light/step.base.css.js.map +1 -0
  539. package/components/stepper/themes/step/light/step.bootstrap.css.d.ts +1 -0
  540. package/components/stepper/themes/step/light/step.bootstrap.css.js +23 -0
  541. package/components/stepper/themes/step/light/step.bootstrap.css.js.map +1 -0
  542. package/components/stepper/themes/step/light/step.fluent.css.d.ts +1 -0
  543. package/components/stepper/themes/step/light/step.fluent.css.js +16 -0
  544. package/components/stepper/themes/step/light/step.fluent.css.js.map +1 -0
  545. package/components/stepper/themes/step/light/step.indigo.css.d.ts +1 -0
  546. package/components/stepper/themes/step/light/step.indigo.css.js +29 -0
  547. package/components/stepper/themes/step/light/step.indigo.css.js.map +1 -0
  548. package/components/stepper/themes/step/light/step.material.css.d.ts +1 -0
  549. package/components/stepper/themes/step/light/step.material.css.js +8 -0
  550. package/components/stepper/themes/step/light/step.material.css.js.map +1 -0
  551. package/components/stepper/themes/stepper/stepper.base.css.d.ts +1 -0
  552. package/components/stepper/themes/stepper/stepper.base.css.js +142 -0
  553. package/components/stepper/themes/stepper/stepper.base.css.js.map +1 -0
  554. package/components/stepper/themes/stepper/stepper.bootstrap.css.d.ts +1 -0
  555. package/components/stepper/themes/stepper/stepper.bootstrap.css.js +46 -0
  556. package/components/stepper/themes/stepper/stepper.bootstrap.css.js.map +1 -0
  557. package/components/stepper/themes/stepper/stepper.fluent.css.d.ts +1 -0
  558. package/components/stepper/themes/stepper/stepper.fluent.css.js +40 -0
  559. package/components/stepper/themes/stepper/stepper.fluent.css.js.map +1 -0
  560. package/components/stepper/themes/stepper/stepper.indigo.css.d.ts +1 -0
  561. package/components/stepper/themes/stepper/stepper.indigo.css.js +40 -0
  562. package/components/stepper/themes/stepper/stepper.indigo.css.js.map +1 -0
  563. package/components/tabs/tab.d.ts +12 -3
  564. package/components/tabs/tab.js +1 -1
  565. package/components/tabs/tab.js.map +1 -1
  566. package/components/tabs/tabs.d.ts +5 -1
  567. package/components/tabs/tabs.js.map +1 -1
  568. package/components/tabs/themes/dark/tab.dark.base.css.js +1 -1
  569. package/components/tabs/themes/dark/tab.dark.base.css.js.map +1 -1
  570. package/components/tabs/themes/dark/tab.dark.bootstrap.css.js +1 -1
  571. package/components/tabs/themes/dark/tab.dark.bootstrap.css.js.map +1 -1
  572. package/components/tabs/themes/light/tab-panel.base.css.js +1 -1
  573. package/components/tabs/themes/light/tab-panel.base.css.js.map +1 -1
  574. package/components/tabs/themes/light/tab.base.css.js +1 -1
  575. package/components/tabs/themes/light/tab.base.css.js.map +1 -1
  576. package/components/tabs/themes/light/tab.bootstrap.css.js +1 -1
  577. package/components/tabs/themes/light/tab.bootstrap.css.js.map +1 -1
  578. package/components/tabs/themes/light/tab.fluent.css.js +1 -1
  579. package/components/tabs/themes/light/tab.fluent.css.js.map +1 -1
  580. package/components/tabs/themes/light/tab.indigo.css.js +1 -1
  581. package/components/tabs/themes/light/tab.indigo.css.js.map +1 -1
  582. package/components/tabs/themes/light/tabs.base.css.js +1 -1
  583. package/components/tabs/themes/light/tabs.base.css.js.map +1 -1
  584. package/components/tabs/themes/light/tabs.bootstrap.css.js +1 -1
  585. package/components/tabs/themes/light/tabs.bootstrap.css.js.map +1 -1
  586. package/components/tabs/themes/light/tabs.fluent.css.js +1 -1
  587. package/components/tabs/themes/light/tabs.fluent.css.js.map +1 -1
  588. package/components/tabs/themes/light/tabs.indigo.css.js +1 -1
  589. package/components/tabs/themes/light/tabs.indigo.css.js.map +1 -1
  590. package/components/toast/themes/toast.base.css.js +1 -1
  591. package/components/toast/themes/toast.base.css.js.map +1 -1
  592. package/components/toast/themes/toast.bootstrap.css.js +1 -1
  593. package/components/toast/themes/toast.bootstrap.css.js.map +1 -1
  594. package/components/toast/themes/toast.fluent.css.js +1 -1
  595. package/components/toast/themes/toast.fluent.css.js.map +1 -1
  596. package/components/toast/themes/toast.indigo.css.js +1 -1
  597. package/components/toast/themes/toast.indigo.css.js.map +1 -1
  598. package/components/toast/toast.d.ts +13 -6
  599. package/components/toast/toast.js.map +1 -1
  600. package/components/toggle/toggle.controller.d.ts +1 -1
  601. package/components/toggle/toggle.controller.js +13 -13
  602. package/components/toggle/toggle.controller.js.map +1 -1
  603. package/components/toggle/toggle.directive.js +10 -10
  604. package/components/toggle/toggle.directive.js.map +1 -1
  605. package/components/toggle/types.d.ts +1 -1
  606. package/components/tree/themes/dark/tree-item.bootstrap.css.js +1 -1
  607. package/components/tree/themes/dark/tree-item.bootstrap.css.js.map +1 -1
  608. package/components/tree/themes/dark/tree-item.fluent.css.js +1 -1
  609. package/components/tree/themes/dark/tree-item.fluent.css.js.map +1 -1
  610. package/components/tree/themes/dark/tree-item.indigo.css.js +1 -1
  611. package/components/tree/themes/dark/tree-item.indigo.css.js.map +1 -1
  612. package/components/tree/themes/light/tree-item.base.css.js +1 -1
  613. package/components/tree/themes/light/tree-item.base.css.js.map +1 -1
  614. package/components/tree/themes/light/tree-item.bootstrap.css.js +1 -1
  615. package/components/tree/themes/light/tree-item.bootstrap.css.js.map +1 -1
  616. package/components/tree/themes/light/tree-item.fluent.css.js +1 -1
  617. package/components/tree/themes/light/tree-item.fluent.css.js.map +1 -1
  618. package/components/tree/themes/light/tree-item.indigo.css.js +1 -1
  619. package/components/tree/themes/light/tree-item.indigo.css.js.map +1 -1
  620. package/components/tree/themes/light/tree.base.css.js +1 -1
  621. package/components/tree/themes/light/tree.base.css.js.map +1 -1
  622. package/components/tree/tree-item.d.ts +25 -6
  623. package/components/tree/tree-item.js.map +1 -1
  624. package/components/tree/tree.d.ts +12 -3
  625. package/components/tree/tree.js +8 -8
  626. package/components/tree/tree.js.map +1 -1
  627. package/custom-elements.json +870 -2
  628. package/index.d.ts +5 -0
  629. package/index.js +3 -0
  630. package/index.js.map +1 -1
  631. package/package.json +5 -3
  632. package/themes/dark/bootstrap.css +6 -2
  633. package/themes/dark/fluent.css +11 -7
  634. package/themes/dark/indigo.css +6 -2
  635. package/themes/dark/material.css +6 -2
  636. package/themes/light/bootstrap.css +1 -1
  637. package/themes/light/fluent.css +6 -6
  638. package/themes/light/indigo.css +1 -1
  639. package/themes/light/material.css +1 -1
  640. package/theming/theming-event.d.ts +1 -1
  641. package/theming/types.d.ts +2 -2
  642. package/vscode-html-custom-data.json +337 -19
@@ -0,0 +1,518 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { html, LitElement } from 'lit';
8
+ import { themes } from '../../theming/theming-decorator.js';
9
+ import { styles } from './themes/light/combo.base.css.js';
10
+ import { styles as bootstrap } from './themes/light/combo.bootstrap.css.js';
11
+ import { styles as material } from './themes/light/combo.material.css.js';
12
+ import { styles as fluent } from './themes/light/combo.fluent.css.js';
13
+ import { styles as indigo } from './themes/light/combo.indigo.css.js';
14
+ import { property, query, queryAssignedElements, state, } from 'lit/decorators.js';
15
+ import { watch } from '../common/decorators/watch.js';
16
+ import { defineComponents } from '../common/definitions/defineComponents.js';
17
+ import IgcComboListComponent from './combo-list.js';
18
+ import IgcComboItemComponent from './combo-item.js';
19
+ import IgcComboHeaderComponent from './combo-header.js';
20
+ import IgcInputComponent from '../input/input.js';
21
+ import IgcIconComponent from '../icon/icon.js';
22
+ import { NavigationController } from './controllers/navigation.js';
23
+ import { SelectionController } from './controllers/selection.js';
24
+ import { IgcToggleController } from '../toggle/toggle.controller.js';
25
+ import { DataController } from './controllers/data.js';
26
+ import { ifDefined } from 'lit/directives/if-defined.js';
27
+ import { partNameMap } from '../common/util.js';
28
+ import { filteringOptionsConverter } from './utils/converters.js';
29
+ import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
30
+ import { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';
31
+ defineComponents(IgcIconComponent, IgcComboListComponent, IgcComboItemComponent, IgcComboHeaderComponent, IgcInputComponent);
32
+ let IgcComboComponent = class IgcComboComponent extends EventEmitterMixin(LitElement) {
33
+ dataChanged() {
34
+ this.dataState = structuredClone(this.data);
35
+ if (this.hasUpdated) {
36
+ this.pipeline();
37
+ }
38
+ }
39
+ updateDisplayKey() {
40
+ var _a;
41
+ this.displayKey = (_a = this.displayKey) !== null && _a !== void 0 ? _a : this.valueKey;
42
+ }
43
+ updateFilterKey() {
44
+ var _a;
45
+ this.filteringOptions.filterKey =
46
+ (_a = this.filteringOptions.filterKey) !== null && _a !== void 0 ? _a : this.displayKey;
47
+ }
48
+ async pipeline() {
49
+ this.dataState = await this.dataController.apply([...this.data]);
50
+ this.navigationController.active = -1;
51
+ }
52
+ toggleDirectiveChange() {
53
+ if (!this.target)
54
+ return;
55
+ this.toggleController.target = this.target;
56
+ this.target.setAttribute('aria-expanded', this.open ? 'true' : 'false');
57
+ }
58
+ constructor() {
59
+ super();
60
+ this.navigationController = new NavigationController(this);
61
+ this.selectionController = new SelectionController(this);
62
+ this.dataController = new DataController(this);
63
+ this.data = [];
64
+ this.disabled = false;
65
+ this.required = false;
66
+ this.invalid = false;
67
+ this.outlined = false;
68
+ this.autofocusList = false;
69
+ this.placeholderSearch = 'Search';
70
+ this.dir = 'auto';
71
+ this.open = false;
72
+ this.flip = true;
73
+ this.displayKey = this.valueKey;
74
+ this.groupKey = this.displayKey;
75
+ this.groupSorting = 'asc';
76
+ this.filteringOptions = {
77
+ filterKey: this.displayKey,
78
+ caseSensitive: false,
79
+ };
80
+ this.caseSensitiveIcon = false;
81
+ this.disableFiltering = false;
82
+ this.itemTemplate = ({ item }) => {
83
+ if (typeof item !== 'object' || item === null) {
84
+ return String(item);
85
+ }
86
+ if (this.displayKey) {
87
+ return html `${item[this.displayKey]}`;
88
+ }
89
+ return html `${String(item)}`;
90
+ };
91
+ this.groupHeaderTemplate = ({ item }) => {
92
+ return html `${this.groupKey && item[this.groupKey]}`;
93
+ };
94
+ this.dataState = [];
95
+ this.itemRenderer = (item, index) => {
96
+ const record = item;
97
+ const active = this.navigationController.active === index;
98
+ const selected = this.selectionController.selected.has(item);
99
+ const headerTemplate = html `<igc-combo-header part="group-header"
100
+ >${this.groupHeaderTemplate({ item: record })}</igc-combo-header
101
+ >`;
102
+ const itemParts = partNameMap({
103
+ item: true,
104
+ selected,
105
+ active,
106
+ });
107
+ const itemTemplate = html `<igc-combo-item
108
+ part="${itemParts}"
109
+ exportparts="checkbox, checkbox-indicator, checked"
110
+ @click=${this.itemClickHandler.bind(this)}
111
+ .index=${index}
112
+ .active=${active}
113
+ .selected=${selected}
114
+ >${this.itemTemplate({ item: record })}</igc-combo-item
115
+ >`;
116
+ return html `${this.groupKey && record.header
117
+ ? headerTemplate
118
+ : itemTemplate}`;
119
+ };
120
+ this.toggleController = new IgcToggleController(this, {
121
+ target: this.target,
122
+ closeCallback: async () => {
123
+ if (!this.handleClosing())
124
+ return;
125
+ this.open = false;
126
+ await this.updateComplete;
127
+ this.emitEvent('igcClosed');
128
+ },
129
+ });
130
+ this.addEventListener('focus', () => {
131
+ this.emitEvent('igcFocus');
132
+ });
133
+ this.addEventListener('blur', () => {
134
+ this.emitEvent('igcBlur');
135
+ });
136
+ this.addEventListener('keydown', this.navigationController.navigateHost.bind(this.navigationController));
137
+ }
138
+ themeAdopted(controller) {
139
+ this.themeController = controller;
140
+ }
141
+ willUpdate() {
142
+ this.theme = this.themeController.theme;
143
+ }
144
+ async getUpdateComplete() {
145
+ const result = await super.getUpdateComplete();
146
+ await this.toggleController.rendered;
147
+ return result;
148
+ }
149
+ get value() {
150
+ return this.selectionController.getValue(Array.from(this.selectionController.selected));
151
+ }
152
+ validate() {
153
+ this.updateComplete.then(() => this.reportValidity());
154
+ }
155
+ reportValidity() {
156
+ this.invalid = this.required && !this.value;
157
+ return !this.invalid;
158
+ }
159
+ checkValidity() {
160
+ return this.reportValidity();
161
+ }
162
+ focus(options) {
163
+ this.target.focus(options);
164
+ }
165
+ blur() {
166
+ this.target.blur();
167
+ }
168
+ select(items) {
169
+ this.selectionController.select(items, false);
170
+ }
171
+ deselect(items) {
172
+ this.selectionController.deselect(items, false);
173
+ }
174
+ handleSearchInput(e) {
175
+ this.dataController.searchTerm = e.detail;
176
+ }
177
+ handleOpening() {
178
+ const args = { cancelable: true };
179
+ return this.emitEvent('igcOpening', args);
180
+ }
181
+ handleClosing() {
182
+ const args = { cancelable: true };
183
+ return this.emitEvent('igcClosing', args);
184
+ }
185
+ async _show(emit = true) {
186
+ if (this.open)
187
+ return;
188
+ if (emit && !this.handleOpening())
189
+ return;
190
+ this.open = true;
191
+ await this.updateComplete;
192
+ emit && this.emitEvent('igcOpened');
193
+ this.list.focus();
194
+ if (!this.autofocusList) {
195
+ this.input.focus();
196
+ }
197
+ }
198
+ show() {
199
+ this._show(false);
200
+ }
201
+ async _hide(emit = true) {
202
+ if (!this.open)
203
+ return;
204
+ if (emit && !this.handleClosing())
205
+ return;
206
+ this.open = false;
207
+ await this.updateComplete;
208
+ emit && this.emitEvent('igcClosed');
209
+ this.target.focus();
210
+ }
211
+ hide() {
212
+ this._hide(false);
213
+ }
214
+ _toggle(emit = true) {
215
+ this.open ? this._hide(emit) : this._show(emit);
216
+ }
217
+ toggle() {
218
+ this._toggle(false);
219
+ }
220
+ listKeydownHandler(event) {
221
+ const target = event
222
+ .composedPath()
223
+ .find((el) => el instanceof IgcComboListComponent);
224
+ if (target) {
225
+ this.navigationController.navigateList(event, target);
226
+ }
227
+ }
228
+ itemClickHandler(event) {
229
+ const target = event
230
+ .composedPath()
231
+ .find((el) => el instanceof IgcComboItemComponent);
232
+ this.toggleSelect(target.index);
233
+ this.input.focus();
234
+ }
235
+ toggleSelect(index) {
236
+ this.selectionController.changeSelection(index);
237
+ this.navigationController.active = index;
238
+ }
239
+ navigateTo(item) {
240
+ this.navigationController.navigateTo(item, this.list);
241
+ }
242
+ handleClearIconClick(e) {
243
+ e.stopPropagation();
244
+ this.selectionController.deselect([], true);
245
+ this.navigationController.active = -1;
246
+ }
247
+ toggleCaseSensitivity() {
248
+ this.filteringOptions.caseSensitive = !this.filteringOptions.caseSensitive;
249
+ this.requestUpdate('pipeline');
250
+ }
251
+ get hasPrefixes() {
252
+ return this.inputPrefix.length > 0;
253
+ }
254
+ get hasSuffixes() {
255
+ return this.inputSuffix.length > 0;
256
+ }
257
+ renderToggleIcon() {
258
+ const openIcon = this.theme === 'material' ? 'keyboard_arrow_up' : 'arrow_drop_up';
259
+ const closeIcon = this.theme === 'material' ? 'keyboard_arrow_down' : 'arrow_drop_down';
260
+ return html `
261
+ <span slot="suffix" part="toggle-icon">
262
+ <slot name="toggle-icon">
263
+ <igc-icon
264
+ name=${this.open ? openIcon : closeIcon}
265
+ collection="internal"
266
+ aria-hidden="true"
267
+ ></igc-icon>
268
+ </slot>
269
+ </span>
270
+ `;
271
+ }
272
+ renderClearIcon() {
273
+ const { selected } = this.selectionController;
274
+ const icon = this.theme === 'material' ? 'chip_cancel' : 'clear';
275
+ return html `<span
276
+ slot="suffix"
277
+ part="clear-icon"
278
+ @click=${this.handleClearIconClick}
279
+ ?hidden=${selected.size === 0}
280
+ >
281
+ <slot name="clear-icon">
282
+ <igc-icon
283
+ name="${icon}"
284
+ collection="internal"
285
+ aria-hidden="true"
286
+ ></igc-icon>
287
+ </slot>
288
+ </span>`;
289
+ }
290
+ renderInput() {
291
+ return html `<igc-input
292
+ id="target"
293
+ role="combobox"
294
+ aria-owns="dropdown"
295
+ aria-describedby="helper-text"
296
+ aria-disabled=${this.disabled}
297
+ exportparts="container: input, input: native-input, label, prefix, suffix"
298
+ @click=${(e) => {
299
+ e.preventDefault();
300
+ this._toggle(true);
301
+ }}
302
+ value=${ifDefined(this.value)}
303
+ placeholder=${ifDefined(this.placeholder)}
304
+ label=${ifDefined(this.label)}
305
+ dir=${this.dir}
306
+ @igcFocus=${(e) => e.stopPropagation()}
307
+ @igcBlur=${(e) => e.stopPropagation()}
308
+ @keydown=${this.navigationController.navigateHost.bind(this.navigationController)}
309
+ .disabled="${this.disabled}"
310
+ .required=${this.required}
311
+ .invalid=${this.invalid}
312
+ .outlined=${this.outlined}
313
+ .autofocus=${this.autofocus}
314
+ readonly
315
+ >
316
+ <span slot=${this.hasPrefixes && 'prefix'}>
317
+ <slot name="prefix"></slot>
318
+ </span>
319
+ ${this.renderClearIcon()}
320
+ <span slot=${this.hasSuffixes && 'suffix'}>
321
+ <slot name="suffix"></slot>
322
+ </span>
323
+ ${this.renderToggleIcon()}
324
+ </igc-input>`;
325
+ }
326
+ renderSearchInput() {
327
+ var _a;
328
+ return html `<div part="filter-input" ?hidden=${this.disableFiltering}>
329
+ <igc-input
330
+ part="search-input"
331
+ placeholder=${this.placeholderSearch}
332
+ exportparts="input: search-input"
333
+ @igcFocus=${(e) => e.stopPropagation()}
334
+ @igcBlur=${(e) => e.stopPropagation()}
335
+ @igcInput=${this.handleSearchInput}
336
+ @keydown=${(e) => this.navigationController.navigateInput(e, this.list)}
337
+ dir=${this.dir}
338
+ >
339
+ <igc-icon
340
+ slot=${this.caseSensitiveIcon && 'suffix'}
341
+ name="case_sensitive"
342
+ collection="internal"
343
+ part=${partNameMap({
344
+ 'case-icon': true,
345
+ active: (_a = this.filteringOptions.caseSensitive) !== null && _a !== void 0 ? _a : false,
346
+ })}
347
+ @click=${this.toggleCaseSensitivity}
348
+ ></igc-icon>
349
+ </igc-input>
350
+ </div>`;
351
+ }
352
+ renderEmptyTemplate() {
353
+ return html `<div part="empty" ?hidden=${this.dataState.length > 0}>
354
+ <slot name="empty">The list is empty</slot>
355
+ </div>`;
356
+ }
357
+ renderList() {
358
+ return html `<div
359
+ @keydown=${this.listKeydownHandler}
360
+ part="list-wrapper"
361
+ ${this.toggleController.toggleDirective}
362
+ >
363
+ ${this.renderSearchInput()}
364
+ <div part="header">
365
+ <slot name="header"></slot>
366
+ </div>
367
+ <igc-combo-list
368
+ id="dropdown"
369
+ part="list"
370
+ aria-label="${this.label}"
371
+ .items=${this.dataState}
372
+ .renderItem=${this.itemRenderer}
373
+ ?hidden=${this.dataState.length === 0}
374
+ >
375
+ </igc-combo-list>
376
+ ${this.renderEmptyTemplate()}
377
+ <div part="footer">
378
+ <slot name="footer"></slot>
379
+ </div>
380
+ </div>`;
381
+ }
382
+ renderHelperText() {
383
+ return html `<div
384
+ id="helper-text"
385
+ part="helper-text"
386
+ ?hidden="${this.helperText.length === 0}"
387
+ >
388
+ <slot name="helper-text"></slot>
389
+ </div>`;
390
+ }
391
+ render() {
392
+ return html `
393
+ ${this.renderInput()}${this.renderList()}${this.renderHelperText()}
394
+ `;
395
+ }
396
+ };
397
+ IgcComboComponent.tagName = 'igc-combo';
398
+ IgcComboComponent.styles = styles;
399
+ __decorate([
400
+ queryAssignedElements({ slot: 'helper-text' })
401
+ ], IgcComboComponent.prototype, "helperText", void 0);
402
+ __decorate([
403
+ queryAssignedElements({ slot: 'suffix' })
404
+ ], IgcComboComponent.prototype, "inputSuffix", void 0);
405
+ __decorate([
406
+ queryAssignedElements({ slot: 'prefix' })
407
+ ], IgcComboComponent.prototype, "inputPrefix", void 0);
408
+ __decorate([
409
+ query('[part="search-input"]')
410
+ ], IgcComboComponent.prototype, "input", void 0);
411
+ __decorate([
412
+ query('igc-input#target')
413
+ ], IgcComboComponent.prototype, "target", void 0);
414
+ __decorate([
415
+ query('igc-combo-list')
416
+ ], IgcComboComponent.prototype, "list", void 0);
417
+ __decorate([
418
+ property({ attribute: false })
419
+ ], IgcComboComponent.prototype, "data", void 0);
420
+ __decorate([
421
+ property()
422
+ ], IgcComboComponent.prototype, "name", void 0);
423
+ __decorate([
424
+ property({ reflect: true, type: Boolean })
425
+ ], IgcComboComponent.prototype, "disabled", void 0);
426
+ __decorate([
427
+ property({ reflect: true, type: Boolean })
428
+ ], IgcComboComponent.prototype, "required", void 0);
429
+ __decorate([
430
+ property({ reflect: true, type: Boolean })
431
+ ], IgcComboComponent.prototype, "invalid", void 0);
432
+ __decorate([
433
+ property({ reflect: true, type: Boolean })
434
+ ], IgcComboComponent.prototype, "outlined", void 0);
435
+ __decorate([
436
+ property({ type: Boolean })
437
+ ], IgcComboComponent.prototype, "autofocus", void 0);
438
+ __decorate([
439
+ property({ attribute: 'autofocus-list', type: Boolean })
440
+ ], IgcComboComponent.prototype, "autofocusList", void 0);
441
+ __decorate([
442
+ property({ type: String })
443
+ ], IgcComboComponent.prototype, "label", void 0);
444
+ __decorate([
445
+ property({ type: String })
446
+ ], IgcComboComponent.prototype, "placeholder", void 0);
447
+ __decorate([
448
+ property({ attribute: 'placeholder-search', type: String })
449
+ ], IgcComboComponent.prototype, "placeholderSearch", void 0);
450
+ __decorate([
451
+ property({ reflect: true })
452
+ ], IgcComboComponent.prototype, "dir", void 0);
453
+ __decorate([
454
+ property({ type: Boolean })
455
+ ], IgcComboComponent.prototype, "open", void 0);
456
+ __decorate([
457
+ property({ type: Boolean })
458
+ ], IgcComboComponent.prototype, "flip", void 0);
459
+ __decorate([
460
+ property({ attribute: 'value-key', reflect: false })
461
+ ], IgcComboComponent.prototype, "valueKey", void 0);
462
+ __decorate([
463
+ property({ attribute: 'display-key', reflect: false })
464
+ ], IgcComboComponent.prototype, "displayKey", void 0);
465
+ __decorate([
466
+ property({ attribute: 'group-key', reflect: false })
467
+ ], IgcComboComponent.prototype, "groupKey", void 0);
468
+ __decorate([
469
+ property({ attribute: 'group-sorting', reflect: false })
470
+ ], IgcComboComponent.prototype, "groupSorting", void 0);
471
+ __decorate([
472
+ property({
473
+ attribute: 'filtering-options',
474
+ reflect: false,
475
+ converter: filteringOptionsConverter,
476
+ })
477
+ ], IgcComboComponent.prototype, "filteringOptions", void 0);
478
+ __decorate([
479
+ property({ type: Boolean, attribute: 'case-sensitive-icon', reflect: false })
480
+ ], IgcComboComponent.prototype, "caseSensitiveIcon", void 0);
481
+ __decorate([
482
+ property({ type: Boolean, attribute: 'disable-filtering', reflect: false })
483
+ ], IgcComboComponent.prototype, "disableFiltering", void 0);
484
+ __decorate([
485
+ property({ attribute: false })
486
+ ], IgcComboComponent.prototype, "itemTemplate", void 0);
487
+ __decorate([
488
+ property({ attribute: false })
489
+ ], IgcComboComponent.prototype, "groupHeaderTemplate", void 0);
490
+ __decorate([
491
+ state()
492
+ ], IgcComboComponent.prototype, "dataState", void 0);
493
+ __decorate([
494
+ watch('data')
495
+ ], IgcComboComponent.prototype, "dataChanged", null);
496
+ __decorate([
497
+ watch('valueKey')
498
+ ], IgcComboComponent.prototype, "updateDisplayKey", null);
499
+ __decorate([
500
+ watch('displayKey')
501
+ ], IgcComboComponent.prototype, "updateFilterKey", null);
502
+ __decorate([
503
+ watch('groupKey'),
504
+ watch('groupSorting'),
505
+ watch('pipeline')
506
+ ], IgcComboComponent.prototype, "pipeline", null);
507
+ __decorate([
508
+ watch('open')
509
+ ], IgcComboComponent.prototype, "toggleDirectiveChange", null);
510
+ __decorate([
511
+ watch('value')
512
+ ], IgcComboComponent.prototype, "validate", null);
513
+ IgcComboComponent = __decorate([
514
+ themes({ material, bootstrap, fluent, indigo }),
515
+ blazorAdditionalDependencies('IgcIconComponent, IgcComboListComponent, IgcComboItemComponent, IgcComboHeaderComponent, IgcInputComponent')
516
+ ], IgcComboComponent);
517
+ export default IgcComboComponent;
518
+ //# sourceMappingURL=combo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combo.js","sourceRoot":"","sources":["../../../src/components/combo/combo.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, TemplateResult } from 'lit';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { styles } from './themes/light/combo.base.css.js';\nimport { styles as bootstrap } from './themes/light/combo.bootstrap.css.js';\nimport { styles as material } from './themes/light/combo.material.css.js';\nimport { styles as fluent } from './themes/light/combo.fluent.css.js';\nimport { styles as indigo } from './themes/light/combo.indigo.css.js';\nimport {\n property,\n query,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { defineComponents } from '../common/definitions/defineComponents.js';\nimport IgcComboListComponent from './combo-list.js';\nimport IgcComboItemComponent from './combo-item.js';\nimport IgcComboHeaderComponent from './combo-header.js';\nimport IgcInputComponent from '../input/input.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport { NavigationController } from './controllers/navigation.js';\nimport { SelectionController } from './controllers/selection.js';\nimport { IgcToggleController } from '../toggle/toggle.controller.js';\nimport { DataController } from './controllers/data.js';\nimport { IgcToggleComponent } from '../toggle/types.js';\nimport {\n Keys,\n Values,\n ComboRecord,\n GroupingDirection,\n FilteringOptions,\n IgcComboEventMap,\n ComboItemTemplate,\n} from './types.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { partNameMap } from '../common/util.js';\nimport { filteringOptionsConverter } from './utils/converters.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { Constructor } from '../common/mixins/constructor.js';\nimport type { ThemeController, Theme } from '../../theming/types.js';\nimport { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';\n\ndefineComponents(\n IgcIconComponent,\n IgcComboListComponent,\n IgcComboItemComponent,\n IgcComboHeaderComponent,\n IgcInputComponent\n);\n\n/**\n * @element igc-combo\n *\n * @slot prefix - Renders content before the input.\n * @slot suffix - Renders content after input.\n * @slot header - Renders a container before the list of options.\n * @slot footer - Renders a container after the list of options.\n * @slot helper-text - Renders content below the input.\n * @slot toggle-icon - Renders content inside the suffix container.\n * @slot clear-icon - Renders content inside the suffix container.\n *\n * @fires igcFocus - Emitted when the select gains focus.\n * @fires igcBlur - Emitted when the select loses focus.\n * @fires igcChange - Emitted when the control's selection has changed.\n * @fires igcOpening - Emitted just before the list of options is opened.\n * @fires igcOpened - Emitted after the list of options is opened.\n * @fires igcClosing - Emitter just before the list of options is closed.\n * @fires igcClosed - Emitted after the list of options is closed.\n *\n * @csspart label - The encapsulated text label.\n * @csspart input - The main input field.\n * @csspart native-input - The native input of the main input field.\n * @csspart prefix - The prefix wrapper.\n * @csspart suffix - The suffix wrapper.\n * @csspart toggle-icon - The toggle icon wrapper.\n * @csspart clear-icon - The clear icon wrapper.\n * @csspart case-icon - The case icon wrapper.\n * @csspart helper-text - The helper text wrapper.\n * @csspart search-input - The search input field.\n * @csspart list-wrapper - The list of options wrapper.\n * @csspart list - The list of options box.\n * @csspart item - Represents each item in the list of options.\n * @csspart group-header - Represents each header in the list of options.\n * @csspart active - Appended to the item parts list when the item is active.\n * @csspart selected - Appended to the item parts list when the item is selected.\n * @csspart checkbox - Represents each checkbox of each list item.\n * @csspart checkbox-indicator - Represents the checkbox indicator of each list item.\n * @csspart checked - Appended to checkbox parts list when checkbox is checked.\n * @csspart header - The container holding the header content.\n * @csspart footer - The container holding the footer content.\n * @csspart empty - The container holding the empty content.\n */\n@themes({ material, bootstrap, fluent, indigo })\n@blazorAdditionalDependencies(\n 'IgcIconComponent, IgcComboListComponent, IgcComboItemComponent, IgcComboHeaderComponent, IgcInputComponent'\n)\nexport default class IgcComboComponent<T extends object>\n extends EventEmitterMixin<IgcComboEventMap, Constructor<LitElement>>(\n LitElement\n )\n implements Partial<IgcToggleComponent>\n{\n public static readonly tagName = 'igc-combo';\n public static styles = styles;\n\n protected navigationController = new NavigationController<T>(this);\n protected selectionController = new SelectionController<T>(this);\n protected dataController = new DataController<T>(this);\n protected toggleController!: IgcToggleController;\n protected themeController!: ThemeController;\n protected theme!: Theme;\n\n @queryAssignedElements({ slot: 'helper-text' })\n protected helperText!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'suffix' })\n protected inputSuffix!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'prefix' })\n protected inputPrefix!: Array<HTMLElement>;\n\n @query('[part=\"search-input\"]')\n protected input!: IgcInputComponent;\n\n @query('igc-input#target')\n private target!: IgcInputComponent;\n\n @query('igc-combo-list')\n private list!: IgcComboListComponent;\n\n /** The data source used to generate the list of options. */\n @property({ attribute: false })\n public data: Array<T> = [];\n\n /**\n * The name attribute of the control.\n * @attr name\n */\n @property()\n public name!: string;\n\n /**\n * The disabled attribute of the control.\n * @attr disabled\n */\n @property({ reflect: true, type: Boolean })\n public disabled = false;\n\n /**\n * The required attribute of the control.\n * @attr required\n */\n @property({ reflect: true, type: Boolean })\n public required = false;\n\n /**\n * The invalid attribute of the control.\n * @attr invalid\n */\n @property({ reflect: true, type: Boolean })\n public invalid = false;\n\n /**\n * The outlined attribute of the control.\n * @attr outlined\n */\n @property({ reflect: true, type: Boolean })\n public outlined = false;\n\n /**\n * The autofocus attribute of the control.\n * @attr autofocus\n */\n @property({ type: Boolean })\n public override autofocus!: boolean;\n\n /**\n * Focuses the list of options when the menu opens.\n * @attr autofocus-list\n */\n @property({ attribute: 'autofocus-list', type: Boolean })\n public autofocusList = false;\n\n /**\n * The label attribute of the control.\n * @attr label\n */\n @property({ type: String })\n public label!: string;\n\n /**\n * The placeholder attribute of the control.\n * @attr placeholder\n */\n @property({ type: String })\n public placeholder!: string;\n\n /**\n * The placeholder attribute of the search input.\n * @attr placeholder-search\n */\n @property({ attribute: 'placeholder-search', type: String })\n public placeholderSearch = 'Search';\n\n /**\n * The direction attribute of the control.\n * @attr dir\n */\n @property({ reflect: true })\n public override dir: 'ltr' | 'rtl' | 'auto' = 'auto';\n\n /**\n * Sets the open state of the component.\n * @attr open\n */\n @property({ type: Boolean })\n public open = false;\n\n /** @hidden @internal */\n @property({ type: Boolean })\n public flip = true;\n\n /**\n * The key in the data source used when selecting items.\n * @attr value-key\n */\n @property({ attribute: 'value-key', reflect: false })\n public valueKey?: Keys<T>;\n\n /**\n * The key in the data source used to display items in the list.\n * @attr display-key\n */\n @property({ attribute: 'display-key', reflect: false })\n public displayKey?: Keys<T> = this.valueKey;\n\n /**\n * The key in the data source used to group items in the list.\n * @attr group-key\n */\n @property({ attribute: 'group-key', reflect: false })\n public groupKey?: Keys<T> = this.displayKey;\n\n /**\n * Sorts the items in each group by ascending or descending order.\n * @attr group-sorting\n * @type {\"asc\" | \"desc\"}\n */\n @property({ attribute: 'group-sorting', reflect: false })\n public groupSorting: GroupingDirection = 'asc';\n\n /**\n * An object that configures the filtering of the combo.\n * @attr filtering-options\n * @type {FilteringOptions<T>}\n * @param filterKey - The key in the data source used when filtering the list of options.\n * @param caseSensitive - Determines whether the filtering operation should be case sensitive.\n */\n @property({\n attribute: 'filtering-options',\n reflect: false,\n converter: filteringOptionsConverter,\n })\n public filteringOptions: FilteringOptions<T> = {\n filterKey: this.displayKey,\n caseSensitive: false,\n };\n\n /**\n * Enables the case sensitive search icon in the filtering input.\n * @attr case-sensitive-icon\n */\n @property({ type: Boolean, attribute: 'case-sensitive-icon', reflect: false })\n public caseSensitiveIcon = false;\n\n /**\n * Disables the filtering of the list of options.\n * @attr disable-filtering\n */\n @property({ type: Boolean, attribute: 'disable-filtering', reflect: false })\n public disableFiltering = false;\n\n /**\n * The template used for the content of each combo item.\n * @type {ComboItemTemplate<T>}\n */\n @property({ attribute: false })\n public itemTemplate: ComboItemTemplate<T> = ({ item }) => {\n if (typeof item !== 'object' || item === null) {\n return String(item) as any;\n }\n\n if (this.displayKey) {\n return html`${item[this.displayKey]}`;\n }\n\n return html`${String(item)}`;\n };\n\n /**\n * The template used for the content of each combo group header.\n * @type {ComboItemTemplate<T>}\n */\n @property({ attribute: false })\n public groupHeaderTemplate: ComboItemTemplate<T> = ({ item }) => {\n return html`${this.groupKey && item[this.groupKey]}`;\n };\n\n @state()\n protected dataState: Array<ComboRecord<T>> = [];\n\n @watch('data')\n protected dataChanged() {\n this.dataState = structuredClone(this.data) as ComboRecord<T>[];\n\n if (this.hasUpdated) {\n this.pipeline();\n }\n }\n\n @watch('valueKey')\n protected updateDisplayKey() {\n this.displayKey = this.displayKey ?? this.valueKey;\n }\n\n @watch('displayKey')\n protected updateFilterKey() {\n this.filteringOptions.filterKey =\n this.filteringOptions.filterKey ?? this.displayKey;\n }\n\n @watch('groupKey')\n @watch('groupSorting')\n @watch('pipeline')\n protected async pipeline() {\n this.dataState = await this.dataController.apply([...this.data]);\n this.navigationController.active = -1;\n }\n\n @watch('open')\n protected toggleDirectiveChange() {\n if (!this.target) return;\n this.toggleController.target = this.target;\n this.target.setAttribute('aria-expanded', this.open ? 'true' : 'false');\n }\n\n constructor() {\n super();\n\n this.toggleController = new IgcToggleController(this, {\n target: this.target,\n closeCallback: async () => {\n if (!this.handleClosing()) return;\n this.open = false;\n\n await this.updateComplete;\n this.emitEvent('igcClosed');\n },\n });\n\n this.addEventListener('focus', () => {\n this.emitEvent('igcFocus');\n });\n\n this.addEventListener('blur', () => {\n this.emitEvent('igcBlur');\n });\n\n this.addEventListener(\n 'keydown',\n this.navigationController.navigateHost.bind(this.navigationController)\n );\n }\n\n protected themeAdopted(controller: ThemeController) {\n this.themeController = controller;\n }\n\n protected override willUpdate() {\n this.theme = this.themeController.theme;\n }\n\n protected override async getUpdateComplete() {\n const result = await super.getUpdateComplete();\n await this.toggleController.rendered;\n return result;\n }\n\n /**\n * Returns the current selection as a list of commma separated values,\n * represented by the display key, when provided.\n */\n public get value() {\n return this.selectionController.getValue(\n Array.from(this.selectionController.selected)\n );\n }\n\n @watch('value')\n protected validate() {\n this.updateComplete.then(() => this.reportValidity());\n }\n\n /** Checks the validity of the control. */\n public reportValidity() {\n this.invalid = this.required && !this.value;\n return !this.invalid;\n }\n\n /** A wrapper around the reportValidity method to comply with the native input API. */\n public checkValidity() {\n return this.reportValidity();\n }\n\n /** Sets focus on the component. */\n public override focus(options?: FocusOptions) {\n this.target.focus(options);\n }\n\n /** Removes focus from the component. */\n public override blur() {\n this.target.blur();\n }\n\n /**\n * Selects the options in the list by either value or key value.\n * If not argument is provided all items will be selected.\n * @param { T[] | Values<T>[] } items - A list of values or values as set by the valueKey.\n */\n public select(items?: T[] | Values<T>[]) {\n this.selectionController.select(items, false);\n }\n\n /**\n * Deselects the options in the list by either value or key value.\n * If not argument is provided all items will be deselected.\n * @param { T[] | Values<T>[] } items - A list of values or values as set by the valueKey.\n */\n public deselect(items?: T[] | Values<T>[]) {\n this.selectionController.deselect(items, false);\n }\n\n protected handleSearchInput(e: CustomEvent) {\n this.dataController.searchTerm = e.detail;\n }\n\n protected handleOpening() {\n const args = { cancelable: true };\n return this.emitEvent('igcOpening', args);\n }\n\n protected handleClosing(): boolean {\n const args = { cancelable: true };\n return this.emitEvent('igcClosing', args);\n }\n\n protected async _show(emit = true) {\n if (this.open) return;\n if (emit && !this.handleOpening()) return;\n this.open = true;\n\n await this.updateComplete;\n emit && this.emitEvent('igcOpened');\n\n this.list.focus();\n\n if (!this.autofocusList) {\n this.input.focus();\n }\n }\n\n /** Shows the list of options. */\n public show() {\n this._show(false);\n }\n\n protected async _hide(emit = true) {\n if (!this.open) return;\n if (emit && !this.handleClosing()) return;\n this.open = false;\n\n await this.updateComplete;\n emit && this.emitEvent('igcClosed');\n this.target.focus();\n }\n\n /** Hides the list of options. */\n public hide() {\n this._hide(false);\n }\n\n /** @hidden @internal */\n public _toggle(emit = true) {\n this.open ? this._hide(emit) : this._show(emit);\n }\n\n /** Toggles the list of options. */\n public toggle() {\n this._toggle(false);\n }\n\n protected itemRenderer = (item: T, index: number): TemplateResult => {\n const record = item as ComboRecord<T>;\n const active = this.navigationController.active === index;\n const selected = this.selectionController.selected.has(item);\n const headerTemplate = html`<igc-combo-header part=\"group-header\"\n >${this.groupHeaderTemplate({ item: record })}</igc-combo-header\n >`;\n\n const itemParts = partNameMap({\n item: true,\n selected,\n active,\n });\n\n const itemTemplate = html`<igc-combo-item\n part=\"${itemParts}\"\n exportparts=\"checkbox, checkbox-indicator, checked\"\n @click=${this.itemClickHandler.bind(this)}\n .index=${index}\n .active=${active}\n .selected=${selected}\n >${this.itemTemplate({ item: record })}</igc-combo-item\n >`;\n\n return html`${this.groupKey && record.header\n ? headerTemplate\n : itemTemplate}`;\n };\n\n protected listKeydownHandler(event: KeyboardEvent) {\n const target = event\n .composedPath()\n .find(\n (el) => el instanceof IgcComboListComponent\n ) as IgcComboListComponent;\n\n if (target) {\n this.navigationController.navigateList(event, target);\n }\n }\n\n protected itemClickHandler(event: MouseEvent) {\n const target = event\n .composedPath()\n .find(\n (el) => el instanceof IgcComboItemComponent\n ) as IgcComboItemComponent;\n\n this.toggleSelect(target.index);\n this.input.focus();\n }\n\n protected toggleSelect(index: number) {\n this.selectionController.changeSelection(index);\n this.navigationController.active = index;\n }\n\n protected navigateTo(item: T) {\n this.navigationController.navigateTo(item, this.list);\n }\n\n protected handleClearIconClick(e: MouseEvent) {\n e.stopPropagation();\n this.selectionController.deselect([], true);\n this.navigationController.active = -1;\n }\n\n protected toggleCaseSensitivity() {\n this.filteringOptions.caseSensitive = !this.filteringOptions.caseSensitive;\n this.requestUpdate('pipeline');\n }\n\n protected get hasPrefixes() {\n return this.inputPrefix.length > 0;\n }\n\n protected get hasSuffixes() {\n return this.inputSuffix.length > 0;\n }\n\n private renderToggleIcon() {\n const openIcon =\n this.theme === 'material' ? 'keyboard_arrow_up' : 'arrow_drop_up';\n const closeIcon =\n this.theme === 'material' ? 'keyboard_arrow_down' : 'arrow_drop_down';\n\n return html`\n <span slot=\"suffix\" part=\"toggle-icon\">\n <slot name=\"toggle-icon\">\n <igc-icon\n name=${this.open ? openIcon : closeIcon}\n collection=\"internal\"\n aria-hidden=\"true\"\n ></igc-icon>\n </slot>\n </span>\n `;\n }\n\n private renderClearIcon() {\n const { selected } = this.selectionController;\n const icon = this.theme === 'material' ? 'chip_cancel' : 'clear';\n\n return html`<span\n slot=\"suffix\"\n part=\"clear-icon\"\n @click=${this.handleClearIconClick}\n ?hidden=${selected.size === 0}\n >\n <slot name=\"clear-icon\">\n <igc-icon\n name=\"${icon}\"\n collection=\"internal\"\n aria-hidden=\"true\"\n ></igc-icon>\n </slot>\n </span>`;\n }\n\n private renderInput() {\n return html`<igc-input\n id=\"target\"\n role=\"combobox\"\n aria-owns=\"dropdown\"\n aria-describedby=\"helper-text\"\n aria-disabled=${this.disabled}\n exportparts=\"container: input, input: native-input, label, prefix, suffix\"\n @click=${(e: MouseEvent) => {\n e.preventDefault();\n this._toggle(true);\n }}\n value=${ifDefined(this.value)}\n placeholder=${ifDefined(this.placeholder)}\n label=${ifDefined(this.label)}\n dir=${this.dir}\n @igcFocus=${(e: Event) => e.stopPropagation()}\n @igcBlur=${(e: Event) => e.stopPropagation()}\n @keydown=${this.navigationController.navigateHost.bind(\n this.navigationController\n )}\n .disabled=\"${this.disabled}\"\n .required=${this.required}\n .invalid=${this.invalid}\n .outlined=${this.outlined}\n .autofocus=${this.autofocus}\n readonly\n >\n <span slot=${this.hasPrefixes && 'prefix'}>\n <slot name=\"prefix\"></slot>\n </span>\n ${this.renderClearIcon()}\n <span slot=${this.hasSuffixes && 'suffix'}>\n <slot name=\"suffix\"></slot>\n </span>\n ${this.renderToggleIcon()}\n </igc-input>`;\n }\n\n private renderSearchInput() {\n return html`<div part=\"filter-input\" ?hidden=${this.disableFiltering}>\n <igc-input\n part=\"search-input\"\n placeholder=${this.placeholderSearch}\n exportparts=\"input: search-input\"\n @igcFocus=${(e: Event) => e.stopPropagation()}\n @igcBlur=${(e: Event) => e.stopPropagation()}\n @igcInput=${this.handleSearchInput}\n @keydown=${(e: KeyboardEvent) =>\n this.navigationController.navigateInput(e, this.list)}\n dir=${this.dir}\n >\n <igc-icon\n slot=${this.caseSensitiveIcon && 'suffix'}\n name=\"case_sensitive\"\n collection=\"internal\"\n part=${partNameMap({\n 'case-icon': true,\n active: this.filteringOptions.caseSensitive ?? false,\n })}\n @click=${this.toggleCaseSensitivity}\n ></igc-icon>\n </igc-input>\n </div>`;\n }\n\n private renderEmptyTemplate() {\n return html`<div part=\"empty\" ?hidden=${this.dataState.length > 0}>\n <slot name=\"empty\">The list is empty</slot>\n </div>`;\n }\n\n private renderList() {\n return html`<div\n @keydown=${this.listKeydownHandler}\n part=\"list-wrapper\"\n ${this.toggleController.toggleDirective}\n >\n ${this.renderSearchInput()}\n <div part=\"header\">\n <slot name=\"header\"></slot>\n </div>\n <igc-combo-list\n id=\"dropdown\"\n part=\"list\"\n aria-label=\"${this.label}\"\n .items=${this.dataState}\n .renderItem=${this.itemRenderer}\n ?hidden=${this.dataState.length === 0}\n >\n </igc-combo-list>\n ${this.renderEmptyTemplate()}\n <div part=\"footer\">\n <slot name=\"footer\"></slot>\n </div>\n </div>`;\n }\n\n private renderHelperText() {\n return html`<div\n id=\"helper-text\"\n part=\"helper-text\"\n ?hidden=\"${this.helperText.length === 0}\"\n >\n <slot name=\"helper-text\"></slot>\n </div>`;\n }\n\n protected override render() {\n return html`\n ${this.renderInput()}${this.renderList()}${this.renderHelperText()}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-combo': IgcComboComponent<object>;\n }\n}\n"]}
@@ -0,0 +1,17 @@
1
+ import { ReactiveController } from 'lit';
2
+ import GroupDataOperation from '../operations/group.js';
3
+ import FilterDataOperation from '../operations/filter.js';
4
+ import { ComboHost, ComboRecord, FilteringOptions, GroupingOptions } from '../types.js';
5
+ export declare class DataController<T extends object> implements ReactiveController {
6
+ protected host: ComboHost<T>;
7
+ protected grouping: GroupDataOperation<T>;
8
+ protected filtering: FilterDataOperation<T>;
9
+ private _searchTerm;
10
+ constructor(host: ComboHost<T>);
11
+ set searchTerm(value: string);
12
+ get searchTerm(): string;
13
+ get filteringOptions(): FilteringOptions<T>;
14
+ get groupingOptions(): GroupingOptions<T>;
15
+ hostConnected(): void;
16
+ apply(data: T[]): Promise<ComboRecord<T>[]>;
17
+ }
@@ -0,0 +1,36 @@
1
+ import GroupDataOperation from '../operations/group.js';
2
+ import FilterDataOperation from '../operations/filter.js';
3
+ export class DataController {
4
+ constructor(host) {
5
+ this.host = host;
6
+ this.grouping = new GroupDataOperation();
7
+ this.filtering = new FilterDataOperation();
8
+ this._searchTerm = '';
9
+ this.host.addController(this);
10
+ }
11
+ set searchTerm(value) {
12
+ this._searchTerm = value;
13
+ this.host.requestUpdate('pipeline');
14
+ }
15
+ get searchTerm() {
16
+ return this._searchTerm;
17
+ }
18
+ get filteringOptions() {
19
+ return this.host.filteringOptions;
20
+ }
21
+ get groupingOptions() {
22
+ return {
23
+ valueKey: this.host.valueKey,
24
+ displayKey: this.host.displayKey,
25
+ groupKey: this.host.groupKey,
26
+ direction: this.host.groupSorting,
27
+ };
28
+ }
29
+ hostConnected() { }
30
+ async apply(data) {
31
+ data = this.filtering.apply(data, this);
32
+ data = this.grouping.apply(data, this);
33
+ return data;
34
+ }
35
+ }
36
+ //# sourceMappingURL=data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../../../../src/components/combo/controllers/data.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,MAAM,wBAAwB,CAAC;AACxD,OAAO,mBAAmB,MAAM,yBAAyB,CAAC;AAQ1D,MAAM,OAAO,cAAc;IAKzB,YAAsB,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;QAJ9B,aAAQ,GAAG,IAAI,kBAAkB,EAAK,CAAC;QACvC,cAAS,GAAG,IAAI,mBAAmB,EAAK,CAAC;QAC3C,gBAAW,GAAG,EAAE,CAAC;QAGvB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,IAAW,UAAU,CAAC,KAAa;QACjC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;IACpC,CAAC;IAED,IAAW,eAAe;QACxB,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;YAC5B,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;YAChC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;YAC5B,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;SAClC,CAAC;IACJ,CAAC;IAEM,aAAa,KAAI,CAAC;IAElB,KAAK,CAAC,KAAK,CAAC,IAAS;QAC1B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEvC,OAAO,IAAwB,CAAC;IAClC,CAAC;CACF","sourcesContent":["import { ReactiveController } from 'lit';\nimport GroupDataOperation from '../operations/group.js';\nimport FilterDataOperation from '../operations/filter.js';\nimport {\n ComboHost,\n ComboRecord,\n FilteringOptions,\n GroupingOptions,\n} from '../types.js';\n\nexport class DataController<T extends object> implements ReactiveController {\n protected grouping = new GroupDataOperation<T>();\n protected filtering = new FilterDataOperation<T>();\n private _searchTerm = '';\n\n constructor(protected host: ComboHost<T>) {\n this.host.addController(this);\n }\n\n public set searchTerm(value: string) {\n this._searchTerm = value;\n this.host.requestUpdate('pipeline');\n }\n\n public get searchTerm() {\n return this._searchTerm;\n }\n\n public get filteringOptions(): FilteringOptions<T> {\n return this.host.filteringOptions;\n }\n\n public get groupingOptions(): GroupingOptions<T> {\n return {\n valueKey: this.host.valueKey,\n displayKey: this.host.displayKey,\n groupKey: this.host.groupKey,\n direction: this.host.groupSorting,\n };\n }\n\n public hostConnected() {}\n\n public async apply(data: T[]): Promise<ComboRecord<T>[]> {\n data = this.filtering.apply(data, this);\n data = this.grouping.apply(data, this);\n\n return data as ComboRecord<T>[];\n }\n}\n"]}