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
@@ -42,29 +42,36 @@ let IgcMaskInputBaseComponent = class IgcMaskInputBaseComponent extends IgcInput
42
42
  this.input.select();
43
43
  }
44
44
  handleInput({ inputType, isComposing }) {
45
+ const EMPTY = '';
45
46
  const value = this.input.value;
46
- const start = this.selection.start;
47
- let end = this.selection.end;
47
+ const { start, end } = this.selection;
48
+ const deleteEnd = this.parser.getNextNonLiteralPosition(end) + 1;
48
49
  switch (inputType) {
49
50
  case 'deleteContentForward':
50
- this.updateInput('', start, (end = start === end ? ++end : end));
51
- return this.updateComplete.then(() => this.input.setSelectionRange(end, end));
51
+ this.updateInput(EMPTY, { start, end: deleteEnd });
52
+ return this.updateComplete.then(() => this.input.setSelectionRange(deleteEnd, deleteEnd));
52
53
  case 'deleteContentBackward':
53
54
  if (isComposing)
54
55
  return;
55
- return this.updateInput('', this.inputSelection.start, end);
56
+ return this.updateInput(EMPTY, {
57
+ start: this.parser.getPreviousNonLiteralPosition(this.inputSelection.start),
58
+ end,
59
+ });
56
60
  case 'deleteByCut':
57
- return this.updateInput('', start, end);
61
+ return this.updateInput(EMPTY, this.selection);
58
62
  case 'insertText':
59
- return this.updateInput(value.substring(start, this.inputSelection.end), start, end);
63
+ return this.updateInput(value.substring(start, this.inputSelection.end), this.selection);
60
64
  case 'insertFromPaste':
61
- return this.updateInput(value.substring(start, this.inputSelection.end), start, this.inputSelection.start);
65
+ return this.updateInput(value.substring(start, this.inputSelection.end), {
66
+ start,
67
+ end: this.inputSelection.start,
68
+ });
62
69
  case 'insertFromDrop':
63
- return this.updateInput(value.substring(this.inputSelection.start, this.inputSelection.end), this.inputSelection.start, this.inputSelection.end);
70
+ return this.updateInput(value.substring(this.inputSelection.start, this.inputSelection.end), { ...this.inputSelection });
64
71
  }
65
72
  }
66
- handleKeydown(e) {
67
- if (!e.key) {
73
+ handleKeydown({ key }) {
74
+ if (!key) {
68
75
  return;
69
76
  }
70
77
  this.selection = this.inputSelection;
@@ -79,8 +86,10 @@ let IgcMaskInputBaseComponent = class IgcMaskInputBaseComponent extends IgcInput
79
86
  this.compositionStart = this.inputSelection.start;
80
87
  }
81
88
  handleCompositionEnd({ data }) {
82
- const start = this.compositionStart, end = this.inputSelection.end;
83
- this.updateInput(data, start, end);
89
+ this.updateInput(data, {
90
+ start: this.compositionStart,
91
+ end: this.inputSelection.end,
92
+ });
84
93
  }
85
94
  handleInvalid() {
86
95
  this.invalid = true;
@@ -1 +1 @@
1
- {"version":3,"file":"mask-input-base.js","sourceRoot":"","sources":["../../../src/components/mask-input/mask-input-base.ts"],"names":[],"mappings":"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","sourcesContent":["import { property, state } from 'lit/decorators.js';\nimport { blazorDeepImport } from '../common/decorators/blazorDeepImport.js';\nimport { blazorSuppress } from '../common/decorators/blazorSuppress.js';\nimport { IgcInputBaseComponent } from '../input/input-base.js';\nimport { MaskParser } from './mask-parser.js';\ninterface MaskSelection {\n start: number;\n end: number;\n}\n\n@blazorDeepImport\nexport abstract class IgcMaskInputBaseComponent extends IgcInputBaseComponent {\n protected parser = new MaskParser();\n protected selection: MaskSelection = { start: 0, end: 0 };\n protected compositionStart = 0;\n\n @state()\n protected hasFocus = false;\n\n @state()\n protected maskedValue = '';\n\n @state()\n protected _mask = '';\n\n /** The prompt symbol to use for unfilled parts of the mask. */\n @property()\n public prompt!: string;\n\n /** Controls the validity of the control. */\n @property({ reflect: true, type: Boolean })\n public invalid = false;\n\n protected get inputSelection(): MaskSelection {\n return {\n start: this.input.selectionStart || 0,\n end: this.input.selectionEnd || 0,\n };\n }\n\n protected get emptyMask(): string {\n return this.parser.apply();\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n\n this._mask = this._mask || this.parser.mask;\n this.prompt = this.prompt || this.parser.prompt;\n }\n\n /**\n * Sets a custom validation message for the control.\n * As long as `message` is not empty, the control is considered invalid.\n */\n public setCustomValidity(message: string) {\n this.input.setCustomValidity(message);\n this.invalid = !this.input.checkValidity();\n }\n\n /** Selects all text within the input. */\n public select() {\n this.input.select();\n }\n\n protected handleInput({ inputType, isComposing }: InputEvent) {\n const value = this.input.value;\n const start = this.selection.start;\n let end = this.selection.end;\n\n switch (inputType) {\n case 'deleteContentForward':\n this.updateInput('', start, (end = start === end ? ++end : end));\n return this.updateComplete.then(() =>\n this.input.setSelectionRange(end, end)\n );\n\n case 'deleteContentBackward':\n if (isComposing) return;\n return this.updateInput('', this.inputSelection.start, end);\n\n case 'deleteByCut':\n return this.updateInput('', start, end);\n\n case 'insertText':\n return this.updateInput(\n value.substring(start, this.inputSelection.end),\n start,\n end\n );\n\n case 'insertFromPaste':\n return this.updateInput(\n value.substring(start, this.inputSelection.end),\n start,\n this.inputSelection.start\n );\n\n case 'insertFromDrop':\n return this.updateInput(\n value.substring(this.inputSelection.start, this.inputSelection.end),\n this.inputSelection.start,\n this.inputSelection.end\n );\n }\n }\n\n protected handleKeydown(e: KeyboardEvent) {\n if (!e.key) {\n return;\n }\n this.selection = this.inputSelection;\n }\n\n protected handleCut() {\n this.selection = this.inputSelection;\n }\n\n protected handleDragStart() {\n this.selection = this.inputSelection;\n }\n\n protected handleCompositionStart() {\n this.compositionStart = this.inputSelection.start;\n }\n\n protected handleCompositionEnd({ data }: CompositionEvent) {\n const start = this.compositionStart,\n end = this.inputSelection.end;\n this.updateInput(data, start, end);\n }\n\n protected handleInvalid() {\n this.invalid = true;\n }\n\n @blazorSuppress()\n public override setSelectionRange(\n start: number,\n end: number,\n direction?: 'backward' | 'forward' | 'none'\n ): void {\n super.setSelectionRange(start, end, direction);\n this.selection = { start, end };\n }\n\n protected abstract updateInput(\n part: string,\n start: number,\n finish: number\n ): void;\n}\n"]}
1
+ {"version":3,"file":"mask-input-base.js","sourceRoot":"","sources":["../../../src/components/mask-input/mask-input-base.ts"],"names":[],"mappings":"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","sourcesContent":["import { property, state } from 'lit/decorators.js';\nimport { blazorDeepImport } from '../common/decorators/blazorDeepImport.js';\nimport { blazorSuppress } from '../common/decorators/blazorSuppress.js';\nimport { IgcInputBaseComponent } from '../input/input-base.js';\nimport { MaskParser } from './mask-parser.js';\n\nexport type MaskRange = {\n start: number;\n end: number;\n};\n\n@blazorDeepImport\nexport abstract class IgcMaskInputBaseComponent extends IgcInputBaseComponent {\n protected parser = new MaskParser();\n protected selection: MaskRange = { start: 0, end: 0 };\n protected compositionStart = 0;\n\n @state()\n protected hasFocus = false;\n\n @state()\n protected maskedValue = '';\n\n @state()\n protected _mask = '';\n\n /** The prompt symbol to use for unfilled parts of the mask. */\n @property()\n public prompt!: string;\n\n /** Controls the validity of the control. */\n @property({ reflect: true, type: Boolean })\n public invalid = false;\n\n protected get inputSelection(): MaskRange {\n return {\n start: this.input.selectionStart || 0,\n end: this.input.selectionEnd || 0,\n };\n }\n\n protected get emptyMask(): string {\n return this.parser.apply();\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n\n this._mask = this._mask || this.parser.mask;\n this.prompt = this.prompt || this.parser.prompt;\n }\n\n /**\n * Sets a custom validation message for the control.\n * As long as `message` is not empty, the control is considered invalid.\n */\n public setCustomValidity(message: string) {\n this.input.setCustomValidity(message);\n this.invalid = !this.input.checkValidity();\n }\n\n /** Selects all text within the input. */\n public select() {\n this.input.select();\n }\n\n protected handleInput({ inputType, isComposing }: InputEvent) {\n const EMPTY = '';\n const value = this.input.value;\n const { start, end } = this.selection;\n const deleteEnd = this.parser.getNextNonLiteralPosition(end) + 1;\n\n switch (inputType) {\n case 'deleteContentForward':\n this.updateInput(EMPTY, { start, end: deleteEnd });\n return this.updateComplete.then(() =>\n this.input.setSelectionRange(deleteEnd, deleteEnd)\n );\n\n case 'deleteContentBackward':\n if (isComposing) return;\n return this.updateInput(EMPTY, {\n start: this.parser.getPreviousNonLiteralPosition(\n this.inputSelection.start\n ),\n end,\n });\n\n case 'deleteByCut':\n return this.updateInput(EMPTY, this.selection);\n\n case 'insertText':\n return this.updateInput(\n value.substring(start, this.inputSelection.end),\n this.selection\n );\n\n case 'insertFromPaste':\n return this.updateInput(\n value.substring(start, this.inputSelection.end),\n {\n start,\n end: this.inputSelection.start,\n }\n );\n\n case 'insertFromDrop':\n return this.updateInput(\n value.substring(this.inputSelection.start, this.inputSelection.end),\n { ...this.inputSelection }\n );\n }\n }\n\n protected handleKeydown({ key }: KeyboardEvent) {\n if (!key) {\n return;\n }\n this.selection = this.inputSelection;\n }\n\n protected handleCut() {\n this.selection = this.inputSelection;\n }\n\n protected handleDragStart() {\n this.selection = this.inputSelection;\n }\n\n protected handleCompositionStart() {\n this.compositionStart = this.inputSelection.start;\n }\n\n protected handleCompositionEnd({ data }: CompositionEvent) {\n this.updateInput(data, {\n start: this.compositionStart,\n end: this.inputSelection.end,\n });\n }\n\n protected handleInvalid() {\n this.invalid = true;\n }\n\n @blazorSuppress()\n public override setSelectionRange(\n start: number,\n end: number,\n direction?: 'backward' | 'forward' | 'none'\n ): void {\n super.setSelectionRange(start, end, direction);\n this.selection = { start, end };\n }\n\n protected abstract updateInput(string: string, range: MaskRange): void;\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { IgcMaskInputBaseComponent } from './mask-input-base.js';
1
+ import { IgcMaskInputBaseComponent, MaskRange } from './mask-input-base.js';
2
2
  /**
3
3
  * A masked input is an input field where a developer can control user input and format the visible value,
4
4
  * based on configurable rules
@@ -29,29 +29,30 @@ export default class IgcMaskInputComponent extends IgcMaskInputBaseComponent {
29
29
  *
30
30
  * - `raw` will return the clean user input.
31
31
  * - `withFormatting` will return the value with all literals and prompts.
32
- *
32
+ * @attr value-mode
33
33
  */
34
34
  valueMode: 'raw' | 'withFormatting';
35
35
  /**
36
36
  * The value of the input.
37
37
  *
38
38
  * Regardless of the currently set `value-mode`, an empty value will return an empty string.
39
- *
39
+ * @attr
40
40
  */
41
41
  get value(): string;
42
42
  set value(string: string);
43
- /** The mask pattern to apply on the input. */
43
+ /**
44
+ * The mask pattern to apply on the input.
45
+ * @attr
46
+ */
44
47
  get mask(): string;
45
48
  /** The mask pattern to apply on the input. */
46
- set mask(val: string);
49
+ set mask(value: string);
47
50
  protected promptChange(): void;
48
- protected maskChange(): void;
49
- protected handleInvalidState(): void;
50
- connectedCallback(): void;
51
- protected updateInput(part: string, start: number, finish: number): void;
51
+ protected handleInvalidState(): Promise<void>;
52
+ protected updateInput(string: string, range: MaskRange): Promise<void>;
52
53
  protected handleDragEnter(): void;
53
54
  protected handleDragLeave(): void;
54
- protected handleFocus(): void;
55
+ protected handleFocus(): Promise<void>;
55
56
  protected handleBlur(): void;
56
57
  protected handleChange(): void;
57
58
  protected handleClick(): void;
@@ -32,38 +32,34 @@ export default class IgcMaskInputComponent extends IgcMaskInputBaseComponent {
32
32
  get mask() {
33
33
  return this._mask;
34
34
  }
35
- set mask(val) {
36
- this._mask = val;
37
- }
38
- promptChange() {
39
- this.parser.prompt = this.prompt;
35
+ set mask(value) {
36
+ this._mask = value;
37
+ this.parser.mask = value;
40
38
  if (this.value) {
41
39
  this.maskedValue = this.parser.apply(this._value);
42
40
  }
43
41
  }
44
- maskChange() {
45
- this.parser.mask = this.mask;
42
+ promptChange() {
43
+ this.parser.prompt = this.prompt;
46
44
  if (this.value) {
47
45
  this.maskedValue = this.parser.apply(this._value);
48
46
  }
49
47
  }
50
- handleInvalidState() {
51
- this.updateComplete.then(() => (this.invalid = !this.checkValidity()));
52
- }
53
- connectedCallback() {
54
- super.connectedCallback();
55
- this.mask = this.mask || this.parser.mask;
56
- this.prompt = this.prompt || this.parser.prompt;
48
+ async handleInvalidState() {
49
+ await this.updateComplete;
50
+ this.invalid = !this.checkValidity();
57
51
  }
58
- updateInput(part, start, finish) {
59
- const { value, end } = this.parser.replace(this.maskedValue, part, start, finish);
52
+ async updateInput(string, range) {
53
+ const { value, end } = this.parser.replace(this.maskedValue, string, range.start, range.end);
60
54
  this.maskedValue = value;
61
55
  this._value = this.parser.parse(value);
62
56
  this.requestUpdate();
63
- if (start !== this.mask.length) {
57
+ if (range.start !== this.mask.length) {
64
58
  this.emitEvent('igcInput', { detail: this.value });
65
59
  }
66
- this.updateComplete.then(() => this.input.setSelectionRange(end, end));
60
+ await this.updateComplete;
61
+ this.input.setSelectionRange(end, end);
62
+ this.invalid = !this.checkValidity();
67
63
  }
68
64
  handleDragEnter() {
69
65
  if (!this.hasFocus && !this._value) {
@@ -75,7 +71,7 @@ export default class IgcMaskInputComponent extends IgcMaskInputBaseComponent {
75
71
  this.updateMaskedValue();
76
72
  }
77
73
  }
78
- handleFocus() {
74
+ async handleFocus() {
79
75
  this.hasFocus = true;
80
76
  super.handleFocus();
81
77
  if (this.readonly) {
@@ -83,7 +79,8 @@ export default class IgcMaskInputComponent extends IgcMaskInputBaseComponent {
83
79
  }
84
80
  if (!this._value) {
85
81
  this.maskedValue = this.parser.apply();
86
- this.updateComplete.then(() => this.select());
82
+ await this.updateComplete;
83
+ this.select();
87
84
  }
88
85
  }
89
86
  handleBlur() {
@@ -171,9 +168,6 @@ __decorate([
171
168
  __decorate([
172
169
  watch('prompt')
173
170
  ], IgcMaskInputComponent.prototype, "promptChange", null);
174
- __decorate([
175
- watch('_mask')
176
- ], IgcMaskInputComponent.prototype, "maskChange", null);
177
171
  __decorate([
178
172
  watch('required', { waitUntilFirstUpdate: true }),
179
173
  watch('disabled', { waitUntilFirstUpdate: true }),
@@ -1 +1 @@
1
- {"version":3,"file":"mask-input.js","sourceRoot":"","sources":["../../../src/components/mask-input/mask-input.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { blazorTwoWayBind } from '../common/decorators/blazorTwoWayBind.js';\nimport { partNameMap } from '../common/util.js';\nimport { IgcMaskInputBaseComponent } from './mask-input-base.js';\n\n/**\n * A masked input is an input field where a developer can control user input and format the visible value,\n * based on configurable rules\n *\n * @element igc-mask-input\n *\n * @slot prefix - Renders content before the input\n * @slot suffix - Renders content after the input\n * @slot helper-text - Renders content below the input\n *\n * @fires igcInput - Emitted when the control receives user input\n * @fires igcChange - Emitted when an alteration of the control's value is committed by the user\n * @fires igcFocus - Emitted when the control gains focus\n * @fires igcBlur - Emitted when the control loses focus\n *\n * @csspart container - The main wrapper that holds all main input elements\n * @csspart input - The native input element\n * @csspart label - The native label element\n * @csspart prefix - The prefix wrapper\n * @csspart suffix - The suffix wrapper\n * @csspart helper-text - The helper text wrapper\n */\nexport default class IgcMaskInputComponent extends IgcMaskInputBaseComponent {\n public static readonly tagName = 'igc-mask-input';\n\n protected _value = '';\n\n /**\n * Dictates the behavior when retrieving the value of the control:\n *\n * - `raw` will return the clean user input.\n * - `withFormatting` will return the value with all literals and prompts.\n *\n */\n @property({ attribute: 'value-mode' })\n public valueMode: 'raw' | 'withFormatting' = 'raw';\n\n /**\n * The value of the input.\n *\n * Regardless of the currently set `value-mode`, an empty value will return an empty string.\n *\n */\n @property()\n @blazorTwoWayBind('igcChange', 'detail')\n public get value() {\n return this._value\n ? this.valueMode !== 'raw'\n ? this.maskedValue\n : this._value\n : this._value;\n }\n\n public set value(string: string) {\n this._value = string ?? '';\n this.maskedValue = this.parser.apply(this._value);\n }\n\n /** The mask pattern to apply on the input. */\n @property()\n public get mask() {\n return this._mask;\n }\n\n /** The mask pattern to apply on the input. */\n public set mask(val: string) {\n this._mask = val;\n }\n\n @watch('prompt')\n protected promptChange() {\n this.parser.prompt = this.prompt;\n if (this.value) {\n this.maskedValue = this.parser.apply(this._value);\n }\n }\n\n @watch('_mask')\n protected maskChange() {\n this.parser.mask = this.mask;\n if (this.value) {\n this.maskedValue = this.parser.apply(this._value);\n }\n }\n\n @watch('required', { waitUntilFirstUpdate: true })\n @watch('disabled', { waitUntilFirstUpdate: true })\n @watch('value', { waitUntilFirstUpdate: true })\n protected handleInvalidState() {\n this.updateComplete.then(() => (this.invalid = !this.checkValidity()));\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n\n this.mask = this.mask || this.parser.mask;\n this.prompt = this.prompt || this.parser.prompt;\n }\n\n protected updateInput(part: string, start: number, finish: number) {\n const { value, end } = this.parser.replace(\n this.maskedValue,\n part,\n start,\n finish\n );\n this.maskedValue = value;\n this._value = this.parser.parse(value);\n\n this.requestUpdate();\n if (start !== this.mask.length) {\n this.emitEvent('igcInput', { detail: this.value });\n }\n this.updateComplete.then(() => this.input.setSelectionRange(end, end));\n }\n\n protected handleDragEnter() {\n if (!this.hasFocus && !this._value) {\n this.maskedValue = this.parser.apply();\n }\n }\n\n protected handleDragLeave() {\n if (!this.hasFocus) {\n this.updateMaskedValue();\n }\n }\n\n protected override handleFocus() {\n this.hasFocus = true;\n super.handleFocus();\n\n if (this.readonly) {\n return;\n }\n\n if (!this._value) {\n this.maskedValue = this.parser.apply();\n // In case of empty value, select the whole mask\n this.updateComplete.then(() => this.select());\n }\n }\n\n protected override handleBlur() {\n this.hasFocus = false;\n this.updateMaskedValue();\n super.handleBlur();\n }\n\n protected handleChange() {\n this.emitEvent('igcChange', { detail: this.value });\n this.invalid = !this.checkValidity();\n }\n\n protected handleClick() {\n // Clicking at the end of the input field will select the entire mask\n if (\n this.input.selectionStart === this.input.selectionEnd &&\n this.input.selectionStart === this.maskedValue.length\n ) {\n this.select();\n }\n }\n\n protected updateMaskedValue() {\n if (this.maskedValue === this.parser.apply()) {\n this.maskedValue = '';\n }\n }\n\n /** Replaces the selected text in the control and re-applies the mask */\n public override setRangeText(\n replacement: string,\n start: number,\n end: number,\n _selectMode: 'select' | 'start' | 'end' | 'preserve' = 'preserve'\n ) {\n this.input.value = this.parser.replace(\n this.input.value,\n replacement,\n start,\n end\n ).value;\n this.maskedValue = this.parser.apply(this.parser.parse(this.input.value));\n this._value = this.parser.parse(this.maskedValue);\n }\n\n /** Checks for validity of the control and shows the browser message if it's invalid. */\n public reportValidity() {\n const state = this._value\n ? this.parser.isValidString(this.input.value)\n : this.input.reportValidity();\n this.invalid = !state;\n return state;\n }\n\n /** Check for validity of the control */\n public checkValidity() {\n if (this.disabled) {\n return this.input.checkValidity();\n }\n\n if (!this._value) {\n return !this.required;\n }\n\n return (\n this.input.checkValidity() && this.parser.isValidString(this.input.value)\n );\n }\n\n protected override renderInput() {\n return html`\n <input\n type=\"text\"\n part=${partNameMap(this.resolvePartNames('input'))}\n name=${ifDefined(this.name)}\n .value=${live(this.maskedValue)}\n .placeholder=${live(this.placeholder ?? this.parser.escapedMask)}\n ?readonly=${this.readonly}\n ?disabled=${this.disabled}\n ?required=${this.required}\n @dragenter=${this.handleDragEnter}\n @dragleave=${this.handleDragLeave}\n @dragstart=${this.handleDragStart}\n @blur=${this.handleBlur}\n @focus=${this.handleFocus}\n @cut=${this.handleCut}\n @change=${this.handleChange}\n @click=${this.handleClick}\n @compositionstart=${this.handleCompositionStart}\n @compositionend=${this.handleCompositionEnd}\n @input=${this.handleInput}\n aria-invalid=\"${this.invalid ? 'true' : 'false'}\"\n @invalid=\"${this.handleInvalid}\"\n @keydown=${this.handleKeydown}\n />\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-mask-input': IgcMaskInputComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"mask-input.js","sourceRoot":"","sources":["../../../src/components/mask-input/mask-input.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { blazorTwoWayBind } from '../common/decorators/blazorTwoWayBind.js';\nimport { partNameMap } from '../common/util.js';\nimport { IgcMaskInputBaseComponent, MaskRange } from './mask-input-base.js';\n\n/**\n * A masked input is an input field where a developer can control user input and format the visible value,\n * based on configurable rules\n *\n * @element igc-mask-input\n *\n * @slot prefix - Renders content before the input\n * @slot suffix - Renders content after the input\n * @slot helper-text - Renders content below the input\n *\n * @fires igcInput - Emitted when the control receives user input\n * @fires igcChange - Emitted when an alteration of the control's value is committed by the user\n * @fires igcFocus - Emitted when the control gains focus\n * @fires igcBlur - Emitted when the control loses focus\n *\n * @csspart container - The main wrapper that holds all main input elements\n * @csspart input - The native input element\n * @csspart label - The native label element\n * @csspart prefix - The prefix wrapper\n * @csspart suffix - The suffix wrapper\n * @csspart helper-text - The helper text wrapper\n */\nexport default class IgcMaskInputComponent extends IgcMaskInputBaseComponent {\n public static readonly tagName = 'igc-mask-input';\n\n protected _value = '';\n\n /**\n * Dictates the behavior when retrieving the value of the control:\n *\n * - `raw` will return the clean user input.\n * - `withFormatting` will return the value with all literals and prompts.\n * @attr value-mode\n */\n @property({ attribute: 'value-mode' })\n public valueMode: 'raw' | 'withFormatting' = 'raw';\n\n /**\n * The value of the input.\n *\n * Regardless of the currently set `value-mode`, an empty value will return an empty string.\n * @attr\n */\n @property()\n @blazorTwoWayBind('igcChange', 'detail')\n public get value() {\n return this._value\n ? this.valueMode !== 'raw'\n ? this.maskedValue\n : this._value\n : this._value;\n }\n\n public set value(string: string) {\n this._value = string ?? '';\n this.maskedValue = this.parser.apply(this._value);\n }\n\n /**\n * The mask pattern to apply on the input.\n * @attr\n */\n @property()\n public get mask() {\n return this._mask;\n }\n\n /** The mask pattern to apply on the input. */\n public set mask(value: string) {\n this._mask = value;\n this.parser.mask = value;\n if (this.value) {\n this.maskedValue = this.parser.apply(this._value);\n }\n }\n\n @watch('prompt')\n protected promptChange() {\n this.parser.prompt = this.prompt;\n if (this.value) {\n this.maskedValue = this.parser.apply(this._value);\n }\n }\n\n @watch('required', { waitUntilFirstUpdate: true })\n @watch('disabled', { waitUntilFirstUpdate: true })\n @watch('value', { waitUntilFirstUpdate: true })\n protected async handleInvalidState() {\n await this.updateComplete;\n this.invalid = !this.checkValidity();\n }\n\n protected async updateInput(string: string, range: MaskRange) {\n const { value, end } = this.parser.replace(\n this.maskedValue,\n string,\n range.start,\n range.end\n );\n\n this.maskedValue = value;\n this._value = this.parser.parse(value);\n\n this.requestUpdate();\n\n if (range.start !== this.mask.length) {\n this.emitEvent('igcInput', { detail: this.value });\n }\n await this.updateComplete;\n\n this.input.setSelectionRange(end, end);\n this.invalid = !this.checkValidity();\n }\n\n protected handleDragEnter() {\n if (!this.hasFocus && !this._value) {\n this.maskedValue = this.parser.apply();\n }\n }\n\n protected handleDragLeave() {\n if (!this.hasFocus) {\n this.updateMaskedValue();\n }\n }\n\n protected override async handleFocus() {\n this.hasFocus = true;\n super.handleFocus();\n\n if (this.readonly) {\n return;\n }\n\n if (!this._value) {\n // In case of empty value, select the whole mask\n this.maskedValue = this.parser.apply();\n\n await this.updateComplete;\n this.select();\n }\n }\n\n protected override handleBlur() {\n this.hasFocus = false;\n this.updateMaskedValue();\n super.handleBlur();\n }\n\n protected handleChange() {\n this.emitEvent('igcChange', { detail: this.value });\n this.invalid = !this.checkValidity();\n }\n\n protected handleClick() {\n // Clicking at the end of the input field will select the entire mask\n if (\n this.input.selectionStart === this.input.selectionEnd &&\n this.input.selectionStart === this.maskedValue.length\n ) {\n this.select();\n }\n }\n\n protected updateMaskedValue() {\n if (this.maskedValue === this.parser.apply()) {\n this.maskedValue = '';\n }\n }\n\n /** Replaces the selected text in the control and re-applies the mask */\n public override setRangeText(\n replacement: string,\n start: number,\n end: number,\n _selectMode: 'select' | 'start' | 'end' | 'preserve' = 'preserve'\n ) {\n this.input.value = this.parser.replace(\n this.input.value,\n replacement,\n start,\n end\n ).value;\n this.maskedValue = this.parser.apply(this.parser.parse(this.input.value));\n this._value = this.parser.parse(this.maskedValue);\n }\n\n /** Checks for validity of the control and shows the browser message if it's invalid. */\n public reportValidity() {\n const state = this._value\n ? this.parser.isValidString(this.input.value)\n : this.input.reportValidity();\n this.invalid = !state;\n return state;\n }\n\n /** Check for validity of the control */\n public checkValidity() {\n if (this.disabled) {\n return this.input.checkValidity();\n }\n\n if (!this._value) {\n return !this.required;\n }\n\n return (\n this.input.checkValidity() && this.parser.isValidString(this.input.value)\n );\n }\n\n protected override renderInput() {\n return html`\n <input\n type=\"text\"\n part=${partNameMap(this.resolvePartNames('input'))}\n name=${ifDefined(this.name)}\n .value=${live(this.maskedValue)}\n .placeholder=${live(this.placeholder ?? this.parser.escapedMask)}\n ?readonly=${this.readonly}\n ?disabled=${this.disabled}\n ?required=${this.required}\n @dragenter=${this.handleDragEnter}\n @dragleave=${this.handleDragLeave}\n @dragstart=${this.handleDragStart}\n @blur=${this.handleBlur}\n @focus=${this.handleFocus}\n @cut=${this.handleCut}\n @change=${this.handleChange}\n @click=${this.handleClick}\n @compositionstart=${this.handleCompositionStart}\n @compositionend=${this.handleCompositionEnd}\n @input=${this.handleInput}\n aria-invalid=\"${this.invalid ? 'true' : 'false'}\"\n @invalid=\"${this.handleInvalid}\"\n @keydown=${this.handleKeydown}\n />\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-mask-input': IgcMaskInputComponent;\n }\n}\n"]}
@@ -7,7 +7,7 @@ export declare class MaskParser {
7
7
  constructor(options?: MaskOptions);
8
8
  protected literals: Map<number, string>;
9
9
  protected _escapedMask: string;
10
- protected get literalPositions(): number[];
10
+ get literalPositions(): number[];
11
11
  get escapedMask(): string;
12
12
  get mask(): string;
13
13
  set mask(value: string);
@@ -19,6 +19,8 @@ export declare class MaskParser {
19
19
  protected validate(char: string, maskedChar: string): boolean;
20
20
  protected getNonLiteralPositions(mask?: string): number[];
21
21
  protected getRequiredNonLiteralPositions(mask: string): number[];
22
+ getPreviousNonLiteralPosition(start: number): number;
23
+ getNextNonLiteralPosition(start: number): number;
22
24
  replace(masked: string | undefined, value: string, start: number, end: number): {
23
25
  value: string;
24
26
  end: number;
@@ -92,6 +92,22 @@ export class MaskParser {
92
92
  .map((char, pos) => REQUIRED.has(char) && !positions.includes(pos) ? pos : -1)
93
93
  .filter((pos) => pos > -1);
94
94
  }
95
+ getPreviousNonLiteralPosition(start) {
96
+ const positions = this.literalPositions;
97
+ for (let i = start; i > 0; i--) {
98
+ if (!positions.includes(i))
99
+ return i;
100
+ }
101
+ return start;
102
+ }
103
+ getNextNonLiteralPosition(start) {
104
+ const positions = this.literalPositions;
105
+ for (let i = start; i < this._escapedMask.length; i++) {
106
+ if (!positions.includes(i))
107
+ return i;
108
+ }
109
+ return start;
110
+ }
95
111
  replace(masked = '', value, start, end) {
96
112
  const chars = Array.from(replaceIMENumbers(value));
97
113
  const positions = this.literalPositions;
@@ -1 +1 @@
1
- {"version":3,"file":"mask-parser.js","sourceRoot":"","sources":["../../../src/components/mask-input/mask-parser.ts"],"names":[],"mappings":"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","sourcesContent":["interface MaskOptions {\n format: string;\n promptCharacter: string;\n}\n\nconst FLAGS = new Set('aACL09#&?');\nconst REGEX = new Map([\n ['C', /(?!^$)/u], // Non-empty\n ['&', /[^\\p{Separator}]/u], // Whitespace\n ['a', /[\\p{Letter}\\d\\p{Separator}]/u], // Alphanumeric & whitespace\n ['A', /[\\p{Letter}\\d]/u], // Alphanumeric\n ['?', /[\\p{Letter}\\p{Separator}]/u], // Alpha & whitespace\n ['L', /\\p{Letter}/u], // Alpha\n ['0', /\\d/], // Numeric\n ['9', /[\\d\\p{Separator}]/u], // Numeric & whitespace\n ['#', /[\\d\\-+]/], // Numeric and sign\n]);\nconst REQUIRED = new Set('0#LA&');\n\nconst replaceIMENumbers = (string: string) => {\n return string.replace(\n /[0123456789]/g,\n (num) =>\n ({\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '0': '0',\n }[num] as string)\n );\n};\n\nexport class MaskParser {\n protected options!: MaskOptions;\n\n constructor(\n options: MaskOptions = { format: 'CCCCCCCCCC', promptCharacter: '_' }\n ) {\n this.options = options;\n }\n\n protected literals = new Map<number, string>();\n protected _escapedMask!: string;\n\n protected get literalPositions() {\n this.getMaskLiterals();\n return Array.from(this.literals.keys());\n }\n\n public get escapedMask() {\n this.getMaskLiterals();\n return this._escapedMask;\n }\n\n public get mask() {\n return this.options.format;\n }\n\n public set mask(value: string) {\n this.options.format = value || this.options.format;\n this.getMaskLiterals();\n }\n\n public get prompt() {\n return this.options.promptCharacter;\n }\n\n public set prompt(value: string) {\n this.options.promptCharacter = value\n ? value.substring(0, 1)\n : this.options.promptCharacter;\n }\n\n protected getMaskLiterals() {\n this.literals.clear();\n this._escapedMask = this.mask;\n\n for (let i = 0, j = 0; i < this.mask.length; i++, j++) {\n const [current, next] = [this.mask.charAt(i), this.mask.charAt(i + 1)];\n\n if (current === '\\\\' && FLAGS.has(next)) {\n this._escapedMask = this.replaceCharAt(this._escapedMask, j, '');\n this.literals.set(j, next);\n i++;\n } else {\n if (!FLAGS.has(current)) {\n this.literals.set(j, current);\n }\n }\n }\n }\n\n protected isPromptChar(char: string) {\n return char === this.prompt;\n }\n\n protected replaceCharAt(string: string, pos: number, char: string) {\n return `${string.substring(0, pos)}${char}${string.substring(pos + 1)}`;\n }\n\n protected validate(char: string, maskedChar: string) {\n const regex = REGEX.get(maskedChar);\n return regex ? regex.test(char) : false;\n }\n\n protected getNonLiteralPositions(mask = '') {\n const positions = this.literalPositions;\n return Array.from(mask)\n .map((_, pos) => (!positions.includes(pos) ? pos : -1))\n .filter((pos) => pos > -1);\n }\n\n protected getRequiredNonLiteralPositions(mask: string) {\n const positions = this.literalPositions;\n return Array.from(mask)\n .map((char, pos) =>\n REQUIRED.has(char) && !positions.includes(pos) ? pos : -1\n )\n .filter((pos) => pos > -1);\n }\n\n public replace(masked = '', value: string, start: number, end: number) {\n const chars = Array.from(replaceIMENumbers(value));\n const positions = this.literalPositions;\n end = Math.min(end, masked.length);\n let cursor = start;\n\n for (let i = start; i < end || (chars.length && i < masked.length); i++) {\n if (positions.includes(i)) {\n if (chars[0] === masked[i]) {\n cursor = i + 1;\n chars.shift();\n }\n continue;\n }\n\n if (\n chars[0] &&\n !this.validate(chars[0], this._escapedMask[i]) &&\n !this.isPromptChar(chars[0])\n ) {\n break;\n }\n\n let char = this.prompt;\n if (chars.length) {\n cursor = i + 1;\n char = chars.shift() as string;\n }\n masked = this.replaceCharAt(masked, i, char);\n }\n\n return { value: masked, end: cursor };\n }\n\n public parse(masked = '') {\n return Array.from(masked).reduce((prev, char, pos) => {\n return `${prev}${\n !this.literalPositions.includes(pos) && !this.isPromptChar(char)\n ? char\n : ''\n }`;\n }, '');\n }\n\n public isValidString(input = '') {\n const required = this.getRequiredNonLiteralPositions(this._escapedMask);\n\n if (required.length > this.parse(input).length) {\n return false;\n }\n return required.every((pos) => {\n const char = input.charAt(pos);\n return (\n char !== undefined &&\n this.validate(char, this._escapedMask.charAt(pos)) &&\n !this.isPromptChar(char)\n );\n });\n }\n\n public apply(input = '') {\n const nonLiteralPositions = this.getNonLiteralPositions(this._escapedMask);\n let output = new Array(this._escapedMask.length).fill(this.prompt).join('');\n\n this.literals.forEach((char, pos) => {\n output = this.replaceCharAt(output, pos, char);\n });\n\n if (!input) {\n return output;\n }\n\n const values = nonLiteralPositions.map((pos, index) => {\n const char = input.charAt(index);\n return !this.validate(char, this._escapedMask.charAt(pos)) &&\n !this.isPromptChar(char)\n ? this.prompt\n : char;\n });\n\n if (values.length > nonLiteralPositions.length) {\n values.splice(nonLiteralPositions.length);\n }\n\n let pos = 0;\n for (const each of values) {\n output = this.replaceCharAt(output, nonLiteralPositions[pos++], each);\n }\n\n return output;\n }\n}\n"]}
1
+ {"version":3,"file":"mask-parser.js","sourceRoot":"","sources":["../../../src/components/mask-input/mask-parser.ts"],"names":[],"mappings":"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","sourcesContent":["interface MaskOptions {\n format: string;\n promptCharacter: string;\n}\n\nconst FLAGS = new Set('aACL09#&?');\nconst REGEX = new Map([\n ['C', /(?!^$)/u], // Non-empty\n ['&', /[^\\p{Separator}]/u], // Whitespace\n ['a', /[\\p{Letter}\\d\\p{Separator}]/u], // Alphanumeric & whitespace\n ['A', /[\\p{Letter}\\d]/u], // Alphanumeric\n ['?', /[\\p{Letter}\\p{Separator}]/u], // Alpha & whitespace\n ['L', /\\p{Letter}/u], // Alpha\n ['0', /\\d/], // Numeric\n ['9', /[\\d\\p{Separator}]/u], // Numeric & whitespace\n ['#', /[\\d\\-+]/], // Numeric and sign\n]);\nconst REQUIRED = new Set('0#LA&');\n\nconst replaceIMENumbers = (string: string) => {\n return string.replace(\n /[0123456789]/g,\n (num) =>\n ({\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '0': '0',\n }[num] as string)\n );\n};\n\nexport class MaskParser {\n protected options!: MaskOptions;\n\n constructor(\n options: MaskOptions = { format: 'CCCCCCCCCC', promptCharacter: '_' }\n ) {\n this.options = options;\n }\n\n protected literals = new Map<number, string>();\n protected _escapedMask!: string;\n\n public get literalPositions() {\n this.getMaskLiterals();\n return Array.from(this.literals.keys());\n }\n\n public get escapedMask() {\n this.getMaskLiterals();\n return this._escapedMask;\n }\n\n public get mask() {\n return this.options.format;\n }\n\n public set mask(value: string) {\n this.options.format = value || this.options.format;\n this.getMaskLiterals();\n }\n\n public get prompt() {\n return this.options.promptCharacter;\n }\n\n public set prompt(value: string) {\n this.options.promptCharacter = value\n ? value.substring(0, 1)\n : this.options.promptCharacter;\n }\n\n protected getMaskLiterals() {\n this.literals.clear();\n this._escapedMask = this.mask;\n\n for (let i = 0, j = 0; i < this.mask.length; i++, j++) {\n const [current, next] = [this.mask.charAt(i), this.mask.charAt(i + 1)];\n\n if (current === '\\\\' && FLAGS.has(next)) {\n this._escapedMask = this.replaceCharAt(this._escapedMask, j, '');\n this.literals.set(j, next);\n i++;\n } else {\n if (!FLAGS.has(current)) {\n this.literals.set(j, current);\n }\n }\n }\n }\n\n protected isPromptChar(char: string) {\n return char === this.prompt;\n }\n\n protected replaceCharAt(string: string, pos: number, char: string) {\n return `${string.substring(0, pos)}${char}${string.substring(pos + 1)}`;\n }\n\n protected validate(char: string, maskedChar: string) {\n const regex = REGEX.get(maskedChar);\n return regex ? regex.test(char) : false;\n }\n\n protected getNonLiteralPositions(mask = '') {\n const positions = this.literalPositions;\n return Array.from(mask)\n .map((_, pos) => (!positions.includes(pos) ? pos : -1))\n .filter((pos) => pos > -1);\n }\n\n protected getRequiredNonLiteralPositions(mask: string) {\n const positions = this.literalPositions;\n return Array.from(mask)\n .map((char, pos) =>\n REQUIRED.has(char) && !positions.includes(pos) ? pos : -1\n )\n .filter((pos) => pos > -1);\n }\n\n public getPreviousNonLiteralPosition(start: number) {\n const positions = this.literalPositions;\n for (let i = start; i > 0; i--) {\n if (!positions.includes(i)) return i;\n }\n return start;\n }\n\n public getNextNonLiteralPosition(start: number) {\n const positions = this.literalPositions;\n for (let i = start; i < this._escapedMask.length; i++) {\n if (!positions.includes(i)) return i;\n }\n return start;\n }\n\n public replace(masked = '', value: string, start: number, end: number) {\n const chars = Array.from(replaceIMENumbers(value));\n const positions = this.literalPositions;\n end = Math.min(end, masked.length);\n let cursor = start;\n\n for (let i = start; i < end || (chars.length && i < masked.length); i++) {\n if (positions.includes(i)) {\n if (chars[0] === masked[i]) {\n cursor = i + 1;\n chars.shift();\n }\n continue;\n }\n\n if (\n chars[0] &&\n !this.validate(chars[0], this._escapedMask[i]) &&\n !this.isPromptChar(chars[0])\n ) {\n break;\n }\n\n let char = this.prompt;\n if (chars.length) {\n cursor = i + 1;\n char = chars.shift() as string;\n }\n masked = this.replaceCharAt(masked, i, char);\n }\n\n return { value: masked, end: cursor };\n }\n\n public parse(masked = '') {\n return Array.from(masked).reduce((prev, char, pos) => {\n return `${prev}${\n !this.literalPositions.includes(pos) && !this.isPromptChar(char)\n ? char\n : ''\n }`;\n }, '');\n }\n\n public isValidString(input = '') {\n const required = this.getRequiredNonLiteralPositions(this._escapedMask);\n\n if (required.length > this.parse(input).length) {\n return false;\n }\n return required.every((pos) => {\n const char = input.charAt(pos);\n return (\n char !== undefined &&\n this.validate(char, this._escapedMask.charAt(pos)) &&\n !this.isPromptChar(char)\n );\n });\n }\n\n public apply(input = '') {\n const nonLiteralPositions = this.getNonLiteralPositions(this._escapedMask);\n let output = new Array(this._escapedMask.length).fill(this.prompt).join('');\n\n this.literals.forEach((char, pos) => {\n output = this.replaceCharAt(output, pos, char);\n });\n\n if (!input) {\n return output;\n }\n\n const values = nonLiteralPositions.map((pos, index) => {\n const char = input.charAt(index);\n return !this.validate(char, this._escapedMask.charAt(pos)) &&\n !this.isPromptChar(char)\n ? this.prompt\n : char;\n });\n\n if (values.length > nonLiteralPositions.length) {\n values.splice(nonLiteralPositions.length);\n }\n\n let pos = 0;\n for (const each of values) {\n output = this.replaceCharAt(output, nonLiteralPositions[pos++], each);\n }\n\n return output;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"nav-drawer-header-item.js","sourceRoot":"","sources":["../../../src/components/nav-drawer/nav-drawer-header-item.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,4DAA4D,CAAC;AAC9F,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,4DAA4D,CAAC;AAC9F,OAAO,EAAE,MAAM,EAAE,MAAM,mDAAmD,CAAC;AAS3E,IAAqB,+BAA+B,GAApD,MAAqB,+BAAgC,SAAQ,UAAU;IAIlD,MAAM;QACvB,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;CACF,CAAA;AANwB,uCAAO,GAAG,4BAA6B,CAAA;AACvC,sCAAM,GAAG,MAAO,CAAA;AAFpB,+BAA+B;IADnD,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;GACN,+BAA+B,CAOnD;eAPoB,+BAA+B","sourcesContent":["import { html, LitElement } from 'lit';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { styles as fluent } from './themes/light/fluent/nav-drawer-header-item.fluent.css.js';\nimport { styles as indigo } from './themes/light/indigo/nav-drawer-header-item.indigo.css.js';\nimport { styles } from './themes/light/nav-drawer-header-item.base.css.js';\n\n/**\n * A wrapper for navigation drawer's header.\n * @element igc-nav-drawer-header-item\n *\n * @slot - Renders the header content\n */\n@themes({ fluent, indigo })\nexport default class IgcNavDrawerHeaderItemComponent extends LitElement {\n public static readonly tagName = 'igc-nav-drawer-header-item';\n public static override styles = styles;\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-nav-drawer-header-item': IgcNavDrawerHeaderItemComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"nav-drawer-header-item.js","sourceRoot":"","sources":["../../../src/components/nav-drawer/nav-drawer-header-item.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,4DAA4D,CAAC;AAC9F,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,4DAA4D,CAAC;AAC9F,OAAO,EAAE,MAAM,EAAE,MAAM,mDAAmD,CAAC;AAS5D,IAAM,+BAA+B,GAArC,MAAM,+BAAgC,SAAQ,UAAU;IAIlD,MAAM;QACvB,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;;AALsB,uCAAO,GAAG,4BAA4B,CAAC;AACvC,sCAAM,GAAG,MAAM,CAAC;AAFpB,+BAA+B;IADnD,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;GACN,+BAA+B,CAOnD;eAPoB,+BAA+B","sourcesContent":["import { html, LitElement } from 'lit';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { styles as fluent } from './themes/light/fluent/nav-drawer-header-item.fluent.css.js';\nimport { styles as indigo } from './themes/light/indigo/nav-drawer-header-item.indigo.css.js';\nimport { styles } from './themes/light/nav-drawer-header-item.base.css.js';\n\n/**\n * A wrapper for navigation drawer's header.\n * @element igc-nav-drawer-header-item\n *\n * @slot - Renders the header content\n */\n@themes({ fluent, indigo })\nexport default class IgcNavDrawerHeaderItemComponent extends LitElement {\n public static readonly tagName = 'igc-nav-drawer-header-item';\n public static override styles = styles;\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-nav-drawer-header-item': IgcNavDrawerHeaderItemComponent;\n }\n}\n"]}
@@ -14,9 +14,15 @@ import { LitElement } from 'lit';
14
14
  export default class IgcNavDrawerItemComponent extends LitElement {
15
15
  static readonly tagName = "igc-nav-drawer-item";
16
16
  static styles: import("lit").CSSResult;
17
- /** Determines whether the drawer is disabled. */
17
+ /**
18
+ * Determines whether the drawer is disabled.
19
+ * @attr
20
+ */
18
21
  disabled: boolean;
19
- /** Determines whether the drawer is active. */
22
+ /**
23
+ * Determines whether the drawer is active.
24
+ * @attr
25
+ */
20
26
  active: boolean;
21
27
  private _textLength;
22
28
  private _text;
@@ -1 +1 @@
1
- {"version":3,"file":"nav-drawer-item.js","sourceRoot":"","sources":["../../../src/components/nav-drawer/nav-drawer-item.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EACL,QAAQ,EACR,qBAAqB,EACrB,kBAAkB,EAClB,KAAK,GACN,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,qDAAqD,CAAC;AACvF,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,qDAAqD,CAAC;AACvF,OAAO,EAAE,MAAM,EAAE,MAAM,4CAA4C,CAAC;AAepE,IAAqB,yBAAyB,GAA9C,MAAqB,yBAA0B,SAAQ,UAAU;IAAjE;;QAMS,aAAQ,GAAG,KAAK,CAAC;QAIjB,WAAM,GAAG,KAAK,CAAC;IAqCxB,CAAC;IA1BiB,iBAAiB;;QAC/B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,MAAA,IAAI,CAAC,UAAU,0CAAE,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;YACpD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAES,gBAAgB,CAAC,IAAY;QACrC,OAAO;YACL,CAAC,IAAI,CAAC,EAAE,IAAI;YACZ,IAAI,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC;SAC3B,CAAC;IACJ,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;mBACI,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;qCACxB,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC;;;;;;;KAO9D,CAAC;IACJ,CAAC;CACF,CAAA;AA9CwB,iCAAO,GAAG,qBAAsB,CAAA;AAChC,gCAAM,GAAG,MAAO,CAAA;AAIvC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;2DACnB;AAIxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yDACrB;AAGtB;IADC,KAAK,EAAE;8DACqB;AAG7B;IADC,qBAAqB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;wDACR;AAGnC;IADC,kBAAkB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gEACd;AAnBnB,yBAAyB;IAD7C,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;GACN,yBAAyB,CA+C7C;eA/CoB,yBAAyB","sourcesContent":["import { html, LitElement } from 'lit';\nimport {\n property,\n queryAssignedElements,\n queryAssignedNodes,\n state,\n} from 'lit/decorators.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { partNameMap } from '../common/util.js';\nimport { styles as fluent } from './themes/light/fluent/nav-drawer-item.fluent.css.js';\nimport { styles as indigo } from './themes/light/indigo/nav-drawer-item.indigo.css.js';\nimport { styles } from './themes/light/nav-drawer-item.base.css.js';\n\n/**\n * Represents a navigation drawer item.\n *\n * @element igc-nav-drawer-item\n *\n * @slot content - The content slot for the drawer item.\n * @slot icon - The slot for the icon of the drawer item.\n *\n * @csspart base - The base wrapper of the drawer item.\n * @csspart icon - The icon container.\n * @csspart content - The content container.\n */\n@themes({ fluent, indigo })\nexport default class IgcNavDrawerItemComponent extends LitElement {\n public static readonly tagName = 'igc-nav-drawer-item';\n public static override styles = styles;\n\n /** Determines whether the drawer is disabled. */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n /** Determines whether the drawer is active. */\n @property({ type: Boolean, reflect: true })\n public active = false;\n\n @state()\n private _textLength!: number;\n\n @queryAssignedElements({ slot: 'content' })\n private _text!: Array<HTMLElement>;\n\n @queryAssignedNodes({ slot: 'icon', flatten: true })\n protected navdrawerIcon!: Array<Node>;\n\n public override connectedCallback() {\n super.connectedCallback();\n this.shadowRoot?.addEventListener('slotchange', (_) => {\n this._textLength = this._text.length;\n });\n }\n\n protected resolvePartNames(base: string) {\n return {\n [base]: true,\n mini: this._textLength < 1,\n };\n }\n\n protected override render() {\n return html`\n <div part=\"${partNameMap(this.resolvePartNames('base'))}\">\n <span part=\"icon\" .hidden=\"${this.navdrawerIcon.length == 0}\">\n <slot name=\"icon\"></slot>\n </span>\n <span part=\"content\">\n <slot name=\"content\"></slot>\n </span>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-nav-drawer-item': IgcNavDrawerItemComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"nav-drawer-item.js","sourceRoot":"","sources":["../../../src/components/nav-drawer/nav-drawer-item.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EACL,QAAQ,EACR,qBAAqB,EACrB,kBAAkB,EAClB,KAAK,GACN,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,qDAAqD,CAAC;AACvF,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,qDAAqD,CAAC;AACvF,OAAO,EAAE,MAAM,EAAE,MAAM,4CAA4C,CAAC;AAerD,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,UAAU;IAAlD;;QASN,aAAQ,GAAG,KAAK,CAAC;QAOjB,WAAM,GAAG,KAAK,CAAC;IAqCxB,CAAC;IA1BiB,iBAAiB;;QAC/B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,MAAA,IAAI,CAAC,UAAU,0CAAE,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;YACpD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAES,gBAAgB,CAAC,IAAY;QACrC,OAAO;YACL,CAAC,IAAI,CAAC,EAAE,IAAI;YACZ,IAAI,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC;SAC3B,CAAC;IACJ,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;mBACI,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;qCACxB,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC;;;;;;;KAO9D,CAAC;IACJ,CAAC;;AAnDsB,iCAAO,GAAG,qBAAqB,CAAC;AAChC,gCAAM,GAAG,MAAM,CAAC;AAOvC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;2DACnB;AAOxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yDACrB;AAGtB;IADC,KAAK,EAAE;8DACqB;AAG7B;IADC,qBAAqB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;wDACR;AAGnC;IADC,kBAAkB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gEACd;AAzBnB,yBAAyB;IAD7C,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;GACN,yBAAyB,CAqD7C;eArDoB,yBAAyB","sourcesContent":["import { html, LitElement } from 'lit';\nimport {\n property,\n queryAssignedElements,\n queryAssignedNodes,\n state,\n} from 'lit/decorators.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { partNameMap } from '../common/util.js';\nimport { styles as fluent } from './themes/light/fluent/nav-drawer-item.fluent.css.js';\nimport { styles as indigo } from './themes/light/indigo/nav-drawer-item.indigo.css.js';\nimport { styles } from './themes/light/nav-drawer-item.base.css.js';\n\n/**\n * Represents a navigation drawer item.\n *\n * @element igc-nav-drawer-item\n *\n * @slot content - The content slot for the drawer item.\n * @slot icon - The slot for the icon of the drawer item.\n *\n * @csspart base - The base wrapper of the drawer item.\n * @csspart icon - The icon container.\n * @csspart content - The content container.\n */\n@themes({ fluent, indigo })\nexport default class IgcNavDrawerItemComponent extends LitElement {\n public static readonly tagName = 'igc-nav-drawer-item';\n public static override styles = styles;\n\n /**\n * Determines whether the drawer is disabled.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n /**\n * Determines whether the drawer is active.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public active = false;\n\n @state()\n private _textLength!: number;\n\n @queryAssignedElements({ slot: 'content' })\n private _text!: Array<HTMLElement>;\n\n @queryAssignedNodes({ slot: 'icon', flatten: true })\n protected navdrawerIcon!: Array<Node>;\n\n public override connectedCallback() {\n super.connectedCallback();\n this.shadowRoot?.addEventListener('slotchange', (_) => {\n this._textLength = this._text.length;\n });\n }\n\n protected resolvePartNames(base: string) {\n return {\n [base]: true,\n mini: this._textLength < 1,\n };\n }\n\n protected override render() {\n return html`\n <div part=\"${partNameMap(this.resolvePartNames('base'))}\">\n <span part=\"icon\" .hidden=\"${this.navdrawerIcon.length == 0}\">\n <slot name=\"icon\"></slot>\n </span>\n <span part=\"content\">\n <slot name=\"content\"></slot>\n </span>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-nav-drawer-item': IgcNavDrawerItemComponent;\n }\n}\n"]}
@@ -15,9 +15,15 @@ import { LitElement } from 'lit';
15
15
  export default class IgcNavDrawerComponent extends LitElement {
16
16
  static readonly tagName = "igc-nav-drawer";
17
17
  static styles: import("lit").CSSResult;
18
- /** The position of the drawer. */
18
+ /**
19
+ * The position of the drawer.
20
+ * @attr
21
+ */
19
22
  position: 'start' | 'end' | 'top' | 'bottom' | 'relative';
20
- /** Determines whether the drawer is opened. */
23
+ /**
24
+ * Determines whether the drawer is opened.
25
+ * @attr
26
+ */
21
27
  open: boolean;
22
28
  /** Opens the drawer. */
23
29
  show(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"nav-drawer.js","sourceRoot":"","sources":["../../../src/components/nav-drawer/nav-drawer.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,gDAAgD,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,+BAA+B,MAAM,6BAA6B,CAAC;AAC1E,OAAO,yBAAyB,MAAM,sBAAsB,CAAC;AAE7D,gBAAgB,CAAC,+BAA+B,EAAE,yBAAyB,CAAC,CAAC;AAgB7E,IAAqB,qBAAqB,GAA1C,MAAqB,qBAAsB,SAAQ,UAAU;IAA7D;;QAMS,aAAQ,GAAoD,OAAO,CAAC;QAIpE,SAAI,GAAG,KAAK,CAAC;IAqDtB,CAAC;IAlDQ,IAAI;QACT,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,OAAO;SACR;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAGM,IAAI;QACT,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,OAAO;SACR;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;IAGM,MAAM;QACX,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;aAAM;YACL,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;IACH,CAAC;IAEO,gBAAgB,CAAC,IAAY;QACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAE9D,OAAO;YACL,CAAC,IAAI,CAAC,EAAE,IAAI;YACZ,MAAM,EAAE,CAAC,WAAW;SACrB,CAAC;IACJ,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;mCACoB,IAAI,CAAC,IAAI;;;;;;qBAMvB,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;;;;KAI1D,CAAC;IACJ,CAAC;CACF,CAAA;AA9DwB,6BAAO,GAAG,gBAAiB,CAAA;AAC3B,4BAAM,GAAG,MAAO,CAAA;AAIvC;IADC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uDAC+C;AAI3E;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDACvB;AAVD,qBAAqB;IADzC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;GACE,qBAAqB,CA+DzC;eA/DoB,qBAAqB","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { partNameMap } from '../common/util.js';\nimport { styles as indigo } from './themes/light/indigo/nav-drawer.indigo.css.js';\nimport { styles } from './themes/light/nav-drawer.base.css.js';\n\nimport { defineComponents } from '../common/definitions/defineComponents.js';\nimport IgcNavDrawerHeaderItemComponent from './nav-drawer-header-item.js';\nimport IgcNavDrawerItemComponent from './nav-drawer-item.js';\n\ndefineComponents(IgcNavDrawerHeaderItemComponent, IgcNavDrawerItemComponent);\n\n/**\n * Represents a side navigation container that provides\n * quick access between views.\n *\n * @element igc-nav-drawer\n *\n * @slot - The default slot for the drawer.\n * @slot mini - The slot for the mini variant of the drawer.\n *\n * @csspart base - The base wrapper of the navigation drawer.\n * @csspart main - The main container.\n * @csspart mini - The mini container.\n */\n@themes({ indigo })\nexport default class IgcNavDrawerComponent extends LitElement {\n public static readonly tagName = 'igc-nav-drawer';\n public static override styles = styles;\n\n /** The position of the drawer. */\n @property({ reflect: true })\n public position: 'start' | 'end' | 'top' | 'bottom' | 'relative' = 'start';\n\n /** Determines whether the drawer is opened. */\n @property({ type: Boolean, reflect: true })\n public open = false;\n\n /** Opens the drawer. */\n public show() {\n if (this.open) {\n return;\n }\n\n this.open = true;\n }\n\n /** Closes the drawer. */\n public hide() {\n if (!this.open) {\n return;\n }\n\n this.open = false;\n }\n\n /** Toggles the open state of the drawer. */\n public toggle() {\n if (this.open) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n private resolvePartNames(base: string) {\n const mini = document.querySelector('div[slot=\"mini\"]');\n const hasChildren = mini !== null && mini.children.length > 0;\n\n return {\n [base]: true,\n hidden: !hasChildren,\n };\n }\n\n protected override render() {\n return html`\n <div part=\"overlay\" @click=${this.hide}></div>\n <div part=\"base\">\n <div part=\"main\">\n <slot></slot>\n </div>\n\n <div part=\"${partNameMap(this.resolvePartNames('mini'))}\">\n <slot name=\"mini\"></slot>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-nav-drawer': IgcNavDrawerComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"nav-drawer.js","sourceRoot":"","sources":["../../../src/components/nav-drawer/nav-drawer.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,gDAAgD,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,+BAA+B,MAAM,6BAA6B,CAAC;AAC1E,OAAO,yBAAyB,MAAM,sBAAsB,CAAC;AAE7D,gBAAgB,CAAC,+BAA+B,EAAE,yBAAyB,CAAC,CAAC;AAgB9D,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,UAAU;IAA9C;;QASN,aAAQ,GAAoD,OAAO,CAAC;QAOpE,SAAI,GAAG,KAAK,CAAC;IAqDtB,CAAC;IAlDQ,IAAI;QACT,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,OAAO;SACR;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAGM,IAAI;QACT,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,OAAO;SACR;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;IAGM,MAAM;QACX,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;aAAM;YACL,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;IACH,CAAC;IAEO,gBAAgB,CAAC,IAAY;QACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAE9D,OAAO;YACL,CAAC,IAAI,CAAC,EAAE,IAAI;YACZ,MAAM,EAAE,CAAC,WAAW;SACrB,CAAC;IACJ,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;mCACoB,IAAI,CAAC,IAAI;;;;;;qBAMvB,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;;;;KAI1D,CAAC;IACJ,CAAC;;AAnEsB,6BAAO,GAAG,gBAAgB,CAAC;AAC3B,4BAAM,GAAG,MAAM,CAAC;AAOvC;IADC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uDAC+C;AAO3E;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDACvB;AAhBD,qBAAqB;IADzC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;GACE,qBAAqB,CAqEzC;eArEoB,qBAAqB","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { partNameMap } from '../common/util.js';\nimport { styles as indigo } from './themes/light/indigo/nav-drawer.indigo.css.js';\nimport { styles } from './themes/light/nav-drawer.base.css.js';\n\nimport { defineComponents } from '../common/definitions/defineComponents.js';\nimport IgcNavDrawerHeaderItemComponent from './nav-drawer-header-item.js';\nimport IgcNavDrawerItemComponent from './nav-drawer-item.js';\n\ndefineComponents(IgcNavDrawerHeaderItemComponent, IgcNavDrawerItemComponent);\n\n/**\n * Represents a side navigation container that provides\n * quick access between views.\n *\n * @element igc-nav-drawer\n *\n * @slot - The default slot for the drawer.\n * @slot mini - The slot for the mini variant of the drawer.\n *\n * @csspart base - The base wrapper of the navigation drawer.\n * @csspart main - The main container.\n * @csspart mini - The mini container.\n */\n@themes({ indigo })\nexport default class IgcNavDrawerComponent extends LitElement {\n public static readonly tagName = 'igc-nav-drawer';\n public static override styles = styles;\n\n /**\n * The position of the drawer.\n * @attr\n */\n @property({ reflect: true })\n public position: 'start' | 'end' | 'top' | 'bottom' | 'relative' = 'start';\n\n /**\n * Determines whether the drawer is opened.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public open = false;\n\n /** Opens the drawer. */\n public show() {\n if (this.open) {\n return;\n }\n\n this.open = true;\n }\n\n /** Closes the drawer. */\n public hide() {\n if (!this.open) {\n return;\n }\n\n this.open = false;\n }\n\n /** Toggles the open state of the drawer. */\n public toggle() {\n if (this.open) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n private resolvePartNames(base: string) {\n const mini = document.querySelector('div[slot=\"mini\"]');\n const hasChildren = mini !== null && mini.children.length > 0;\n\n return {\n [base]: true,\n hidden: !hasChildren,\n };\n }\n\n protected override render() {\n return html`\n <div part=\"overlay\" @click=${this.hide}></div>\n <div part=\"base\">\n <div part=\"main\">\n <slot></slot>\n </div>\n\n <div part=\"${partNameMap(this.resolvePartNames('mini'))}\">\n <slot name=\"mini\"></slot>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-nav-drawer': IgcNavDrawerComponent;\n }\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `/* stylelint-disable max-line-length */`;
2
+ export const styles = css `/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */`;
3
3
  //# sourceMappingURL=nav-drawer-item.base.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nav-drawer-item.base.css.js","sourceRoot":"","sources":["../../../../../src/components/nav-drawer/themes/dark/nav-drawer-item.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,yCAAyC,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`/* stylelint-disable max-line-length */`;\n"]}
1
+ {"version":3,"file":"nav-drawer-item.base.css.js","sourceRoot":"","sources":["../../../../../src/components/nav-drawer/themes/dark/nav-drawer-item.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,y0BAAy0B,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */`;\n"]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `/* stylelint-disable max-line-length */`;
2
+ export const styles = css `/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */`;
3
3
  //# sourceMappingURL=nav-drawer-item.bootstrap.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nav-drawer-item.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/components/nav-drawer/themes/dark/nav-drawer-item.bootstrap.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,yCAAyC,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`/* stylelint-disable max-line-length */`;\n"]}
1
+ {"version":3,"file":"nav-drawer-item.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/components/nav-drawer/themes/dark/nav-drawer-item.bootstrap.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,y0BAAy0B,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */`;\n"]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `/* stylelint-disable max-line-length */`;
2
+ export const styles = css `/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */`;
3
3
  //# sourceMappingURL=nav-drawer-item.fluent.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nav-drawer-item.fluent.css.js","sourceRoot":"","sources":["../../../../../src/components/nav-drawer/themes/dark/nav-drawer-item.fluent.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,yCAAyC,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`/* stylelint-disable max-line-length */`;\n"]}
1
+ {"version":3,"file":"nav-drawer-item.fluent.css.js","sourceRoot":"","sources":["../../../../../src/components/nav-drawer/themes/dark/nav-drawer-item.fluent.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,y0BAAy0B,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */`;\n"]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `/* stylelint-disable max-line-length */`;
2
+ export const styles = css `/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */`;
3
3
  //# sourceMappingURL=nav-drawer-item.indigo.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nav-drawer-item.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/nav-drawer/themes/dark/nav-drawer-item.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,yCAAyC,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`/* stylelint-disable max-line-length */`;\n"]}
1
+ {"version":3,"file":"nav-drawer-item.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/nav-drawer/themes/dark/nav-drawer-item.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,y0BAAy0B,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */`;\n"]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `/* stylelint-disable max-line-length */`;
2
+ export const styles = css `/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */`;
3
3
  //# sourceMappingURL=nav-drawer.indigo.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nav-drawer.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/nav-drawer/themes/dark/nav-drawer.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,yCAAyC,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`/* stylelint-disable max-line-length */`;\n"]}
1
+ {"version":3,"file":"nav-drawer.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/nav-drawer/themes/dark/nav-drawer.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,y0BAAy0B,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */`;\n"]}
@@ -1,5 +1,5 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `/* stylelint-disable max-line-length */
2
+ export const styles = css `/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */
3
3
  :host {
4
4
  font-family: var(--ig-caption-font-family);
5
5
  font-size: var(--ig-caption-font-size);