igniteui-webcomponents 6.1.0 → 6.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/components/accordion/accordion.js +3 -3
  3. package/components/accordion/accordion.js.map +1 -1
  4. package/components/avatar/avatar.d.ts +8 -9
  5. package/components/avatar/avatar.js +29 -32
  6. package/components/avatar/avatar.js.map +1 -1
  7. package/components/badge/badge.d.ts +3 -3
  8. package/components/badge/badge.js +15 -18
  9. package/components/badge/badge.js.map +1 -1
  10. package/components/banner/banner.d.ts +2 -3
  11. package/components/banner/banner.js +14 -13
  12. package/components/banner/banner.js.map +1 -1
  13. package/components/button/button-base.d.ts +4 -11
  14. package/components/button/button-base.js +14 -15
  15. package/components/button/button-base.js.map +1 -1
  16. package/components/button/button.d.ts +1 -0
  17. package/components/button/button.js +9 -12
  18. package/components/button/button.js.map +1 -1
  19. package/components/button/icon-button.d.ts +3 -2
  20. package/components/button/icon-button.js +10 -13
  21. package/components/button/icon-button.js.map +1 -1
  22. package/components/button-group/button-group.js +8 -11
  23. package/components/button-group/button-group.js.map +1 -1
  24. package/components/button-group/toggle-button.d.ts +1 -6
  25. package/components/button-group/toggle-button.js +9 -11
  26. package/components/button-group/toggle-button.js.map +1 -1
  27. package/components/calendar/calendar.js +7 -10
  28. package/components/calendar/calendar.js.map +1 -1
  29. package/components/calendar/days-view/days-view.js +6 -6
  30. package/components/calendar/days-view/days-view.js.map +1 -1
  31. package/components/calendar/months-view/months-view.js +8 -8
  32. package/components/calendar/months-view/months-view.js.map +1 -1
  33. package/components/calendar/years-view/years-view.js +8 -8
  34. package/components/calendar/years-view/years-view.js.map +1 -1
  35. package/components/card/card.actions.d.ts +1 -0
  36. package/components/card/card.actions.js +10 -13
  37. package/components/card/card.actions.js.map +1 -1
  38. package/components/card/card.content.d.ts +1 -0
  39. package/components/card/card.content.js +9 -15
  40. package/components/card/card.content.js.map +1 -1
  41. package/components/card/card.d.ts +1 -0
  42. package/components/card/card.header.d.ts +1 -0
  43. package/components/card/card.header.js +9 -15
  44. package/components/card/card.header.js.map +1 -1
  45. package/components/card/card.js +11 -14
  46. package/components/card/card.js.map +1 -1
  47. package/components/card/card.media.js +1 -1
  48. package/components/card/card.media.js.map +1 -1
  49. package/components/carousel/carousel-indicator-container.d.ts +1 -0
  50. package/components/carousel/carousel-indicator-container.js +9 -18
  51. package/components/carousel/carousel-indicator-container.js.map +1 -1
  52. package/components/carousel/carousel-indicator.d.ts +5 -7
  53. package/components/carousel/carousel-indicator.js +19 -19
  54. package/components/carousel/carousel-indicator.js.map +1 -1
  55. package/components/carousel/carousel-slide.d.ts +2 -3
  56. package/components/carousel/carousel-slide.js +17 -11
  57. package/components/carousel/carousel-slide.js.map +1 -1
  58. package/components/carousel/carousel.d.ts +0 -1
  59. package/components/carousel/carousel.js +22 -21
  60. package/components/carousel/carousel.js.map +1 -1
  61. package/components/checkbox/checkbox-base.js.map +1 -1
  62. package/components/checkbox/checkbox.d.ts +1 -1
  63. package/components/checkbox/checkbox.js +11 -15
  64. package/components/checkbox/checkbox.js.map +1 -1
  65. package/components/checkbox/switch.d.ts +1 -0
  66. package/components/checkbox/switch.js +10 -19
  67. package/components/checkbox/switch.js.map +1 -1
  68. package/components/checkbox/validators.js.map +1 -1
  69. package/components/chip/chip.js +7 -10
  70. package/components/chip/chip.js.map +1 -1
  71. package/components/combo/combo-header.d.ts +1 -0
  72. package/components/combo/combo-header.js +9 -15
  73. package/components/combo/combo-header.js.map +1 -1
  74. package/components/combo/combo-item.d.ts +4 -5
  75. package/components/combo/combo-item.js +22 -23
  76. package/components/combo/combo-item.js.map +1 -1
  77. package/components/combo/combo.d.ts +1 -1
  78. package/components/combo/combo.js +16 -16
  79. package/components/combo/combo.js.map +1 -1
  80. package/components/common/abort-handler.d.ts +39 -0
  81. package/components/common/abort-handler.js +19 -0
  82. package/components/common/abort-handler.js.map +1 -0
  83. package/components/common/controllers/drag.d.ts +3 -2
  84. package/components/common/controllers/drag.js +7 -6
  85. package/components/common/controllers/drag.js.map +1 -1
  86. package/components/common/controllers/focus-ring.d.ts +1 -0
  87. package/components/common/controllers/focus-ring.js +5 -4
  88. package/components/common/controllers/focus-ring.js.map +1 -1
  89. package/components/common/controllers/gestures.d.ts +6 -2
  90. package/components/common/controllers/gestures.js +15 -11
  91. package/components/common/controllers/gestures.js.map +1 -1
  92. package/components/common/controllers/internals.d.ts +33 -0
  93. package/components/common/controllers/internals.js +25 -0
  94. package/components/common/controllers/internals.js.map +1 -0
  95. package/components/common/controllers/key-bindings.d.ts +1 -0
  96. package/components/common/controllers/key-bindings.js +6 -4
  97. package/components/common/controllers/key-bindings.js.map +1 -1
  98. package/components/common/controllers/mutation-observer.d.ts +25 -15
  99. package/components/common/controllers/mutation-observer.js +23 -12
  100. package/components/common/controllers/mutation-observer.js.map +1 -1
  101. package/components/common/controllers/resize-observer.js.map +1 -1
  102. package/components/common/controllers/root-click.d.ts +58 -13
  103. package/components/common/controllers/root-click.js +47 -35
  104. package/components/common/controllers/root-click.js.map +1 -1
  105. package/components/common/decorators/shadow-options.d.ts +10 -0
  106. package/components/common/decorators/shadow-options.js +10 -0
  107. package/components/common/decorators/shadow-options.js.map +1 -0
  108. package/components/common/definitions/defineAllComponents.js +12 -12
  109. package/components/common/definitions/defineAllComponents.js.map +1 -1
  110. package/components/common/mixins/alert.d.ts +1 -2
  111. package/components/common/mixins/alert.js +13 -9
  112. package/components/common/mixins/alert.js.map +1 -1
  113. package/components/common/mixins/combo-box.d.ts +2 -1
  114. package/components/common/mixins/combo-box.js +0 -2
  115. package/components/common/mixins/combo-box.js.map +1 -1
  116. package/components/common/mixins/forms/associated.js +2 -2
  117. package/components/common/mixins/forms/associated.js.map +1 -1
  118. package/components/common/mixins/option.d.ts +1 -2
  119. package/components/common/mixins/option.js +13 -11
  120. package/components/common/mixins/option.js.map +1 -1
  121. package/components/common/part-map.js +1 -1
  122. package/components/common/part-map.js.map +1 -1
  123. package/components/common/util.d.ts +9 -0
  124. package/components/common/util.js +9 -1
  125. package/components/common/util.js.map +1 -1
  126. package/components/date-picker/date-picker.d.ts +2 -7
  127. package/components/date-picker/date-picker.js +18 -19
  128. package/components/date-picker/date-picker.js.map +1 -1
  129. package/components/date-picker/validators.js.map +1 -1
  130. package/components/date-range-picker/date-range-picker.d.ts +3 -8
  131. package/components/date-range-picker/date-range-picker.js +16 -17
  132. package/components/date-range-picker/date-range-picker.js.map +1 -1
  133. package/components/date-range-picker/predefined-ranges-area.d.ts +1 -0
  134. package/components/date-range-picker/predefined-ranges-area.js +10 -13
  135. package/components/date-range-picker/predefined-ranges-area.js.map +1 -1
  136. package/components/date-time-input/date-time-input.js.map +1 -1
  137. package/components/date-time-input/validators.js.map +1 -1
  138. package/components/dialog/dialog.d.ts +1 -0
  139. package/components/dialog/dialog.js +13 -13
  140. package/components/dialog/dialog.js.map +1 -1
  141. package/components/divider/divider.d.ts +5 -2
  142. package/components/divider/divider.js +17 -18
  143. package/components/divider/divider.js.map +1 -1
  144. package/components/dropdown/dropdown-group.d.ts +0 -1
  145. package/components/dropdown/dropdown-group.js +13 -12
  146. package/components/dropdown/dropdown-group.js.map +1 -1
  147. package/components/dropdown/dropdown-header.d.ts +1 -0
  148. package/components/dropdown/dropdown-header.js +9 -15
  149. package/components/dropdown/dropdown-header.js.map +1 -1
  150. package/components/dropdown/dropdown-item.d.ts +1 -0
  151. package/components/dropdown/dropdown-item.js +8 -14
  152. package/components/dropdown/dropdown-item.js.map +1 -1
  153. package/components/dropdown/dropdown.d.ts +2 -1
  154. package/components/dropdown/dropdown.js +7 -4
  155. package/components/dropdown/dropdown.js.map +1 -1
  156. package/components/dropdown/themes/item.js +7 -0
  157. package/components/dropdown/themes/item.js.map +1 -1
  158. package/components/dropdown/themes/shared/item/dropdown-item.bootstrap.css.d.ts +1 -0
  159. package/components/dropdown/themes/shared/item/dropdown-item.bootstrap.css.js +3 -0
  160. package/components/dropdown/themes/shared/item/dropdown-item.bootstrap.css.js.map +1 -0
  161. package/components/expansion-panel/expansion-panel.js +8 -11
  162. package/components/expansion-panel/expansion-panel.js.map +1 -1
  163. package/components/file-input/file-input.d.ts +1 -1
  164. package/components/file-input/file-input.js +18 -21
  165. package/components/file-input/file-input.js.map +1 -1
  166. package/components/file-input/themes/shared/file-input.material.css.js +1 -1
  167. package/components/file-input/themes/shared/file-input.material.css.js.map +1 -1
  168. package/components/file-input/validators.js.map +1 -1
  169. package/components/focus-trap/focus-trap.js +4 -4
  170. package/components/focus-trap/focus-trap.js.map +1 -1
  171. package/components/icon/icon.d.ts +2 -1
  172. package/components/icon/icon.js +18 -15
  173. package/components/icon/icon.js.map +1 -1
  174. package/components/input/input-base.d.ts +2 -8
  175. package/components/input/input-base.js +8 -11
  176. package/components/input/input-base.js.map +1 -1
  177. package/components/input/input.js.map +1 -1
  178. package/components/input/themes/shared/input.material.css.js +1 -1
  179. package/components/input/themes/shared/input.material.css.js.map +1 -1
  180. package/components/input/validators.js.map +1 -1
  181. package/components/list/list-header.d.ts +0 -1
  182. package/components/list/list-header.js +10 -17
  183. package/components/list/list-header.js.map +1 -1
  184. package/components/list/list-item.d.ts +0 -1
  185. package/components/list/list-item.js +13 -12
  186. package/components/list/list-item.js.map +1 -1
  187. package/components/list/list.d.ts +0 -1
  188. package/components/list/list.js +12 -17
  189. package/components/list/list.js.map +1 -1
  190. package/components/mask-input/mask-input.js.map +1 -1
  191. package/components/mask-input/validators.js.map +1 -1
  192. package/components/nav-drawer/nav-drawer-header-item.d.ts +1 -0
  193. package/components/nav-drawer/nav-drawer-header-item.js +9 -15
  194. package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
  195. package/components/nav-drawer/nav-drawer-item.d.ts +1 -0
  196. package/components/nav-drawer/nav-drawer-item.js +10 -13
  197. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  198. package/components/nav-drawer/nav-drawer.d.ts +1 -0
  199. package/components/nav-drawer/nav-drawer.js +10 -13
  200. package/components/nav-drawer/nav-drawer.js.map +1 -1
  201. package/components/navbar/navbar.d.ts +1 -0
  202. package/components/navbar/navbar.js +9 -15
  203. package/components/navbar/navbar.js.map +1 -1
  204. package/components/popover/popover.js +1 -1
  205. package/components/popover/popover.js.map +1 -1
  206. package/components/progress/base.d.ts +1 -2
  207. package/components/progress/base.js +28 -26
  208. package/components/progress/base.js.map +1 -1
  209. package/components/progress/circular-progress.d.ts +1 -0
  210. package/components/progress/circular-progress.js +10 -13
  211. package/components/progress/circular-progress.js.map +1 -1
  212. package/components/progress/linear-progress.d.ts +1 -0
  213. package/components/progress/linear-progress.js +9 -12
  214. package/components/progress/linear-progress.js.map +1 -1
  215. package/components/radio/radio.js +8 -11
  216. package/components/radio/radio.js.map +1 -1
  217. package/components/radio/utils.js.map +1 -1
  218. package/components/radio-group/radio-group.d.ts +1 -1
  219. package/components/radio-group/radio-group.js +15 -17
  220. package/components/radio-group/radio-group.js.map +1 -1
  221. package/components/rating/rating-symbol.js +1 -1
  222. package/components/rating/rating-symbol.js.map +1 -1
  223. package/components/rating/rating.js +7 -10
  224. package/components/rating/rating.js.map +1 -1
  225. package/components/resize-container/resize-container.js +7 -10
  226. package/components/resize-container/resize-container.js.map +1 -1
  227. package/components/resize-container/resize-controller.d.ts +3 -2
  228. package/components/resize-container/resize-controller.js +6 -4
  229. package/components/resize-container/resize-controller.js.map +1 -1
  230. package/components/ripple/ripple.js +3 -2
  231. package/components/ripple/ripple.js.map +1 -1
  232. package/components/select/select-group.d.ts +1 -1
  233. package/components/select/select-group.js +15 -14
  234. package/components/select/select-group.js.map +1 -1
  235. package/components/select/select-header.d.ts +1 -0
  236. package/components/select/select-header.js +9 -15
  237. package/components/select/select-header.js.map +1 -1
  238. package/components/select/select-item.d.ts +1 -0
  239. package/components/select/select-item.js +9 -9
  240. package/components/select/select-item.js.map +1 -1
  241. package/components/select/select.d.ts +1 -0
  242. package/components/select/select.js +11 -8
  243. package/components/select/select.js.map +1 -1
  244. package/components/select/validators.js.map +1 -1
  245. package/components/slider/slider-base.js +8 -8
  246. package/components/slider/slider-base.js.map +1 -1
  247. package/components/slider/slider-label.js +1 -1
  248. package/components/slider/slider-label.js.map +1 -1
  249. package/components/slider/slider.js.map +1 -1
  250. package/components/snackbar/snackbar.d.ts +1 -0
  251. package/components/snackbar/snackbar.js +9 -12
  252. package/components/snackbar/snackbar.js.map +1 -1
  253. package/components/stepper/step.d.ts +1 -0
  254. package/components/stepper/step.js +10 -13
  255. package/components/stepper/step.js.map +1 -1
  256. package/components/stepper/stepper.js +10 -13
  257. package/components/stepper/stepper.js.map +1 -1
  258. package/components/tabs/tab.d.ts +1 -0
  259. package/components/tabs/tab.js +12 -15
  260. package/components/tabs/tab.js.map +1 -1
  261. package/components/tabs/tabs.js +10 -13
  262. package/components/tabs/tabs.js.map +1 -1
  263. package/components/textarea/textarea.d.ts +2 -8
  264. package/components/textarea/textarea.js +11 -14
  265. package/components/textarea/textarea.js.map +1 -1
  266. package/components/textarea/themes/shared/textarea.material.css.js +1 -1
  267. package/components/textarea/themes/shared/textarea.material.css.js.map +1 -1
  268. package/components/textarea/validators.js.map +1 -1
  269. package/components/tile-manager/position.d.ts +1 -1
  270. package/components/tile-manager/position.js.map +1 -1
  271. package/components/tile-manager/themes/container.js.map +1 -1
  272. package/components/tile-manager/tile-manager.d.ts +0 -1
  273. package/components/tile-manager/tile-manager.js +5 -7
  274. package/components/tile-manager/tile-manager.js.map +1 -1
  275. package/components/tile-manager/tile.d.ts +1 -0
  276. package/components/tile-manager/tile.js +54 -57
  277. package/components/tile-manager/tile.js.map +1 -1
  278. package/components/toast/toast.d.ts +1 -0
  279. package/components/toast/toast.js +8 -17
  280. package/components/toast/toast.js.map +1 -1
  281. package/components/tooltip/controller.d.ts +2 -4
  282. package/components/tooltip/controller.js +11 -20
  283. package/components/tooltip/controller.js.map +1 -1
  284. package/components/tooltip/themes/themes.js +1 -1
  285. package/components/tooltip/themes/themes.js.map +1 -1
  286. package/components/tooltip/tooltip.js +17 -16
  287. package/components/tooltip/tooltip.js.map +1 -1
  288. package/components/tree/tree-item.d.ts +1 -0
  289. package/components/tree/tree-item.js +30 -33
  290. package/components/tree/tree-item.js.map +1 -1
  291. package/components/tree/tree.d.ts +1 -1
  292. package/components/tree/tree.js +6 -5
  293. package/components/tree/tree.js.map +1 -1
  294. package/components/tree/tree.navigation.d.ts +1 -1
  295. package/components/tree/tree.navigation.js.map +1 -1
  296. package/components/tree/tree.selection.d.ts +1 -1
  297. package/components/tree/tree.selection.js.map +1 -1
  298. package/components/validation-container/themes/themes.js.map +1 -1
  299. package/components/validation-container/validation-container.d.ts +2 -1
  300. package/components/validation-container/validation-container.js +13 -16
  301. package/components/validation-container/validation-container.js.map +1 -1
  302. package/custom-elements.json +1641 -1753
  303. package/igniteui-webcomponents.html-data.json +1 -1
  304. package/package.json +1 -1
  305. package/theming/config.d.ts +3 -3
  306. package/theming/config.js +14 -18
  307. package/theming/config.js.map +1 -1
  308. package/theming/theming-controller.d.ts +17 -13
  309. package/theming/theming-controller.js +29 -23
  310. package/theming/theming-controller.js.map +1 -1
  311. package/theming/theming-event.d.ts +1 -0
  312. package/theming/theming-event.js.map +1 -1
  313. package/theming/types.d.ts +3 -14
  314. package/theming/types.js.map +1 -1
  315. package/theming/utils.js +24 -23
  316. package/theming/utils.js.map +1 -1
  317. package/web-types.json +1 -1
  318. package/theming/theming-decorator.d.ts +0 -43
  319. package/theming/theming-decorator.js +0 -25
  320. package/theming/theming-decorator.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\n\nimport { themes } from '../../theming/theming-decorator.js';\nimport {\n type KeyBindingController,\n type KeyBindingObserverCleanup,\n addKeybindings,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n endKey,\n enterKey,\n escapeKey,\n homeKey,\n tabKey,\n} from '../common/controllers/key-bindings.js';\nimport { addRootScrollHandler } from '../common/controllers/root-scroll.js';\nimport { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport {\n IgcBaseComboBoxLikeComponent,\n getActiveItems,\n getItems,\n getNextActiveItem,\n getPreviousActiveItem,\n setInitialSelectionState,\n} from '../common/mixins/combo-box.js';\nimport type { AbstractConstructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport {\n findElementFromEventPath,\n getElementByIdFromRoot,\n isString,\n} from '../common/util.js';\nimport IgcPopoverComponent, {\n type PopoverPlacement,\n} from '../popover/popover.js';\nimport type { PopoverScrollStrategy } from '../types.js';\nimport IgcDropdownGroupComponent from './dropdown-group.js';\nimport IgcDropdownHeaderComponent from './dropdown-header.js';\nimport IgcDropdownItemComponent from './dropdown-item.js';\nimport { all } from './themes/container.js';\nimport { styles } from './themes/dropdown.base.css.js';\nimport { styles as shared } from './themes/shared/dropdown.common.css.js';\n\nexport interface IgcDropdownComponentEventMap {\n igcOpening: CustomEvent<void>;\n igcOpened: CustomEvent<void>;\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n igcChange: CustomEvent<IgcDropdownItemComponent>;\n}\n\n/**\n * Represents a DropDown component.\n *\n * @element igc-dropdown\n *\n * @fires igcChange - Emitted when the selected item changes.\n * @fires igcOpening - Emitted just before the dropdown is open.\n * @fires igcOpened - Emitted after the dropdown is open.\n * @fires igcClosing - Emitter just before the dropdown is closed.\n * @fires igcClosed - Emitted after closing the dropdown.\n *\n * @slot target - Renders the dropdown's target element.\n * @slot - Renders the dropdown list items.\n *\n * @csspart base - The dropdown list wrapper container.\n * @csspart list - The dropdown list element.\n */\n@themes(all)\n@blazorAdditionalDependencies(\n 'IgcDropdownItemComponent, IgcDropdownHeaderComponent, IgcDropdownGroupComponent'\n)\nexport default class IgcDropdownComponent extends EventEmitterMixin<\n IgcDropdownComponentEventMap,\n AbstractConstructor<IgcBaseComboBoxLikeComponent>\n>(IgcBaseComboBoxLikeComponent) {\n public static readonly tagName = 'igc-dropdown';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(\n IgcDropdownComponent,\n IgcDropdownGroupComponent,\n IgcDropdownHeaderComponent,\n IgcDropdownItemComponent,\n IgcPopoverComponent\n );\n }\n\n private _keyBindings: KeyBindingController;\n\n private _rootScrollController = addRootScrollHandler(this, {\n hideCallback: this.handleClosing,\n });\n\n @state()\n protected _selectedItem: IgcDropdownItemComponent | null = null;\n\n @state()\n protected _activeItem!: IgcDropdownItemComponent;\n\n private get _activeItems() {\n return Array.from(\n getActiveItems<IgcDropdownItemComponent>(\n this,\n IgcDropdownItemComponent.tagName\n )\n );\n }\n\n private _targetListeners!: KeyBindingObserverCleanup;\n\n @state()\n private _target?: HTMLElement;\n\n @query('slot[name=\"target\"]', true)\n protected trigger!: HTMLSlotElement;\n\n /** The preferred placement of the component around the target element.\n * @attr\n */\n @property()\n public placement: PopoverPlacement = 'bottom-start';\n\n /**\n * Determines the behavior of the component during scrolling of the parent container.\n * @attr scroll-strategy\n */\n @property({ attribute: 'scroll-strategy' })\n public scrollStrategy: PopoverScrollStrategy = 'scroll';\n\n /**\n * Whether the component should be flipped to the opposite side of the target once it's about to overflow the visible area.\n * When true, once enough space is detected on its preferred side, it will flip back.\n * @attr\n */\n @property({ type: Boolean })\n public flip = false;\n\n /**\n * The distance from the target element.\n * @attr\n */\n @property({ type: Number })\n public distance = 0;\n\n /**\n * Whether the dropdown's width should be the same as the target's one.\n * @attr same-width\n */\n @property({ type: Boolean, attribute: 'same-width' })\n public sameWidth = false;\n\n /** Returns the items of the dropdown. */\n public get items() {\n return Array.from(\n getItems<IgcDropdownItemComponent>(this, IgcDropdownItemComponent.tagName)\n );\n }\n\n /** Returns the group items of the dropdown. */\n public get groups() {\n return Array.from(\n getItems<IgcDropdownGroupComponent>(\n this,\n IgcDropdownGroupComponent.tagName\n )\n );\n }\n\n /** Returns the selected item from the dropdown or null. */\n public get selectedItem() {\n return this._selectedItem;\n }\n\n @watch('scrollStrategy', { waitUntilFirstUpdate: true })\n protected scrollStrategyChanged() {\n this._rootScrollController.update({ resetListeners: true });\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n @watch('keepOpenOnOutsideClick', { waitUntilFirstUpdate: true })\n protected openStateChange() {\n this._updateAnchorAccessibility(this._target);\n this._rootClickController.update();\n this._rootScrollController.update();\n\n if (!this.open) {\n this._target = undefined;\n this._targetListeners?.unsubscribe();\n this._rootClickController.update({ target: undefined });\n }\n }\n\n constructor() {\n super();\n\n this._rootClickController.update({ hideCallback: this.handleClosing });\n\n this._keyBindings = addKeybindings(this, {\n skip: () => !this.open,\n bindingDefaults: { preventDefault: true, triggers: ['keydownRepeat'] },\n })\n .set(tabKey, this.onTabKey, {\n preventDefault: false,\n })\n .set(escapeKey, this.onEscapeKey)\n .set(arrowUp, this.onArrowUp)\n .set(arrowLeft, this.onArrowUp)\n .set(arrowDown, this.onArrowDown)\n .set(arrowRight, this.onArrowDown)\n .set(enterKey, this.onEnterKey)\n .set(homeKey, this.onHomeKey)\n .set(endKey, this.onEndKey);\n }\n\n protected override async firstUpdated() {\n await this.updateComplete;\n const selected = setInitialSelectionState(this.items);\n if (selected) {\n this._selectItem(selected, false);\n }\n }\n\n public override disconnectedCallback() {\n this._targetListeners?.unsubscribe();\n super.disconnectedCallback();\n }\n\n private handleListBoxClick(event: MouseEvent) {\n const item = findElementFromEventPath<IgcDropdownItemComponent>(\n IgcDropdownItemComponent.tagName,\n event\n );\n if (item && this._activeItems.includes(item)) {\n this._selectItem(item);\n }\n }\n\n private handleChange(item: IgcDropdownItemComponent) {\n this.emitEvent('igcChange', { detail: item });\n }\n\n private handleSlotChange() {\n this._updateAnchorAccessibility();\n }\n\n private onArrowUp() {\n this._navigateToActiveItem(\n getPreviousActiveItem(this.items, this._activeItem)\n );\n }\n\n private onArrowDown() {\n this._navigateToActiveItem(getNextActiveItem(this.items, this._activeItem));\n }\n\n protected onHomeKey() {\n this._navigateToActiveItem(this._activeItems.at(0));\n }\n\n protected onEndKey() {\n this._navigateToActiveItem(this._activeItems.at(-1));\n }\n\n protected onTabKey() {\n if (this._activeItem) {\n this._selectItem(this._activeItem);\n }\n if (this.open) {\n this._hide(true);\n }\n }\n\n protected onEscapeKey() {\n this._hide(true);\n }\n\n protected onEnterKey() {\n this._selectItem(this._activeItem);\n }\n\n protected handleClosing() {\n this._hide(true);\n }\n\n private activateItem(item: IgcDropdownItemComponent) {\n if (this._activeItem) {\n this._activeItem.active = false;\n }\n\n this._activeItem = item;\n this._activeItem.active = true;\n }\n\n private _navigateToActiveItem(item?: IgcDropdownItemComponent) {\n if (item) {\n this.activateItem(item);\n item.scrollIntoView({ behavior: 'auto', block: 'nearest' });\n }\n }\n\n private _selectItem(item: IgcDropdownItemComponent, emit = true) {\n if (this._selectedItem) {\n this._selectedItem.selected = false;\n }\n\n this.activateItem(item);\n this._selectedItem = item;\n this._selectedItem.selected = true;\n\n if (emit) this.handleChange(this._selectedItem);\n if (emit && !this.keepOpenOnSelect) this._hide(true);\n\n return this._selectedItem;\n }\n\n private _updateAnchorAccessibility(anchor?: HTMLElement | null) {\n const target =\n anchor ?? this.trigger.assignedElements({ flatten: true }).at(0);\n\n // Find tabbable elements ?\n if (target) {\n target.setAttribute('aria-haspopup', 'true');\n target.setAttribute('aria-expanded', this.open ? 'true' : 'false');\n }\n }\n\n private getItem(value: string) {\n return this.items.find((item) => item.value === value);\n }\n\n private _setTarget(anchor: HTMLElement | string) {\n const target = isString(anchor)\n ? getElementByIdFromRoot(this, anchor)!\n : anchor;\n\n this._target = target;\n this._targetListeners = this._keyBindings.observeElement(target);\n this._rootClickController.update({ target });\n }\n\n /* blazorSuppress */\n /** Shows the component. */\n public override async show(target?: HTMLElement | string): Promise<boolean> {\n if (target) {\n this._setTarget(target);\n }\n return super.show();\n }\n\n /* blazorSuppress */\n /** Toggles the open state of the component. */\n public override async toggle(\n target?: HTMLElement | string\n ): Promise<boolean> {\n return this.open ? this.hide() : this.show(target);\n }\n\n /* blazorSuppress */\n /** Navigates to the item with the specified value. If it exists, returns the found item, otherwise - null. */\n public navigateTo(value: string): IgcDropdownItemComponent | null;\n /* blazorSuppress */\n /** Navigates to the item at the specified index. If it exists, returns the found item, otherwise - null. */\n public navigateTo(index: number): IgcDropdownItemComponent | null;\n /* blazorSuppress */\n /** Navigates to the specified item. If it exists, returns the found item, otherwise - null. */\n public navigateTo(value: string | number): IgcDropdownItemComponent | null {\n const item = isString(value) ? this.getItem(value) : this.items[value];\n\n if (item) {\n this._navigateToActiveItem(item);\n }\n\n return item ?? null;\n }\n\n /* blazorSuppress */\n /** Selects the item with the specified value. If it exists, returns the found item, otherwise - null. */\n public select(value: string): IgcDropdownItemComponent | null;\n /* blazorSuppress */\n /** Selects the item at the specified index. If it exists, returns the found item, otherwise - null. */\n public select(index: number): IgcDropdownItemComponent | null;\n /* blazorSuppress */\n /** Selects the specified item. If it exists, returns the found item, otherwise - null. */\n public select(value: string | number): IgcDropdownItemComponent | null {\n const item = isString(value) ? this.getItem(value) : this.items[value];\n return item ? this._selectItem(item, false) : null;\n }\n\n /** Clears the current selection of the dropdown. */\n public clearSelection() {\n if (this._selectedItem) {\n this._selectedItem.selected = false;\n }\n this._selectedItem = null;\n }\n\n protected override render() {\n return html`<igc-popover\n ?open=${this.open}\n ?flip=${this.flip}\n ?same-width=${this.sameWidth}\n .anchor=${this._target}\n .offset=${this.distance}\n .placement=${this.placement}\n shift\n >\n <slot\n id=\"dropdown-target\"\n name=\"target\"\n slot=\"anchor\"\n @click=${this.handleAnchorClick}\n @slotchange=${this.handleSlotChange}\n ></slot>\n <div part=\"base\" @click=${this.handleListBoxClick} .inert=${!this.open}>\n <div\n id=\"dropdown-list\"\n role=\"listbox\"\n part=\"list\"\n aria-labelledby=\"dropdown-target\"\n >\n <slot></slot>\n </div>\n </div>\n </igc-popover>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-dropdown': IgcDropdownComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\n\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport {\n addKeybindings,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n endKey,\n enterKey,\n escapeKey,\n homeKey,\n type KeyBindingController,\n type KeyBindingObserverCleanup,\n tabKey,\n} from '../common/controllers/key-bindings.js';\nimport { addRootClickController } from '../common/controllers/root-click.js';\nimport { addRootScrollHandler } from '../common/controllers/root-scroll.js';\nimport { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport {\n getActiveItems,\n getItems,\n getNextActiveItem,\n getPreviousActiveItem,\n IgcBaseComboBoxLikeComponent,\n setInitialSelectionState,\n} from '../common/mixins/combo-box.js';\nimport type { AbstractConstructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport {\n findElementFromEventPath,\n getElementByIdFromRoot,\n isString,\n} from '../common/util.js';\nimport IgcPopoverComponent, {\n type PopoverPlacement,\n} from '../popover/popover.js';\nimport type { PopoverScrollStrategy } from '../types.js';\nimport IgcDropdownGroupComponent from './dropdown-group.js';\nimport IgcDropdownHeaderComponent from './dropdown-header.js';\nimport IgcDropdownItemComponent from './dropdown-item.js';\nimport { all } from './themes/container.js';\nimport { styles } from './themes/dropdown.base.css.js';\nimport { styles as shared } from './themes/shared/dropdown.common.css.js';\n\nexport interface IgcDropdownComponentEventMap {\n igcOpening: CustomEvent<void>;\n igcOpened: CustomEvent<void>;\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n igcChange: CustomEvent<IgcDropdownItemComponent>;\n}\n\n/**\n * Represents a DropDown component.\n *\n * @element igc-dropdown\n *\n * @fires igcChange - Emitted when the selected item changes.\n * @fires igcOpening - Emitted just before the dropdown is open.\n * @fires igcOpened - Emitted after the dropdown is open.\n * @fires igcClosing - Emitter just before the dropdown is closed.\n * @fires igcClosed - Emitted after closing the dropdown.\n *\n * @slot target - Renders the dropdown's target element.\n * @slot - Renders the dropdown list items.\n *\n * @csspart base - The dropdown list wrapper container.\n * @csspart list - The dropdown list element.\n */\n@blazorAdditionalDependencies(\n 'IgcDropdownItemComponent, IgcDropdownHeaderComponent, IgcDropdownGroupComponent'\n)\nexport default class IgcDropdownComponent extends EventEmitterMixin<\n IgcDropdownComponentEventMap,\n AbstractConstructor<IgcBaseComboBoxLikeComponent>\n>(IgcBaseComboBoxLikeComponent) {\n public static readonly tagName = 'igc-dropdown';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(\n IgcDropdownComponent,\n IgcDropdownGroupComponent,\n IgcDropdownHeaderComponent,\n IgcDropdownItemComponent,\n IgcPopoverComponent\n );\n }\n\n private readonly _keyBindings: KeyBindingController;\n\n private _rootScrollController = addRootScrollHandler(this, {\n hideCallback: this.handleClosing,\n });\n\n protected override readonly _rootClickController = addRootClickController(\n this,\n {\n onHide: this.handleClosing,\n }\n );\n\n @state()\n protected _selectedItem: IgcDropdownItemComponent | null = null;\n\n @state()\n protected _activeItem!: IgcDropdownItemComponent;\n\n private get _activeItems() {\n return Array.from(\n getActiveItems<IgcDropdownItemComponent>(\n this,\n IgcDropdownItemComponent.tagName\n )\n );\n }\n\n private _targetListeners!: KeyBindingObserverCleanup;\n\n @state()\n private _target?: HTMLElement;\n\n @query('slot[name=\"target\"]', true)\n protected trigger!: HTMLSlotElement;\n\n /** The preferred placement of the component around the target element.\n * @attr\n */\n @property()\n public placement: PopoverPlacement = 'bottom-start';\n\n /**\n * Determines the behavior of the component during scrolling of the parent container.\n * @attr scroll-strategy\n */\n @property({ attribute: 'scroll-strategy' })\n public scrollStrategy: PopoverScrollStrategy = 'scroll';\n\n /**\n * Whether the component should be flipped to the opposite side of the target once it's about to overflow the visible area.\n * When true, once enough space is detected on its preferred side, it will flip back.\n * @attr\n */\n @property({ type: Boolean })\n public flip = false;\n\n /**\n * The distance from the target element.\n * @attr\n */\n @property({ type: Number })\n public distance = 0;\n\n /**\n * Whether the dropdown's width should be the same as the target's one.\n * @attr same-width\n */\n @property({ type: Boolean, attribute: 'same-width' })\n public sameWidth = false;\n\n /** Returns the items of the dropdown. */\n public get items() {\n return Array.from(\n getItems<IgcDropdownItemComponent>(this, IgcDropdownItemComponent.tagName)\n );\n }\n\n /** Returns the group items of the dropdown. */\n public get groups() {\n return Array.from(\n getItems<IgcDropdownGroupComponent>(\n this,\n IgcDropdownGroupComponent.tagName\n )\n );\n }\n\n /** Returns the selected item from the dropdown or null. */\n public get selectedItem() {\n return this._selectedItem;\n }\n\n @watch('scrollStrategy', { waitUntilFirstUpdate: true })\n protected scrollStrategyChanged() {\n this._rootScrollController.update({ resetListeners: true });\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n @watch('keepOpenOnOutsideClick', { waitUntilFirstUpdate: true })\n protected openStateChange() {\n this._updateAnchorAccessibility(this._target);\n this._rootClickController.update();\n this._rootScrollController.update();\n\n if (!this.open) {\n this._target = undefined;\n this._targetListeners?.unsubscribe();\n this._rootClickController.update({ target: undefined });\n }\n }\n\n constructor() {\n super();\n\n addThemingController(this, all);\n\n this._keyBindings = addKeybindings(this, {\n skip: () => !this.open,\n bindingDefaults: { preventDefault: true, triggers: ['keydownRepeat'] },\n })\n .set(tabKey, this.onTabKey, {\n preventDefault: false,\n })\n .set(escapeKey, this.onEscapeKey)\n .set(arrowUp, this.onArrowUp)\n .set(arrowLeft, this.onArrowUp)\n .set(arrowDown, this.onArrowDown)\n .set(arrowRight, this.onArrowDown)\n .set(enterKey, this.onEnterKey)\n .set(homeKey, this.onHomeKey)\n .set(endKey, this.onEndKey);\n }\n\n protected override async firstUpdated() {\n await this.updateComplete;\n const selected = setInitialSelectionState(this.items);\n if (selected) {\n this._selectItem(selected, false);\n }\n }\n\n public override disconnectedCallback() {\n this._targetListeners?.unsubscribe();\n super.disconnectedCallback();\n }\n\n private handleListBoxClick(event: MouseEvent) {\n const item = findElementFromEventPath<IgcDropdownItemComponent>(\n IgcDropdownItemComponent.tagName,\n event\n );\n if (item && this._activeItems.includes(item)) {\n this._selectItem(item);\n }\n }\n\n private handleChange(item: IgcDropdownItemComponent) {\n this.emitEvent('igcChange', { detail: item });\n }\n\n private handleSlotChange() {\n this._updateAnchorAccessibility();\n }\n\n private onArrowUp() {\n this._navigateToActiveItem(\n getPreviousActiveItem(this.items, this._activeItem)\n );\n }\n\n private onArrowDown() {\n this._navigateToActiveItem(getNextActiveItem(this.items, this._activeItem));\n }\n\n protected onHomeKey() {\n this._navigateToActiveItem(this._activeItems.at(0));\n }\n\n protected onEndKey() {\n this._navigateToActiveItem(this._activeItems.at(-1));\n }\n\n protected onTabKey() {\n if (this._activeItem) {\n this._selectItem(this._activeItem);\n }\n if (this.open) {\n this._hide(true);\n }\n }\n\n protected onEscapeKey() {\n this._hide(true);\n }\n\n protected onEnterKey() {\n this._selectItem(this._activeItem);\n }\n\n protected handleClosing() {\n this._hide(true);\n }\n\n private activateItem(item: IgcDropdownItemComponent) {\n if (this._activeItem) {\n this._activeItem.active = false;\n }\n\n this._activeItem = item;\n this._activeItem.active = true;\n }\n\n private _navigateToActiveItem(item?: IgcDropdownItemComponent) {\n if (item) {\n this.activateItem(item);\n item.scrollIntoView({ behavior: 'auto', block: 'nearest' });\n }\n }\n\n private _selectItem(item: IgcDropdownItemComponent, emit = true) {\n if (this._selectedItem) {\n this._selectedItem.selected = false;\n }\n\n this.activateItem(item);\n this._selectedItem = item;\n this._selectedItem.selected = true;\n\n if (emit) this.handleChange(this._selectedItem);\n if (emit && !this.keepOpenOnSelect) this._hide(true);\n\n return this._selectedItem;\n }\n\n private _updateAnchorAccessibility(anchor?: HTMLElement | null) {\n const target =\n anchor ?? this.trigger.assignedElements({ flatten: true }).at(0);\n\n // Find tabbable elements ?\n if (target) {\n target.setAttribute('aria-haspopup', 'true');\n target.setAttribute('aria-expanded', this.open ? 'true' : 'false');\n }\n }\n\n private getItem(value: string) {\n return this.items.find((item) => item.value === value);\n }\n\n private _setTarget(anchor: HTMLElement | string) {\n const target = isString(anchor)\n ? getElementByIdFromRoot(this, anchor)!\n : anchor;\n\n this._target = target;\n this._targetListeners = this._keyBindings.observeElement(target);\n this._rootClickController.update({ target });\n }\n\n /* blazorSuppress */\n /** Shows the component. */\n public override async show(target?: HTMLElement | string): Promise<boolean> {\n if (target) {\n this._setTarget(target);\n }\n return super.show();\n }\n\n /* blazorSuppress */\n /** Toggles the open state of the component. */\n public override async toggle(\n target?: HTMLElement | string\n ): Promise<boolean> {\n return this.open ? this.hide() : this.show(target);\n }\n\n /* blazorSuppress */\n /** Navigates to the item with the specified value. If it exists, returns the found item, otherwise - null. */\n public navigateTo(value: string): IgcDropdownItemComponent | null;\n /* blazorSuppress */\n /** Navigates to the item at the specified index. If it exists, returns the found item, otherwise - null. */\n public navigateTo(index: number): IgcDropdownItemComponent | null;\n /* blazorSuppress */\n /** Navigates to the specified item. If it exists, returns the found item, otherwise - null. */\n public navigateTo(value: string | number): IgcDropdownItemComponent | null {\n const item = isString(value) ? this.getItem(value) : this.items[value];\n\n if (item) {\n this._navigateToActiveItem(item);\n }\n\n return item ?? null;\n }\n\n /* blazorSuppress */\n /** Selects the item with the specified value. If it exists, returns the found item, otherwise - null. */\n public select(value: string): IgcDropdownItemComponent | null;\n /* blazorSuppress */\n /** Selects the item at the specified index. If it exists, returns the found item, otherwise - null. */\n public select(index: number): IgcDropdownItemComponent | null;\n /* blazorSuppress */\n /** Selects the specified item. If it exists, returns the found item, otherwise - null. */\n public select(value: string | number): IgcDropdownItemComponent | null {\n const item = isString(value) ? this.getItem(value) : this.items[value];\n return item ? this._selectItem(item, false) : null;\n }\n\n /** Clears the current selection of the dropdown. */\n public clearSelection() {\n if (this._selectedItem) {\n this._selectedItem.selected = false;\n }\n this._selectedItem = null;\n }\n\n protected override render() {\n return html`<igc-popover\n ?open=${this.open}\n ?flip=${this.flip}\n ?same-width=${this.sameWidth}\n .anchor=${this._target}\n .offset=${this.distance}\n .placement=${this.placement}\n shift\n >\n <slot\n id=\"dropdown-target\"\n name=\"target\"\n slot=\"anchor\"\n @click=${this.handleAnchorClick}\n @slotchange=${this.handleSlotChange}\n ></slot>\n <div part=\"base\" @click=${this.handleListBoxClick} .inert=${!this.open}>\n <div\n id=\"dropdown-list\"\n role=\"listbox\"\n part=\"list\"\n aria-labelledby=\"dropdown-target\"\n >\n <slot></slot>\n </div>\n </div>\n </igc-popover>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-dropdown': IgcDropdownComponent;\n }\n}\n"]}
@@ -1,7 +1,11 @@
1
1
  import { css } from 'lit';
2
+ import { styles as bootstrap } from './shared/item/dropdown-item.bootstrap.css.js';
2
3
  import { styles as fluent } from './shared/item/dropdown-item.fluent.css.js';
3
4
  import { styles as indigo } from './shared/item/dropdown-item.indigo.css.js';
4
5
  const light = {
6
+ bootstrap: css `
7
+ ${bootstrap}
8
+ `,
5
9
  indigo: css `
6
10
  ${indigo}
7
11
  `,
@@ -10,6 +14,9 @@ const light = {
10
14
  `,
11
15
  };
12
16
  const dark = {
17
+ bootstrap: css `
18
+ ${bootstrap}
19
+ `,
13
20
  indigo: css `
14
21
  ${indigo}
15
22
  `,
@@ -1 +1 @@
1
- {"version":3,"file":"item.js","sourceRoot":"","sources":["../../../../src/components/dropdown/themes/item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAI1B,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAE7E,MAAM,KAAK,GAAG;IACZ,MAAM,EAAE,GAAG,CAAA;MACP,MAAM;GACT;IACD,MAAM,EAAE,GAAG,CAAA;MACP,MAAM;GACT;CACF,CAAC;AAEF,MAAM,IAAI,GAAG;IACX,MAAM,EAAE,GAAG,CAAA;MACP,MAAM;GACT;IACD,MAAM,EAAE,GAAG,CAAA;MACP,MAAM;GACT;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAW,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC","sourcesContent":["import { css } from 'lit';\n\nimport type { Themes } from '../../../theming/types.js';\n// Shared Styles\nimport { styles as fluent } from './shared/item/dropdown-item.fluent.css.js';\nimport { styles as indigo } from './shared/item/dropdown-item.indigo.css.js';\n\nconst light = {\n indigo: css`\n ${indigo}\n `,\n fluent: css`\n ${fluent}\n `,\n};\n\nconst dark = {\n indigo: css`\n ${indigo}\n `,\n fluent: css`\n ${fluent}\n `,\n};\n\nexport const all: Themes = { light, dark };\n"]}
1
+ {"version":3,"file":"item.js","sourceRoot":"","sources":["../../../../src/components/dropdown/themes/item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAI1B,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAE7E,MAAM,KAAK,GAAG;IACZ,SAAS,EAAE,GAAG,CAAA;MACV,SAAS;GACZ;IACD,MAAM,EAAE,GAAG,CAAA;MACP,MAAM;GACT;IACD,MAAM,EAAE,GAAG,CAAA;MACP,MAAM;GACT;CACF,CAAC;AAEF,MAAM,IAAI,GAAG;IACX,SAAS,EAAE,GAAG,CAAA;MACV,SAAS;GACZ;IACD,MAAM,EAAE,GAAG,CAAA;MACP,MAAM;GACT;IACD,MAAM,EAAE,GAAG,CAAA;MACP,MAAM;GACT;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAW,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC","sourcesContent":["import { css } from 'lit';\n\nimport type { Themes } from '../../../theming/types.js';\n// Shared Styles\nimport { styles as bootstrap } from './shared/item/dropdown-item.bootstrap.css.js';\nimport { styles as fluent } from './shared/item/dropdown-item.fluent.css.js';\nimport { styles as indigo } from './shared/item/dropdown-item.indigo.css.js';\n\nconst light = {\n bootstrap: css`\n ${bootstrap}\n `,\n indigo: css`\n ${indigo}\n `,\n fluent: css`\n ${fluent}\n `,\n};\n\nconst dark = {\n bootstrap: css`\n ${bootstrap}\n `,\n indigo: css`\n ${indigo}\n `,\n fluent: css`\n ${fluent}\n `,\n};\n\nexport const all: Themes = { light, dark };\n"]}
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,3 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `:host{--item-icon: 1.125rem}:host ::slotted(igc-icon){--size: var(--item-icon)}`;
3
+ //# sourceMappingURL=dropdown-item.bootstrap.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-item.bootstrap.css.js","sourceRoot":"","sources":["../../../../../../src/components/dropdown/themes/shared/item/dropdown-item.bootstrap.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,iFAAiF,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--item-icon: 1.125rem}:host ::slotted(igc-icon){--size: var(--item-icon)}`;\n"]}
@@ -4,13 +4,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- var IgcExpansionPanelComponent_1;
8
- import { LitElement, html, nothing } from 'lit';
7
+ import { html, LitElement, nothing } from 'lit';
9
8
  import { property, queryAssignedElements } from 'lit/decorators.js';
10
9
  import { createRef, ref } from 'lit/directives/ref.js';
11
10
  import { addAnimationController } from '../../animations/player.js';
12
11
  import { growVerIn, growVerOut } from '../../animations/presets/grow/index.js';
13
- import { themes } from '../../theming/theming-decorator.js';
12
+ import { addThemingController } from '../../theming/theming-controller.js';
14
13
  import { addKeybindings, altKey, arrowDown, arrowUp, } from '../common/controllers/key-bindings.js';
15
14
  import { registerComponent } from '../common/definitions/register.js';
16
15
  import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
@@ -19,9 +18,9 @@ import IgcIconComponent from '../icon/icon.js';
19
18
  import { styles } from './themes/expansion-panel.base.css.js';
20
19
  import { styles as shared } from './themes/shared/expansion-panel.common.css.js';
21
20
  import { all } from './themes/themes.js';
22
- let IgcExpansionPanelComponent = IgcExpansionPanelComponent_1 = class IgcExpansionPanelComponent extends EventEmitterMixin(LitElement) {
21
+ class IgcExpansionPanelComponent extends EventEmitterMixin(LitElement) {
23
22
  static register() {
24
- registerComponent(IgcExpansionPanelComponent_1, IgcIconComponent);
23
+ registerComponent(IgcExpansionPanelComponent, IgcIconComponent);
25
24
  }
26
25
  constructor() {
27
26
  super();
@@ -31,6 +30,7 @@ let IgcExpansionPanelComponent = IgcExpansionPanelComponent_1 = class IgcExpansi
31
30
  this.open = false;
32
31
  this.disabled = false;
33
32
  this.indicatorPosition = 'start';
33
+ addThemingController(this, all);
34
34
  addKeybindings(this, {
35
35
  ref: this.headerRef,
36
36
  skip: () => this.disabled,
@@ -49,7 +49,7 @@ let IgcExpansionPanelComponent = IgcExpansionPanelComponent_1 = class IgcExpansi
49
49
  super.connectedCallback();
50
50
  this._panelId =
51
51
  this.id ||
52
- `igc-expansion-panel-${IgcExpansionPanelComponent_1.increment()}`;
52
+ `igc-expansion-panel-${IgcExpansionPanelComponent.increment()}`;
53
53
  }
54
54
  handleClick() {
55
55
  this.headerRef.value.focus();
@@ -163,10 +163,11 @@ let IgcExpansionPanelComponent = IgcExpansionPanelComponent_1 = class IgcExpansi
163
163
  render() {
164
164
  return html `${this.renderHeaderTemplate()}${this.renderContentTemplate()}`;
165
165
  }
166
- };
166
+ }
167
167
  IgcExpansionPanelComponent.tagName = 'igc-expansion-panel';
168
168
  IgcExpansionPanelComponent.styles = [styles, shared];
169
169
  IgcExpansionPanelComponent.increment = createCounter();
170
+ export default IgcExpansionPanelComponent;
170
171
  __decorate([
171
172
  queryAssignedElements({ slot: 'indicator-expanded' })
172
173
  ], IgcExpansionPanelComponent.prototype, "_indicatorExpandedElements", void 0);
@@ -179,8 +180,4 @@ __decorate([
179
180
  __decorate([
180
181
  property({ reflect: true, attribute: 'indicator-position' })
181
182
  ], IgcExpansionPanelComponent.prototype, "indicatorPosition", void 0);
182
- IgcExpansionPanelComponent = IgcExpansionPanelComponent_1 = __decorate([
183
- themes(all)
184
- ], IgcExpansionPanelComponent);
185
- export default IgcExpansionPanelComponent;
186
183
  //# sourceMappingURL=expansion-panel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"expansion-panel.js","sourceRoot":"","sources":["../../../src/components/expansion-panel/expansion-panel.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, nothing } from 'lit';\nimport { property, queryAssignedElements } from 'lit/decorators.js';\nimport { type Ref, createRef, ref } from 'lit/directives/ref.js';\n\nimport { addAnimationController } from '../../animations/player.js';\nimport { growVerIn, growVerOut } from '../../animations/presets/grow/index.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport {\n addKeybindings,\n altKey,\n arrowDown,\n arrowUp,\n} from '../common/controllers/key-bindings.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { createCounter, isEmpty } from '../common/util.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport type { ExpansionPanelIndicatorPosition } from '../types.js';\nimport { styles } from './themes/expansion-panel.base.css.js';\nimport { styles as shared } from './themes/shared/expansion-panel.common.css.js';\nimport { all } from './themes/themes.js';\n\nexport interface IgcExpansionPanelComponentEventMap {\n igcOpening: CustomEvent<IgcExpansionPanelComponent>;\n igcOpened: CustomEvent<IgcExpansionPanelComponent>;\n igcClosing: CustomEvent<IgcExpansionPanelComponent>;\n igcClosed: CustomEvent<IgcExpansionPanelComponent>;\n}\n\n/**\n * The Expansion Panel Component provides a way to display information in a toggleable way -\n * compact summary view containing title and description and expanded detail view containing\n * additional content to the summary header.\n *\n * @element igc-expansion-panel\n *\n * @slot - renders the default content of the panel\n * @slot title - renders the title of the panel's header\n * @slot subtitle - renders the subtitle of the panel's header\n * @slot indicator - renders the expand/collapsed indicator\n * @slot indicator-expanded - renders the expanded state of the indicator\n *\n * @fires igcOpening - Emitted before opening the expansion panel.\n * @fires igcOpened - Emitted after the expansion panel is opened.\n * @fires igcClosing - Emitted before closing the expansion panel.\n * @fires igcClosed - Emitted after the expansion panel is closed.\n *\n * @csspart header - The container of the expansion indicator, title and subtitle.\n * @csspart title - The title container.\n * @csspart subtitle - The subtitle container.\n * @csspart indicator - The indicator container.\n * @csspart content - The expansion panel's content wrapper.\n */\n@themes(all)\nexport default class IgcExpansionPanelComponent extends EventEmitterMixin<\n IgcExpansionPanelComponentEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-expansion-panel';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcExpansionPanelComponent, IgcIconComponent);\n }\n\n private static readonly increment = createCounter();\n\n private _panelId!: string;\n private headerRef: Ref<HTMLDivElement> = createRef();\n private contentRef: Ref<HTMLDivElement> = createRef();\n\n private animationPlayer = addAnimationController(this, this.contentRef);\n\n @queryAssignedElements({ slot: 'indicator-expanded' })\n private _indicatorExpandedElements!: HTMLElement[];\n\n /**\n * Indicates whether the contents of the control should be visible.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public open = false;\n\n /**\n * Get/Set whether the expansion panel is disabled. Disabled panels are ignored for user interactions.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public disabled = false;\n\n /**\n * The indicator position of the expansion panel.\n * @attr indicator-position\n */\n @property({ reflect: true, attribute: 'indicator-position' })\n public indicatorPosition: ExpansionPanelIndicatorPosition = 'start';\n\n constructor() {\n super();\n\n addKeybindings(this, {\n ref: this.headerRef,\n skip: () => this.disabled,\n bindingDefaults: { preventDefault: true },\n })\n .setActivateHandler(this.toggleWithEvent)\n .set([altKey, arrowDown], this.openWithEvent)\n .set([altKey, arrowUp], this.closeWithEvent);\n }\n\n protected override createRenderRoot() {\n const root = super.createRenderRoot();\n root.addEventListener('slotchange', () => this.requestUpdate());\n return root;\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n this._panelId =\n this.id ||\n `igc-expansion-panel-${IgcExpansionPanelComponent.increment()}`;\n }\n\n private handleClick() {\n this.headerRef.value!.focus();\n this.toggleWithEvent();\n }\n\n private toggleWithEvent() {\n this.open ? this.closeWithEvent() : this.openWithEvent();\n }\n\n private async toggleAnimation(dir: 'open' | 'close') {\n const animation = dir === 'open' ? growVerIn : growVerOut;\n\n const [_, event] = await Promise.all([\n this.animationPlayer.stopAll(),\n this.animationPlayer.play(animation()),\n ]);\n\n return event.type === 'finish';\n }\n\n private async openWithEvent() {\n if (\n this.open ||\n !this.emitEvent('igcOpening', { cancelable: true, detail: this })\n ) {\n return;\n }\n\n this.open = true;\n\n if (await this.toggleAnimation('open')) {\n this.emitEvent('igcOpened', { detail: this });\n }\n }\n\n private async closeWithEvent() {\n if (\n !(\n this.open &&\n this.emitEvent('igcClosing', { cancelable: true, detail: this })\n )\n ) {\n return;\n }\n\n this.open = false;\n\n if (await this.toggleAnimation('close')) {\n this.emitEvent('igcClosed', { detail: this });\n }\n }\n\n /** Toggles the panel open/close state. */\n public async toggle(): Promise<boolean> {\n return this.open ? this.hide() : this.show();\n }\n\n /** Hides the panel content. */\n public async hide(): Promise<boolean> {\n if (!this.open) {\n return false;\n }\n\n this.open = false;\n await this.toggleAnimation('close');\n return true;\n }\n\n /** Shows the panel content. */\n public async show(): Promise<boolean> {\n if (this.open) {\n return false;\n }\n\n this.open = true;\n await this.toggleAnimation('open');\n return true;\n }\n\n private renderIndicatorTemplate() {\n const indicatorHidden =\n this.open && this._indicatorExpandedElements.length > 0;\n const indicatorExpandedHidden =\n isEmpty(this._indicatorExpandedElements) || !this.open;\n\n return html`\n <div part=\"indicator\" aria-hidden=\"true\">\n <slot name=\"indicator\" ?hidden=${indicatorHidden}>\n <igc-icon\n name=${this.open ? 'collapse' : 'expand'}\n collection=\"default\"\n >\n </igc-icon>\n </slot>\n <slot\n name=\"indicator-expanded\"\n ?hidden=${indicatorExpandedHidden}\n ></slot>\n </div>\n `;\n }\n\n private renderHeaderTemplate() {\n return html`\n <div\n ${ref(this.headerRef)}\n part=\"header\"\n id=\"${this._panelId}-header\"\n role=\"button\"\n aria-expanded=${this.open}\n aria-disabled=${this.disabled}\n aria-controls=\"${this._panelId}-content\"\n tabindex=${this.disabled ? '-1' : '0'}\n @click=${this.disabled ? nothing : this.handleClick}\n >\n ${this.renderIndicatorTemplate()}\n <div>\n <slot name=\"title\" part=\"title\"></slot>\n <slot name=\"subtitle\" part=\"subtitle\"></slot>\n </div>\n </div>\n `;\n }\n\n private renderContentTemplate() {\n return html`\n <div\n ${ref(this.contentRef)}\n part=\"content\"\n role=\"region\"\n id=\"${this._panelId}-content\"\n aria-labelledby=\"${this._panelId}-header\"\n .inert=${!this.open}\n aria-hidden=${!this.open}\n >\n <slot></slot>\n </div>\n `;\n }\n\n protected override render() {\n return html`${this.renderHeaderTemplate()}${this.renderContentTemplate()}`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-expansion-panel': IgcExpansionPanelComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"expansion-panel.js","sourceRoot":"","sources":["../../../src/components/expansion-panel/expansion-panel.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing } from 'lit';\nimport { property, queryAssignedElements } from 'lit/decorators.js';\nimport { createRef, type Ref, ref } from 'lit/directives/ref.js';\n\nimport { addAnimationController } from '../../animations/player.js';\nimport { growVerIn, growVerOut } from '../../animations/presets/grow/index.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport {\n addKeybindings,\n altKey,\n arrowDown,\n arrowUp,\n} from '../common/controllers/key-bindings.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { createCounter, isEmpty } from '../common/util.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport type { ExpansionPanelIndicatorPosition } from '../types.js';\nimport { styles } from './themes/expansion-panel.base.css.js';\nimport { styles as shared } from './themes/shared/expansion-panel.common.css.js';\nimport { all } from './themes/themes.js';\n\nexport interface IgcExpansionPanelComponentEventMap {\n igcOpening: CustomEvent<IgcExpansionPanelComponent>;\n igcOpened: CustomEvent<IgcExpansionPanelComponent>;\n igcClosing: CustomEvent<IgcExpansionPanelComponent>;\n igcClosed: CustomEvent<IgcExpansionPanelComponent>;\n}\n\n/**\n * The Expansion Panel Component provides a way to display information in a toggleable way -\n * compact summary view containing title and description and expanded detail view containing\n * additional content to the summary header.\n *\n * @element igc-expansion-panel\n *\n * @slot - renders the default content of the panel\n * @slot title - renders the title of the panel's header\n * @slot subtitle - renders the subtitle of the panel's header\n * @slot indicator - renders the expand/collapsed indicator\n * @slot indicator-expanded - renders the expanded state of the indicator\n *\n * @fires igcOpening - Emitted before opening the expansion panel.\n * @fires igcOpened - Emitted after the expansion panel is opened.\n * @fires igcClosing - Emitted before closing the expansion panel.\n * @fires igcClosed - Emitted after the expansion panel is closed.\n *\n * @csspart header - The container of the expansion indicator, title and subtitle.\n * @csspart title - The title container.\n * @csspart subtitle - The subtitle container.\n * @csspart indicator - The indicator container.\n * @csspart content - The expansion panel's content wrapper.\n */\nexport default class IgcExpansionPanelComponent extends EventEmitterMixin<\n IgcExpansionPanelComponentEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-expansion-panel';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcExpansionPanelComponent, IgcIconComponent);\n }\n\n private static readonly increment = createCounter();\n\n private _panelId!: string;\n private headerRef: Ref<HTMLDivElement> = createRef();\n private contentRef: Ref<HTMLDivElement> = createRef();\n\n private animationPlayer = addAnimationController(this, this.contentRef);\n\n @queryAssignedElements({ slot: 'indicator-expanded' })\n private _indicatorExpandedElements!: HTMLElement[];\n\n /**\n * Indicates whether the contents of the control should be visible.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public open = false;\n\n /**\n * Get/Set whether the expansion panel is disabled. Disabled panels are ignored for user interactions.\n * @attr\n */\n @property({ reflect: true, type: Boolean })\n public disabled = false;\n\n /**\n * The indicator position of the expansion panel.\n * @attr indicator-position\n */\n @property({ reflect: true, attribute: 'indicator-position' })\n public indicatorPosition: ExpansionPanelIndicatorPosition = 'start';\n\n constructor() {\n super();\n\n addThemingController(this, all);\n\n addKeybindings(this, {\n ref: this.headerRef,\n skip: () => this.disabled,\n bindingDefaults: { preventDefault: true },\n })\n .setActivateHandler(this.toggleWithEvent)\n .set([altKey, arrowDown], this.openWithEvent)\n .set([altKey, arrowUp], this.closeWithEvent);\n }\n\n protected override createRenderRoot() {\n const root = super.createRenderRoot();\n root.addEventListener('slotchange', () => this.requestUpdate());\n return root;\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n this._panelId =\n this.id ||\n `igc-expansion-panel-${IgcExpansionPanelComponent.increment()}`;\n }\n\n private handleClick() {\n this.headerRef.value!.focus();\n this.toggleWithEvent();\n }\n\n private toggleWithEvent() {\n this.open ? this.closeWithEvent() : this.openWithEvent();\n }\n\n private async toggleAnimation(dir: 'open' | 'close') {\n const animation = dir === 'open' ? growVerIn : growVerOut;\n\n const [_, event] = await Promise.all([\n this.animationPlayer.stopAll(),\n this.animationPlayer.play(animation()),\n ]);\n\n return event.type === 'finish';\n }\n\n private async openWithEvent() {\n if (\n this.open ||\n !this.emitEvent('igcOpening', { cancelable: true, detail: this })\n ) {\n return;\n }\n\n this.open = true;\n\n if (await this.toggleAnimation('open')) {\n this.emitEvent('igcOpened', { detail: this });\n }\n }\n\n private async closeWithEvent() {\n if (\n !(\n this.open &&\n this.emitEvent('igcClosing', { cancelable: true, detail: this })\n )\n ) {\n return;\n }\n\n this.open = false;\n\n if (await this.toggleAnimation('close')) {\n this.emitEvent('igcClosed', { detail: this });\n }\n }\n\n /** Toggles the panel open/close state. */\n public async toggle(): Promise<boolean> {\n return this.open ? this.hide() : this.show();\n }\n\n /** Hides the panel content. */\n public async hide(): Promise<boolean> {\n if (!this.open) {\n return false;\n }\n\n this.open = false;\n await this.toggleAnimation('close');\n return true;\n }\n\n /** Shows the panel content. */\n public async show(): Promise<boolean> {\n if (this.open) {\n return false;\n }\n\n this.open = true;\n await this.toggleAnimation('open');\n return true;\n }\n\n private renderIndicatorTemplate() {\n const indicatorHidden =\n this.open && this._indicatorExpandedElements.length > 0;\n const indicatorExpandedHidden =\n isEmpty(this._indicatorExpandedElements) || !this.open;\n\n return html`\n <div part=\"indicator\" aria-hidden=\"true\">\n <slot name=\"indicator\" ?hidden=${indicatorHidden}>\n <igc-icon\n name=${this.open ? 'collapse' : 'expand'}\n collection=\"default\"\n >\n </igc-icon>\n </slot>\n <slot\n name=\"indicator-expanded\"\n ?hidden=${indicatorExpandedHidden}\n ></slot>\n </div>\n `;\n }\n\n private renderHeaderTemplate() {\n return html`\n <div\n ${ref(this.headerRef)}\n part=\"header\"\n id=\"${this._panelId}-header\"\n role=\"button\"\n aria-expanded=${this.open}\n aria-disabled=${this.disabled}\n aria-controls=\"${this._panelId}-content\"\n tabindex=${this.disabled ? '-1' : '0'}\n @click=${this.disabled ? nothing : this.handleClick}\n >\n ${this.renderIndicatorTemplate()}\n <div>\n <slot name=\"title\" part=\"title\"></slot>\n <slot name=\"subtitle\" part=\"subtitle\"></slot>\n </div>\n </div>\n `;\n }\n\n private renderContentTemplate() {\n return html`\n <div\n ${ref(this.contentRef)}\n part=\"content\"\n role=\"region\"\n id=\"${this._panelId}-content\"\n aria-labelledby=\"${this._panelId}-header\"\n .inert=${!this.open}\n aria-hidden=${!this.open}\n >\n <slot></slot>\n </div>\n `;\n }\n\n protected override render() {\n return html`${this.renderHeaderTemplate()}${this.renderContentTemplate()}`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-expansion-panel': IgcExpansionPanelComponent;\n }\n}\n"]}
@@ -18,7 +18,6 @@ declare const IgcFileInputComponent_base: import("../common/mixins/constructor.j
18
18
  * @slot custom-error - Renders content when setCustomValidity(message) is set.
19
19
  * @slot invalid - Renders content when the component is in invalid state (validity.valid = false).
20
20
  *
21
- * @fires igcInput - Emitted when the control input receives user input.
22
21
  * @fires igcChange - Emitted when the control's checked state changes.
23
22
  * @fires igcCancel - Emitted when the control's file picker dialog is canceled.
24
23
  *
@@ -70,6 +69,7 @@ export default class IgcFileInputComponent extends IgcFileInputComponent_base {
70
69
  readonly readOnly = false;
71
70
  /** Returns the selected files, if any; otherwise returns null. */
72
71
  get files(): FileList | null;
72
+ constructor();
73
73
  protected _restoreDefaultValue(): void;
74
74
  /** @hidden */
75
75
  setSelectionRange(): void;
@@ -4,11 +4,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- var IgcFileInputComponent_1;
8
7
  import { html, nothing } from 'lit';
9
8
  import { property, state } from 'lit/decorators.js';
10
9
  import { ifDefined } from 'lit/directives/if-defined.js';
11
- import { themes } from '../../theming/theming-decorator.js';
10
+ import { addThemingController } from '../../theming/theming-controller.js';
12
11
  import IgcButtonComponent from '../button/button.js';
13
12
  import { registerComponent } from '../common/definitions/register.js';
14
13
  import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
@@ -20,21 +19,9 @@ import IgcValidationContainerComponent from '../validation-container/validation-
20
19
  import { styles } from './themes/file-input.base.css.js';
21
20
  import { all } from './themes/themes.js';
22
21
  import { fileValidators } from './validators.js';
23
- let IgcFileInputComponent = IgcFileInputComponent_1 = class IgcFileInputComponent extends EventEmitterMixin(IgcInputBaseComponent) {
24
- constructor() {
25
- super(...arguments);
26
- this._formValue = createFormValueState(this, {
27
- initialValue: null,
28
- transformers: defaultFileListTransformer,
29
- });
30
- this._hasActivation = false;
31
- this.multiple = false;
32
- this.accept = '';
33
- this.tabIndex = 0;
34
- this.readOnly = false;
35
- }
22
+ class IgcFileInputComponent extends EventEmitterMixin(IgcInputBaseComponent) {
36
23
  static register() {
37
- registerComponent(IgcFileInputComponent_1, IgcValidationContainerComponent, IgcButtonComponent);
24
+ registerComponent(IgcFileInputComponent, IgcValidationContainerComponent, IgcButtonComponent);
38
25
  }
39
26
  get __validators() {
40
27
  return fileValidators;
@@ -57,6 +44,19 @@ let IgcFileInputComponent = IgcFileInputComponent_1 = class IgcFileInputComponen
57
44
  get files() {
58
45
  return this.input?.files ?? null;
59
46
  }
47
+ constructor() {
48
+ super();
49
+ this._formValue = createFormValueState(this, {
50
+ initialValue: null,
51
+ transformers: defaultFileListTransformer,
52
+ });
53
+ this._hasActivation = false;
54
+ this.multiple = false;
55
+ this.accept = '';
56
+ this.tabIndex = 0;
57
+ this.readOnly = false;
58
+ addThemingController(this, all);
59
+ }
60
60
  _restoreDefaultValue() {
61
61
  this.input.value = '';
62
62
  super._restoreDefaultValue();
@@ -128,9 +128,10 @@ let IgcFileInputComponent = IgcFileInputComponent_1 = class IgcFileInputComponen
128
128
  />
129
129
  `;
130
130
  }
131
- };
131
+ }
132
132
  IgcFileInputComponent.tagName = 'igc-file-input';
133
133
  IgcFileInputComponent.styles = [...IgcInputBaseComponent.styles, styles];
134
+ export default IgcFileInputComponent;
134
135
  __decorate([
135
136
  state()
136
137
  ], IgcFileInputComponent.prototype, "_hasActivation", void 0);
@@ -152,8 +153,4 @@ __decorate([
152
153
  __decorate([
153
154
  property({ type: Boolean, attribute: false, noAccessor: true })
154
155
  ], IgcFileInputComponent.prototype, "readOnly", void 0);
155
- IgcFileInputComponent = IgcFileInputComponent_1 = __decorate([
156
- themes(all)
157
- ], IgcFileInputComponent);
158
- export default IgcFileInputComponent;
159
156
  //# sourceMappingURL=file-input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-input.js","sourceRoot":"","sources":["../../../src/components/file-input/file-input.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,kBAAkB,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAEL,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACL,qBAAqB,GAEtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,+BAA+B,MAAM,iDAAiD,CAAC;AAC9F,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAmClC,IAAM,qBAAqB,6BAA3B,MAAM,qBAAsB,SAAQ,iBAAiB,CAGlE,qBAAqB,CAAC;IAHT;;QAoBe,eAAU,GACpC,oBAAoB,CAAC,IAAI,EAAE;YACzB,YAAY,EAAE,IAAI;YAClB,YAAY,EAAE,0BAA0B;SACzC,CAAC,CAAC;QAGG,mBAAc,GAAG,KAAK,CAAC;QAgCxB,aAAQ,GAAG,KAAK,CAAC;QAQjB,WAAM,GAAG,EAAE,CAAC;QAaH,aAAQ,GAAG,CAAC,CAAC;QAIJ,aAAQ,GAAG,KAAK,CAAC;IAiG5C,CAAC;IA7KQ,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CACf,uBAAqB,EACrB,+BAA+B,EAC/B,kBAAkB,CACnB,CAAC;IACJ,CAAC;IAED,IAAuB,YAAY;QACjC,OAAO,cAAc,CAAC;IACxB,CAAC;IAWD,IAAY,UAAU;QACpB,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAExD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;aAC1B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;aACxB,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAQD,IAAW,KAAK,CAAC,KAAa;QAC5B,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC;IACjC,CAAC;IAoCD,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,IAAI,CAAC;IACnC,CAAC;IAEkB,oBAAoB;QACrC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QACtB,KAAK,CAAC,oBAAoB,EAAE,CAAC;IAC/B,CAAC;IAIe,iBAAiB,KAAU,CAAC;IAI5B,YAAY,KAAU,CAAC;IAE/B,aAAa;QACnB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,KAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;YAC1B,MAAM,EAAE,IAAI,CAAC,KAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAES,YAAY;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAES,WAAW;QACnB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAGS,YAAY;QACpB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAEkB,eAAe;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,IAAI,gBAAgB,CAAC;QAEvD,OAAO,IAAI,CAAA;;;iDAGkC,IAAI,CAAC,QAAQ;;;;;;cAMhD,IAAI,CAAC,UAAU;YACjB,IAAI,CAAA,kCAAkC,SAAS,SAAS;;;;KAI/D,CAAC;IACJ,CAAC;IAES,WAAW;QACnB,OAAO,IAAI,CAAA;;aAEF,IAAI,CAAC,OAAO;eACV,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;;oBAElC,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;qBACZ,IAAI,CAAC,SAAS;oBACf,IAAI,CAAC,QAAQ;mBACd,IAAI,CAAC,QAAQ;iBACf,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;uBACjD,IAAI,CAAC,OAAO;2BACR,SAAS,CAC1B,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CACpD;iBACQ,IAAI,CAAC,YAAY;kBAChB,IAAI,CAAC,aAAa;kBAClB,IAAI,CAAC,aAAa;iBACnB,IAAI,CAAC,YAAY;gBAClB,IAAI,CAAC,WAAW;;KAE3B,CAAC;IACJ,CAAC;;AAhLsB,6BAAO,GAAG,gBAAgB,AAAnB,CAAoB;AACpC,4BAAM,GAAG,CAAC,GAAG,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,AAA5C,CAA6C;AAsBzD;IADP,KAAK,EAAE;6DACuB;AAgB/B;IADC,QAAQ,EAAE;kDAKV;AAYM;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;uDACJ;AAQjB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qDACR;AAOH;IADf,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wDACQ;AAMpB;IADf,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uDACE;AAIJ;IADxB,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;uDACtB;AApFvB,qBAAqB;IADzC,MAAM,CAAC,GAAG,CAAC;GACS,qBAAqB,CAqLzC;eArLoB,qBAAqB","sourcesContent":["import { html, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport { themes } from '../../theming/theming-decorator.js';\nimport IgcButtonComponent from '../button/button.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { AbstractConstructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport {\n type FormValueOf,\n createFormValueState,\n defaultFileListTransformer,\n} from '../common/mixins/forms/form-value.js';\nimport { partMap } from '../common/part-map.js';\nimport { isEmpty } from '../common/util.js';\nimport {\n IgcInputBaseComponent,\n type IgcInputComponentEventMap,\n} from '../input/input-base.js';\nimport IgcValidationContainerComponent from '../validation-container/validation-container.js';\nimport { styles } from './themes/file-input.base.css.js';\nimport { all } from './themes/themes.js';\nimport { fileValidators } from './validators.js';\n\nexport interface IgcFileInputComponentEventMap\n extends Omit<IgcInputComponentEventMap, 'igcChange' | 'igcInput'> {\n igcCancel: CustomEvent<FileList>;\n igcChange: CustomEvent<FileList>;\n}\n\n/* blazorSuppress */\n/**\n * @element igc-file-input\n *\n * @slot prefix - Renders content before the input.\n * @slot suffix - Renders content after input.\n * @slot helper-text - Renders content below the input.\n * @slot file-selector-text - Renders content for the browse button when input type is file.\n * @slot file-missing-text - Renders content when input type is file and no file is chosen.\n * @slot value-missing - Renders content when the required validation fails.\n * @slot custom-error - Renders content when setCustomValidity(message) is set.\n * @slot invalid - Renders content when the component is in invalid state (validity.valid = false).\n *\n * @fires igcInput - Emitted when the control input receives user input.\n * @fires igcChange - Emitted when the control's checked state changes.\n * @fires igcCancel - Emitted when the control's file picker dialog is canceled.\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 file-names - The file names wrapper when input type is 'file'.\n * @csspart file-selector-button - The browse button when input type is 'file'.\n * @csspart prefix - The prefix wrapper.\n * @csspart suffix - The suffix wrapper.\n * @csspart helper-text - The helper text wrapper.\n */\n@themes(all)\nexport default class IgcFileInputComponent extends EventEmitterMixin<\n IgcFileInputComponentEventMap,\n AbstractConstructor<IgcInputBaseComponent>\n>(IgcInputBaseComponent) {\n public static readonly tagName = 'igc-file-input';\n public static styles = [...IgcInputBaseComponent.styles, styles];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(\n IgcFileInputComponent,\n IgcValidationContainerComponent,\n IgcButtonComponent\n );\n }\n\n protected override get __validators() {\n return fileValidators;\n }\n\n protected override readonly _formValue: FormValueOf<FileList | null> =\n createFormValueState(this, {\n initialValue: null,\n transformers: defaultFileListTransformer,\n });\n\n @state()\n private _hasActivation = false;\n\n private get _fileNames(): string | null {\n if (!this.files || this.files.length === 0) return null;\n\n return Array.from(this.files)\n .map((file) => file.name)\n .join(', ');\n }\n\n /* @tsTwoWayProperty(true, \"igcChange\", \"detail\", false) */\n /**\n * The value of the control.\n * @attr\n */\n @property()\n public set value(value: string) {\n if (value === '' && this.input) {\n this.input.value = value;\n }\n }\n\n public get value(): string {\n return this.input?.value ?? '';\n }\n\n /**\n * The multiple attribute of the control.\n * Used to indicate that a file input allows the user to select more than one file.\n * @attr\n */\n @property({ type: Boolean })\n public multiple = false;\n\n /**\n * The accept attribute of the control.\n * Defines the file types as a list of comma-separated values that the file input should accept.\n * @attr\n */\n @property({ type: String })\n public accept = '';\n\n /**\n * The autofocus attribute of the control.\n * @attr\n */\n @property({ type: Boolean })\n public override autofocus!: boolean;\n\n /**\n * @internal\n */\n @property({ type: Number })\n public override tabIndex = 0;\n\n /** @hidden */\n @property({ type: Boolean, attribute: false, noAccessor: true })\n public override readonly readOnly = false;\n\n /** Returns the selected files, if any; otherwise returns null. */\n public get files(): FileList | null {\n return this.input?.files ?? null;\n }\n\n protected override _restoreDefaultValue(): void {\n this.input.value = '';\n super._restoreDefaultValue();\n }\n\n /* c8 ignore next 2 */\n /** @hidden */\n public override setSelectionRange(): void {}\n\n /* c8 ignore next 2 */\n /** @hidden */\n public override setRangeText(): void {}\n\n private _handleChange(): void {\n this._hasActivation = false;\n this._formValue.setValueAndFormState(this.files);\n this._validate();\n\n this.requestUpdate();\n this.emitEvent('igcChange', { detail: this.files! });\n }\n\n private _handleCancel(): void {\n this._hasActivation = false;\n this._validate();\n\n this.emitEvent('igcCancel', {\n detail: this.files!,\n });\n }\n\n protected _handleFocus(): void {\n this._dirty = true;\n }\n\n protected _handleBlur(): void {\n if (!this._hasActivation) {\n this._validate();\n }\n }\n\n /* c8 ignore next 3 */\n protected _handleClick(): void {\n this._hasActivation = true;\n }\n\n protected override renderFileParts() {\n const emptyText = this.placeholder ?? 'No file chosen';\n\n return html`\n <div part=\"file-parts\">\n <div part=\"file-selector-button\">\n <igc-button variant=\"flat\" ?disabled=${this.disabled} tabindex=\"-1\">\n <slot name=\"file-selector-text\">Browse</slot>\n </igc-button>\n </div>\n <div part=\"file-names\">\n <span>\n ${this._fileNames ??\n html`<slot name=\"file-missing-text\">${emptyText}</slot>`}\n </span>\n </div>\n </div>\n `;\n }\n\n protected renderInput() {\n return html`\n <input\n id=${this.inputId}\n part=${partMap(this.resolvePartNames('input'))}\n type=\"file\"\n ?disabled=${this.disabled}\n ?required=${this.required}\n ?autofocus=${this.autofocus}\n ?multiple=${this.multiple}\n tabindex=${this.tabIndex}\n accept=${ifDefined(this.accept === '' ? undefined : this.accept)}\n aria-invalid=${this.invalid}\n aria-describedby=${ifDefined(\n isEmpty(this._helperText) ? nothing : 'helper-text'\n )}\n @click=${this._handleClick}\n @change=${this._handleChange}\n @cancel=${this._handleCancel}\n @focus=${this._handleFocus}\n @blur=${this._handleBlur}\n />\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-file-input': IgcFileInputComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"file-input.js","sourceRoot":"","sources":["../../../src/components/file-input/file-input.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport IgcButtonComponent from '../button/button.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { AbstractConstructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport {\n createFormValueState,\n defaultFileListTransformer,\n type FormValueOf,\n} from '../common/mixins/forms/form-value.js';\nimport { partMap } from '../common/part-map.js';\nimport { isEmpty } from '../common/util.js';\nimport {\n IgcInputBaseComponent,\n type IgcInputComponentEventMap,\n} from '../input/input-base.js';\nimport IgcValidationContainerComponent from '../validation-container/validation-container.js';\nimport { styles } from './themes/file-input.base.css.js';\nimport { all } from './themes/themes.js';\nimport { fileValidators } from './validators.js';\n\nexport interface IgcFileInputComponentEventMap\n extends Omit<IgcInputComponentEventMap, 'igcChange' | 'igcInput'> {\n igcCancel: CustomEvent<FileList>;\n igcChange: CustomEvent<FileList>;\n}\n\n/* blazorSuppress */\n/**\n * @element igc-file-input\n *\n * @slot prefix - Renders content before the input.\n * @slot suffix - Renders content after input.\n * @slot helper-text - Renders content below the input.\n * @slot file-selector-text - Renders content for the browse button when input type is file.\n * @slot file-missing-text - Renders content when input type is file and no file is chosen.\n * @slot value-missing - Renders content when the required validation fails.\n * @slot custom-error - Renders content when setCustomValidity(message) is set.\n * @slot invalid - Renders content when the component is in invalid state (validity.valid = false).\n *\n * @fires igcChange - Emitted when the control's checked state changes.\n * @fires igcCancel - Emitted when the control's file picker dialog is canceled.\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 file-names - The file names wrapper when input type is 'file'.\n * @csspart file-selector-button - The browse button when input type is 'file'.\n * @csspart prefix - The prefix wrapper.\n * @csspart suffix - The suffix wrapper.\n * @csspart helper-text - The helper text wrapper.\n */\nexport default class IgcFileInputComponent extends EventEmitterMixin<\n IgcFileInputComponentEventMap,\n AbstractConstructor<IgcInputBaseComponent>\n>(IgcInputBaseComponent) {\n public static readonly tagName = 'igc-file-input';\n public static styles = [...IgcInputBaseComponent.styles, styles];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(\n IgcFileInputComponent,\n IgcValidationContainerComponent,\n IgcButtonComponent\n );\n }\n\n protected override get __validators() {\n return fileValidators;\n }\n\n protected override readonly _formValue: FormValueOf<FileList | null> =\n createFormValueState(this, {\n initialValue: null,\n transformers: defaultFileListTransformer,\n });\n\n @state()\n private _hasActivation = false;\n\n private get _fileNames(): string | null {\n if (!this.files || this.files.length === 0) return null;\n\n return Array.from(this.files)\n .map((file) => file.name)\n .join(', ');\n }\n\n /* @tsTwoWayProperty(true, \"igcChange\", \"detail\", false) */\n /**\n * The value of the control.\n * @attr\n */\n @property()\n public set value(value: string) {\n if (value === '' && this.input) {\n this.input.value = value;\n }\n }\n\n public get value(): string {\n return this.input?.value ?? '';\n }\n\n /**\n * The multiple attribute of the control.\n * Used to indicate that a file input allows the user to select more than one file.\n * @attr\n */\n @property({ type: Boolean })\n public multiple = false;\n\n /**\n * The accept attribute of the control.\n * Defines the file types as a list of comma-separated values that the file input should accept.\n * @attr\n */\n @property({ type: String })\n public accept = '';\n\n /**\n * The autofocus attribute of the control.\n * @attr\n */\n @property({ type: Boolean })\n public override autofocus!: boolean;\n\n /**\n * @internal\n */\n @property({ type: Number })\n public override tabIndex = 0;\n\n /** @hidden */\n @property({ type: Boolean, attribute: false, noAccessor: true })\n public override readonly readOnly = false;\n\n /** Returns the selected files, if any; otherwise returns null. */\n public get files(): FileList | null {\n return this.input?.files ?? null;\n }\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n protected override _restoreDefaultValue(): void {\n this.input.value = '';\n super._restoreDefaultValue();\n }\n\n /* c8 ignore next 2 */\n /** @hidden */\n public override setSelectionRange(): void {}\n\n /* c8 ignore next 2 */\n /** @hidden */\n public override setRangeText(): void {}\n\n private _handleChange(): void {\n this._hasActivation = false;\n this._formValue.setValueAndFormState(this.files);\n this._validate();\n\n this.requestUpdate();\n this.emitEvent('igcChange', { detail: this.files! });\n }\n\n private _handleCancel(): void {\n this._hasActivation = false;\n this._validate();\n\n this.emitEvent('igcCancel', {\n detail: this.files!,\n });\n }\n\n protected _handleFocus(): void {\n this._dirty = true;\n }\n\n protected _handleBlur(): void {\n if (!this._hasActivation) {\n this._validate();\n }\n }\n\n /* c8 ignore next 3 */\n protected _handleClick(): void {\n this._hasActivation = true;\n }\n\n protected override renderFileParts() {\n const emptyText = this.placeholder ?? 'No file chosen';\n\n return html`\n <div part=\"file-parts\">\n <div part=\"file-selector-button\">\n <igc-button variant=\"flat\" ?disabled=${this.disabled} tabindex=\"-1\">\n <slot name=\"file-selector-text\">Browse</slot>\n </igc-button>\n </div>\n <div part=\"file-names\">\n <span>\n ${this._fileNames ??\n html`<slot name=\"file-missing-text\">${emptyText}</slot>`}\n </span>\n </div>\n </div>\n `;\n }\n\n protected renderInput() {\n return html`\n <input\n id=${this.inputId}\n part=${partMap(this.resolvePartNames('input'))}\n type=\"file\"\n ?disabled=${this.disabled}\n ?required=${this.required}\n ?autofocus=${this.autofocus}\n ?multiple=${this.multiple}\n tabindex=${this.tabIndex}\n accept=${ifDefined(this.accept === '' ? undefined : this.accept)}\n aria-invalid=${this.invalid}\n aria-describedby=${ifDefined(\n isEmpty(this._helperText) ? nothing : 'helper-text'\n )}\n @click=${this._handleClick}\n @change=${this._handleChange}\n @cancel=${this._handleCancel}\n @focus=${this._handleFocus}\n @blur=${this._handleBlur}\n />\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-file-input': IgcFileInputComponent;\n }\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `:host(:is(igc-file-input)) [part=label]{--label-position: max(var(--is-large, 1) * max(26px, -1 * 26px), var(--is-medium, 1) * max(22px, -1 * 22px), var(--is-small, 1) * max(18px, -1 * 18px));transform:translateY(calc(var(--label-position) * -1))}:host([outlined]) [part=notch]{border-top:.0625rem solid rgba(0,0,0,0)}:host(:is(igc-file-input)) [part~=container]{grid-template-columns:auto auto auto 1fr auto}:host(:is(igc-file-input)) [part=notch] [part=label]{transition:none}:host(:is(igc-file-input)) [part=label]{font-family:var(--ig-caption-font-family, var(--ig-font-family));font-size:var(--ig-caption-font-size);font-weight:var(--ig-caption-font-weight);font-style:var(--ig-caption-font-style);line-height:var(--ig-caption-line-height);letter-spacing:var(--ig-caption-letter-spacing);text-transform:var(--ig-caption-text-transform);margin-top:var(--ig-caption-margin-top);margin-bottom:var(--ig-caption-margin-bottom)}:host(:is(igc-file-input)) [part~=file-names]{grid-area:1/3/span 1/span 2;padding-inline:.25rem}:host(:is(igc-file-input)) [part~=input]{grid-column:2/5}:host(:is(igc-file-input)) [part=filler]{grid-column:4/5}:host(:is(igc-file-input)) [part=end]{grid-area:1/5}:host([outlined]) [part=notch]{grid-column:3/3;border-top-color:rgba(0,0,0,0) !important}:host([outlined]) [part=file-selector-button]{border-width:.0625rem;border-style:solid;border-color:var(--border-color);border-left:none;border-right:none}:host([outlined]:hover) [part=file-selector-button]{border-color:var(--hover-border-color)}:host([outlined]:focus-within) [part=file-selector-button]{border-width:.125rem;border-color:var(--focused-border-color)}:host([outlined][invalid]) [part=file-selector-button],:host([outlined][invalid]:focus-within) [part=file-selector-button]{border-color:var(--error-secondary-color)}:host(:not([outlined])) [part=notch]{grid-area:1/3}:host(:not([outlined])) [part=notch] [part=label]{transform:translateY(-73%)}:host(:not([outlined])) [part~=labelled] [part~=file-names]{padding-top:1.25rem;padding-bottom:.375rem}`;
2
+ export const styles = css `:host([outlined]) [part=notch]{border-top:.0625rem solid rgba(0,0,0,0)}:host(:is(igc-file-input)) [part~=container]{grid-template-columns:auto auto auto 1fr auto}:host(:is(igc-file-input)) [part=notch] [part=label]{transition:none}:host(:is(igc-file-input)) [part=label]{font-family:var(--ig-caption-font-family, var(--ig-font-family));font-size:var(--ig-caption-font-size);font-weight:var(--ig-caption-font-weight);font-style:var(--ig-caption-font-style);line-height:var(--ig-caption-line-height);letter-spacing:var(--ig-caption-letter-spacing);text-transform:var(--ig-caption-text-transform);margin-top:var(--ig-caption-margin-top);margin-bottom:var(--ig-caption-margin-bottom)}:host(:is(igc-file-input)) [part~=file-names]{grid-area:1/3/span 1/span 2;padding-inline:.25rem}:host(:is(igc-file-input)) [part~=input]{grid-column:2/5}:host(:is(igc-file-input)) [part=filler]{grid-column:4/5}:host(:is(igc-file-input)) [part=end]{grid-area:1/5}:host([outlined]) [part=notch]{grid-column:3/3;border-top-color:rgba(0,0,0,0) !important}:host([outlined]) [part=file-selector-button]{border-width:.0625rem;border-style:solid;border-color:var(--border-color);border-left:none;border-right:none}:host([outlined]) [part=label]{translate:0 -50%;align-self:start}:host([outlined]:hover) [part=file-selector-button]{border-color:var(--hover-border-color)}:host([outlined]:focus-within) [part=file-selector-button]{border-width:.125rem;border-color:var(--focused-border-color)}:host([outlined][invalid]) [part=file-selector-button],:host([outlined][invalid]:focus-within) [part=file-selector-button]{border-color:var(--error-secondary-color)}:host(:not([outlined])) [part=notch]{grid-area:1/3}:host(:not([outlined])) [part~=labelled] [part~=file-names]{padding-top:1.25rem;padding-bottom:.375rem}:host(:not([outlined])) [part=label]{translate:0 -73%}`;
3
3
  //# sourceMappingURL=file-input.material.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-input.material.css.js","sourceRoot":"","sources":["../../../../../src/components/file-input/themes/shared/file-input.material.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,2/DAA2/D,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host(:is(igc-file-input)) [part=label]{--label-position: max(var(--is-large, 1) * max(26px, -1 * 26px), var(--is-medium, 1) * max(22px, -1 * 22px), var(--is-small, 1) * max(18px, -1 * 18px));transform:translateY(calc(var(--label-position) * -1))}:host([outlined]) [part=notch]{border-top:.0625rem solid rgba(0,0,0,0)}:host(:is(igc-file-input)) [part~=container]{grid-template-columns:auto auto auto 1fr auto}:host(:is(igc-file-input)) [part=notch] [part=label]{transition:none}:host(:is(igc-file-input)) [part=label]{font-family:var(--ig-caption-font-family, var(--ig-font-family));font-size:var(--ig-caption-font-size);font-weight:var(--ig-caption-font-weight);font-style:var(--ig-caption-font-style);line-height:var(--ig-caption-line-height);letter-spacing:var(--ig-caption-letter-spacing);text-transform:var(--ig-caption-text-transform);margin-top:var(--ig-caption-margin-top);margin-bottom:var(--ig-caption-margin-bottom)}:host(:is(igc-file-input)) [part~=file-names]{grid-area:1/3/span 1/span 2;padding-inline:.25rem}:host(:is(igc-file-input)) [part~=input]{grid-column:2/5}:host(:is(igc-file-input)) [part=filler]{grid-column:4/5}:host(:is(igc-file-input)) [part=end]{grid-area:1/5}:host([outlined]) [part=notch]{grid-column:3/3;border-top-color:rgba(0,0,0,0) !important}:host([outlined]) [part=file-selector-button]{border-width:.0625rem;border-style:solid;border-color:var(--border-color);border-left:none;border-right:none}:host([outlined]:hover) [part=file-selector-button]{border-color:var(--hover-border-color)}:host([outlined]:focus-within) [part=file-selector-button]{border-width:.125rem;border-color:var(--focused-border-color)}:host([outlined][invalid]) [part=file-selector-button],:host([outlined][invalid]:focus-within) [part=file-selector-button]{border-color:var(--error-secondary-color)}:host(:not([outlined])) [part=notch]{grid-area:1/3}:host(:not([outlined])) [part=notch] [part=label]{transform:translateY(-73%)}:host(:not([outlined])) [part~=labelled] [part~=file-names]{padding-top:1.25rem;padding-bottom:.375rem}`;\n"]}
1
+ {"version":3,"file":"file-input.material.css.js","sourceRoot":"","sources":["../../../../../src/components/file-input/themes/shared/file-input.material.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,8yDAA8yD,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host([outlined]) [part=notch]{border-top:.0625rem solid rgba(0,0,0,0)}:host(:is(igc-file-input)) [part~=container]{grid-template-columns:auto auto auto 1fr auto}:host(:is(igc-file-input)) [part=notch] [part=label]{transition:none}:host(:is(igc-file-input)) [part=label]{font-family:var(--ig-caption-font-family, var(--ig-font-family));font-size:var(--ig-caption-font-size);font-weight:var(--ig-caption-font-weight);font-style:var(--ig-caption-font-style);line-height:var(--ig-caption-line-height);letter-spacing:var(--ig-caption-letter-spacing);text-transform:var(--ig-caption-text-transform);margin-top:var(--ig-caption-margin-top);margin-bottom:var(--ig-caption-margin-bottom)}:host(:is(igc-file-input)) [part~=file-names]{grid-area:1/3/span 1/span 2;padding-inline:.25rem}:host(:is(igc-file-input)) [part~=input]{grid-column:2/5}:host(:is(igc-file-input)) [part=filler]{grid-column:4/5}:host(:is(igc-file-input)) [part=end]{grid-area:1/5}:host([outlined]) [part=notch]{grid-column:3/3;border-top-color:rgba(0,0,0,0) !important}:host([outlined]) [part=file-selector-button]{border-width:.0625rem;border-style:solid;border-color:var(--border-color);border-left:none;border-right:none}:host([outlined]) [part=label]{translate:0 -50%;align-self:start}:host([outlined]:hover) [part=file-selector-button]{border-color:var(--hover-border-color)}:host([outlined]:focus-within) [part=file-selector-button]{border-width:.125rem;border-color:var(--focused-border-color)}:host([outlined][invalid]) [part=file-selector-button],:host([outlined][invalid]:focus-within) [part=file-selector-button]{border-color:var(--error-secondary-color)}:host(:not([outlined])) [part=notch]{grid-area:1/3}:host(:not([outlined])) [part~=labelled] [part~=file-names]{padding-top:1.25rem;padding-bottom:.375rem}:host(:not([outlined])) [part=label]{translate:0 -73%}`;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/components/file-input/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5E,MAAM,CAAC,MAAM,cAAc,GAAuC;IAChE,iBAAiB;CAClB,CAAC","sourcesContent":["import { type Validator, requiredValidator } from '../common/validators.js';\nimport type IgcFileInputComponent from './file-input.js';\n\nexport const fileValidators: Validator<IgcFileInputComponent>[] = [\n requiredValidator,\n];\n"]}
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/components/file-input/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAkB,MAAM,yBAAyB,CAAC;AAG5E,MAAM,CAAC,MAAM,cAAc,GAAuC;IAChE,iBAAiB;CAClB,CAAC","sourcesContent":["import { requiredValidator, type Validator } from '../common/validators.js';\nimport type IgcFileInputComponent from './file-input.js';\n\nexport const fileValidators: Validator<IgcFileInputComponent>[] = [\n requiredValidator,\n];\n"]}
@@ -4,10 +4,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { LitElement, css, html, nothing } from 'lit';
7
+ import { css, html, LitElement, nothing } from 'lit';
8
8
  import { property, state } from 'lit/decorators.js';
9
9
  import { registerComponent } from '../common/definitions/register.js';
10
- import { isDefined } from '../common/util.js';
10
+ import { addSafeEventListener, isDefined } from '../common/util.js';
11
11
  class IgcFocusTrapComponent extends LitElement {
12
12
  static register() {
13
13
  registerComponent(IgcFocusTrapComponent);
@@ -22,8 +22,8 @@ class IgcFocusTrapComponent extends LitElement {
22
22
  super();
23
23
  this._focused = false;
24
24
  this.disabled = false;
25
- this.addEventListener('focusin', this.onFocusIn);
26
- this.addEventListener('focusout', this.onFocusOut);
25
+ addSafeEventListener(this, 'focusin', this.onFocusIn);
26
+ addSafeEventListener(this, 'focusout', this.onFocusOut);
27
27
  }
28
28
  onFocusIn() {
29
29
  this._focused = true;
@@ -1 +1 @@
1
- {"version":3,"file":"focus-trap.js","sourceRoot":"","sources":["../../../src/components/focus-trap/focus-trap.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, css, html, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\n\nimport { registerComponent } from '../common/definitions/register.js';\nimport { isDefined } from '../common/util.js';\n\n/* blazorSuppress */\n/**\n *\n * @element igc-focus-trap\n *\n * @slot - The content of the focus trap component\n */\nexport default class IgcFocusTrapComponent extends LitElement {\n public static readonly tagName = 'igc-focus-trap';\n public static override styles = css`\n :host {\n display: contents;\n }\n `;\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcFocusTrapComponent);\n }\n\n @state()\n protected _focused = false;\n\n /**\n * Whether to manage focus state for the slotted children.\n * @attr disabled\n */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n /**\n * Whether focus in currently inside the trap component.\n */\n public get focused() {\n return this._focused;\n }\n\n /** An array of focusable elements including elements in Shadow roots */\n public get focusableElements() {\n return Array.from(getFocusableElements<HTMLElement>(this));\n }\n\n constructor() {\n super();\n\n this.addEventListener('focusin', this.onFocusIn);\n this.addEventListener('focusout', this.onFocusOut);\n }\n\n private onFocusIn() {\n this._focused = true;\n }\n\n private onFocusOut() {\n this._focused = false;\n }\n\n public focusFirstElement() {\n this.focusableElements.at(0)?.focus();\n }\n\n public focusLastElement() {\n this.focusableElements.at(-1)?.focus();\n }\n\n protected override render() {\n const tabStop = !this.focused || this.disabled ? -1 : 0;\n\n return html`\n <div\n id=\"start\"\n tabindex=${tabStop}\n @focus=${this.disabled ? nothing : this.focusLastElement}\n ></div>\n <slot></slot>\n <div\n id=\"end\"\n tabindex=${tabStop}\n @focus=${this.disabled ? nothing : this.focusFirstElement}\n ></div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-focus-trap': IgcFocusTrapComponent;\n }\n}\n\nconst defaultSelectors = [\n '[tabindex]',\n 'a[href]',\n 'button',\n 'input',\n 'select',\n 'textarea',\n];\n\n/** Returns whether the element is hidden. */\nfunction isHidden(node: HTMLElement) {\n return (\n node.hasAttribute('hidden') ||\n node.hasAttribute('inert') ||\n (node.hasAttribute('aria-hidden') &&\n node.getAttribute('aria-hidden') !== 'false')\n );\n}\n\n/** Returns whether the element is disabled. */\nfunction isDisabled(node: HTMLElement) {\n return node.hasAttribute('disabled') || node.hasAttribute('inert');\n}\n\nfunction isContentEditable(node: HTMLElement) {\n return (\n node.hasAttribute('contenteditable') &&\n node.getAttribute('contenteditable') !== 'false'\n );\n}\n\n/**\n * Returns whether the element can be focused.\n */\nfunction isFocusable(node: HTMLElement) {\n if (isHidden(node) || isDisabled(node)) {\n return false;\n }\n\n if (isContentEditable(node)) {\n return true;\n }\n\n if (node.tabIndex === -1) {\n return false;\n }\n\n return defaultSelectors.some((selector) => node.matches(selector));\n}\n\n/**\n * Filter function for the tree walker instance skipping over nodes and their children\n * if the `node` is hidden/disabled or it was already visited and resides in `cache`.\n */\nfunction shouldSkipElements(node: Node, cache?: WeakSet<HTMLElement>) {\n const element = node as HTMLElement;\n\n return isHidden(element) || isDisabled(element) || cache?.has(element)\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT;\n}\n\n/** Returns the slotted elements and the parent element containing the slot */\nfunction getSlottedElements(node: HTMLElement) {\n const slot = node as HTMLSlotElement;\n const elements = slot.assignedElements() as HTMLElement[];\n return { elements, parent: elements.at(0)?.parentElement };\n}\n\n/**\n * Traverses and yields all focusable elements starting at `root`.\n */\nfunction* getFocusableElements<T extends HTMLElement>(\n root: HTMLElement | ShadowRoot,\n cache?: WeakSet<HTMLElement>\n): Generator<T> {\n if (!isDefined(globalThis.document)) {\n return;\n }\n\n let node: T;\n const _cache = cache ?? new WeakSet<HTMLElement>();\n\n const visitor = document.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n (node) => shouldSkipElements(node, _cache)\n );\n\n // biome-ignore lint/suspicious/noAssignInExpressions: short-form\n while ((node = visitor.nextNode() as T)) {\n if (_cache.has(node)) {\n continue;\n }\n\n if (node.shadowRoot) {\n yield* getFocusableElements(node.shadowRoot, _cache);\n continue;\n }\n\n if (node.tagName === 'SLOT') {\n const { elements, parent } = getSlottedElements(node);\n\n if (elements.length > 0) {\n for (const element of elements) {\n yield* getFocusableElements(parent!, _cache);\n _cache.add(element);\n }\n }\n continue;\n }\n\n if (isFocusable(node)) {\n yield node;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"focus-trap.js","sourceRoot":"","sources":["../../../src/components/focus-trap/focus-trap.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, LitElement, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\n\nimport { registerComponent } from '../common/definitions/register.js';\nimport { addSafeEventListener, isDefined } from '../common/util.js';\n\n/* blazorSuppress */\n/**\n *\n * @element igc-focus-trap\n *\n * @slot - The content of the focus trap component\n */\nexport default class IgcFocusTrapComponent extends LitElement {\n public static readonly tagName = 'igc-focus-trap';\n public static override styles = css`\n :host {\n display: contents;\n }\n `;\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcFocusTrapComponent);\n }\n\n @state()\n protected _focused = false;\n\n /**\n * Whether to manage focus state for the slotted children.\n * @attr disabled\n */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n /**\n * Whether focus in currently inside the trap component.\n */\n public get focused() {\n return this._focused;\n }\n\n /** An array of focusable elements including elements in Shadow roots */\n public get focusableElements() {\n return Array.from(getFocusableElements<HTMLElement>(this));\n }\n\n constructor() {\n super();\n\n addSafeEventListener(this, 'focusin', this.onFocusIn);\n addSafeEventListener(this, 'focusout', this.onFocusOut);\n }\n\n private onFocusIn() {\n this._focused = true;\n }\n\n private onFocusOut() {\n this._focused = false;\n }\n\n public focusFirstElement() {\n this.focusableElements.at(0)?.focus();\n }\n\n public focusLastElement() {\n this.focusableElements.at(-1)?.focus();\n }\n\n protected override render() {\n const tabStop = !this.focused || this.disabled ? -1 : 0;\n\n return html`\n <div\n id=\"start\"\n tabindex=${tabStop}\n @focus=${this.disabled ? nothing : this.focusLastElement}\n ></div>\n <slot></slot>\n <div\n id=\"end\"\n tabindex=${tabStop}\n @focus=${this.disabled ? nothing : this.focusFirstElement}\n ></div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-focus-trap': IgcFocusTrapComponent;\n }\n}\n\nconst defaultSelectors = [\n '[tabindex]',\n 'a[href]',\n 'button',\n 'input',\n 'select',\n 'textarea',\n];\n\n/** Returns whether the element is hidden. */\nfunction isHidden(node: HTMLElement) {\n return (\n node.hasAttribute('hidden') ||\n node.hasAttribute('inert') ||\n (node.hasAttribute('aria-hidden') &&\n node.getAttribute('aria-hidden') !== 'false')\n );\n}\n\n/** Returns whether the element is disabled. */\nfunction isDisabled(node: HTMLElement) {\n return node.hasAttribute('disabled') || node.hasAttribute('inert');\n}\n\nfunction isContentEditable(node: HTMLElement) {\n return (\n node.hasAttribute('contenteditable') &&\n node.getAttribute('contenteditable') !== 'false'\n );\n}\n\n/**\n * Returns whether the element can be focused.\n */\nfunction isFocusable(node: HTMLElement) {\n if (isHidden(node) || isDisabled(node)) {\n return false;\n }\n\n if (isContentEditable(node)) {\n return true;\n }\n\n if (node.tabIndex === -1) {\n return false;\n }\n\n return defaultSelectors.some((selector) => node.matches(selector));\n}\n\n/**\n * Filter function for the tree walker instance skipping over nodes and their children\n * if the `node` is hidden/disabled or it was already visited and resides in `cache`.\n */\nfunction shouldSkipElements(node: Node, cache?: WeakSet<HTMLElement>) {\n const element = node as HTMLElement;\n\n return isHidden(element) || isDisabled(element) || cache?.has(element)\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT;\n}\n\n/** Returns the slotted elements and the parent element containing the slot */\nfunction getSlottedElements(node: HTMLElement) {\n const slot = node as HTMLSlotElement;\n const elements = slot.assignedElements() as HTMLElement[];\n return { elements, parent: elements.at(0)?.parentElement };\n}\n\n/**\n * Traverses and yields all focusable elements starting at `root`.\n */\nfunction* getFocusableElements<T extends HTMLElement>(\n root: HTMLElement | ShadowRoot,\n cache?: WeakSet<HTMLElement>\n): Generator<T> {\n if (!isDefined(globalThis.document)) {\n return;\n }\n\n let node: T;\n const _cache = cache ?? new WeakSet<HTMLElement>();\n\n const visitor = document.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n (node) => shouldSkipElements(node, _cache)\n );\n\n // biome-ignore lint/suspicious/noAssignInExpressions: short-form\n while ((node = visitor.nextNode() as T)) {\n if (_cache.has(node)) {\n continue;\n }\n\n if (node.shadowRoot) {\n yield* getFocusableElements(node.shadowRoot, _cache);\n continue;\n }\n\n if (node.tagName === 'SLOT') {\n const { elements, parent } = getSlottedElements(node);\n\n if (elements.length > 0) {\n for (const element of elements) {\n yield* getFocusableElements(parent!, _cache);\n _cache.add(element);\n }\n }\n continue;\n }\n\n if (isFocusable(node)) {\n yield node;\n }\n }\n}\n"]}
@@ -11,7 +11,7 @@ export default class IgcIconComponent extends LitElement {
11
11
  static readonly tagName = "igc-icon";
12
12
  static styles: import("lit").CSSResult[];
13
13
  static register(): void;
14
- private __internals;
14
+ private readonly _internals;
15
15
  private svg;
16
16
  /**
17
17
  * The name of the icon glyph to draw.
@@ -33,6 +33,7 @@ export default class IgcIconComponent extends LitElement {
33
33
  connectedCallback(): void;
34
34
  disconnectedCallback(): void;
35
35
  protected iconChanged(prev: string, curr: string): void;
36
+ private _themeChangedCallback;
36
37
  private iconLoaded;
37
38
  private getIcon;
38
39
  protected render(): import("lit-html").TemplateResult<1>;