carbon-components-angular 6.0.0-rc.1 → 6.0.0-rc.3

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 (430) hide show
  1. package/README.md +1 -1
  2. package/button/icon-button.component.d.ts +5 -1
  3. package/combobox/combobox.component.d.ts +7 -2
  4. package/docs/documentation/components/Accordion.html +2 -2
  5. package/docs/documentation/components/AccordionItem.html +2 -2
  6. package/docs/documentation/components/ActionableNotification.html +2 -2
  7. package/docs/documentation/components/AlertModal.html +2 -2
  8. package/docs/documentation/components/BaseIconButton.html +2 -2
  9. package/docs/documentation/components/BaseNotification.html +2 -2
  10. package/docs/documentation/components/BaseTabHeader.html +2 -2
  11. package/docs/documentation/components/Breadcrumb.html +2 -2
  12. package/docs/documentation/components/BreadcrumbItemComponent.html +2 -2
  13. package/docs/documentation/components/ButtonSet.html +2 -2
  14. package/docs/documentation/components/Checkbox.html +2 -2
  15. package/docs/documentation/components/ClickableTile.html +2 -2
  16. package/docs/documentation/components/CodeSnippet.html +2 -2
  17. package/docs/documentation/components/ComboBox.html +306 -215
  18. package/docs/documentation/components/ContainedList.html +2 -2
  19. package/docs/documentation/components/ContainedListItem.html +2 -2
  20. package/docs/documentation/components/ContentSwitcher.html +2 -2
  21. package/docs/documentation/components/ContextMenuComponent.html +2 -2
  22. package/docs/documentation/components/ContextMenuDividerComponent.html +2 -2
  23. package/docs/documentation/components/ContextMenuGroupComponent.html +2 -2
  24. package/docs/documentation/components/ContextMenuItemComponent.html +2 -2
  25. package/docs/documentation/components/DatePicker.html +2 -2
  26. package/docs/documentation/components/DatePickerInput.html +2 -2
  27. package/docs/documentation/components/Dialog.html +2 -2
  28. package/docs/documentation/components/Documentation.html +2 -2
  29. package/docs/documentation/components/Dropdown.html +506 -154
  30. package/docs/documentation/components/DropdownList.html +2 -2
  31. package/docs/documentation/components/ExpandableTile.html +2 -2
  32. package/docs/documentation/components/FileComponent.html +2 -2
  33. package/docs/documentation/components/FileUploader.html +2 -2
  34. package/docs/documentation/components/Hamburger.html +2 -2
  35. package/docs/documentation/components/Header.html +2 -2
  36. package/docs/documentation/components/HeaderAction.html +2 -2
  37. package/docs/documentation/components/HeaderGlobal.html +2 -2
  38. package/docs/documentation/components/HeaderItem.html +2 -2
  39. package/docs/documentation/components/HeaderMenu.html +2 -2
  40. package/docs/documentation/components/HeaderNavigation.html +2 -2
  41. package/docs/documentation/components/IconButton.html +55 -16
  42. package/docs/documentation/components/InlineLoading.html +2 -2
  43. package/docs/documentation/components/Label.html +2 -2
  44. package/docs/documentation/components/ListColumn.html +2 -2
  45. package/docs/documentation/components/ListHeader.html +2 -2
  46. package/docs/documentation/components/ListRow.html +2 -2
  47. package/docs/documentation/components/Loading.html +2 -2
  48. package/docs/documentation/components/Modal.html +2 -2
  49. package/docs/documentation/components/ModalFooter.html +2 -2
  50. package/docs/documentation/components/ModalHeader.html +2 -2
  51. package/docs/documentation/components/Notification.html +2 -2
  52. package/docs/documentation/components/NumberComponent.html +2 -2
  53. package/docs/documentation/components/OverflowMenu.html +2 -2
  54. package/docs/documentation/components/OverflowMenuCustomPane.html +2 -2
  55. package/docs/documentation/components/OverflowMenuOption.html +2 -2
  56. package/docs/documentation/components/OverflowMenuPane.html +2 -2
  57. package/docs/documentation/components/Overlay.html +2 -2
  58. package/docs/documentation/components/Pagination.html +5 -5
  59. package/docs/documentation/components/PaginationNav.html +2 -2
  60. package/docs/documentation/components/PaginationNavItem.html +2 -2
  61. package/docs/documentation/components/PaginationOverflow.html +2 -2
  62. package/docs/documentation/components/Panel.html +2 -2
  63. package/docs/documentation/components/PasswordInputLabelComponent.html +2 -2
  64. package/docs/documentation/components/Placeholder.html +2 -2
  65. package/docs/documentation/components/PopoverContent.html +2 -2
  66. package/docs/documentation/components/ProgressBar.html +2 -2
  67. package/docs/documentation/components/ProgressIndicator.html +2 -2
  68. package/docs/documentation/components/Radio.html +2 -2
  69. package/docs/documentation/components/RadioGroup.html +2 -2
  70. package/docs/documentation/components/Search.html +2 -2
  71. package/docs/documentation/components/Select.html +2 -2
  72. package/docs/documentation/components/SelectionTile.html +2 -2
  73. package/docs/documentation/components/SideNav.html +2 -2
  74. package/docs/documentation/components/SideNavItem.html +2 -2
  75. package/docs/documentation/components/SideNavMenu.html +2 -2
  76. package/docs/documentation/components/SkeletonPlaceholder.html +2 -2
  77. package/docs/documentation/components/SkeletonText.html +2 -2
  78. package/docs/documentation/components/Slider.html +2 -2
  79. package/docs/documentation/components/StructuredList.html +2 -2
  80. package/docs/documentation/components/SwitcherList.html +2 -2
  81. package/docs/documentation/components/SwitcherListItem.html +2 -2
  82. package/docs/documentation/components/Tab.html +2 -2
  83. package/docs/documentation/components/TabHeaderGroup.html +2 -2
  84. package/docs/documentation/components/TabHeaders.html +2 -2
  85. package/docs/documentation/components/TabSkeleton.html +2 -2
  86. package/docs/documentation/components/Table.html +2 -2
  87. package/docs/documentation/components/TableBody.html +2 -2
  88. package/docs/documentation/components/TableCheckbox.html +2 -2
  89. package/docs/documentation/components/TableContainer.html +2 -2
  90. package/docs/documentation/components/TableData.html +2 -2
  91. package/docs/documentation/components/TableExpandButton.html +2 -2
  92. package/docs/documentation/components/TableExpandedRow.html +2 -2
  93. package/docs/documentation/components/TableHead.html +2 -2
  94. package/docs/documentation/components/TableHeadCell.html +2 -2
  95. package/docs/documentation/components/TableHeadCheckbox.html +2 -2
  96. package/docs/documentation/components/TableHeadExpand.html +2 -2
  97. package/docs/documentation/components/TableHeader.html +2 -2
  98. package/docs/documentation/components/TableRadio.html +2 -2
  99. package/docs/documentation/components/TableRowComponent.html +2 -2
  100. package/docs/documentation/components/TableToolbar.html +2 -2
  101. package/docs/documentation/components/TableToolbarActions.html +2 -2
  102. package/docs/documentation/components/TableToolbarContent.html +2 -2
  103. package/docs/documentation/components/TableToolbarSearch.html +2 -2
  104. package/docs/documentation/components/Tabs.html +2 -2
  105. package/docs/documentation/components/Tag.html +73 -13
  106. package/docs/documentation/components/TagFilter.html +116 -51
  107. package/docs/documentation/components/TagOperationalComponent.html +919 -0
  108. package/docs/documentation/components/TagSelectableComponent.html +1084 -0
  109. package/docs/documentation/components/TextInputLabelComponent.html +78 -32
  110. package/docs/documentation/components/TextareaLabelComponent.html +2 -2
  111. package/docs/documentation/components/Tile.html +2 -2
  112. package/docs/documentation/components/TileGroup.html +2 -2
  113. package/docs/documentation/components/TimePicker.html +2 -2
  114. package/docs/documentation/components/TimePickerSelect.html +2 -2
  115. package/docs/documentation/components/Toast.html +2 -2
  116. package/docs/documentation/components/Toggle.html +81 -67
  117. package/docs/documentation/components/Toggletip.html +2 -2
  118. package/docs/documentation/components/Tooltip.html +2 -2
  119. package/docs/documentation/components/TooltipDefinition.html +2 -2
  120. package/docs/documentation/components/TreeNodeComponent.html +2 -2
  121. package/docs/documentation/components/TreeViewComponent.html +2 -2
  122. package/docs/documentation/coverage.html +86 -26
  123. package/docs/documentation/directives/ClickableTileIconDirective.html +367 -0
  124. package/docs/documentation/directives/IconDirective.html +8 -6
  125. package/docs/documentation/directives/LinkIconDirective.html +367 -0
  126. package/docs/documentation/directives/List.html +66 -8
  127. package/docs/documentation/directives/TagIconDirective.html +367 -0
  128. package/docs/documentation/graph/dependencies.svg +2767 -2647
  129. package/docs/documentation/index.html +1 -1
  130. package/docs/documentation/interfaces/PaginationTranslations.html +1 -1
  131. package/docs/documentation/js/menu-wc.js +38 -12
  132. package/docs/documentation/js/menu-wc_es5.js +1 -1
  133. package/docs/documentation/js/search/search_index.js +2 -2
  134. package/docs/documentation/miscellaneous/enumerations.html +8 -8
  135. package/docs/documentation/modules/CodeSnippetModule/dependencies.svg +4 -4
  136. package/docs/documentation/modules/CodeSnippetModule.html +4 -4
  137. package/docs/documentation/modules/ComboBoxModule/dependencies.svg +6 -6
  138. package/docs/documentation/modules/ComboBoxModule.html +6 -6
  139. package/docs/documentation/modules/DatePickerInputModule/dependencies.svg +8 -8
  140. package/docs/documentation/modules/DatePickerInputModule.html +8 -8
  141. package/docs/documentation/modules/DatePickerModule/dependencies.svg +49 -53
  142. package/docs/documentation/modules/DatePickerModule.html +49 -53
  143. package/docs/documentation/modules/FileUploaderModule/dependencies.svg +34 -34
  144. package/docs/documentation/modules/FileUploaderModule.html +34 -34
  145. package/docs/documentation/modules/GridModule/dependencies.svg +60 -60
  146. package/docs/documentation/modules/GridModule.html +60 -60
  147. package/docs/documentation/modules/LinkModule/dependencies.svg +41 -17
  148. package/docs/documentation/modules/LinkModule.html +52 -19
  149. package/docs/documentation/modules/LoadingModule/dependencies.svg +4 -4
  150. package/docs/documentation/modules/LoadingModule.html +4 -4
  151. package/docs/documentation/modules/RadioModule/dependencies.svg +35 -35
  152. package/docs/documentation/modules/RadioModule.html +35 -35
  153. package/docs/documentation/modules/SliderModule/dependencies.svg +4 -4
  154. package/docs/documentation/modules/SliderModule.html +4 -4
  155. package/docs/documentation/modules/StructuredListModule/dependencies.svg +66 -66
  156. package/docs/documentation/modules/StructuredListModule.html +66 -66
  157. package/docs/documentation/modules/TableModule/dependencies.svg +4 -4
  158. package/docs/documentation/modules/TableModule.html +4 -4
  159. package/docs/documentation/modules/TabsModule/dependencies.svg +68 -68
  160. package/docs/documentation/modules/TabsModule.html +68 -68
  161. package/docs/documentation/modules/TagModule/dependencies.svg +123 -51
  162. package/docs/documentation/modules/TagModule.html +160 -55
  163. package/docs/documentation/modules/ThemeModule/dependencies.svg +4 -4
  164. package/docs/documentation/modules/ThemeModule.html +4 -4
  165. package/docs/documentation/modules/TilesModule/dependencies.svg +160 -136
  166. package/docs/documentation/modules/TilesModule.html +169 -136
  167. package/docs/documentation/modules/TimePickerModule/dependencies.svg +44 -40
  168. package/docs/documentation/modules/TimePickerModule.html +44 -40
  169. package/docs/documentation/modules/TimePickerSelectModule/dependencies.svg +46 -42
  170. package/docs/documentation/modules/TimePickerSelectModule.html +46 -42
  171. package/docs/documentation/modules/ToggleModule/dependencies.svg +19 -19
  172. package/docs/documentation/modules/ToggleModule.html +19 -19
  173. package/docs/documentation/modules/ToggletipModule/dependencies.svg +37 -37
  174. package/docs/documentation/modules/ToggletipModule.html +37 -37
  175. package/docs/documentation/modules/TooltipModule/dependencies.svg +29 -29
  176. package/docs/documentation/modules/TooltipModule.html +29 -29
  177. package/docs/documentation/modules/TreeviewModule/dependencies.svg +28 -28
  178. package/docs/documentation/modules/TreeviewModule.html +28 -28
  179. package/docs/documentation/modules/UIShellModule/dependencies.svg +4 -4
  180. package/docs/documentation/modules/UIShellModule.html +4 -4
  181. package/docs/documentation/overview.html +2769 -2649
  182. package/docs/documentation.json +1655 -387
  183. package/docs/storybook/117.d138a78b.iframe.bundle.js +1 -0
  184. package/docs/storybook/1490.92c45b08.iframe.bundle.js +1 -0
  185. package/docs/storybook/{1803.69020a1f.iframe.bundle.js → 1803.0a8c6ba0.iframe.bundle.js} +1 -1
  186. package/docs/storybook/3419.806be468.iframe.bundle.js +1 -0
  187. package/docs/storybook/{4333.3306b291.iframe.bundle.js → 4333.ee67f563.iframe.bundle.js} +1 -1
  188. package/docs/storybook/{4637.2867ca6f.iframe.bundle.js → 4637.1182aca8.iframe.bundle.js} +1 -1
  189. package/docs/storybook/5351.dfea6a5b.iframe.bundle.js +1 -0
  190. package/docs/storybook/8383.74dc30c9.iframe.bundle.js +1 -0
  191. package/docs/storybook/accordion-accordion-stories.92f0aea9.iframe.bundle.js +1 -0
  192. package/docs/storybook/button-button-set-stories.78832e6c.iframe.bundle.js +1 -0
  193. package/docs/storybook/button-button-stories.ea38b069.iframe.bundle.js +1 -0
  194. package/docs/storybook/button-icon-button-stories.e9bbdeae.iframe.bundle.js +1 -0
  195. package/docs/storybook/code-snippet-code-snippet-stories.845d66ed.iframe.bundle.js +1 -0
  196. package/docs/storybook/combobox-combobox-stories.59aec56d.iframe.bundle.js +1 -0
  197. package/docs/storybook/contained-list-contained-list-stories.92c680b8.iframe.bundle.js +1 -0
  198. package/docs/storybook/context-menu-context-menu-stories.59d5cac4.iframe.bundle.js +1 -0
  199. package/docs/storybook/datepicker-datepicker-stories.2de8c3b8.iframe.bundle.js +1 -0
  200. package/docs/storybook/dropdown-dropdown-stories.0d63845a.iframe.bundle.js +1 -0
  201. package/docs/storybook/icon-icon-stories.8d4654b2.iframe.bundle.js +1 -0
  202. package/docs/storybook/iframe.html +2 -2
  203. package/docs/storybook/index-stories.66f86530.iframe.bundle.js +1 -0
  204. package/docs/storybook/index.json +1 -1
  205. package/docs/storybook/inline-loading-inline-loading-stories.b3477958.iframe.bundle.js +1 -0
  206. package/docs/storybook/input-input-stories.6eca9c7d.iframe.bundle.js +1 -0
  207. package/docs/storybook/input-password-stories.2826ff49.iframe.bundle.js +1 -0
  208. package/docs/storybook/input-textarea-stories.4f5775b4.iframe.bundle.js +1 -0
  209. package/docs/storybook/link-link-stories.e07fa679.iframe.bundle.js +1 -0
  210. package/docs/storybook/{list-list-stories.56e9e562.iframe.bundle.js → list-list-stories.957efb51.iframe.bundle.js} +1 -1
  211. package/docs/storybook/main.46c96128.iframe.bundle.js +1 -0
  212. package/docs/storybook/main.css +912 -189
  213. package/docs/storybook/number-input-number-stories.c8a0e58c.iframe.bundle.js +1 -0
  214. package/docs/storybook/patterns-dialogs-modal-with-table-stories.44f68be6.iframe.bundle.js +1 -0
  215. package/docs/storybook/patterns-filtering-multiple-categories-stories.2f66407e.iframe.bundle.js +1 -0
  216. package/docs/storybook/patterns-loading-large-loading-stories.8333afb1.iframe.bundle.js +1 -0
  217. package/docs/storybook/progress-bar-progress-bar-stories.645f83b4.iframe.bundle.js +1 -0
  218. package/docs/storybook/progress-indicator-progress-indicator-stories.4205d95b.iframe.bundle.js +1 -0
  219. package/docs/storybook/project.json +1 -1
  220. package/docs/storybook/radio-radio-stories.5dc425e5.iframe.bundle.js +1 -0
  221. package/docs/storybook/{runtime~main.e516577a.iframe.bundle.js → runtime~main.e33e1492.iframe.bundle.js} +1 -1
  222. package/docs/storybook/search-search-stories.69ac59e9.iframe.bundle.js +1 -0
  223. package/docs/storybook/stories.json +1 -1
  224. package/docs/storybook/structured-list-structured-list-stories.8c6c973c.iframe.bundle.js +1 -0
  225. package/docs/storybook/tag-tag-stories.f8ad24e6.iframe.bundle.js +1 -0
  226. package/docs/storybook/tiles-clickable-tile-stories.c2639981.iframe.bundle.js +1 -0
  227. package/docs/storybook/tiles-expandable-tile-stories.9aefae5c.iframe.bundle.js +1 -0
  228. package/docs/storybook/{toggle-toggle-stories.d4666f95.iframe.bundle.js → toggle-toggle-stories.37f7153e.iframe.bundle.js} +1 -1
  229. package/docs/storybook/toggletip-toggletip-stories.895fd677.iframe.bundle.js +1 -0
  230. package/docs/storybook/treeview-treeview-stories.ac4bcee5.iframe.bundle.js +1 -0
  231. package/docs/storybook/ui-shell-ui-shell-stories.9b5a8c7f.iframe.bundle.js +1 -0
  232. package/dropdown/dropdown.component.d.ts +12 -3
  233. package/esm2022/button/icon-button.component.mjs +10 -4
  234. package/esm2022/code-snippet/code-snippet.component.mjs +1 -1
  235. package/esm2022/combobox/combobox.component.mjs +47 -16
  236. package/esm2022/dropdown/dropdown.component.mjs +79 -37
  237. package/esm2022/icon/icon.directive.mjs +5 -3
  238. package/esm2022/input/text-input-label.component.mjs +4 -1
  239. package/esm2022/link/index.mjs +2 -1
  240. package/esm2022/link/link-icon.directive.mjs +19 -0
  241. package/esm2022/link/link.module.mjs +9 -4
  242. package/esm2022/list/list.directive.mjs +12 -3
  243. package/esm2022/modal/modal-header.component.mjs +1 -1
  244. package/esm2022/pagination/pagination-nav/pagination-nav.component.mjs +1 -1
  245. package/esm2022/pagination/pagination.component.mjs +3 -3
  246. package/esm2022/tag/index.mjs +4 -1
  247. package/esm2022/tag/tag-filter.component.mjs +47 -32
  248. package/esm2022/tag/tag-icon.directive.mjs +19 -0
  249. package/esm2022/tag/tag-operational.component.mjs +62 -0
  250. package/esm2022/tag/tag-selectable.component.mjs +89 -0
  251. package/esm2022/tag/tag.component.mjs +28 -4
  252. package/esm2022/tag/tag.module.mjs +27 -4
  253. package/esm2022/tiles/clickable-tile-icon.directive.mjs +19 -0
  254. package/esm2022/tiles/index.mjs +2 -1
  255. package/esm2022/tiles/tiles.module.mjs +6 -1
  256. package/esm2022/toggle/toggle.component.mjs +9 -4
  257. package/esm2022/ui-shell/header/header-action.component.mjs +1 -1
  258. package/fesm2022/carbon-components-angular-button.mjs +9 -3
  259. package/fesm2022/carbon-components-angular-button.mjs.map +1 -1
  260. package/fesm2022/carbon-components-angular-code-snippet.mjs +1 -1
  261. package/fesm2022/carbon-components-angular-code-snippet.mjs.map +1 -1
  262. package/fesm2022/carbon-components-angular-combobox.mjs +46 -15
  263. package/fesm2022/carbon-components-angular-combobox.mjs.map +1 -1
  264. package/fesm2022/carbon-components-angular-dropdown.mjs +79 -37
  265. package/fesm2022/carbon-components-angular-dropdown.mjs.map +1 -1
  266. package/fesm2022/carbon-components-angular-icon.mjs +4 -2
  267. package/fesm2022/carbon-components-angular-icon.mjs.map +1 -1
  268. package/fesm2022/carbon-components-angular-input.mjs +3 -0
  269. package/fesm2022/carbon-components-angular-input.mjs.map +1 -1
  270. package/fesm2022/carbon-components-angular-link.mjs +25 -4
  271. package/fesm2022/carbon-components-angular-link.mjs.map +1 -1
  272. package/fesm2022/carbon-components-angular-list.mjs +11 -2
  273. package/fesm2022/carbon-components-angular-list.mjs.map +1 -1
  274. package/fesm2022/carbon-components-angular-modal.mjs +1 -1
  275. package/fesm2022/carbon-components-angular-modal.mjs.map +1 -1
  276. package/fesm2022/carbon-components-angular-pagination.mjs +3 -3
  277. package/fesm2022/carbon-components-angular-pagination.mjs.map +1 -1
  278. package/fesm2022/carbon-components-angular-tag.mjs +259 -40
  279. package/fesm2022/carbon-components-angular-tag.mjs.map +1 -1
  280. package/fesm2022/carbon-components-angular-tiles.mjs +23 -2
  281. package/fesm2022/carbon-components-angular-tiles.mjs.map +1 -1
  282. package/fesm2022/carbon-components-angular-toggle.mjs +8 -3
  283. package/fesm2022/carbon-components-angular-toggle.mjs.map +1 -1
  284. package/fesm2022/carbon-components-angular-ui-shell.mjs +1 -1
  285. package/fesm2022/carbon-components-angular-ui-shell.mjs.map +1 -1
  286. package/input/text-input-label.component.d.ts +3 -2
  287. package/link/index.d.ts +1 -0
  288. package/link/link-icon.directive.d.ts +26 -0
  289. package/link/link.module.d.ts +3 -2
  290. package/list/list.directive.d.ts +5 -1
  291. package/package.json +1 -1
  292. package/tag/index.d.ts +3 -0
  293. package/tag/tag-filter.component.d.ts +5 -1
  294. package/tag/tag-icon.directive.d.ts +26 -0
  295. package/tag/tag-operational.component.d.ts +35 -0
  296. package/tag/tag-selectable.component.d.ts +42 -0
  297. package/tag/tag.component.d.ts +7 -2
  298. package/tag/tag.module.d.ts +6 -3
  299. package/tiles/clickable-tile-icon.directive.d.ts +26 -0
  300. package/tiles/index.d.ts +1 -0
  301. package/tiles/tiles.module.d.ts +11 -10
  302. package/toggle/toggle.component.d.ts +6 -1
  303. package/docs/storybook/117.5d56f728.iframe.bundle.js +0 -1
  304. package/docs/storybook/1490.c09c967b.iframe.bundle.js +0 -1
  305. package/docs/storybook/2641.22111a5a.iframe.bundle.js +0 -1
  306. package/docs/storybook/5351.afa38aa0.iframe.bundle.js +0 -1
  307. package/docs/storybook/8383.348fbbdd.iframe.bundle.js +0 -1
  308. package/docs/storybook/IBMPlexMono-Italic-Cyrillic.woff +0 -0
  309. package/docs/storybook/IBMPlexMono-Italic-Latin1.woff +0 -0
  310. package/docs/storybook/IBMPlexMono-Italic-Latin2.woff +0 -0
  311. package/docs/storybook/IBMPlexMono-Italic-Latin3.woff +0 -0
  312. package/docs/storybook/IBMPlexMono-Italic-Pi.woff +0 -0
  313. package/docs/storybook/IBMPlexMono-Light-Cyrillic.woff +0 -0
  314. package/docs/storybook/IBMPlexMono-Light-Latin1.woff +0 -0
  315. package/docs/storybook/IBMPlexMono-Light-Latin2.woff +0 -0
  316. package/docs/storybook/IBMPlexMono-Light-Latin3.woff +0 -0
  317. package/docs/storybook/IBMPlexMono-Light-Pi.woff +0 -0
  318. package/docs/storybook/IBMPlexMono-LightItalic-Cyrillic.woff +0 -0
  319. package/docs/storybook/IBMPlexMono-LightItalic-Latin1.woff +0 -0
  320. package/docs/storybook/IBMPlexMono-LightItalic-Latin2.woff +0 -0
  321. package/docs/storybook/IBMPlexMono-LightItalic-Latin3.woff +0 -0
  322. package/docs/storybook/IBMPlexMono-LightItalic-Pi.woff +0 -0
  323. package/docs/storybook/IBMPlexMono-Regular-Cyrillic.woff +0 -0
  324. package/docs/storybook/IBMPlexMono-Regular-Latin1.woff +0 -0
  325. package/docs/storybook/IBMPlexMono-Regular-Latin2.woff +0 -0
  326. package/docs/storybook/IBMPlexMono-Regular-Latin3.woff +0 -0
  327. package/docs/storybook/IBMPlexMono-Regular-Pi.woff +0 -0
  328. package/docs/storybook/IBMPlexMono-SemiBold-Cyrillic.woff +0 -0
  329. package/docs/storybook/IBMPlexMono-SemiBold-Latin1.woff +0 -0
  330. package/docs/storybook/IBMPlexMono-SemiBold-Latin2.woff +0 -0
  331. package/docs/storybook/IBMPlexMono-SemiBold-Latin3.woff +0 -0
  332. package/docs/storybook/IBMPlexMono-SemiBold-Pi.woff +0 -0
  333. package/docs/storybook/IBMPlexMono-SemiBoldItalic-Cyrillic.woff +0 -0
  334. package/docs/storybook/IBMPlexMono-SemiBoldItalic-Latin1.woff +0 -0
  335. package/docs/storybook/IBMPlexMono-SemiBoldItalic-Latin2.woff +0 -0
  336. package/docs/storybook/IBMPlexMono-SemiBoldItalic-Latin3.woff +0 -0
  337. package/docs/storybook/IBMPlexMono-SemiBoldItalic-Pi.woff +0 -0
  338. package/docs/storybook/IBMPlexSans-Italic-Cyrillic.woff +0 -0
  339. package/docs/storybook/IBMPlexSans-Italic-Latin1.woff +0 -0
  340. package/docs/storybook/IBMPlexSans-Italic-Latin2.woff +0 -0
  341. package/docs/storybook/IBMPlexSans-Italic-Latin3.woff +0 -0
  342. package/docs/storybook/IBMPlexSans-Italic-Pi.woff +0 -0
  343. package/docs/storybook/IBMPlexSans-Light-Cyrillic.woff +0 -0
  344. package/docs/storybook/IBMPlexSans-Light-Latin1.woff +0 -0
  345. package/docs/storybook/IBMPlexSans-Light-Latin2.woff +0 -0
  346. package/docs/storybook/IBMPlexSans-Light-Latin3.woff +0 -0
  347. package/docs/storybook/IBMPlexSans-Light-Pi.woff +0 -0
  348. package/docs/storybook/IBMPlexSans-LightItalic-Cyrillic.woff +0 -0
  349. package/docs/storybook/IBMPlexSans-LightItalic-Latin1.woff +0 -0
  350. package/docs/storybook/IBMPlexSans-LightItalic-Latin2.woff +0 -0
  351. package/docs/storybook/IBMPlexSans-LightItalic-Latin3.woff +0 -0
  352. package/docs/storybook/IBMPlexSans-LightItalic-Pi.woff +0 -0
  353. package/docs/storybook/IBMPlexSans-Regular-Cyrillic.woff +0 -0
  354. package/docs/storybook/IBMPlexSans-Regular-Latin1.woff +0 -0
  355. package/docs/storybook/IBMPlexSans-Regular-Latin2.woff +0 -0
  356. package/docs/storybook/IBMPlexSans-Regular-Latin3.woff +0 -0
  357. package/docs/storybook/IBMPlexSans-Regular-Pi.woff +0 -0
  358. package/docs/storybook/IBMPlexSans-SemiBold-Cyrillic.woff +0 -0
  359. package/docs/storybook/IBMPlexSans-SemiBold-Latin1.woff +0 -0
  360. package/docs/storybook/IBMPlexSans-SemiBold-Latin2.woff +0 -0
  361. package/docs/storybook/IBMPlexSans-SemiBold-Latin3.woff +0 -0
  362. package/docs/storybook/IBMPlexSans-SemiBold-Pi.woff +0 -0
  363. package/docs/storybook/IBMPlexSans-SemiBoldItalic-Cyrillic.woff +0 -0
  364. package/docs/storybook/IBMPlexSans-SemiBoldItalic-Latin1.woff +0 -0
  365. package/docs/storybook/IBMPlexSans-SemiBoldItalic-Latin2.woff +0 -0
  366. package/docs/storybook/IBMPlexSans-SemiBoldItalic-Latin3.woff +0 -0
  367. package/docs/storybook/IBMPlexSans-SemiBoldItalic-Pi.woff +0 -0
  368. package/docs/storybook/IBMPlexSerif-Italic-Cyrillic.woff +0 -0
  369. package/docs/storybook/IBMPlexSerif-Italic-Latin1.woff +0 -0
  370. package/docs/storybook/IBMPlexSerif-Italic-Latin2.woff +0 -0
  371. package/docs/storybook/IBMPlexSerif-Italic-Latin3.woff +0 -0
  372. package/docs/storybook/IBMPlexSerif-Italic-Pi.woff +0 -0
  373. package/docs/storybook/IBMPlexSerif-Light-Cyrillic.woff +0 -0
  374. package/docs/storybook/IBMPlexSerif-Light-Latin1.woff +0 -0
  375. package/docs/storybook/IBMPlexSerif-Light-Latin2.woff +0 -0
  376. package/docs/storybook/IBMPlexSerif-Light-Latin3.woff +0 -0
  377. package/docs/storybook/IBMPlexSerif-Light-Pi.woff +0 -0
  378. package/docs/storybook/IBMPlexSerif-LightItalic-Cyrillic.woff +0 -0
  379. package/docs/storybook/IBMPlexSerif-LightItalic-Latin1.woff +0 -0
  380. package/docs/storybook/IBMPlexSerif-LightItalic-Latin2.woff +0 -0
  381. package/docs/storybook/IBMPlexSerif-LightItalic-Latin3.woff +0 -0
  382. package/docs/storybook/IBMPlexSerif-LightItalic-Pi.woff +0 -0
  383. package/docs/storybook/IBMPlexSerif-Regular-Cyrillic.woff +0 -0
  384. package/docs/storybook/IBMPlexSerif-Regular-Latin1.woff +0 -0
  385. package/docs/storybook/IBMPlexSerif-Regular-Latin2.woff +0 -0
  386. package/docs/storybook/IBMPlexSerif-Regular-Latin3.woff +0 -0
  387. package/docs/storybook/IBMPlexSerif-Regular-Pi.woff +0 -0
  388. package/docs/storybook/IBMPlexSerif-SemiBold-Cyrillic.woff +0 -0
  389. package/docs/storybook/IBMPlexSerif-SemiBold-Latin1.woff +0 -0
  390. package/docs/storybook/IBMPlexSerif-SemiBold-Latin2.woff +0 -0
  391. package/docs/storybook/IBMPlexSerif-SemiBold-Latin3.woff +0 -0
  392. package/docs/storybook/IBMPlexSerif-SemiBold-Pi.woff +0 -0
  393. package/docs/storybook/IBMPlexSerif-SemiBoldItalic-Cyrillic.woff +0 -0
  394. package/docs/storybook/IBMPlexSerif-SemiBoldItalic-Latin1.woff +0 -0
  395. package/docs/storybook/IBMPlexSerif-SemiBoldItalic-Latin2.woff +0 -0
  396. package/docs/storybook/IBMPlexSerif-SemiBoldItalic-Latin3.woff +0 -0
  397. package/docs/storybook/IBMPlexSerif-SemiBoldItalic-Pi.woff +0 -0
  398. package/docs/storybook/accordion-accordion-stories.7468f099.iframe.bundle.js +0 -1
  399. package/docs/storybook/button-button-set-stories.c7adac6a.iframe.bundle.js +0 -1
  400. package/docs/storybook/button-button-stories.1c45cf01.iframe.bundle.js +0 -1
  401. package/docs/storybook/button-icon-button-stories.63c78bd5.iframe.bundle.js +0 -1
  402. package/docs/storybook/code-snippet-code-snippet-stories.e00add3a.iframe.bundle.js +0 -1
  403. package/docs/storybook/combobox-combobox-stories.216aef5a.iframe.bundle.js +0 -1
  404. package/docs/storybook/contained-list-contained-list-stories.69aa72f2.iframe.bundle.js +0 -1
  405. package/docs/storybook/context-menu-context-menu-stories.6d7f479b.iframe.bundle.js +0 -1
  406. package/docs/storybook/datepicker-datepicker-stories.3cd783d9.iframe.bundle.js +0 -1
  407. package/docs/storybook/dropdown-dropdown-stories.d648035e.iframe.bundle.js +0 -1
  408. package/docs/storybook/icon-icon-stories.2e2ba0d1.iframe.bundle.js +0 -1
  409. package/docs/storybook/index-stories.a7ef7d5f.iframe.bundle.js +0 -1
  410. package/docs/storybook/inline-loading-inline-loading-stories.524edaf4.iframe.bundle.js +0 -1
  411. package/docs/storybook/input-input-stories.ee8c4e49.iframe.bundle.js +0 -1
  412. package/docs/storybook/input-password-stories.6baa3dd4.iframe.bundle.js +0 -1
  413. package/docs/storybook/input-textarea-stories.fb36d3da.iframe.bundle.js +0 -1
  414. package/docs/storybook/link-link-stories.b5dd0484.iframe.bundle.js +0 -1
  415. package/docs/storybook/main.f0db303d.iframe.bundle.js +0 -1
  416. package/docs/storybook/number-input-number-stories.0b7dd344.iframe.bundle.js +0 -1
  417. package/docs/storybook/patterns-dialogs-modal-with-table-stories.692bd7e3.iframe.bundle.js +0 -1
  418. package/docs/storybook/patterns-filtering-multiple-categories-stories.d3558915.iframe.bundle.js +0 -1
  419. package/docs/storybook/patterns-loading-large-loading-stories.09691e11.iframe.bundle.js +0 -1
  420. package/docs/storybook/progress-bar-progress-bar-stories.6d536423.iframe.bundle.js +0 -1
  421. package/docs/storybook/progress-indicator-progress-indicator-stories.f3b0ece7.iframe.bundle.js +0 -1
  422. package/docs/storybook/radio-radio-stories.35ae8c9f.iframe.bundle.js +0 -1
  423. package/docs/storybook/search-search-stories.fecf118a.iframe.bundle.js +0 -1
  424. package/docs/storybook/structured-list-structured-list-stories.a118d424.iframe.bundle.js +0 -1
  425. package/docs/storybook/tag-tag-stories.102bd470.iframe.bundle.js +0 -1
  426. package/docs/storybook/tiles-clickable-tile-stories.e3639902.iframe.bundle.js +0 -1
  427. package/docs/storybook/tiles-expandable-tile-stories.b319601f.iframe.bundle.js +0 -1
  428. package/docs/storybook/toggletip-toggletip-stories.0e5e2d69.iframe.bundle.js +0 -1
  429. package/docs/storybook/treeview-treeview-stories.ec11e861.iframe.bundle.js +0 -1
  430. package/docs/storybook/ui-shell-ui-shell-stories.522593d6.iframe.bundle.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"carbon-components-angular-code-snippet.mjs","sources":["../../src/code-snippet/code-snippet.component.ts","../../src/code-snippet/code-snippet.module.ts","../../src/code-snippet/carbon-components-angular-code-snippet.ts"],"sourcesContent":["import {\n\tComponent,\n\tInput,\n\tHostBinding,\n\tViewChild,\n\tAfterViewInit,\n\tOnInit\n} from \"@angular/core\";\n\nimport { I18n } from \"carbon-components-angular/i18n\";\nimport { EventService } from \"carbon-components-angular/utils\";\nimport { BaseIconButton } from \"carbon-components-angular/button\";\n\nexport enum SnippetType {\n\tsingle = \"single\",\n\tmulti = \"multi\",\n\tinline = \"inline\"\n}\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { CodeSnippetModule } from 'carbon-components-angular';\n * ```\n *\n * ```html\n * <cds-code-snippet>Code</cds-code-snippet>\n * ```\n *\n * [See demo](../../?path=/story/components-code-snippet--basic)\n */\n@Component({\n\tselector: \"cds-code-snippet, ibm-code-snippet\",\n\ttemplate: `\n\t\t<ng-container *ngIf=\"display === 'inline'; else notInline\">\n\t\t\t<ng-container *ngIf=\"!hideCopyButton; else noBtnInline\">\n\t\t\t\t<ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n\t\t\t</ng-container>\n\t\t\t<ng-template #noBtnInline>\n\t\t\t\t<span\n\t\t\t\t\tclass=\"cds--snippet cds--snippet--inline cds--snippet--no-copy\"\n\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t'cds--snippet--light': theme === 'light'\n\t\t\t\t\t}\">\n\t\t\t\t\t<code #code>\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"codeTemplate\"></ng-container>\n\t\t\t\t\t</code>\n\t\t\t\t</span>\n\t\t\t</ng-template>\n\t\t</ng-container>\n\n\t\t<ng-template #notInline>\n\t\t\t<div\n\t\t\t\t#codeContainer\n\t\t\t\tclass=\"cds--snippet-container\"\n\t\t\t\t[attr.aria-label]=\"translations.CODE_SNIPPET_TEXT\"\n\t\t\t\t[attr.tabindex]=\"display === 'single' && !disabled ? '0' : null\"\n\t\t\t\t[attr.role]=\"display==='single' ? 'textarea' : null\"\n\t\t\t\t[ngStyle]=\"styles\"\n\t\t\t\t(scroll)=\"(display === 'single' ? handleScroll() : null)\">\n\t\t\t\t<ng-container *ngIf=\"skeleton\">\n\t\t\t\t\t<span *ngIf=\"display === 'single'; else multiSkeleton\"></span>\n\t\t\t\t\t<ng-template #multiSkeleton>\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t</ng-template>\n\t\t\t\t</ng-container>\n\t\t\t\t<pre\n\t\t\t\t\t#codeContent\n\t\t\t\t\t*ngIf=\"!skeleton\"\n\t\t\t\t\t(scroll)=\"(display === 'multi' ? handleScroll() : null)\"><code #code><ng-container *ngTemplateOutlet=\"codeTemplate\"></ng-container></code></pre>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"hasLeft\" class=\"cds--snippet__overflow-indicator--left\"></div>\n\t\t\t<div *ngIf=\"hasRight\" class=\"cds--snippet__overflow-indicator--right\"></div>\n\t\t\t<ng-container *ngIf=\"!hideCopyButton;\">\n\t\t\t\t<ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n\t\t\t</ng-container>\n\t\t\t<button\n\t\t\t\t*ngIf=\"isExpandable\"\n\t\t\t\tclass=\"cds--btn cds--btn--ghost cds--btn--sm cds--snippet-btn--expand\"\n\t\t\t\t(click)=\"toggleSnippetExpansion()\"\n\t\t\t\ttype=\"button\">\n\t\t\t\t<span class=\"cds--snippet-btn--text\">{{expanded ? translations.SHOW_LESS : translations.SHOW_MORE}}</span>\n\t\t\t\t<svg cdsIcon=\"chevron--down\" size=\"16\" class=\"cds--icon-chevron--down\" [attr.aria-label]=\"translations.SHOW_MORE_ICON\"></svg>\n\t\t\t</button>\n\t\t</ng-template>\n\n\t\t<ng-template #buttonTemplate>\n\t\t\t<cds-icon-button\n\t\t\t\t*ngIf=\"!skeleton\"\n\t\t\t\t[description]=\"showFeedback ? feedbackText : copyButtonDescription\"\n\t\t\t\t[align]=\"align\"\n\t\t\t\t[dropShadow]=\"dropShadow\"\n\t\t\t\t[caret]=\"caret\"\n\t\t\t\t[highContrast]=\"highContrast\"\n\t\t\t\t[isOpen]=\"isOpen\"\n\t\t\t\t[enterDelayMs]=\"enterDelayMs\"\n\t\t\t\t[leaveDelayMs]=\"leaveDelayMs\"\n\t\t\t\ttype=\"button\"\n\t\t\t\tkind=\"primary\"\n\t\t\t\tsize=\"md\"\n\t\t\t\t(click)=\"onCopyButtonClicked($event)\"\n\t\t\t\t[buttonNgClass]=\"{\n\t\t\t\t\t'cds--snippet--light': theme === 'light',\n\t\t\t\t\t'cds--snippet--inline': display === 'inline',\n\t\t\t\t\t'cds--btn--icon-only': display !== 'inline',\n\t\t\t\t\t'cds--copy-btn': display !== 'inline',\n\t\t\t\t\t'cds--copy-btn--animating': animating,\n\t\t\t\t\t'cds--copy-btn--fade-in': showFeedback,\n\t\t\t\t\t'cds--copy-btn--fade-out': !showFeedback && animating,\n\t\t\t\t\t'cds--snippet cds--copy': true\n\t\t\t\t}\"\n\t\t\t\t[buttonAttributes]=\"{\n\t\t\t\t\t'aria-label': translations.COPY_CODE,\n\t\t\t\t\t'aria-live': 'polite',\n\t\t\t\t\t'tabindex': '0'\n\t\t\t\t}\">\n\t\t\t\t<ng-container *ngIf=\"display === 'inline'\">\n\t\t\t\t\t<code #code>\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"codeTemplate\"></ng-container>\n\t\t\t\t\t</code>\n\t\t\t\t</ng-container>\n\t\t\t\t<ng-container *ngIf=\"display !== 'inline'\">\n\t\t\t\t\t<svg cdsIcon=\"copy\" size=\"16\" class=\"cds--snippet__icon\"></svg>\n\t\t\t\t</ng-container>\n\t\t\t</cds-icon-button>\n\t\t</ng-template>\n\n\t\t<ng-template #codeTemplate>\n\t\t\t<ng-content></ng-content>\n\t\t</ng-template>\n\t`\n})\nexport class CodeSnippet extends BaseIconButton implements OnInit, AfterViewInit {\n\t@HostBinding(\"class.cds--snippet\") get snippetClass() {\n\t\treturn this.display !== SnippetType.inline;\n\t}\n\t@HostBinding(\"class.cds--snippet--single\") get snippetSingleClass() {\n\t\treturn this.display === SnippetType.single;\n\t}\n\t@HostBinding(\"class.cds--snippet--multi\") get snippetMultiClass() {\n\t\treturn this.display === SnippetType.multi;\n\t}\n\t@HostBinding(\"class.cds--snippet--disabled\") get snippetDisabledClass() {\n\t\treturn this.display !== \"inline\" && this.disabled;\n\t}\n\t@HostBinding(\"class.cds--snippet--light\") get snippetInlineLightClass() {\n\t\treturn this.theme === \"light\";\n\t}\n\n\treadonly rowHeightInPixel: number = 16;\n\n\t/**\n\t * It can be `\"single\"`, `\"multi\"` or `\"inline\"`\n\t */\n\t@Input() display: SnippetType = SnippetType.single;\n\t@Input() translations = this.i18n.get().CODE_SNIPPET;\n\t/**\n\t * copy button description to show on hover\n\t */\n\t@Input() copyButtonDescription: string;\n\t/**\n\t * Set to `true` to hide copy button\n\t */\n\t@Input() hideCopyButton = false;\n\t/**\n\t * Set to `true` to disable the code snippet\n\t */\n\t@Input() disabled = false;\n\t/**\n\t * Specify the max number of rows to show when collapsed\n\t * Default is `15`\n\t */\n\t@Input() maxCollapsedNumberOfRows = 15;\n\t/**\n\t * Specify the min number of rows to show when collapsed\n\t * Default is `3`\n\t */\n\t@Input() minCollapsedNumberOfRows = 3;\n\t/**\n\t * Specify the max number of rows to show when expanded\n\t * Default is `0`, hence all content will be visible when expanded\n\t */\n\t@Input() maxExpandedNumberOfRows = 0;\n\t/**\n\t * Specify the min number of rows to show when expanded\n\t * Default is `16`, hence height of expanded row will be 16 * rowHeightInPixel (16) = 256px\n\t */\n\t@Input() minExpandedNumberOfRows = 16;\n\t/**\n\t * Set to `true` to wrap the text\n\t */\n\t@HostBinding(\"class.cds--snippet--wraptext\") @Input() wrapText = false;\n\t/**\n\t * @deprecated since v5 - Use `cdsLayer` directive instead\n\t * Set to `\"light\"` to apply the light style\n\t */\n\t@Input() theme: \"light\" | \"dark\" = \"dark\";\n\t/**\n\t * Text displayed in the tooltip when user clicks button to copy code.\n\t */\n\t@Input() feedbackText = this.translations.COPIED;\n\t/**\n\t * Time in miliseconds to keep the feedback tooltip displayed.\n\t * Defaults to 2 seconds\n\t */\n\t@Input() feedbackTimeout = 2000;\n\n\t@HostBinding(\"class.cds--snippet--expand\") @Input() expanded = false;\n\t@HostBinding(\"class.cds--skeleton\") @Input() skeleton = false;\n\tstyles: any = {};\n\n\t@ViewChild(\"code\") code;\n\t@ViewChild(\"codeContent\") codeContent;\n\t@ViewChild(\"codeContainer\") codeContainer;\n\n\tshowFeedback = false;\n\tanimating = false;\n\thasExpandButton = null;\n\tisExpandable = false;\n\thasRightOverflow = false;\n\n\thasRight = false;\n\thasLeft = false;\n\n\t/**\n\t * Creates an instance of CodeSnippet.\n\t */\n\tconstructor(protected i18n: I18n, protected eventService: EventService) {\n\t\tsuper();\n\t\tthis.dropShadow = false;\n\t}\n\n\thandleScroll() {\n\t\tif (this.skeleton) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet ref;\n\t\tswitch (this.display) {\n\t\t\tcase \"multi\":\n\t\t\t\tref = this.codeContent.nativeElement;\n\t\t\t\tbreak;\n\t\t\tcase \"single\":\n\t\t\t\tref = this.codeContainer.nativeElement;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\t\tif (ref) {\n\t\t\tconst {\n\t\t\t\tscrollWidth,\n\t\t\t\tclientWidth,\n\t\t\t\tscrollLeft\n\t\t\t} = ref;\n\t\t\tconst horizontalOverflow = scrollWidth > clientWidth;\n\t\t\tthis.hasLeft = horizontalOverflow && !!scrollLeft;\n\t\t\tthis.hasRight = horizontalOverflow && scrollLeft + clientWidth !== scrollWidth;\n\t\t}\n\t}\n\n\ttoggleSnippetExpansion() {\n\t\tthis.expanded = !this.expanded;\n\t\tthis.calculateContainerHeight();\n\t}\n\n\tonCopyButtonClicked() {\n\t\tif (!this.disabled) {\n\t\t\twindow.navigator.clipboard\n\t\t\t\t.writeText(this.code.nativeElement.innerText || this.code.nativeElement.textContent).then(() => {\n\t\t\t\t\tthis.showFeedback = true;\n\t\t\t\t\tthis.animating = true;\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.showFeedback = false;\n\t\t\t\t\t\tthis.animating = false;\n\t\t\t\t\t}, this.feedbackTimeout);\n\t\t\t\t});\n\t\t}\n\t}\n\n\tngOnInit() {\n\t\tthis.calculateContainerHeight();\n\t}\n\n\tngAfterViewInit() {\n\t\tthis.canExpand();\n\t\tthis.handleScroll();\n\t\tif (window) {\n\t\t\tthis.eventService.on(window as any, \"resize\", () => {\n\t\t\t\tthis.canExpand();\n\t\t\t\tthis.handleScroll();\n\t\t\t});\n\t\t}\n\t}\n\n\tcalculateContainerHeight() {\n\t\tif (this.display === \"multi\" && !this.skeleton) {\n\t\t\tthis.styles = {};\n\t\t\tif (this.expanded) {\n\t\t\t\tif (this.maxExpandedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"max-height\"] = `${this.maxExpandedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t\tif (this.minExpandedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"min-height\"] = `${this.minExpandedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (this.maxCollapsedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"max-height\"] = `${this.maxCollapsedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t\tif (this.minCollapsedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"min-height\"] = `${this.minCollapsedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected canExpand() {\n\t\tif (this.display === \"multi\" && !this.skeleton) {\n\t\t\tconst height = this.codeContent.nativeElement.getBoundingClientRect().height;\n\t\t\tif (\n\t\t\t\tthis.maxCollapsedNumberOfRows > 0 &&\n\t\t\t\t(this.maxExpandedNumberOfRows <= 0 ||\n\t\t\t\t\tthis.maxExpandedNumberOfRows > this.maxCollapsedNumberOfRows) &&\n\t\t\t\theight > this.maxCollapsedNumberOfRows * this.rowHeightInPixel\n\t\t\t) {\n\t\t\t\tthis.isExpandable = true;\n\t\t\t} else {\n\t\t\t\tthis.isExpandable = false;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tthis.expanded &&\n\t\t\t\tthis.minExpandedNumberOfRows > 0 &&\n\t\t\t\theight <= this.minExpandedNumberOfRows * this.rowHeightInPixel\n\t\t\t) {\n\t\t\t\tthis.isExpandable = false;\n\t\t\t}\n\t\t}\n\t}\n}\n","// modules\nimport { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ButtonModule } from \"carbon-components-angular/button\";\nimport { IconModule } from \"carbon-components-angular/icon\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\nimport { UtilsModule } from \"carbon-components-angular/utils\";\n\n// imports\nimport { CodeSnippet } from \"./code-snippet.component\";\n\n@NgModule({\n\tdeclarations: [\n\t\tCodeSnippet\n\t],\n\texports: [\n\t\tCodeSnippet\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tButtonModule,\n\t\tI18nModule,\n\t\tUtilsModule,\n\t\tIconModule\n\t]\n})\nexport class CodeSnippetModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"carbon-components-angular-code-snippet.mjs","sources":["../../src/code-snippet/code-snippet.component.ts","../../src/code-snippet/code-snippet.module.ts","../../src/code-snippet/carbon-components-angular-code-snippet.ts"],"sourcesContent":["import {\n\tComponent,\n\tInput,\n\tHostBinding,\n\tViewChild,\n\tAfterViewInit,\n\tOnInit\n} from \"@angular/core\";\n\nimport { I18n } from \"carbon-components-angular/i18n\";\nimport { EventService } from \"carbon-components-angular/utils\";\nimport { BaseIconButton } from \"carbon-components-angular/button\";\n\nexport enum SnippetType {\n\tsingle = \"single\",\n\tmulti = \"multi\",\n\tinline = \"inline\"\n}\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { CodeSnippetModule } from 'carbon-components-angular';\n * ```\n *\n * ```html\n * <cds-code-snippet>Code</cds-code-snippet>\n * ```\n *\n * [See demo](../../?path=/story/components-code-snippet--basic)\n */\n@Component({\n\tselector: \"cds-code-snippet, ibm-code-snippet\",\n\ttemplate: `\n\t\t<ng-container *ngIf=\"display === 'inline'; else notInline\">\n\t\t\t<ng-container *ngIf=\"!hideCopyButton; else noBtnInline\">\n\t\t\t\t<ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n\t\t\t</ng-container>\n\t\t\t<ng-template #noBtnInline>\n\t\t\t\t<span\n\t\t\t\t\tclass=\"cds--snippet cds--snippet--inline cds--snippet--no-copy\"\n\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t'cds--snippet--light': theme === 'light'\n\t\t\t\t\t}\">\n\t\t\t\t\t<code #code>\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"codeTemplate\"></ng-container>\n\t\t\t\t\t</code>\n\t\t\t\t</span>\n\t\t\t</ng-template>\n\t\t</ng-container>\n\n\t\t<ng-template #notInline>\n\t\t\t<div\n\t\t\t\t#codeContainer\n\t\t\t\tclass=\"cds--snippet-container\"\n\t\t\t\t[attr.aria-label]=\"translations.CODE_SNIPPET_TEXT\"\n\t\t\t\t[attr.tabindex]=\"display === 'single' && !disabled ? '0' : null\"\n\t\t\t\t[attr.role]=\"display==='single' ? 'textarea' : null\"\n\t\t\t\t[ngStyle]=\"styles\"\n\t\t\t\t(scroll)=\"(display === 'single' ? handleScroll() : null)\">\n\t\t\t\t<ng-container *ngIf=\"skeleton\">\n\t\t\t\t\t<span *ngIf=\"display === 'single'; else multiSkeleton\"></span>\n\t\t\t\t\t<ng-template #multiSkeleton>\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t</ng-template>\n\t\t\t\t</ng-container>\n\t\t\t\t<pre\n\t\t\t\t\t#codeContent\n\t\t\t\t\t*ngIf=\"!skeleton\"\n\t\t\t\t\t(scroll)=\"(display === 'multi' ? handleScroll() : null)\"><code #code><ng-container *ngTemplateOutlet=\"codeTemplate\"></ng-container></code></pre>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"hasLeft\" class=\"cds--snippet__overflow-indicator--left\"></div>\n\t\t\t<div *ngIf=\"hasRight\" class=\"cds--snippet__overflow-indicator--right\"></div>\n\t\t\t<ng-container *ngIf=\"!hideCopyButton;\">\n\t\t\t\t<ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n\t\t\t</ng-container>\n\t\t\t<button\n\t\t\t\t*ngIf=\"isExpandable\"\n\t\t\t\tclass=\"cds--btn cds--btn--ghost cds--btn--sm cds--snippet-btn--expand\"\n\t\t\t\t(click)=\"toggleSnippetExpansion()\"\n\t\t\t\ttype=\"button\">\n\t\t\t\t<span class=\"cds--snippet-btn--text\">{{expanded ? translations.SHOW_LESS : translations.SHOW_MORE}}</span>\n\t\t\t\t<svg cdsIcon=\"chevron--down\" size=\"16\" class=\"cds--icon-chevron--down\" [attr.aria-label]=\"translations.SHOW_MORE_ICON\"></svg>\n\t\t\t</button>\n\t\t</ng-template>\n\n\t\t<ng-template #buttonTemplate>\n\t\t\t<cds-icon-button\n\t\t\t\t*ngIf=\"!skeleton\"\n\t\t\t\t[description]=\"showFeedback ? feedbackText : copyButtonDescription\"\n\t\t\t\t[align]=\"align\"\n\t\t\t\t[dropShadow]=\"dropShadow\"\n\t\t\t\t[caret]=\"caret\"\n\t\t\t\t[highContrast]=\"highContrast\"\n\t\t\t\t[isOpen]=\"isOpen\"\n\t\t\t\t[enterDelayMs]=\"enterDelayMs\"\n\t\t\t\t[leaveDelayMs]=\"leaveDelayMs\"\n\t\t\t\ttype=\"button\"\n\t\t\t\tkind=\"primary\"\n\t\t\t\tsize=\"md\"\n\t\t\t\t(click)=\"onCopyButtonClicked($event)\"\n\t\t\t\t[buttonNgClass]=\"{\n\t\t\t\t\t'cds--snippet--light': theme === 'light',\n\t\t\t\t\t'cds--snippet--inline': display === 'inline',\n\t\t\t\t\t'cds--btn--icon-only': display !== 'inline',\n\t\t\t\t\t'cds--copy-btn': display !== 'inline',\n\t\t\t\t\t'cds--copy-btn--animating': animating,\n\t\t\t\t\t'cds--copy-btn--fade-in': showFeedback,\n\t\t\t\t\t'cds--copy-btn--fade-out': !showFeedback && animating,\n\t\t\t\t\t'cds--snippet cds--copy': true\n\t\t\t\t}\"\n\t\t\t\t[buttonAttributes]=\"{\n\t\t\t\t\t'aria-label': translations.COPY_CODE,\n\t\t\t\t\t'aria-live': 'polite',\n\t\t\t\t\t'tabindex': '0'\n\t\t\t\t}\">\n\t\t\t\t<ng-container *ngIf=\"display === 'inline'\">\n\t\t\t\t\t<code #code>\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"codeTemplate\"></ng-container>\n\t\t\t\t\t</code>\n\t\t\t\t</ng-container>\n\t\t\t\t<ng-container *ngIf=\"display !== 'inline'\">\n\t\t\t\t\t<svg cdsIcon=\"copy\" size=\"16\" class=\"cds--snippet__icon\"></svg>\n\t\t\t\t</ng-container>\n\t\t\t</cds-icon-button>\n\t\t</ng-template>\n\n\t\t<ng-template #codeTemplate>\n\t\t\t<ng-content></ng-content>\n\t\t</ng-template>\n\t`\n})\nexport class CodeSnippet extends BaseIconButton implements OnInit, AfterViewInit {\n\t@HostBinding(\"class.cds--snippet\") get snippetClass() {\n\t\treturn this.display !== SnippetType.inline;\n\t}\n\t@HostBinding(\"class.cds--snippet--single\") get snippetSingleClass() {\n\t\treturn this.display === SnippetType.single;\n\t}\n\t@HostBinding(\"class.cds--snippet--multi\") get snippetMultiClass() {\n\t\treturn this.display === SnippetType.multi;\n\t}\n\t@HostBinding(\"class.cds--snippet--disabled\") get snippetDisabledClass() {\n\t\treturn this.display !== \"inline\" && this.disabled;\n\t}\n\t@HostBinding(\"class.cds--snippet--light\") get snippetInlineLightClass() {\n\t\treturn this.theme === \"light\";\n\t}\n\n\treadonly rowHeightInPixel: number = 16;\n\n\t/**\n\t * It can be `\"single\"`, `\"multi\"` or `\"inline\"`\n\t */\n\t@Input() display: SnippetType = SnippetType.single;\n\t@Input() translations = this.i18n.get().CODE_SNIPPET;\n\t/**\n\t * copy button description to show on hover\n\t */\n\t@Input() copyButtonDescription: string;\n\t/**\n\t * Set to `true` to hide copy button\n\t */\n\t@Input() hideCopyButton = false;\n\t/**\n\t * Set to `true` to disable the code snippet\n\t */\n\t@Input() disabled = false;\n\t/**\n\t * Specify the max number of rows to show when collapsed\n\t * Default is `15`\n\t */\n\t@Input() maxCollapsedNumberOfRows = 15;\n\t/**\n\t * Specify the min number of rows to show when collapsed\n\t * Default is `3`\n\t */\n\t@Input() minCollapsedNumberOfRows = 3;\n\t/**\n\t * Specify the max number of rows to show when expanded\n\t * Default is `0`, hence all content will be visible when expanded\n\t */\n\t@Input() maxExpandedNumberOfRows = 0;\n\t/**\n\t * Specify the min number of rows to show when expanded\n\t * Default is `16`, hence height of expanded row will be 16 * rowHeightInPixel (16) = 256px\n\t */\n\t@Input() minExpandedNumberOfRows = 16;\n\t/**\n\t * Set to `true` to wrap the text\n\t */\n\t@HostBinding(\"class.cds--snippet--wraptext\") @Input() wrapText = false;\n\t/**\n\t * @deprecated since v5 - Use `cdsLayer` directive instead\n\t * Set to `\"light\"` to apply the light style\n\t */\n\t@Input() theme: \"light\" | \"dark\" = \"dark\";\n\t/**\n\t * Text displayed in the tooltip when user clicks button to copy code.\n\t */\n\t@Input() feedbackText = this.translations.COPIED;\n\t/**\n\t * Time in miliseconds to keep the feedback tooltip displayed.\n\t * Defaults to 2 seconds\n\t */\n\t@Input() feedbackTimeout = 2000;\n\n\t@HostBinding(\"class.cds--snippet--expand\") @Input() expanded = false;\n\t@HostBinding(\"class.cds--skeleton\") @Input() skeleton = false;\n\tstyles: any = {};\n\n\t@ViewChild(\"code\") code;\n\t@ViewChild(\"codeContent\") codeContent;\n\t@ViewChild(\"codeContainer\") codeContainer;\n\n\tshowFeedback = false;\n\tanimating = false;\n\thasExpandButton = null;\n\tisExpandable = false;\n\thasRightOverflow = false;\n\n\thasRight = false;\n\thasLeft = false;\n\n\t/**\n\t * Creates an instance of CodeSnippet.\n\t */\n\tconstructor(protected i18n: I18n, protected eventService: EventService) {\n\t\tsuper();\n\t\tthis.dropShadow = false;\n\t}\n\n\thandleScroll() {\n\t\tif (this.skeleton) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet ref;\n\t\tswitch (this.display) {\n\t\t\tcase \"multi\":\n\t\t\t\tref = this.codeContent.nativeElement;\n\t\t\t\tbreak;\n\t\t\tcase \"single\":\n\t\t\t\tref = this.codeContainer.nativeElement;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\t\tif (ref) {\n\t\t\tconst {\n\t\t\t\tscrollWidth,\n\t\t\t\tclientWidth,\n\t\t\t\tscrollLeft\n\t\t\t} = ref;\n\t\t\tconst horizontalOverflow = scrollWidth > clientWidth;\n\t\t\tthis.hasLeft = horizontalOverflow && !!scrollLeft;\n\t\t\tthis.hasRight = horizontalOverflow && scrollLeft + clientWidth !== scrollWidth;\n\t\t}\n\t}\n\n\ttoggleSnippetExpansion() {\n\t\tthis.expanded = !this.expanded;\n\t\tthis.calculateContainerHeight();\n\t}\n\n\tonCopyButtonClicked() {\n\t\tif (!this.disabled) {\n\t\t\twindow.navigator.clipboard\n\t\t\t\t.writeText(this.code.nativeElement.innerText || this.code.nativeElement.textContent).then(() => {\n\t\t\t\t\tthis.showFeedback = true;\n\t\t\t\t\tthis.animating = true;\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.showFeedback = false;\n\t\t\t\t\t\tthis.animating = false;\n\t\t\t\t\t}, this.feedbackTimeout);\n\t\t\t\t});\n\t\t}\n\t}\n\n\tngOnInit() {\n\t\tthis.calculateContainerHeight();\n\t}\n\n\tngAfterViewInit() {\n\t\tthis.canExpand();\n\t\tthis.handleScroll();\n\t\tif (window) {\n\t\t\tthis.eventService.on(window as any, \"resize\", () => {\n\t\t\t\tthis.canExpand();\n\t\t\t\tthis.handleScroll();\n\t\t\t});\n\t\t}\n\t}\n\n\tcalculateContainerHeight() {\n\t\tif (this.display === \"multi\" && !this.skeleton) {\n\t\t\tthis.styles = {};\n\t\t\tif (this.expanded) {\n\t\t\t\tif (this.maxExpandedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"max-height\"] = `${this.maxExpandedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t\tif (this.minExpandedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"min-height\"] = `${this.minExpandedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (this.maxCollapsedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"max-height\"] = `${this.maxCollapsedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t\tif (this.minCollapsedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"min-height\"] = `${this.minCollapsedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected canExpand() {\n\t\tif (this.display === \"multi\" && !this.skeleton) {\n\t\t\tconst height = this.codeContent.nativeElement.getBoundingClientRect().height;\n\t\t\tif (\n\t\t\t\tthis.maxCollapsedNumberOfRows > 0 &&\n\t\t\t\t(this.maxExpandedNumberOfRows <= 0 ||\n\t\t\t\t\tthis.maxExpandedNumberOfRows > this.maxCollapsedNumberOfRows) &&\n\t\t\t\theight > this.maxCollapsedNumberOfRows * this.rowHeightInPixel\n\t\t\t) {\n\t\t\t\tthis.isExpandable = true;\n\t\t\t} else {\n\t\t\t\tthis.isExpandable = false;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tthis.expanded &&\n\t\t\t\tthis.minExpandedNumberOfRows > 0 &&\n\t\t\t\theight <= this.minExpandedNumberOfRows * this.rowHeightInPixel\n\t\t\t) {\n\t\t\t\tthis.isExpandable = false;\n\t\t\t}\n\t\t}\n\t}\n}\n","// modules\nimport { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ButtonModule } from \"carbon-components-angular/button\";\nimport { IconModule } from \"carbon-components-angular/icon\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\nimport { UtilsModule } from \"carbon-components-angular/utils\";\n\n// imports\nimport { CodeSnippet } from \"./code-snippet.component\";\n\n@NgModule({\n\tdeclarations: [\n\t\tCodeSnippet\n\t],\n\texports: [\n\t\tCodeSnippet\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tButtonModule,\n\t\tI18nModule,\n\t\tUtilsModule,\n\t\tIconModule\n\t]\n})\nexport class CodeSnippetModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -177,6 +177,10 @@ class ComboBox {
177
177
  * Set to `true` for readonly state.
178
178
  */
179
179
  this.readonly = false;
180
+ /**
181
+ * Experimental: enable fluid state
182
+ */
183
+ this.fluid = false;
180
184
  /**
181
185
  * Emits a ListItem
182
186
  *
@@ -223,7 +227,6 @@ class ComboBox {
223
227
  /** Emits an event when the clear button is clicked. */
224
228
  this.clear = new EventEmitter();
225
229
  this.hostClass = true;
226
- this.display = "block";
227
230
  this.open = false;
228
231
  this.showClearButton = false;
229
232
  /** Selected items for multi-select combo-boxes. */
@@ -246,6 +249,7 @@ class ComboBox {
246
249
  this._clearSelectionsAria = this.i18n.getOverridable("COMBOBOX.A11Y.CLEAR_SELECTIONS");
247
250
  this._clearSelectionTitle = this.i18n.getOverridable("COMBOBOX.CLEAR_SELECTED");
248
251
  this._clearSelectionAria = this.i18n.getOverridable("COMBOBOX.A11Y.CLEAR_SELECTED");
252
+ this._isFocused = false;
249
253
  }
250
254
  /**
251
255
  * Lifecycle hook.
@@ -399,7 +403,7 @@ class ComboBox {
399
403
  // clone the items and update their state based on the received value array
400
404
  // this way we don't lose any additional metadata that may be passed in via the `items` Input
401
405
  let newValues = [];
402
- for (const v of value) {
406
+ for (const v of value ?? []) {
403
407
  for (const item of this.view.getListItems()) {
404
408
  if (item[this.itemValueKey] === v) {
405
409
  newValues.push(Object.assign({}, item, { selected: true }));
@@ -450,7 +454,14 @@ class ComboBox {
450
454
  // clearSelected can only fire on type=multi
451
455
  // so we just emit getSelected() (just in case there's any disabled but selected items)
452
456
  const selected = this.view.getSelected();
453
- this.propagateChangeCallback(selected);
457
+ // in case there are disabled items they should be mapped according to itemValueKey
458
+ if (this.itemValueKey && selected) {
459
+ const values = selected.map((item) => item[this.itemValueKey]);
460
+ this.propagateChangeCallback(values);
461
+ }
462
+ else {
463
+ this.propagateChangeCallback(selected);
464
+ }
454
465
  this.selected.emit(selected);
455
466
  this.clear.emit(event);
456
467
  }
@@ -627,6 +638,9 @@ class ComboBox {
627
638
  this.closeDropdown();
628
639
  }
629
640
  }
641
+ handleFocus(event) {
642
+ this._isFocused = event.type === "focus";
643
+ }
630
644
  updateSelected() {
631
645
  const selected = this.view.getSelected();
632
646
  if (this.type === "multi") {
@@ -646,14 +660,20 @@ class ComboBox {
646
660
  }
647
661
  }
648
662
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ComboBox, deps: [{ token: i0.ElementRef }, { token: i1.DropdownService }, { token: i2.I18n }], target: i0.ɵɵFactoryTarget.Component }); }
649
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: ComboBox, selector: "cds-combo-box, ibm-combo-box", inputs: { placeholder: "placeholder", openMenuAria: "openMenuAria", closeMenuAria: "closeMenuAria", clearSelectionsTitle: "clearSelectionsTitle", clearSelectionsAria: "clearSelectionsAria", clearSelectionTitle: "clearSelectionTitle", clearSelectionAria: "clearSelectionAria", id: "id", labelId: "labelId", items: "items", type: "type", size: "size", itemValueKey: "itemValueKey", label: "label", hideLabel: "hideLabel", helperText: "helperText", appendInline: "appendInline", invalid: "invalid", invalidText: "invalidText", warn: "warn", warnText: "warnText", maxLength: "maxLength", theme: "theme", selectionFeedback: "selectionFeedback", autocomplete: "autocomplete", dropUp: "dropUp", disabled: "disabled", readonly: "readonly" }, outputs: { selected: "selected", submit: "submit", close: "close", search: "search", clear: "clear" }, host: { listeners: { "keydown": "hostkeys($event)" }, properties: { "class.cds--list-box__wrapper": "this.hostClass", "style.display": "this.display" } }, providers: [
663
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: ComboBox, selector: "cds-combo-box, ibm-combo-box", inputs: { placeholder: "placeholder", openMenuAria: "openMenuAria", closeMenuAria: "closeMenuAria", clearSelectionsTitle: "clearSelectionsTitle", clearSelectionsAria: "clearSelectionsAria", clearSelectionTitle: "clearSelectionTitle", clearSelectionAria: "clearSelectionAria", id: "id", labelId: "labelId", items: "items", type: "type", size: "size", itemValueKey: "itemValueKey", label: "label", hideLabel: "hideLabel", helperText: "helperText", appendInline: "appendInline", invalid: "invalid", invalidText: "invalidText", warn: "warn", warnText: "warnText", maxLength: "maxLength", theme: "theme", selectionFeedback: "selectionFeedback", autocomplete: "autocomplete", dropUp: "dropUp", disabled: "disabled", readonly: "readonly", fluid: "fluid" }, outputs: { selected: "selected", submit: "submit", close: "close", search: "search", clear: "clear" }, host: { listeners: { "keydown": "hostkeys($event)" }, properties: { "class.cds--list-box__wrapper": "this.hostClass" } }, providers: [
650
664
  {
651
665
  provide: NG_VALUE_ACCESSOR,
652
666
  useExisting: ComboBox,
653
667
  multi: true
654
668
  }
655
669
  ], queries: [{ propertyName: "view", first: true, predicate: AbstractDropdownView, descendants: true, static: true }], viewQueries: [{ propertyName: "dropdownMenu", first: true, predicate: ["dropdownMenu"], descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "listbox", first: true, predicate: ["listbox"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
656
- <div class="cds--list-box__wrapper">
670
+ <div
671
+ class="cds--list-box__wrapper"
672
+ [ngClass]="{
673
+ 'cds--list-box__wrapper--fluid': fluid,
674
+ 'cds--list-box__wrapper--fluid--invalid': fluid && invalid,
675
+ 'cds--list-box__wrapper--fluid--focus': fluid && _isFocused
676
+ }">
657
677
  <label
658
678
  *ngIf="label"
659
679
  [for]="id"
@@ -677,7 +697,8 @@ class ComboBox {
677
697
  'cds--list-box--lg': size === 'lg',
678
698
  'cds--list-box--disabled': disabled,
679
699
  'cds--combo-box--readonly': readonly,
680
- 'cds--combo-box--warning cds--list-box--warning': warn
700
+ 'cds--combo-box--warning cds--list-box--warning': warn,
701
+ 'cds--list-box--invalid': invalid
681
702
  }"
682
703
  class="cds--list-box cds--combo-box"
683
704
  [attr.data-invalid]="(invalid ? true : null)">
@@ -722,7 +743,8 @@ class ComboBox {
722
743
  [disabled]="disabled"
723
744
  [readOnly]="readonly"
724
745
  (input)="onSearch($event.target.value)"
725
- (blur)="onBlur()"
746
+ (focus)="fluid ? handleFocus($event) : null"
747
+ (blur)="fluid ? handleFocus($event) : onBlur()"
726
748
  (keydown.enter)="onSubmit($event)"
727
749
  [value]="selectedValue"
728
750
  class="cds--text-input"
@@ -779,8 +801,9 @@ class ComboBox {
779
801
  <ng-content *ngIf="open"></ng-content>
780
802
  </div>
781
803
  </div>
804
+ <hr *ngIf="fluid" class="cds--list-box__divider" />
782
805
  <div
783
- *ngIf="helperText && !invalid && !warn"
806
+ *ngIf="helperText && !invalid && !warn && !fluid"
784
807
  class="cds--form__helper-text"
785
808
  [ngClass]="{'cds--form__helper-text--disabled': disabled}">
786
809
  <ng-container *ngIf="!isTemplate(helperText)">{{helperText}}</ng-container>
@@ -802,7 +825,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
802
825
  args: [{
803
826
  selector: "cds-combo-box, ibm-combo-box",
804
827
  template: `
805
- <div class="cds--list-box__wrapper">
828
+ <div
829
+ class="cds--list-box__wrapper"
830
+ [ngClass]="{
831
+ 'cds--list-box__wrapper--fluid': fluid,
832
+ 'cds--list-box__wrapper--fluid--invalid': fluid && invalid,
833
+ 'cds--list-box__wrapper--fluid--focus': fluid && _isFocused
834
+ }">
806
835
  <label
807
836
  *ngIf="label"
808
837
  [for]="id"
@@ -826,7 +855,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
826
855
  'cds--list-box--lg': size === 'lg',
827
856
  'cds--list-box--disabled': disabled,
828
857
  'cds--combo-box--readonly': readonly,
829
- 'cds--combo-box--warning cds--list-box--warning': warn
858
+ 'cds--combo-box--warning cds--list-box--warning': warn,
859
+ 'cds--list-box--invalid': invalid
830
860
  }"
831
861
  class="cds--list-box cds--combo-box"
832
862
  [attr.data-invalid]="(invalid ? true : null)">
@@ -871,7 +901,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
871
901
  [disabled]="disabled"
872
902
  [readOnly]="readonly"
873
903
  (input)="onSearch($event.target.value)"
874
- (blur)="onBlur()"
904
+ (focus)="fluid ? handleFocus($event) : null"
905
+ (blur)="fluid ? handleFocus($event) : onBlur()"
875
906
  (keydown.enter)="onSubmit($event)"
876
907
  [value]="selectedValue"
877
908
  class="cds--text-input"
@@ -928,8 +959,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
928
959
  <ng-content *ngIf="open"></ng-content>
929
960
  </div>
930
961
  </div>
962
+ <hr *ngIf="fluid" class="cds--list-box__divider" />
931
963
  <div
932
- *ngIf="helperText && !invalid && !warn"
964
+ *ngIf="helperText && !invalid && !warn && !fluid"
933
965
  class="cds--form__helper-text"
934
966
  [ngClass]="{'cds--form__helper-text--disabled': disabled}">
935
967
  <ng-container *ngIf="!isTemplate(helperText)">{{helperText}}</ng-container>
@@ -1009,6 +1041,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
1009
1041
  type: Input
1010
1042
  }], readonly: [{
1011
1043
  type: Input
1044
+ }], fluid: [{
1045
+ type: Input
1012
1046
  }], selected: [{
1013
1047
  type: Output
1014
1048
  }], submit: [{
@@ -1034,9 +1068,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
1034
1068
  }], hostClass: [{
1035
1069
  type: HostBinding,
1036
1070
  args: ["class.cds--list-box__wrapper"]
1037
- }], display: [{
1038
- type: HostBinding,
1039
- args: ["style.display"]
1040
1071
  }], hostkeys: [{
1041
1072
  type: HostListener,
1042
1073
  args: ["keydown", ["$event"]]
@@ -1 +1 @@
1
- {"version":3,"file":"carbon-components-angular-combobox.mjs","sources":["../../src/combobox/combobox.component.ts","../../src/combobox/combobox.module.ts","../../src/combobox/carbon-components-angular-combobox.ts"],"sourcesContent":["import {\n\tComponent,\n\tOnChanges,\n\tContentChild,\n\tInput,\n\tOutput,\n\tHostListener,\n\tElementRef,\n\tViewChild,\n\tEventEmitter,\n\tAfterViewInit,\n\tAfterContentInit,\n\tHostBinding,\n\tTemplateRef,\n\tOnDestroy\n} from \"@angular/core\";\nimport { AbstractDropdownView, DropdownService } from \"carbon-components-angular/dropdown\";\nimport { ListItem } from \"carbon-components-angular/dropdown\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { filter } from \"rxjs/operators\";\nimport {\n\tgetScrollableParents,\n\thasScrollableParents\n} from \"carbon-components-angular/utils\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { Observable } from \"rxjs\";\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { ComboBoxModule } from 'carbon-components-angular';\n * ```\n *\n * ComboBoxes are similar to dropdowns, except a combobox provides an input field for users to search items and (optionally) add their own.\n * Multi-select comboboxes also provide \"pills\" of selected items.\n *\n * [See demo](../../?path=/story/components-combobox--basic)\n */\n@Component({\n\tselector: \"cds-combo-box, ibm-combo-box\",\n\ttemplate: `\n\t\t<div class=\"cds--list-box__wrapper\">\n\t\t\t<label\n\t\t\t\t*ngIf=\"label\"\n\t\t\t\t[for]=\"id\"\n\t\t\t\t[id]=\"labelId\"\n\t\t\t\tclass=\"cds--label\"\n\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t'cds--label--disabled': disabled,\n\t\t\t\t\t'cds--visually-hidden': hideLabel\n\t\t\t\t}\">\n\t\t\t\t<ng-container *ngIf=\"!isTemplate(label)\">{{label}}</ng-container>\n\t\t\t\t<ng-template *ngIf=\"isTemplate(label)\" [ngTemplateOutlet]=\"label\"></ng-template>\n\t\t\t</label>\n\t\t\t<div\n\t\t\t\t#listbox\n\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t'cds--multi-select cds--multi-select--filterable': type === 'multi',\n\t\t\t\t\t'cds--list-box--light': theme === 'light',\n\t\t\t\t\t'cds--list-box--expanded': open,\n\t\t\t\t\t'cds--list-box--sm': size === 'sm',\n\t\t\t\t\t'cds--list-box--md': size === 'md',\n\t\t\t\t\t'cds--list-box--lg': size === 'lg',\n\t\t\t\t\t'cds--list-box--disabled': disabled,\n\t\t\t\t\t'cds--combo-box--readonly': readonly,\n\t\t\t\t\t'cds--combo-box--warning cds--list-box--warning': warn\n\t\t\t\t}\"\n\t\t\t\tclass=\"cds--list-box cds--combo-box\"\n\t\t\t\t[attr.data-invalid]=\"(invalid ? true : null)\">\n\t\t\t\t<div\n\t\t\t\t\tclass=\"cds--list-box__field\"\n\t\t\t\t\t(click)=\"toggleDropdown()\"\n\t\t\t\t\t(blur)=\"onBlur()\">\n\t\t\t\t\t<div\n\t\t\t\t\t\t*ngIf=\"type === 'multi' && pills.length > 0\"\n\t\t\t\t\t\tclass=\"cds--tag cds--tag--filter cds--tag--high-contrast\"\n\t\t\t\t\t\t[ngClass]=\"{'cds--tag--disabled': disabled || readonly}\">\n\t\t\t\t\t\t<span class=\"cds--tag__label\">{{ pills.length }}</span>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t(click)=\"clearSelected($event)\"\n\t\t\t\t\t\t\t(blur)=\"onBlur()\"\n\t\t\t\t\t\t\t(keydown.enter)=\"clearSelected($event)\"\n\t\t\t\t\t\t\tclass=\"cds--tag__close-icon\"\n\t\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t\t[title]=\"clearSelectionsTitle\"\n\t\t\t\t\t\t\t[disabled]=\"disabled || readonly\"\n\t\t\t\t\t\t\t[attr.aria-label]=\"clearSelectionAria\">\n\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\tfocusable=\"false\"\n\t\t\t\t\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\t\t\t\t\t\tstyle=\"will-change: transform;\"\n\t\t\t\t\t\t\t\trole=\"img\"\n\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\t\twidth=\"16\"\n\t\t\t\t\t\t\t\theight=\"16\"\n\t\t\t\t\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\t\t\t\t\taria-hidden=\"true\">\n\t\t\t\t\t\t\t\t<path d=\"M12 4.7l-.7-.7L8 7.3 4.7 4l-.7.7L7.3 8 4 11.3l.7.7L8 8.7l3.3 3.3.7-.7L8.7 8z\"></path>\n\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t\t<input\n\t\t\t\t\t\t#input\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t[readOnly]=\"readonly\"\n\t\t\t\t\t\t(input)=\"onSearch($event.target.value)\"\n\t\t\t\t\t\t(blur)=\"onBlur()\"\n\t\t\t\t\t\t(keydown.enter)=\"onSubmit($event)\"\n\t\t\t\t\t\t[value]=\"selectedValue\"\n\t\t\t\t\t\tclass=\"cds--text-input\"\n\t\t\t\t\t\t[ngClass]=\"{'cds--text-input--empty': !showClearButton}\"\n\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t[id]=\"id\"\n\t\t\t\t\t\t[attr.aria-labelledby]=\"labelId\"\n\t\t\t\t\t\t[attr.aria-expanded]=\"open\"\n\t\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\t\t[attr.maxlength]=\"maxLength\"\n\t\t\t\t\t\t[attr.aria-controls]=\"open ? view?.listId : null\"\n\t\t\t\t\t\t[attr.aria-autocomplete]=\"autocomplete\"\n\t\t\t\t\t\t[placeholder]=\"placeholder\"/>\n\t\t\t\t\t<svg\n\t\t\t\t\t\t*ngIf=\"invalid\"\n\t\t\t\t\t\tcdsIcon=\"warning--filled\"\n\t\t\t\t\t\tsize=\"16\"\n\t\t\t\t\t\tclass=\"cds--list-box__invalid-icon\">\n\t\t\t\t\t</svg>\n\t\t\t\t\t<svg\n\t\t\t\t\t\t*ngIf=\"!invalid && warn\"\n\t\t\t\t\t\tcdsIcon=\"warning--alt--filled\"\n\t\t\t\t\t\tsize=\"16\"\n\t\t\t\t\t\tclass=\"cds--list-box__invalid-icon cds--list-box__invalid-icon--warning\">\n\t\t\t\t\t</svg>\n\t\t\t\t\t<div\n\t\t\t\t\t\t*ngIf=\"showClearButton\"\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\tclass=\"cds--list-box__selection\"\n\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t[attr.aria-label]=\"clearSelectionAria\"\n\t\t\t\t\t\t[title]=\"clearSelectionTitle\"\n\t\t\t\t\t\t(keyup.enter)=\"clearInput($event)\"\n\t\t\t\t\t\t(click)=\"clearInput($event)\"\n\t\t\t\t\t\t(blur)=\"onBlur()\">\n\t\t\t\t\t\t<svg cdsIcon=\"close\" size=\"16\"></svg>\n\t\t\t\t\t</div>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\tclass=\"cds--list-box__menu-icon\"\n\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t[title]=\"open ? closeMenuAria : openMenuAria\"\n\t\t\t\t\t\t[attr.aria-label]=\"open ? closeMenuAria : openMenuAria\"\n\t\t\t\t\t\t[ngClass]=\"{'cds--list-box__menu-icon--open': open}\">\n\t\t\t\t\t\t<svg cdsIcon=\"chevron--down\" size=\"16\"></svg>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\t#dropdownMenu\n\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t'cds--list-box--up': this.dropUp !== null && this.dropUp !== undefined ? dropUp : _dropUp\n\t\t\t\t\t}\">\n\t\t\t\t\t<ng-content *ngIf=\"open\"></ng-content>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\t*ngIf=\"helperText && !invalid && !warn\"\n\t\t\t\tclass=\"cds--form__helper-text\"\n\t\t\t\t[ngClass]=\"{'cds--form__helper-text--disabled': disabled}\">\n\t\t\t\t<ng-container *ngIf=\"!isTemplate(helperText)\">{{helperText}}</ng-container>\n\t\t\t\t<ng-template *ngIf=\"isTemplate(helperText)\" [ngTemplateOutlet]=\"helperText\"></ng-template>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"invalid\" class=\"cds--form-requirement\">\n\t\t\t\t<ng-container *ngIf=\"!isTemplate(invalidText)\">{{ invalidText }}</ng-container>\n\t\t\t\t<ng-template *ngIf=\"isTemplate(invalidText)\" [ngTemplateOutlet]=\"invalidText\"></ng-template>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"!invalid && warn\" class=\"cds--form-requirement\">\n\t\t\t\t<ng-container *ngIf=\"!isTemplate(warnText)\">{{warnText}}</ng-container>\n\t\t\t\t<ng-template *ngIf=\"isTemplate(warnText)\" [ngTemplateOutlet]=\"warnText\"></ng-template>\n\t\t\t</div>\n\t\t</div>\n\t`,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: ComboBox,\n\t\t\tmulti: true\n\t\t}\n\t]\n})\nexport class ComboBox implements OnChanges, AfterViewInit, AfterContentInit, OnDestroy {\n\t/**\n\t * Text to show when nothing is selected.\n\t */\n\t@Input() set placeholder(value: string | Observable<string>) {\n\t\tthis._placeholder.override(value);\n\t}\n\n\tget placeholder() {\n\t\treturn this._placeholder.value;\n\t}\n\t/**\n\t * Value to display for accessibility purposes on the combobox control menu when closed\n\t */\n\t@Input() set openMenuAria(value: string | Observable<string>) {\n\t\tthis._openMenuAria.override(value);\n\t}\n\n\tget openMenuAria() {\n\t\treturn this._openMenuAria.value;\n\t}\n\t/**\n\t * Value to display for accessibility purposes on the combobox control menu when opened\n\t */\n\t@Input() set closeMenuAria(value: string | Observable<string>) {\n\t\tthis._closeMenuAria.override(value);\n\t}\n\n\tget closeMenuAria() {\n\t\treturn this._closeMenuAria.value;\n\t}\n\t/**\n\t * Value to display on the clear selections icon, when multi is selected\n\t */\n\t@Input() set clearSelectionsTitle(value: string | Observable<string>) {\n\t\tthis._clearSelectionsTitle.override(value);\n\t}\n\n\tget clearSelectionsTitle() {\n\t\treturn this._clearSelectionsTitle.value;\n\t}\n\t/**\n\t * Value to display for accessibility purposes to clear selections, when multi is selected\n\t */\n\t@Input() set clearSelectionsAria(value: string | Observable<string>) {\n\t\tthis._clearSelectionsAria.override(value);\n\t}\n\n\tget clearSelectionsAria() {\n\t\treturn this._clearSelectionsAria.value;\n\t}\n\t/**\n\t * Value to display on the clear the selected item icon, when single is selected\n\t */\n\t@Input() set clearSelectionTitle(value: string | Observable<string>) {\n\t\tthis._clearSelectionTitle.override(value);\n\t}\n\n\tget clearSelectionTitle() {\n\t\treturn this._clearSelectionTitle.value;\n\t}\n\t/**\n\t * Value to display for accessibility purposes on the clear the selected item icon, when single is selected\n\t */\n\t@Input() set clearSelectionAria(value: string | Observable<string>) {\n\t\tthis._clearSelectionAria.override(value);\n\t}\n\n\tget clearSelectionAria() {\n\t\treturn this._clearSelectionAria.value;\n\t}\n\tstatic comboBoxCount = 0;\n\t@Input() id = `combobox-${ComboBox.comboBoxCount++}`;\n\t@Input() labelId = `combobox-label-${ComboBox.comboBoxCount++}`;\n\t/**\n\t * List of items to fill the content with.\n\t *\n\t * **Example:**\n\t * ```javascript\n\t * items = [\n\t *\t\t{\n\t *\t\t\tcontent: \"Abacus\",\n\t *\t\t\tselected: false\n\t *\t\t},\n\t *\t\t{\n\t *\t\t\tcontent: \"Byte\",\n\t *\t\t\tselected: false,\n\t *\t\t},\n\t *\t\t{\n\t *\t\t\tcontent: \"Computer\",\n\t *\t\t\tselected: false\n\t *\t\t},\n\t *\t\t{\n\t *\t\t\tcontent: \"Digital\",\n\t *\t\t\tselected: false\n\t *\t\t}\n\t * ];\n\t * ```\n\t *\n\t */\n\t@Input() items: Array<ListItem> = [];\n\t/**\n\t * Combo box type (supporting single or multi selection of items).\n\t */\n\t@Input() type: \"single\" | \"multi\" = \"single\";\n\t/**\n\t * Combo box render size.\n\t */\n\t@Input() size: \"sm\" | \"md\" | \"lg\" = \"md\";\n\t/**\n\t * Specifies the property to be used as the return value to `ngModel`\n\t */\n\t@Input() itemValueKey: string;\n\t/**\n\t * Label for the combobox.\n\t */\n\t@Input() label: string | TemplateRef<any>;\n\t/**\n\t * Hide label while keeping it accessible for screen readers\n\t */\n\t@Input() hideLabel = false;\n\t/**\n\t * Sets the optional helper text.\n\t */\n\t@Input() helperText: string | TemplateRef<any>;\n\t/**\n\t * set to `true` to place the dropdown view inline with the component\n\t */\n\t@Input() appendInline: boolean = null;\n\t/**\n\t * Set to `true` to show the invalid state.\n\t */\n\t@Input() invalid = false;\n\t/**\n\t * Value displayed if combobox is in an invalid state.\n\t */\n\t@Input() invalidText: string | TemplateRef<any>;\n\t/**\n\t* Set to `true` to show a warning (contents set by warnText)\n\t*/\n\t@Input() warn = false;\n\t/**\n\t * Sets the warning text\n\t */\n\t@Input() warnText: string | TemplateRef<any>;\n\t/**\n\t * Max length value to limit input characters\n\t */\n\t@Input() maxLength: number = null;\n\t/**\n\t * @deprecated since v5 - Use `cdsLayer` directive instead\n\t */\n\t@Input() theme: \"light\" | \"dark\" = \"dark\";\n\t/**\n\t * Specify feedback (mode) of the selection.\n\t * `top`: selected item jumps to top\n\t * `fixed`: selected item stays at its position\n\t * `top-after-reopen`: selected item jump to top after reopen dropdown\n\t */\n\t@Input() selectionFeedback: \"top\" | \"fixed\" | \"top-after-reopen\" = \"top-after-reopen\";\n\t/**\n\t * Specify aria-autocomplete attribute of text input.\n\t * \"list\", is the expected value for a combobox that invokes a drop-down list\n\t */\n\t@Input() autocomplete = \"list\";\n\t/**\n\t * Overrides the automatic dropUp.\n\t */\n\t@Input() dropUp: boolean;\n\t/**\n\t * Set to `true` to disable combobox.\n\t */\n\t@Input() disabled = false;\n\t/**\n\t * Set to `true` for readonly state.\n\t */\n\t@Input() readonly = false;\n\t/**\n\t * Emits a ListItem\n\t *\n\t * Example:\n\t * ```javascript\n\t * {\n\t * \t\tcontent: \"one\",\n\t * \t\tselected: true\n\t * }\n\t * ```\n\t */\n\t@Output() selected = new EventEmitter<ListItem | ListItem[]>();\n\t/**\n\t * Intended to be used to add items to the list.\n\t *\n\t * Emits an event that includes the current item list, the suggested index for the new item, and a simple ListItem\n\t *\n\t * Example:\n\t * ```javascript\n\t *\t{\n\t *\t\titems: [{content: \"one\", selected: true}, {content: \"two\", selected: true}],\n\t *\t\tindex: 1,\n\t *\t\tvalue: {\n\t *\t\t\tcontent: \"some user string\",\n\t *\t\t\tselected: false\n\t *\t\t}\n\t *\t}\n\t * ```\n\t *\n\t *\n\t * Example:\n\t * ```javascript\n\t * {\n\t *\tafter: 1,\n\t *\tvalue: \"some user string\"\n\t * }\n\t * ```\n\t */\n\t@Output() submit = new EventEmitter<{\n\t\titems: ListItem[],\n\t\tindex: number,\n\t\tvalue: {\n\t\t\tcontent: string,\n\t\t\tselected: boolean\n\t\t}\n\t}>();\n\t/** Emits an empty event when the menu is closed */\n\t@Output() close = new EventEmitter<void>();\n\t/** Emits the search string from the input */\n\t@Output() search = new EventEmitter<string>();\n\t/** Emits an event when the clear button is clicked. */\n\t@Output() clear = new EventEmitter<Event>();\n\t/** ContentChild reference to the instantiated dropdown list */\n\t@ContentChild(AbstractDropdownView, { static: true }) view: AbstractDropdownView;\n\t@ViewChild(\"dropdownMenu\") dropdownMenu;\n\t@ViewChild(\"input\", { static: true }) input: ElementRef;\n\t@ViewChild(\"listbox\", { static: true }) listbox: ElementRef;\n\t@HostBinding(\"class.cds--list-box__wrapper\") hostClass = true;\n\t@HostBinding(\"style.display\") display = \"block\";\n\n\tpublic open = false;\n\n\tpublic showClearButton = false;\n\n\t/** Selected items for multi-select combo-boxes. */\n\tpublic pills = [];\n\t/** used to update the displayValue */\n\tpublic selectedValue = \"\";\n\n\toutsideClick = this._outsideClick.bind(this);\n\tkeyboardNav = this._keyboardNav.bind(this);\n\t/**\n\t * controls whether the `drop-up` class is applied\n\t */\n\t_dropUp = false;\n\n\tprotected noop = this._noop.bind(this);\n\tprotected onTouchedCallback: () => void = this._noop;\n\tprotected propagateChangeCallback: (_: any) => void = this._noop;\n\n\tprotected _placeholder = this.i18n.getOverridable(\"COMBOBOX.PLACEHOLDER\");\n\tprotected _closeMenuAria = this.i18n.getOverridable(\"COMBOBOX.A11Y.CLOSE_MENU\");\n\tprotected _openMenuAria = this.i18n.getOverridable(\"COMBOBOX.A11Y.OPEN_MENU\");\n\tprotected _clearSelectionsTitle = this.i18n.getOverridable(\"COMBOBOX.CLEAR_SELECTIONS\");\n\tprotected _clearSelectionsAria = this.i18n.getOverridable(\"COMBOBOX.A11Y.CLEAR_SELECTIONS\");\n\tprotected _clearSelectionTitle = this.i18n.getOverridable(\"COMBOBOX.CLEAR_SELECTED\");\n\tprotected _clearSelectionAria = this.i18n.getOverridable(\"COMBOBOX.A11Y.CLEAR_SELECTED\");\n\n\t/**\n\t * Creates an instance of ComboBox.\n\t */\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected dropdownService: DropdownService,\n\t\tprotected i18n: I18n\n\t) {}\n\n\t/**\n\t * Lifecycle hook.\n\t * Updates pills if necessary.\n\t *\n\t */\n\tngOnChanges(changes) {\n\t\tif (changes.items) {\n\t\t\tthis.view.items = changes.items.currentValue;\n\t\t\tthis.updateSelected();\n\t\t\t// If new items are added into the combobox while there is search input,\n\t\t\t// repeat the search. Search should only trigger for type 'single' when there is no value selected.\n\t\t\tif (this.type === \"multi\" || (this.type === \"single\" && !this.selectedValue)) {\n\t\t\t\tthis.onSearch(this.input.nativeElement.value, false);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Sets initial state that depends on child components\n\t * Subscribes to select events and handles focus/filtering/initial list updates\n\t */\n\tngAfterContentInit() {\n\t\tif (this.view) {\n\t\t\tthis.view.type = this.type;\n\n\t\t\t// function to check if the event is organic (isUpdate === false) or programmatic\n\t\t\tconst isUpdate = event => event && event.isUpdate;\n\n\t\t\tthis.view.select.subscribe(event => {\n\t\t\t\tif (Array.isArray(event)) {\n\t\t\t\t\tthis.updatePills();\n\t\t\t\t\tif (!isUpdate(event)) {\n\t\t\t\t\t\tif (this.itemValueKey && this.view.getSelected()) {\n\t\t\t\t\t\t\tconst values = this.view.getSelected().map(item => item[this.itemValueKey]);\n\t\t\t\t\t\t\tthis.propagateChangeCallback(values);\n\t\t\t\t\t\t// otherwise just pass up the values from `getSelected`\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.propagateChangeCallback(this.view.getSelected());\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.selected.emit(event);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If type is single, dropdown list will emit an object\n\t\t\t\t\tif (event.item && event.item.selected) {\n\t\t\t\t\t\tthis.showClearButton = true;\n\t\t\t\t\t\tthis.selectedValue = event.item.content;\n\n\t\t\t\t\t\tif (!isUpdate(event)) {\n\t\t\t\t\t\t\tif (this.itemValueKey) {\n\t\t\t\t\t\t\t\tthis.propagateChangeCallback(event.item[this.itemValueKey]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.propagateChangeCallback(event.item);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.selectedValue = \"\";\n\t\t\t\t\t\tif (!isUpdate(event)) {\n\t\t\t\t\t\t\tthis.propagateChangeCallback(null);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// not guarding these since the nativeElement has to be loaded\n\t\t\t\t\t// for select to even fire\n\t\t\t\t\t// only focus for \"organic\" selections\n\t\t\t\t\tif (!isUpdate(event)) {\n\t\t\t\t\t\tthis.elementRef.nativeElement.querySelector(\"input\").focus();\n\t\t\t\t\t\tthis.view.filterBy(\"\");\n\t\t\t\t\t\tthis.selected.emit(event.item);\n\t\t\t\t\t}\n\t\t\t\t\tthis.closeDropdown();\n\t\t\t\t}\n\t\t\t});\n\t\t\t// update the rest of combobox with any pre-selected items\n\t\t\t// setTimeout just defers the call to the next check cycle\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.updateSelected();\n\t\t\t});\n\n\t\t\tthis.view.blurIntent.pipe(filter(v => v === \"top\")).subscribe(() => {\n\t\t\t\tthis.elementRef.nativeElement.querySelector(\".cds--text-input\").focus();\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Binds event handlers against the rendered view\n\t */\n\tngAfterViewInit() {\n\t\t// if appendInline is default valued (null) we should:\n\t\t// 1. if there are scrollable parents (not including body) don't append inline\n\t\t// this should also cover the case where the dropdown is in a modal\n\t\t// (where we _do_ want to append to the placeholder)\n\t\tif (this.appendInline === null && hasScrollableParents(this.elementRef.nativeElement)) {\n\t\t\tthis.appendInline = false;\n\t\t// 2. otherwise we should append inline\n\t\t} else if (this.appendInline === null) {\n\t\t\tthis.appendInline = true;\n\t\t}\n\t}\n\n\t/**\n\t * Removing the `Dropdown` from the body if it is appended to the body.\n\t */\n\tngOnDestroy() {\n\t\tif (!this.appendInline) {\n\t\t\tthis._appendToDropdown();\n\t\t}\n\t}\n\n\t/**\n\t * Handles `Escape/Tab` key closing the dropdown, and arrow up/down focus to/from the dropdown list.\n\t */\n\t@HostListener(\"keydown\", [\"$event\"])\n\thostkeys(ev: KeyboardEvent) {\n\t\tif (ev.key === \"Escape\") {\n\t\t\tthis.closeDropdown();\n\t\t} else if ((ev.key === \"ArrowDown\")\n\t\t\t&& (!this.dropdownMenu || !this.dropdownMenu.nativeElement.contains(ev.target))) {\n\t\t\tev.preventDefault();\n\t\t\tthis.openDropdown();\n\t\t\tsetTimeout(() => { this.view.initFocus(); }, 0);\n\t\t}\n\n\t\tif (\n\t\t\tthis.open && ev.key === \"Tab\" &&\n\t\t\t(this.dropdownMenu.nativeElement.contains(ev.target as Node) || ev.target === this.input.nativeElement)\n\t\t) {\n\t\t\tthis.closeDropdown();\n\t\t}\n\n\t\tif (this.open && ev.key === \"Tab\" && ev.shiftKey) {\n\t\t\tthis.closeDropdown();\n\t\t}\n\t}\n\n\t/*\n\t * no-op method for null event listeners, and other no op calls\n\t */\n\t_noop() {}\n\n\t/*\n\t * propagates the value provided from ngModel\n\t */\n\twriteValue(value: any) {\n\t\tif (this.type === \"single\") {\n\t\t\tif (this.itemValueKey) {\n\t\t\t\t// clone the specified item and update its state\n\t\t\t\tconst newValue = Object.assign({}, this.view.getListItems().find(item => item[this.itemValueKey] === value));\n\t\t\t\tnewValue.selected = true;\n\t\t\t\tthis.view.propagateSelected([newValue]);\n\t\t\t} else {\n\t\t\t\t// all items in propagateSelected must be iterable\n\t\t\t\tthis.view.propagateSelected([value || \"\"]);\n\t\t\t}\n\t\t\tthis.showClearButton = !!(value && this.view.getSelected().length);\n\t\t} else {\n\t\t\tif (this.itemValueKey) {\n\t\t\t\t// clone the items and update their state based on the received value array\n\t\t\t\t// this way we don't lose any additional metadata that may be passed in via the `items` Input\n\t\t\t\tlet newValues = [];\n\t\t\t\tfor (const v of value) {\n\t\t\t\t\tfor (const item of this.view.getListItems()) {\n\t\t\t\t\t\tif (item[this.itemValueKey] === v) {\n\t\t\t\t\t\t\tnewValues.push(Object.assign({}, item, { selected: true }));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.view.propagateSelected(newValues);\n\t\t\t} else {\n\t\t\t\tthis.view.propagateSelected(value ? value : [\"\"]);\n\t\t\t}\n\t\t}\n\t\tthis.updateSelected();\n\t}\n\n\tonBlur() {\n\t\tthis.onTouchedCallback();\n\t}\n\n\tregisterOnChange(fn: any) {\n\t\tthis.propagateChangeCallback = fn;\n\t}\n\n\tregisterOnTouched(fn: any) {\n\t\tthis.onTouchedCallback = fn;\n\t}\n\n\t/**\n\t * `ControlValueAccessor` method to programmatically disable the combobox.\n\t *\n\t * ex: `this.formGroup.get(\"myCoolCombobox\").disable();`\n\t */\n\tsetDisabledState(isDisabled: boolean) {\n\t\tthis.disabled = isDisabled;\n\t}\n\n\t/**\n\t * Called by `n-pill-input` when the selected pills have changed.\n\t */\n\tpublic updatePills() {\n\t\tthis.pills = this.view.getSelected() || [];\n\t\tthis.checkForReorder();\n\t}\n\n\tpublic clearSelected(event) {\n\t\tthis.items = this.items.map(item => {\n\t\t\tif (!item.disabled) {\n\t\t\t\titem.selected = false;\n\t\t\t}\n\t\t\treturn item;\n\t\t});\n\t\tthis.view.items = this.items;\n\t\tthis.updatePills();\n\t\t// clearSelected can only fire on type=multi\n\t\t// so we just emit getSelected() (just in case there's any disabled but selected items)\n\t\tconst selected = this.view.getSelected();\n\t\tthis.propagateChangeCallback(selected);\n\t\tthis.selected.emit(selected as any);\n\t\tthis.clear.emit(event);\n\t}\n\n\t/**\n\t * Closes the dropdown and emits the close event.\n\t */\n\tpublic closeDropdown() {\n\t\tthis.open = false;\n\t\tthis.checkForReorder();\n\t\tthis.close.emit();\n\t\tif (!this.appendInline) {\n\t\t\tthis._appendToDropdown();\n\t\t}\n\n\t\tdocument.removeEventListener(\"click\", this.outsideClick, true);\n\t}\n\n\t/**\n\t * Opens the dropdown.\n\t */\n\tpublic openDropdown() {\n\t\tif (this.disabled || this.readonly) { return; }\n\t\tthis.open = true;\n\t\tthis._dropUp = false;\n\n\t\tif (!this.appendInline) {\n\t\t\tthis._appendToBody();\n\t\t}\n\n\t\tdocument.addEventListener(\"click\", this.outsideClick, true);\n\n\t\t// set the dropdown menu to drop up if it is near the bottom of the screen\n\t\t// setTimeout lets us do the calculations after it is visible in the DOM\n\t\tsetTimeout(() => {\n\t\t\tif (this.dropUp === null || this.dropUp === undefined) {\n\t\t\t\tthis._dropUp = this._shouldDropUp();\n\t\t\t}\n\t\t}, 0);\n\t}\n\n\t/**\n\t * Toggles the dropdown.\n\t */\n\tpublic toggleDropdown() {\n\t\tif (this.open) {\n\t\t\tthis.closeDropdown();\n\t\t} else {\n\t\t\tthis.openDropdown();\n\t\t}\n\t}\n\n\t/**\n\t * Sets the list group filter, and manages single select item selection.\n\t */\n\tpublic onSearch(searchString, shouldEmitSearch = true) {\n\t\tif (shouldEmitSearch) {\n\t\t\tthis.search.emit(searchString);\n\t\t}\n\t\tthis.showClearButton = !!searchString;\n\t\tthis.view.filterBy(searchString);\n\t\tif (searchString !== \"\") {\n\t\t\tif (!this.open) {\n\t\t\t\tthis.openDropdown();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.selectedValue = \"\";\n\t\t\tif (this.type === \"multi\" &&\n\t\t\t\t(this.selectionFeedback === \"top\" || this.selectionFeedback === \"top-after-reopen\")) {\n\t\t\t\tthis.view.reorderSelected();\n\t\t\t}\n\t\t}\n\t\tif (this.type === \"single\") {\n\t\t\t// deselect if the input doesn't match the content\n\t\t\t// of any given item\n\t\t\tconst matches = this.view.getListItems().some(item => item.content.toLowerCase().includes(searchString.toLowerCase()));\n\t\t\tif (!matches) {\n\t\t\t\tconst selected = this.view.getSelected();\n\t\t\t\tif (!selected || !selected[0]) {\n\t\t\t\t\tthis.view.filterBy(searchString);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Intended to be used to add items to the list.\n\t */\n\tpublic onSubmit(event: KeyboardEvent) {\n\t\tthis.submit.emit({\n\t\t\titems: this.view.getListItems(),\n\t\t\tindex: 0,\n\t\t\tvalue: {\n\t\t\t\tcontent: (event.target as HTMLInputElement).value,\n\t\t\t\tselected: false\n\t\t\t}\n\t\t});\n\t}\n\n\tclearInput(event) {\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\n\t\tif (this.disabled || this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.type === \"single\") { // don't want to clear selected or close if multi\n\t\t\tthis.clearSelected(event);\n\t\t\tthis.closeDropdown();\n\t\t}\n\n\t\tthis.selectedValue = \"\";\n\t\tthis.input.nativeElement.value = \"\";\n\n\t\tthis.showClearButton = false;\n\t\tthis.input.nativeElement.focus();\n\t\tthis.onSearch(this.input.nativeElement.value);\n\t}\n\n\tpublic isTemplate(value) {\n\t\treturn value instanceof TemplateRef;\n\t}\n\n\t/**\n\t * Handles keyboard events so users are controlling the `Dropdown` instead of unintentionally controlling outside elements.\n\t */\n\t_keyboardNav(event: KeyboardEvent) {\n\t\tif ((event.key === \"Escape\") && this.open) {\n\t\t\tevent.stopImmediatePropagation(); // don't unintentionally close modal if inside of it\n\t\t}\n\t\tif (event.key === \"Escape\") {\n\t\t\tevent.preventDefault();\n\t\t\tthis.closeDropdown();\n\t\t\tthis.input.nativeElement.focus();\n\t\t} else if (this.open && event.key === \"Tab\") {\n\t\t\t// this way focus will start on the next focusable item from the dropdown\n\t\t\t// not the top of the body!\n\t\t\tthis.input.nativeElement.focus();\n\t\t\tthis.input.nativeElement.dispatchEvent(new KeyboardEvent(\"keydown\", { bubbles: true, cancelable: true, key: \"Tab\" }));\n\t\t\tthis.closeDropdown();\n\t\t}\n\t}\n\n\t/**\n\t * Creates the `Dropdown` list as an element that is appended to the DOM body.\n\t */\n\t_appendToBody() {\n\t\tthis.dropdownService.appendToBody(\n\t\t\tthis.listbox.nativeElement,\n\t\t\tthis.dropdownMenu.nativeElement,\n\t\t\t`${this.elementRef.nativeElement.className}${this.open ? \" cds--list-box--expanded\" : \"\"}`);\n\t\tthis.dropdownMenu.nativeElement.addEventListener(\"keydown\", this.keyboardNav, true);\n\t}\n\n\t/**\n\t * Creates the `Dropdown` list appending it to the dropdown parent object instead of the body.\n\t */\n\t_appendToDropdown() {\n\t\tthis.dropdownService.appendToDropdown(this.elementRef.nativeElement);\n\t\tthis.dropdownMenu.nativeElement.removeEventListener(\"keydown\", this.keyboardNav, true);\n\t}\n\n\t/**\n\t * Detects whether or not the `Dropdown` list is visible within all scrollable parents.\n\t * This can be overridden by passing in a value to the `dropUp` input.\n\t */\n\t_shouldDropUp() {\n\t\t// check if dropdownMenu exists first.\n\t\tconst menu = this.dropdownMenu && this.dropdownMenu.nativeElement.querySelector(\".cds--list-box__menu\");\n\t\t// check if menu exists first.\n\t\tconst menuRect = menu && menu.getBoundingClientRect();\n\t\tif (menu && menuRect) {\n\t\t\tconst scrollableParents = getScrollableParents(menu);\n\t\t\treturn scrollableParents.reduce((shouldDropUp: boolean, parent: HTMLElement) => {\n\t\t\t\tconst parentRect = parent.getBoundingClientRect();\n\t\t\t\tconst isBelowParent = !(menuRect.bottom <= parentRect.bottom);\n\t\t\t\treturn shouldDropUp || isBelowParent;\n\t\t\t}, false);\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Handles clicks outside of the `Dropdown` list.\n\t */\n\t_outsideClick(event) {\n\t\tif (!this.elementRef.nativeElement.contains(event.target) &&\n\t\t\t// if we're appendToBody the list isn't within the _elementRef,\n\t\t\t// so we've got to check if our target is possibly in there too.\n\t\t\t!this.dropdownMenu.nativeElement.contains(event.target)) {\n\t\t\tthis.closeDropdown();\n\t\t}\n\t}\n\n\tprotected updateSelected() {\n\t\tconst selected = this.view.getSelected();\n\t\tif (this.type === \"multi\") {\n\t\t\tthis.updatePills();\n\t\t} else if (selected) {\n\t\t\tconst value = selected[0] ? selected[0].content : \"\";\n\t\t\tconst changeCallbackValue = selected[0] ? selected[0] : \"\";\n\t\t\tthis.selectedValue = value;\n\t\t\tthis.showClearButton = !!value;\n\t\t}\n\t}\n\n\tprotected checkForReorder() {\n\t\tconst topAfterReopen = !this.open && this.selectionFeedback === \"top-after-reopen\";\n\t\tif ((this.type === \"multi\") && (topAfterReopen || this.selectionFeedback === \"top\")) {\n\t\t\tthis.view.reorderSelected(true);\n\t\t}\n\t}\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { ComboBox } from \"./combobox.component\";\nimport { DropdownModule, DropdownService } from \"carbon-components-angular/dropdown\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\nimport { UtilsModule } from \"carbon-components-angular/utils\";\nimport { IconModule } from \"carbon-components-angular/icon\";\n\n@NgModule({\n\tdeclarations: [\n\t\tComboBox\n\t],\n\texports: [\n\t\tComboBox,\n\t\tDropdownModule\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tDropdownModule,\n\t\tI18nModule,\n\t\tUtilsModule,\n\t\tIconModule\n\t],\n\tproviders: [ DropdownService ]\n})\nexport class ComboBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"carbon-components-angular-combobox.mjs","sources":["../../src/combobox/combobox.component.ts","../../src/combobox/combobox.module.ts","../../src/combobox/carbon-components-angular-combobox.ts"],"sourcesContent":["import {\n\tComponent,\n\tOnChanges,\n\tContentChild,\n\tInput,\n\tOutput,\n\tHostListener,\n\tElementRef,\n\tViewChild,\n\tEventEmitter,\n\tAfterViewInit,\n\tAfterContentInit,\n\tHostBinding,\n\tTemplateRef,\n\tOnDestroy\n} from \"@angular/core\";\nimport { AbstractDropdownView, DropdownService } from \"carbon-components-angular/dropdown\";\nimport { ListItem } from \"carbon-components-angular/dropdown\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { filter } from \"rxjs/operators\";\nimport {\n\tgetScrollableParents,\n\thasScrollableParents\n} from \"carbon-components-angular/utils\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { Observable } from \"rxjs\";\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { ComboBoxModule } from 'carbon-components-angular';\n * ```\n *\n * ComboBoxes are similar to dropdowns, except a combobox provides an input field for users to search items and (optionally) add their own.\n * Multi-select comboboxes also provide \"pills\" of selected items.\n *\n * [See demo](../../?path=/story/components-combobox--basic)\n */\n@Component({\n\tselector: \"cds-combo-box, ibm-combo-box\",\n\ttemplate: `\n\t\t<div\n\t\t\tclass=\"cds--list-box__wrapper\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--list-box__wrapper--fluid': fluid,\n\t\t\t\t'cds--list-box__wrapper--fluid--invalid': fluid && invalid,\n\t\t\t\t'cds--list-box__wrapper--fluid--focus': fluid && _isFocused\n\t\t\t}\">\n\t\t\t<label\n\t\t\t\t*ngIf=\"label\"\n\t\t\t\t[for]=\"id\"\n\t\t\t\t[id]=\"labelId\"\n\t\t\t\tclass=\"cds--label\"\n\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t'cds--label--disabled': disabled,\n\t\t\t\t\t'cds--visually-hidden': hideLabel\n\t\t\t\t}\">\n\t\t\t\t<ng-container *ngIf=\"!isTemplate(label)\">{{label}}</ng-container>\n\t\t\t\t<ng-template *ngIf=\"isTemplate(label)\" [ngTemplateOutlet]=\"label\"></ng-template>\n\t\t\t</label>\n\t\t\t<div\n\t\t\t\t#listbox\n\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t'cds--multi-select cds--multi-select--filterable': type === 'multi',\n\t\t\t\t\t'cds--list-box--light': theme === 'light',\n\t\t\t\t\t'cds--list-box--expanded': open,\n\t\t\t\t\t'cds--list-box--sm': size === 'sm',\n\t\t\t\t\t'cds--list-box--md': size === 'md',\n\t\t\t\t\t'cds--list-box--lg': size === 'lg',\n\t\t\t\t\t'cds--list-box--disabled': disabled,\n\t\t\t\t\t'cds--combo-box--readonly': readonly,\n\t\t\t\t\t'cds--combo-box--warning cds--list-box--warning': warn,\n\t\t\t\t\t'cds--list-box--invalid': invalid\n\t\t\t\t}\"\n\t\t\t\tclass=\"cds--list-box cds--combo-box\"\n\t\t\t\t[attr.data-invalid]=\"(invalid ? true : null)\">\n\t\t\t\t<div\n\t\t\t\t\tclass=\"cds--list-box__field\"\n\t\t\t\t\t(click)=\"toggleDropdown()\"\n\t\t\t\t\t(blur)=\"onBlur()\">\n\t\t\t\t\t<div\n\t\t\t\t\t\t*ngIf=\"type === 'multi' && pills.length > 0\"\n\t\t\t\t\t\tclass=\"cds--tag cds--tag--filter cds--tag--high-contrast\"\n\t\t\t\t\t\t[ngClass]=\"{'cds--tag--disabled': disabled || readonly}\">\n\t\t\t\t\t\t<span class=\"cds--tag__label\">{{ pills.length }}</span>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t(click)=\"clearSelected($event)\"\n\t\t\t\t\t\t\t(blur)=\"onBlur()\"\n\t\t\t\t\t\t\t(keydown.enter)=\"clearSelected($event)\"\n\t\t\t\t\t\t\tclass=\"cds--tag__close-icon\"\n\t\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t\t[title]=\"clearSelectionsTitle\"\n\t\t\t\t\t\t\t[disabled]=\"disabled || readonly\"\n\t\t\t\t\t\t\t[attr.aria-label]=\"clearSelectionAria\">\n\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\tfocusable=\"false\"\n\t\t\t\t\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\t\t\t\t\t\tstyle=\"will-change: transform;\"\n\t\t\t\t\t\t\t\trole=\"img\"\n\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\t\twidth=\"16\"\n\t\t\t\t\t\t\t\theight=\"16\"\n\t\t\t\t\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\t\t\t\t\taria-hidden=\"true\">\n\t\t\t\t\t\t\t\t<path d=\"M12 4.7l-.7-.7L8 7.3 4.7 4l-.7.7L7.3 8 4 11.3l.7.7L8 8.7l3.3 3.3.7-.7L8.7 8z\"></path>\n\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t\t<input\n\t\t\t\t\t\t#input\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t[readOnly]=\"readonly\"\n\t\t\t\t\t\t(input)=\"onSearch($event.target.value)\"\n\t\t\t\t\t\t(focus)=\"fluid ? handleFocus($event) : null\"\n\t\t\t\t\t\t(blur)=\"fluid ? handleFocus($event) : onBlur()\"\n\t\t\t\t\t\t(keydown.enter)=\"onSubmit($event)\"\n\t\t\t\t\t\t[value]=\"selectedValue\"\n\t\t\t\t\t\tclass=\"cds--text-input\"\n\t\t\t\t\t\t[ngClass]=\"{'cds--text-input--empty': !showClearButton}\"\n\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t[id]=\"id\"\n\t\t\t\t\t\t[attr.aria-labelledby]=\"labelId\"\n\t\t\t\t\t\t[attr.aria-expanded]=\"open\"\n\t\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\t\t[attr.maxlength]=\"maxLength\"\n\t\t\t\t\t\t[attr.aria-controls]=\"open ? view?.listId : null\"\n\t\t\t\t\t\t[attr.aria-autocomplete]=\"autocomplete\"\n\t\t\t\t\t\t[placeholder]=\"placeholder\"/>\n\t\t\t\t\t<svg\n\t\t\t\t\t\t*ngIf=\"invalid\"\n\t\t\t\t\t\tcdsIcon=\"warning--filled\"\n\t\t\t\t\t\tsize=\"16\"\n\t\t\t\t\t\tclass=\"cds--list-box__invalid-icon\">\n\t\t\t\t\t</svg>\n\t\t\t\t\t<svg\n\t\t\t\t\t\t*ngIf=\"!invalid && warn\"\n\t\t\t\t\t\tcdsIcon=\"warning--alt--filled\"\n\t\t\t\t\t\tsize=\"16\"\n\t\t\t\t\t\tclass=\"cds--list-box__invalid-icon cds--list-box__invalid-icon--warning\">\n\t\t\t\t\t</svg>\n\t\t\t\t\t<div\n\t\t\t\t\t\t*ngIf=\"showClearButton\"\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\tclass=\"cds--list-box__selection\"\n\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t[attr.aria-label]=\"clearSelectionAria\"\n\t\t\t\t\t\t[title]=\"clearSelectionTitle\"\n\t\t\t\t\t\t(keyup.enter)=\"clearInput($event)\"\n\t\t\t\t\t\t(click)=\"clearInput($event)\"\n\t\t\t\t\t\t(blur)=\"onBlur()\">\n\t\t\t\t\t\t<svg cdsIcon=\"close\" size=\"16\"></svg>\n\t\t\t\t\t</div>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\tclass=\"cds--list-box__menu-icon\"\n\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t[title]=\"open ? closeMenuAria : openMenuAria\"\n\t\t\t\t\t\t[attr.aria-label]=\"open ? closeMenuAria : openMenuAria\"\n\t\t\t\t\t\t[ngClass]=\"{'cds--list-box__menu-icon--open': open}\">\n\t\t\t\t\t\t<svg cdsIcon=\"chevron--down\" size=\"16\"></svg>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\t#dropdownMenu\n\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t'cds--list-box--up': this.dropUp !== null && this.dropUp !== undefined ? dropUp : _dropUp\n\t\t\t\t\t}\">\n\t\t\t\t\t<ng-content *ngIf=\"open\"></ng-content>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<hr *ngIf=\"fluid\" class=\"cds--list-box__divider\" />\n\t\t\t<div\n\t\t\t\t*ngIf=\"helperText && !invalid && !warn && !fluid\"\n\t\t\t\tclass=\"cds--form__helper-text\"\n\t\t\t\t[ngClass]=\"{'cds--form__helper-text--disabled': disabled}\">\n\t\t\t\t<ng-container *ngIf=\"!isTemplate(helperText)\">{{helperText}}</ng-container>\n\t\t\t\t<ng-template *ngIf=\"isTemplate(helperText)\" [ngTemplateOutlet]=\"helperText\"></ng-template>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"invalid\" class=\"cds--form-requirement\">\n\t\t\t\t<ng-container *ngIf=\"!isTemplate(invalidText)\">{{ invalidText }}</ng-container>\n\t\t\t\t<ng-template *ngIf=\"isTemplate(invalidText)\" [ngTemplateOutlet]=\"invalidText\"></ng-template>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"!invalid && warn\" class=\"cds--form-requirement\">\n\t\t\t\t<ng-container *ngIf=\"!isTemplate(warnText)\">{{warnText}}</ng-container>\n\t\t\t\t<ng-template *ngIf=\"isTemplate(warnText)\" [ngTemplateOutlet]=\"warnText\"></ng-template>\n\t\t\t</div>\n\t\t</div>\n\t`,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: ComboBox,\n\t\t\tmulti: true\n\t\t}\n\t]\n})\nexport class ComboBox implements OnChanges, AfterViewInit, AfterContentInit, OnDestroy {\n\t/**\n\t * Text to show when nothing is selected.\n\t */\n\t@Input() set placeholder(value: string | Observable<string>) {\n\t\tthis._placeholder.override(value);\n\t}\n\n\tget placeholder() {\n\t\treturn this._placeholder.value;\n\t}\n\t/**\n\t * Value to display for accessibility purposes on the combobox control menu when closed\n\t */\n\t@Input() set openMenuAria(value: string | Observable<string>) {\n\t\tthis._openMenuAria.override(value);\n\t}\n\n\tget openMenuAria() {\n\t\treturn this._openMenuAria.value;\n\t}\n\t/**\n\t * Value to display for accessibility purposes on the combobox control menu when opened\n\t */\n\t@Input() set closeMenuAria(value: string | Observable<string>) {\n\t\tthis._closeMenuAria.override(value);\n\t}\n\n\tget closeMenuAria() {\n\t\treturn this._closeMenuAria.value;\n\t}\n\t/**\n\t * Value to display on the clear selections icon, when multi is selected\n\t */\n\t@Input() set clearSelectionsTitle(value: string | Observable<string>) {\n\t\tthis._clearSelectionsTitle.override(value);\n\t}\n\n\tget clearSelectionsTitle() {\n\t\treturn this._clearSelectionsTitle.value;\n\t}\n\t/**\n\t * Value to display for accessibility purposes to clear selections, when multi is selected\n\t */\n\t@Input() set clearSelectionsAria(value: string | Observable<string>) {\n\t\tthis._clearSelectionsAria.override(value);\n\t}\n\n\tget clearSelectionsAria() {\n\t\treturn this._clearSelectionsAria.value;\n\t}\n\t/**\n\t * Value to display on the clear the selected item icon, when single is selected\n\t */\n\t@Input() set clearSelectionTitle(value: string | Observable<string>) {\n\t\tthis._clearSelectionTitle.override(value);\n\t}\n\n\tget clearSelectionTitle() {\n\t\treturn this._clearSelectionTitle.value;\n\t}\n\t/**\n\t * Value to display for accessibility purposes on the clear the selected item icon, when single is selected\n\t */\n\t@Input() set clearSelectionAria(value: string | Observable<string>) {\n\t\tthis._clearSelectionAria.override(value);\n\t}\n\n\tget clearSelectionAria() {\n\t\treturn this._clearSelectionAria.value;\n\t}\n\tstatic comboBoxCount = 0;\n\t@Input() id = `combobox-${ComboBox.comboBoxCount++}`;\n\t@Input() labelId = `combobox-label-${ComboBox.comboBoxCount++}`;\n\t/**\n\t * List of items to fill the content with.\n\t *\n\t * **Example:**\n\t * ```javascript\n\t * items = [\n\t *\t\t{\n\t *\t\t\tcontent: \"Abacus\",\n\t *\t\t\tselected: false\n\t *\t\t},\n\t *\t\t{\n\t *\t\t\tcontent: \"Byte\",\n\t *\t\t\tselected: false,\n\t *\t\t},\n\t *\t\t{\n\t *\t\t\tcontent: \"Computer\",\n\t *\t\t\tselected: false\n\t *\t\t},\n\t *\t\t{\n\t *\t\t\tcontent: \"Digital\",\n\t *\t\t\tselected: false\n\t *\t\t}\n\t * ];\n\t * ```\n\t *\n\t */\n\t@Input() items: Array<ListItem> = [];\n\t/**\n\t * Combo box type (supporting single or multi selection of items).\n\t */\n\t@Input() type: \"single\" | \"multi\" = \"single\";\n\t/**\n\t * Combo box render size.\n\t */\n\t@Input() size: \"sm\" | \"md\" | \"lg\" = \"md\";\n\t/**\n\t * Specifies the property to be used as the return value to `ngModel`\n\t */\n\t@Input() itemValueKey: string;\n\t/**\n\t * Label for the combobox.\n\t */\n\t@Input() label: string | TemplateRef<any>;\n\t/**\n\t * Hide label while keeping it accessible for screen readers\n\t */\n\t@Input() hideLabel = false;\n\t/**\n\t * Sets the optional helper text.\n\t */\n\t@Input() helperText: string | TemplateRef<any>;\n\t/**\n\t * set to `true` to place the dropdown view inline with the component\n\t */\n\t@Input() appendInline: boolean = null;\n\t/**\n\t * Set to `true` to show the invalid state.\n\t */\n\t@Input() invalid = false;\n\t/**\n\t * Value displayed if combobox is in an invalid state.\n\t */\n\t@Input() invalidText: string | TemplateRef<any>;\n\t/**\n\t* Set to `true` to show a warning (contents set by warnText)\n\t*/\n\t@Input() warn = false;\n\t/**\n\t * Sets the warning text\n\t */\n\t@Input() warnText: string | TemplateRef<any>;\n\t/**\n\t * Max length value to limit input characters\n\t */\n\t@Input() maxLength: number = null;\n\t/**\n\t * @deprecated since v5 - Use `cdsLayer` directive instead\n\t */\n\t@Input() theme: \"light\" | \"dark\" = \"dark\";\n\t/**\n\t * Specify feedback (mode) of the selection.\n\t * `top`: selected item jumps to top\n\t * `fixed`: selected item stays at its position\n\t * `top-after-reopen`: selected item jump to top after reopen dropdown\n\t */\n\t@Input() selectionFeedback: \"top\" | \"fixed\" | \"top-after-reopen\" = \"top-after-reopen\";\n\t/**\n\t * Specify aria-autocomplete attribute of text input.\n\t * \"list\", is the expected value for a combobox that invokes a drop-down list\n\t */\n\t@Input() autocomplete = \"list\";\n\t/**\n\t * Overrides the automatic dropUp.\n\t */\n\t@Input() dropUp: boolean;\n\t/**\n\t * Set to `true` to disable combobox.\n\t */\n\t@Input() disabled = false;\n\t/**\n\t * Set to `true` for readonly state.\n\t */\n\t@Input() readonly = false;\n\t/**\n\t * Experimental: enable fluid state\n\t */\n\t@Input() fluid = false;\n\t/**\n\t * Emits a ListItem\n\t *\n\t * Example:\n\t * ```javascript\n\t * {\n\t * \t\tcontent: \"one\",\n\t * \t\tselected: true\n\t * }\n\t * ```\n\t */\n\t@Output() selected = new EventEmitter<ListItem | ListItem[]>();\n\t/**\n\t * Intended to be used to add items to the list.\n\t *\n\t * Emits an event that includes the current item list, the suggested index for the new item, and a simple ListItem\n\t *\n\t * Example:\n\t * ```javascript\n\t *\t{\n\t *\t\titems: [{content: \"one\", selected: true}, {content: \"two\", selected: true}],\n\t *\t\tindex: 1,\n\t *\t\tvalue: {\n\t *\t\t\tcontent: \"some user string\",\n\t *\t\t\tselected: false\n\t *\t\t}\n\t *\t}\n\t * ```\n\t *\n\t *\n\t * Example:\n\t * ```javascript\n\t * {\n\t *\tafter: 1,\n\t *\tvalue: \"some user string\"\n\t * }\n\t * ```\n\t */\n\t@Output() submit = new EventEmitter<{\n\t\titems: ListItem[],\n\t\tindex: number,\n\t\tvalue: {\n\t\t\tcontent: string,\n\t\t\tselected: boolean\n\t\t}\n\t}>();\n\t/** Emits an empty event when the menu is closed */\n\t@Output() close = new EventEmitter<void>();\n\t/** Emits the search string from the input */\n\t@Output() search = new EventEmitter<string>();\n\t/** Emits an event when the clear button is clicked. */\n\t@Output() clear = new EventEmitter<Event>();\n\t/** ContentChild reference to the instantiated dropdown list */\n\t@ContentChild(AbstractDropdownView, { static: true }) view: AbstractDropdownView;\n\t@ViewChild(\"dropdownMenu\") dropdownMenu;\n\t@ViewChild(\"input\", { static: true }) input: ElementRef;\n\t@ViewChild(\"listbox\", { static: true }) listbox: ElementRef;\n\t@HostBinding(\"class.cds--list-box__wrapper\") hostClass = true;\n\n\tpublic open = false;\n\n\tpublic showClearButton = false;\n\n\t/** Selected items for multi-select combo-boxes. */\n\tpublic pills = [];\n\t/** used to update the displayValue */\n\tpublic selectedValue = \"\";\n\n\toutsideClick = this._outsideClick.bind(this);\n\tkeyboardNav = this._keyboardNav.bind(this);\n\t/**\n\t * controls whether the `drop-up` class is applied\n\t */\n\t_dropUp = false;\n\n\tprotected noop = this._noop.bind(this);\n\tprotected onTouchedCallback: () => void = this._noop;\n\tprotected propagateChangeCallback: (_: any) => void = this._noop;\n\n\tprotected _placeholder = this.i18n.getOverridable(\"COMBOBOX.PLACEHOLDER\");\n\tprotected _closeMenuAria = this.i18n.getOverridable(\"COMBOBOX.A11Y.CLOSE_MENU\");\n\tprotected _openMenuAria = this.i18n.getOverridable(\"COMBOBOX.A11Y.OPEN_MENU\");\n\tprotected _clearSelectionsTitle = this.i18n.getOverridable(\"COMBOBOX.CLEAR_SELECTIONS\");\n\tprotected _clearSelectionsAria = this.i18n.getOverridable(\"COMBOBOX.A11Y.CLEAR_SELECTIONS\");\n\tprotected _clearSelectionTitle = this.i18n.getOverridable(\"COMBOBOX.CLEAR_SELECTED\");\n\tprotected _clearSelectionAria = this.i18n.getOverridable(\"COMBOBOX.A11Y.CLEAR_SELECTED\");\n\n\tprotected _isFocused = false;\n\n\t/**\n\t * Creates an instance of ComboBox.\n\t */\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected dropdownService: DropdownService,\n\t\tprotected i18n: I18n\n\t) {}\n\n\t/**\n\t * Lifecycle hook.\n\t * Updates pills if necessary.\n\t *\n\t */\n\tngOnChanges(changes) {\n\t\tif (changes.items) {\n\t\t\tthis.view.items = changes.items.currentValue;\n\t\t\tthis.updateSelected();\n\t\t\t// If new items are added into the combobox while there is search input,\n\t\t\t// repeat the search. Search should only trigger for type 'single' when there is no value selected.\n\t\t\tif (this.type === \"multi\" || (this.type === \"single\" && !this.selectedValue)) {\n\t\t\t\tthis.onSearch(this.input.nativeElement.value, false);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Sets initial state that depends on child components\n\t * Subscribes to select events and handles focus/filtering/initial list updates\n\t */\n\tngAfterContentInit() {\n\t\tif (this.view) {\n\t\t\tthis.view.type = this.type;\n\n\t\t\t// function to check if the event is organic (isUpdate === false) or programmatic\n\t\t\tconst isUpdate = event => event && event.isUpdate;\n\n\t\t\tthis.view.select.subscribe(event => {\n\t\t\t\tif (Array.isArray(event)) {\n\t\t\t\t\tthis.updatePills();\n\t\t\t\t\tif (!isUpdate(event)) {\n\t\t\t\t\t\tif (this.itemValueKey && this.view.getSelected()) {\n\t\t\t\t\t\t\tconst values = this.view.getSelected().map(item => item[this.itemValueKey]);\n\t\t\t\t\t\t\tthis.propagateChangeCallback(values);\n\t\t\t\t\t\t// otherwise just pass up the values from `getSelected`\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.propagateChangeCallback(this.view.getSelected());\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.selected.emit(event);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If type is single, dropdown list will emit an object\n\t\t\t\t\tif (event.item && event.item.selected) {\n\t\t\t\t\t\tthis.showClearButton = true;\n\t\t\t\t\t\tthis.selectedValue = event.item.content;\n\n\t\t\t\t\t\tif (!isUpdate(event)) {\n\t\t\t\t\t\t\tif (this.itemValueKey) {\n\t\t\t\t\t\t\t\tthis.propagateChangeCallback(event.item[this.itemValueKey]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.propagateChangeCallback(event.item);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.selectedValue = \"\";\n\t\t\t\t\t\tif (!isUpdate(event)) {\n\t\t\t\t\t\t\tthis.propagateChangeCallback(null);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// not guarding these since the nativeElement has to be loaded\n\t\t\t\t\t// for select to even fire\n\t\t\t\t\t// only focus for \"organic\" selections\n\t\t\t\t\tif (!isUpdate(event)) {\n\t\t\t\t\t\tthis.elementRef.nativeElement.querySelector(\"input\").focus();\n\t\t\t\t\t\tthis.view.filterBy(\"\");\n\t\t\t\t\t\tthis.selected.emit(event.item);\n\t\t\t\t\t}\n\t\t\t\t\tthis.closeDropdown();\n\t\t\t\t}\n\t\t\t});\n\t\t\t// update the rest of combobox with any pre-selected items\n\t\t\t// setTimeout just defers the call to the next check cycle\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.updateSelected();\n\t\t\t});\n\n\t\t\tthis.view.blurIntent.pipe(filter(v => v === \"top\")).subscribe(() => {\n\t\t\t\tthis.elementRef.nativeElement.querySelector(\".cds--text-input\").focus();\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Binds event handlers against the rendered view\n\t */\n\tngAfterViewInit() {\n\t\t// if appendInline is default valued (null) we should:\n\t\t// 1. if there are scrollable parents (not including body) don't append inline\n\t\t// this should also cover the case where the dropdown is in a modal\n\t\t// (where we _do_ want to append to the placeholder)\n\t\tif (this.appendInline === null && hasScrollableParents(this.elementRef.nativeElement)) {\n\t\t\tthis.appendInline = false;\n\t\t// 2. otherwise we should append inline\n\t\t} else if (this.appendInline === null) {\n\t\t\tthis.appendInline = true;\n\t\t}\n\t}\n\n\t/**\n\t * Removing the `Dropdown` from the body if it is appended to the body.\n\t */\n\tngOnDestroy() {\n\t\tif (!this.appendInline) {\n\t\t\tthis._appendToDropdown();\n\t\t}\n\t}\n\n\t/**\n\t * Handles `Escape/Tab` key closing the dropdown, and arrow up/down focus to/from the dropdown list.\n\t */\n\t@HostListener(\"keydown\", [\"$event\"])\n\thostkeys(ev: KeyboardEvent) {\n\t\tif (ev.key === \"Escape\") {\n\t\t\tthis.closeDropdown();\n\t\t} else if ((ev.key === \"ArrowDown\")\n\t\t\t&& (!this.dropdownMenu || !this.dropdownMenu.nativeElement.contains(ev.target))) {\n\t\t\tev.preventDefault();\n\t\t\tthis.openDropdown();\n\t\t\tsetTimeout(() => { this.view.initFocus(); }, 0);\n\t\t}\n\n\t\tif (\n\t\t\tthis.open && ev.key === \"Tab\" &&\n\t\t\t(this.dropdownMenu.nativeElement.contains(ev.target as Node) || ev.target === this.input.nativeElement)\n\t\t) {\n\t\t\tthis.closeDropdown();\n\t\t}\n\n\t\tif (this.open && ev.key === \"Tab\" && ev.shiftKey) {\n\t\t\tthis.closeDropdown();\n\t\t}\n\t}\n\n\t/*\n\t * no-op method for null event listeners, and other no op calls\n\t */\n\t_noop() {}\n\n\t/*\n\t * propagates the value provided from ngModel\n\t */\n\twriteValue(value: any) {\n\t\tif (this.type === \"single\") {\n\t\t\tif (this.itemValueKey) {\n\t\t\t\t// clone the specified item and update its state\n\t\t\t\tconst newValue = Object.assign({}, this.view.getListItems().find(item => item[this.itemValueKey] === value));\n\t\t\t\tnewValue.selected = true;\n\t\t\t\tthis.view.propagateSelected([newValue]);\n\t\t\t} else {\n\t\t\t\t// all items in propagateSelected must be iterable\n\t\t\t\tthis.view.propagateSelected([value || \"\"]);\n\t\t\t}\n\t\t\tthis.showClearButton = !!(value && this.view.getSelected().length);\n\t\t} else {\n\t\t\tif (this.itemValueKey) {\n\t\t\t\t// clone the items and update their state based on the received value array\n\t\t\t\t// this way we don't lose any additional metadata that may be passed in via the `items` Input\n\t\t\t\tlet newValues = [];\n\t\t\t\tfor (const v of value ?? []) {\n\t\t\t\t\tfor (const item of this.view.getListItems()) {\n\t\t\t\t\t\tif (item[this.itemValueKey] === v) {\n\t\t\t\t\t\t\tnewValues.push(Object.assign({}, item, { selected: true }));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.view.propagateSelected(newValues);\n\t\t\t} else {\n\t\t\t\tthis.view.propagateSelected(value ? value : [\"\"]);\n\t\t\t}\n\t\t}\n\t\tthis.updateSelected();\n\t}\n\n\tonBlur() {\n\t\tthis.onTouchedCallback();\n\t}\n\n\tregisterOnChange(fn: any) {\n\t\tthis.propagateChangeCallback = fn;\n\t}\n\n\tregisterOnTouched(fn: any) {\n\t\tthis.onTouchedCallback = fn;\n\t}\n\n\t/**\n\t * `ControlValueAccessor` method to programmatically disable the combobox.\n\t *\n\t * ex: `this.formGroup.get(\"myCoolCombobox\").disable();`\n\t */\n\tsetDisabledState(isDisabled: boolean) {\n\t\tthis.disabled = isDisabled;\n\t}\n\n\t/**\n\t * Called by `n-pill-input` when the selected pills have changed.\n\t */\n\tpublic updatePills() {\n\t\tthis.pills = this.view.getSelected() || [];\n\t\tthis.checkForReorder();\n\t}\n\n\tpublic clearSelected(event) {\n\t\tthis.items = this.items.map(item => {\n\t\t\tif (!item.disabled) {\n\t\t\t\titem.selected = false;\n\t\t\t}\n\t\t\treturn item;\n\t\t});\n\t\tthis.view.items = this.items;\n\t\tthis.updatePills();\n\t\t// clearSelected can only fire on type=multi\n\t\t// so we just emit getSelected() (just in case there's any disabled but selected items)\n\t\tconst selected = this.view.getSelected();\n\n\t\t// in case there are disabled items they should be mapped according to itemValueKey\n\t\tif (this.itemValueKey && selected) {\n\t\t\tconst values = selected.map((item) => item[this.itemValueKey]);\n\t\t\tthis.propagateChangeCallback(values);\n\t\t} else {\n\t\t\tthis.propagateChangeCallback(selected);\n\t\t}\n\n\t\tthis.selected.emit(selected as any);\n\t\tthis.clear.emit(event);\n\t}\n\n\t/**\n\t * Closes the dropdown and emits the close event.\n\t */\n\tpublic closeDropdown() {\n\t\tthis.open = false;\n\t\tthis.checkForReorder();\n\t\tthis.close.emit();\n\t\tif (!this.appendInline) {\n\t\t\tthis._appendToDropdown();\n\t\t}\n\n\t\tdocument.removeEventListener(\"click\", this.outsideClick, true);\n\t}\n\n\t/**\n\t * Opens the dropdown.\n\t */\n\tpublic openDropdown() {\n\t\tif (this.disabled || this.readonly) { return; }\n\t\tthis.open = true;\n\t\tthis._dropUp = false;\n\n\t\tif (!this.appendInline) {\n\t\t\tthis._appendToBody();\n\t\t}\n\n\t\tdocument.addEventListener(\"click\", this.outsideClick, true);\n\n\t\t// set the dropdown menu to drop up if it is near the bottom of the screen\n\t\t// setTimeout lets us do the calculations after it is visible in the DOM\n\t\tsetTimeout(() => {\n\t\t\tif (this.dropUp === null || this.dropUp === undefined) {\n\t\t\t\tthis._dropUp = this._shouldDropUp();\n\t\t\t}\n\t\t}, 0);\n\t}\n\n\t/**\n\t * Toggles the dropdown.\n\t */\n\tpublic toggleDropdown() {\n\t\tif (this.open) {\n\t\t\tthis.closeDropdown();\n\t\t} else {\n\t\t\tthis.openDropdown();\n\t\t}\n\t}\n\n\t/**\n\t * Sets the list group filter, and manages single select item selection.\n\t */\n\tpublic onSearch(searchString, shouldEmitSearch = true) {\n\t\tif (shouldEmitSearch) {\n\t\t\tthis.search.emit(searchString);\n\t\t}\n\t\tthis.showClearButton = !!searchString;\n\t\tthis.view.filterBy(searchString);\n\t\tif (searchString !== \"\") {\n\t\t\tif (!this.open) {\n\t\t\t\tthis.openDropdown();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.selectedValue = \"\";\n\t\t\tif (this.type === \"multi\" &&\n\t\t\t\t(this.selectionFeedback === \"top\" || this.selectionFeedback === \"top-after-reopen\")) {\n\t\t\t\tthis.view.reorderSelected();\n\t\t\t}\n\t\t}\n\t\tif (this.type === \"single\") {\n\t\t\t// deselect if the input doesn't match the content\n\t\t\t// of any given item\n\t\t\tconst matches = this.view.getListItems().some(item => item.content.toLowerCase().includes(searchString.toLowerCase()));\n\t\t\tif (!matches) {\n\t\t\t\tconst selected = this.view.getSelected();\n\t\t\t\tif (!selected || !selected[0]) {\n\t\t\t\t\tthis.view.filterBy(searchString);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Intended to be used to add items to the list.\n\t */\n\tpublic onSubmit(event: KeyboardEvent) {\n\t\tthis.submit.emit({\n\t\t\titems: this.view.getListItems(),\n\t\t\tindex: 0,\n\t\t\tvalue: {\n\t\t\t\tcontent: (event.target as HTMLInputElement).value,\n\t\t\t\tselected: false\n\t\t\t}\n\t\t});\n\t}\n\n\tclearInput(event) {\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\n\t\tif (this.disabled || this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.type === \"single\") { // don't want to clear selected or close if multi\n\t\t\tthis.clearSelected(event);\n\t\t\tthis.closeDropdown();\n\t\t}\n\n\t\tthis.selectedValue = \"\";\n\t\tthis.input.nativeElement.value = \"\";\n\n\t\tthis.showClearButton = false;\n\t\tthis.input.nativeElement.focus();\n\t\tthis.onSearch(this.input.nativeElement.value);\n\t}\n\n\tpublic isTemplate(value) {\n\t\treturn value instanceof TemplateRef;\n\t}\n\n\t/**\n\t * Handles keyboard events so users are controlling the `Dropdown` instead of unintentionally controlling outside elements.\n\t */\n\t_keyboardNav(event: KeyboardEvent) {\n\t\tif ((event.key === \"Escape\") && this.open) {\n\t\t\tevent.stopImmediatePropagation(); // don't unintentionally close modal if inside of it\n\t\t}\n\t\tif (event.key === \"Escape\") {\n\t\t\tevent.preventDefault();\n\t\t\tthis.closeDropdown();\n\t\t\tthis.input.nativeElement.focus();\n\t\t} else if (this.open && event.key === \"Tab\") {\n\t\t\t// this way focus will start on the next focusable item from the dropdown\n\t\t\t// not the top of the body!\n\t\t\tthis.input.nativeElement.focus();\n\t\t\tthis.input.nativeElement.dispatchEvent(new KeyboardEvent(\"keydown\", { bubbles: true, cancelable: true, key: \"Tab\" }));\n\t\t\tthis.closeDropdown();\n\t\t}\n\t}\n\n\t/**\n\t * Creates the `Dropdown` list as an element that is appended to the DOM body.\n\t */\n\t_appendToBody() {\n\t\tthis.dropdownService.appendToBody(\n\t\t\tthis.listbox.nativeElement,\n\t\t\tthis.dropdownMenu.nativeElement,\n\t\t\t`${this.elementRef.nativeElement.className}${this.open ? \" cds--list-box--expanded\" : \"\"}`);\n\t\tthis.dropdownMenu.nativeElement.addEventListener(\"keydown\", this.keyboardNav, true);\n\t}\n\n\t/**\n\t * Creates the `Dropdown` list appending it to the dropdown parent object instead of the body.\n\t */\n\t_appendToDropdown() {\n\t\tthis.dropdownService.appendToDropdown(this.elementRef.nativeElement);\n\t\tthis.dropdownMenu.nativeElement.removeEventListener(\"keydown\", this.keyboardNav, true);\n\t}\n\n\t/**\n\t * Detects whether or not the `Dropdown` list is visible within all scrollable parents.\n\t * This can be overridden by passing in a value to the `dropUp` input.\n\t */\n\t_shouldDropUp() {\n\t\t// check if dropdownMenu exists first.\n\t\tconst menu = this.dropdownMenu && this.dropdownMenu.nativeElement.querySelector(\".cds--list-box__menu\");\n\t\t// check if menu exists first.\n\t\tconst menuRect = menu && menu.getBoundingClientRect();\n\t\tif (menu && menuRect) {\n\t\t\tconst scrollableParents = getScrollableParents(menu);\n\t\t\treturn scrollableParents.reduce((shouldDropUp: boolean, parent: HTMLElement) => {\n\t\t\t\tconst parentRect = parent.getBoundingClientRect();\n\t\t\t\tconst isBelowParent = !(menuRect.bottom <= parentRect.bottom);\n\t\t\t\treturn shouldDropUp || isBelowParent;\n\t\t\t}, false);\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Handles clicks outside of the `Dropdown` list.\n\t */\n\t_outsideClick(event) {\n\t\tif (!this.elementRef.nativeElement.contains(event.target) &&\n\t\t\t// if we're appendToBody the list isn't within the _elementRef,\n\t\t\t// so we've got to check if our target is possibly in there too.\n\t\t\t!this.dropdownMenu.nativeElement.contains(event.target)) {\n\t\t\tthis.closeDropdown();\n\t\t}\n\t}\n\n\thandleFocus(event: FocusEvent) {\n\t\tthis._isFocused = event.type === \"focus\";\n\t}\n\n\tprotected updateSelected() {\n\t\tconst selected = this.view.getSelected();\n\t\tif (this.type === \"multi\") {\n\t\t\tthis.updatePills();\n\t\t} else if (selected) {\n\t\t\tconst value = selected[0] ? selected[0].content : \"\";\n\t\t\tconst changeCallbackValue = selected[0] ? selected[0] : \"\";\n\t\t\tthis.selectedValue = value;\n\t\t\tthis.showClearButton = !!value;\n\t\t}\n\t}\n\n\tprotected checkForReorder() {\n\t\tconst topAfterReopen = !this.open && this.selectionFeedback === \"top-after-reopen\";\n\t\tif ((this.type === \"multi\") && (topAfterReopen || this.selectionFeedback === \"top\")) {\n\t\t\tthis.view.reorderSelected(true);\n\t\t}\n\t}\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { ComboBox } from \"./combobox.component\";\nimport { DropdownModule, DropdownService } from \"carbon-components-angular/dropdown\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\nimport { UtilsModule } from \"carbon-components-angular/utils\";\nimport { IconModule } from \"carbon-components-angular/icon\";\n\n@NgModule({\n\tdeclarations: [\n\t\tComboBox\n\t],\n\texports: [\n\t\tComboBox,\n\t\tDropdownModule\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tDropdownModule,\n\t\tI18nModule,\n\t\tUtilsModule,\n\t\tIconModule\n\t],\n\tproviders: [ DropdownService ]\n})\nexport class ComboBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}