carbon-components-angular 5.56.6 → 5.57.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/README.md +23 -6
  2. package/combo-button/combo-button.component.d.ts +99 -0
  3. package/combo-button/combo-button.module.d.ts +31 -0
  4. package/combo-button/index.d.ts +22 -0
  5. package/context-menu/context-menu-divider.component.d.ts +1 -1
  6. package/context-menu/context-menu-group.component.d.ts +1 -1
  7. package/context-menu/context-menu-item.component.d.ts +6 -1
  8. package/context-menu/context-menu.component.d.ts +11 -7
  9. package/context-menu/context-menu.types.d.ts +27 -0
  10. package/context-menu/index.d.ts +1 -0
  11. package/docs/documentation/components/Accordion.html +1 -1
  12. package/docs/documentation/components/AccordionItem.html +1 -1
  13. package/docs/documentation/components/ActionableNotification.html +1 -1
  14. package/docs/documentation/components/AlertModal.html +1 -1
  15. package/docs/documentation/components/BaseIconButton.html +1 -1
  16. package/docs/documentation/components/BaseNotification.html +1 -1
  17. package/docs/documentation/components/BaseTabHeader.html +1 -1
  18. package/docs/documentation/components/Breadcrumb.html +1 -1
  19. package/docs/documentation/components/BreadcrumbItemComponent.html +1 -1
  20. package/docs/documentation/components/ButtonSet.html +1 -1
  21. package/docs/documentation/components/Checkbox.html +1 -1
  22. package/docs/documentation/components/ClickableTile.html +1 -1
  23. package/docs/documentation/components/CodeSnippet.html +1 -1
  24. package/docs/documentation/components/ComboBox.html +1 -1
  25. package/docs/documentation/components/ComboButtonComponent.html +2264 -0
  26. package/docs/documentation/components/ContainedList.html +1 -1
  27. package/docs/documentation/components/ContainedListItem.html +1 -1
  28. package/docs/documentation/components/ContentSwitcher.html +1 -1
  29. package/docs/documentation/components/ContextMenuComponent.html +147 -164
  30. package/docs/documentation/components/ContextMenuDividerComponent.html +3 -3
  31. package/docs/documentation/components/ContextMenuGroupComponent.html +4 -4
  32. package/docs/documentation/components/ContextMenuItemComponent.html +218 -66
  33. package/docs/documentation/components/DatePicker.html +1 -1
  34. package/docs/documentation/components/DatePickerInput.html +1 -1
  35. package/docs/documentation/components/Dialog.html +1 -1
  36. package/docs/documentation/components/Documentation.html +1 -1
  37. package/docs/documentation/components/Dropdown.html +1 -1
  38. package/docs/documentation/components/DropdownList.html +1 -1
  39. package/docs/documentation/components/ExpandableTile.html +1 -1
  40. package/docs/documentation/components/FileComponent.html +1 -1
  41. package/docs/documentation/components/FileUploader.html +1 -1
  42. package/docs/documentation/components/Hamburger.html +1 -1
  43. package/docs/documentation/components/Header.html +1 -1
  44. package/docs/documentation/components/HeaderAction.html +1 -1
  45. package/docs/documentation/components/HeaderGlobal.html +1 -1
  46. package/docs/documentation/components/HeaderItem.html +1 -1
  47. package/docs/documentation/components/HeaderMenu.html +1 -1
  48. package/docs/documentation/components/HeaderNavigation.html +1 -1
  49. package/docs/documentation/components/IconButton.html +1 -1
  50. package/docs/documentation/components/InlineLoading.html +1 -1
  51. package/docs/documentation/components/Label.html +1 -1
  52. package/docs/documentation/components/ListColumn.html +1 -1
  53. package/docs/documentation/components/ListHeader.html +1 -1
  54. package/docs/documentation/components/ListRow.html +1 -1
  55. package/docs/documentation/components/Loading.html +1 -1
  56. package/docs/documentation/components/MenuButtonComponent.html +1931 -0
  57. package/docs/documentation/components/Modal.html +1 -1
  58. package/docs/documentation/components/ModalFooter.html +1 -1
  59. package/docs/documentation/components/ModalHeader.html +1 -1
  60. package/docs/documentation/components/Notification.html +1 -1
  61. package/docs/documentation/components/NumberComponent.html +1 -1
  62. package/docs/documentation/components/OverflowMenu.html +1 -1
  63. package/docs/documentation/components/OverflowMenuCustomPane.html +1 -1
  64. package/docs/documentation/components/OverflowMenuOption.html +1 -1
  65. package/docs/documentation/components/OverflowMenuPane.html +1 -1
  66. package/docs/documentation/components/Overlay.html +1 -1
  67. package/docs/documentation/components/Pagination.html +1 -1
  68. package/docs/documentation/components/PaginationNav.html +1 -1
  69. package/docs/documentation/components/PaginationNavItem.html +1 -1
  70. package/docs/documentation/components/PaginationOverflow.html +1 -1
  71. package/docs/documentation/components/Panel.html +1 -1
  72. package/docs/documentation/components/PasswordInputLabelComponent.html +1 -1
  73. package/docs/documentation/components/Placeholder.html +1 -1
  74. package/docs/documentation/components/PopoverContent.html +1 -1
  75. package/docs/documentation/components/ProgressBar.html +1 -1
  76. package/docs/documentation/components/ProgressIndicator.html +1 -1
  77. package/docs/documentation/components/Radio.html +1 -1
  78. package/docs/documentation/components/RadioGroup.html +1 -1
  79. package/docs/documentation/components/Search.html +1 -1
  80. package/docs/documentation/components/Select.html +1 -1
  81. package/docs/documentation/components/SelectionTile.html +1 -1
  82. package/docs/documentation/components/SideNav.html +1 -1
  83. package/docs/documentation/components/SideNavItem.html +1 -1
  84. package/docs/documentation/components/SideNavMenu.html +1 -1
  85. package/docs/documentation/components/SkeletonPlaceholder.html +1 -1
  86. package/docs/documentation/components/SkeletonText.html +1 -1
  87. package/docs/documentation/components/Slider.html +1 -1
  88. package/docs/documentation/components/StructuredList.html +1 -1
  89. package/docs/documentation/components/SwitcherList.html +1 -1
  90. package/docs/documentation/components/SwitcherListItem.html +1 -1
  91. package/docs/documentation/components/Tab.html +1 -1
  92. package/docs/documentation/components/TabHeaderGroup.html +1 -1
  93. package/docs/documentation/components/TabHeaders.html +1 -1
  94. package/docs/documentation/components/TabSkeleton.html +1 -1
  95. package/docs/documentation/components/Table.html +1 -1
  96. package/docs/documentation/components/TableBody.html +1 -1
  97. package/docs/documentation/components/TableCheckbox.html +1 -1
  98. package/docs/documentation/components/TableContainer.html +1 -1
  99. package/docs/documentation/components/TableData.html +1 -1
  100. package/docs/documentation/components/TableExpandButton.html +1 -1
  101. package/docs/documentation/components/TableExpandedRow.html +1 -1
  102. package/docs/documentation/components/TableHead.html +1 -1
  103. package/docs/documentation/components/TableHeadCell.html +1 -1
  104. package/docs/documentation/components/TableHeadCheckbox.html +1 -1
  105. package/docs/documentation/components/TableHeadExpand.html +1 -1
  106. package/docs/documentation/components/TableHeader.html +1 -1
  107. package/docs/documentation/components/TableRadio.html +1 -1
  108. package/docs/documentation/components/TableRowComponent.html +1 -1
  109. package/docs/documentation/components/TableToolbar.html +1 -1
  110. package/docs/documentation/components/TableToolbarActions.html +1 -1
  111. package/docs/documentation/components/TableToolbarContent.html +1 -1
  112. package/docs/documentation/components/TableToolbarSearch.html +1 -1
  113. package/docs/documentation/components/Tabs.html +1 -1
  114. package/docs/documentation/components/Tag.html +1 -1
  115. package/docs/documentation/components/TagFilter.html +1 -1
  116. package/docs/documentation/components/TagOperationalComponent.html +1 -1
  117. package/docs/documentation/components/TagSelectableComponent.html +1 -1
  118. package/docs/documentation/components/TextInputLabelComponent.html +1 -1
  119. package/docs/documentation/components/TextareaLabelComponent.html +1 -1
  120. package/docs/documentation/components/Tile.html +1 -1
  121. package/docs/documentation/components/TileGroup.html +1 -1
  122. package/docs/documentation/components/TimePicker.html +1 -1
  123. package/docs/documentation/components/TimePickerSelect.html +1 -1
  124. package/docs/documentation/components/Toast.html +1 -1
  125. package/docs/documentation/components/Toggle.html +1 -1
  126. package/docs/documentation/components/Toggletip.html +4 -4
  127. package/docs/documentation/components/Tooltip.html +1 -1
  128. package/docs/documentation/components/TooltipDefinition.html +1 -1
  129. package/docs/documentation/components/TreeNodeComponent.html +1 -1
  130. package/docs/documentation/components/TreeViewComponent.html +1 -1
  131. package/docs/documentation/coverage.html +40 -4
  132. package/docs/documentation/dependencies.html +1 -1
  133. package/docs/documentation/graph/dependencies.svg +3058 -2934
  134. package/docs/documentation/index.html +17 -6
  135. package/docs/documentation/interfaces/ItemClickEvent.html +437 -0
  136. package/docs/documentation/js/menu-wc.js +37 -0
  137. package/docs/documentation/js/menu-wc_es5.js +1 -1
  138. package/docs/documentation/js/search/search_index.js +2 -2
  139. package/docs/documentation/miscellaneous/typealiases.html +42 -0
  140. package/docs/documentation/modules/ComboBoxModule/dependencies.svg +4 -4
  141. package/docs/documentation/modules/ComboBoxModule.html +4 -4
  142. package/docs/documentation/modules/ComboButtonModule/dependencies.svg +106 -0
  143. package/docs/documentation/modules/ComboButtonModule.html +397 -0
  144. package/docs/documentation/modules/DatePickerInputModule/dependencies.svg +4 -4
  145. package/docs/documentation/modules/DatePickerInputModule.html +4 -4
  146. package/docs/documentation/modules/DatePickerModule/dependencies.svg +4 -4
  147. package/docs/documentation/modules/DatePickerModule.html +4 -4
  148. package/docs/documentation/modules/GridModule/dependencies.svg +60 -60
  149. package/docs/documentation/modules/GridModule.html +60 -60
  150. package/docs/documentation/modules/LoadingModule/dependencies.svg +4 -4
  151. package/docs/documentation/modules/LoadingModule.html +4 -4
  152. package/docs/documentation/modules/MenuButtonModule/dependencies.svg +106 -0
  153. package/docs/documentation/modules/MenuButtonModule.html +398 -0
  154. package/docs/documentation/modules/NumberModule/dependencies.svg +4 -4
  155. package/docs/documentation/modules/NumberModule.html +4 -4
  156. package/docs/documentation/modules/ProgressIndicatorModule/dependencies.svg +4 -4
  157. package/docs/documentation/modules/ProgressIndicatorModule.html +4 -4
  158. package/docs/documentation/modules/RadioModule/dependencies.svg +62 -58
  159. package/docs/documentation/modules/RadioModule.html +62 -58
  160. package/docs/documentation/modules/SearchModule/dependencies.svg +4 -4
  161. package/docs/documentation/modules/SearchModule.html +4 -4
  162. package/docs/documentation/modules/SelectModule/dependencies.svg +43 -43
  163. package/docs/documentation/modules/SelectModule.html +43 -43
  164. package/docs/documentation/modules/SliderModule/dependencies.svg +6 -6
  165. package/docs/documentation/modules/SliderModule.html +6 -6
  166. package/docs/documentation/modules/TagModule/dependencies.svg +37 -37
  167. package/docs/documentation/modules/TagModule.html +37 -37
  168. package/docs/documentation/modules/TilesModule/dependencies.svg +4 -4
  169. package/docs/documentation/modules/TilesModule.html +4 -4
  170. package/docs/documentation/modules/TimePickerModule/dependencies.svg +6 -6
  171. package/docs/documentation/modules/TimePickerModule.html +6 -6
  172. package/docs/documentation/modules/TimePickerSelectModule/dependencies.svg +4 -4
  173. package/docs/documentation/modules/TimePickerSelectModule.html +4 -4
  174. package/docs/documentation/modules/ToggleModule/dependencies.svg +4 -4
  175. package/docs/documentation/modules/ToggleModule.html +4 -4
  176. package/docs/documentation/modules/ToggletipModule/dependencies.svg +39 -39
  177. package/docs/documentation/modules/ToggletipModule.html +39 -39
  178. package/docs/documentation/modules/TooltipModule/dependencies.svg +29 -29
  179. package/docs/documentation/modules/TooltipModule.html +29 -29
  180. package/docs/documentation/modules/TreeviewModule/dependencies.svg +36 -36
  181. package/docs/documentation/modules/TreeviewModule.html +36 -36
  182. package/docs/documentation/modules.html +34 -0
  183. package/docs/documentation/overview.html +3061 -2937
  184. package/docs/documentation.json +1937 -498
  185. package/docs/storybook/1125.37c137fa.iframe.bundle.js +1 -0
  186. package/docs/storybook/4292.3a543fed.iframe.bundle.js +1 -0
  187. package/docs/storybook/6702.f2acb76e.iframe.bundle.js +1 -0
  188. package/docs/storybook/combo-button-combo-button-stories.17bfb9ad.iframe.bundle.js +1 -0
  189. package/docs/storybook/context-menu-context-menu-stories.eb5edb41.iframe.bundle.js +1 -0
  190. package/docs/storybook/iframe.html +2 -2
  191. package/docs/storybook/index.json +1 -1
  192. package/docs/storybook/main.d513967b.iframe.bundle.js +1 -0
  193. package/docs/storybook/menu-button-menu-button-stories.869bfd47.iframe.bundle.js +1 -0
  194. package/docs/storybook/popover-popover-stories.ea5149e0.iframe.bundle.js +1 -0
  195. package/docs/storybook/project.json +1 -1
  196. package/docs/storybook/runtime~main.6e5bcadd.iframe.bundle.js +1 -0
  197. package/docs/storybook/stories.json +1 -1
  198. package/docs/storybook/tag-tag-stories.7b925787.iframe.bundle.js +1 -0
  199. package/docs/storybook/{toggletip-toggletip-stories.f20fbe75.iframe.bundle.js → toggletip-toggletip-stories.44da6843.iframe.bundle.js} +1 -1
  200. package/esm2020/combo-button/carbon-components-angular-combo-button.mjs +5 -0
  201. package/esm2020/combo-button/combo-button.component.mjs +302 -0
  202. package/esm2020/combo-button/combo-button.module.mjs +32 -0
  203. package/esm2020/combo-button/index.mjs +3 -0
  204. package/esm2020/context-menu/context-menu-divider.component.mjs +3 -3
  205. package/esm2020/context-menu/context-menu-group.component.mjs +3 -3
  206. package/esm2020/context-menu/context-menu-item.component.mjs +33 -3
  207. package/esm2020/context-menu/context-menu.component.mjs +27 -20
  208. package/esm2020/context-menu/context-menu.types.mjs +2 -0
  209. package/esm2020/context-menu/index.mjs +2 -1
  210. package/esm2020/index.mjs +2 -1
  211. package/esm2020/menu-button/carbon-components-angular-menu-button.mjs +5 -0
  212. package/esm2020/menu-button/index.mjs +3 -0
  213. package/esm2020/menu-button/menu-button.component.mjs +265 -0
  214. package/esm2020/menu-button/menu-button.module.mjs +33 -0
  215. package/esm2020/toggletip/toggletip.component.mjs +3 -3
  216. package/fesm2015/carbon-components-angular-combo-button.mjs +338 -0
  217. package/fesm2015/carbon-components-angular-combo-button.mjs.map +1 -0
  218. package/fesm2015/carbon-components-angular-context-menu.mjs +62 -25
  219. package/fesm2015/carbon-components-angular-context-menu.mjs.map +1 -1
  220. package/fesm2015/carbon-components-angular-menu-button.mjs +302 -0
  221. package/fesm2015/carbon-components-angular-menu-button.mjs.map +1 -0
  222. package/fesm2015/carbon-components-angular-toggletip.mjs +2 -2
  223. package/fesm2015/carbon-components-angular-toggletip.mjs.map +1 -1
  224. package/fesm2015/carbon-components-angular.mjs +1 -0
  225. package/fesm2015/carbon-components-angular.mjs.map +1 -1
  226. package/fesm2020/carbon-components-angular-combo-button.mjs +337 -0
  227. package/fesm2020/carbon-components-angular-combo-button.mjs.map +1 -0
  228. package/fesm2020/carbon-components-angular-context-menu.mjs +62 -25
  229. package/fesm2020/carbon-components-angular-context-menu.mjs.map +1 -1
  230. package/fesm2020/carbon-components-angular-menu-button.mjs +301 -0
  231. package/fesm2020/carbon-components-angular-menu-button.mjs.map +1 -0
  232. package/fesm2020/carbon-components-angular-toggletip.mjs +2 -2
  233. package/fesm2020/carbon-components-angular-toggletip.mjs.map +1 -1
  234. package/fesm2020/carbon-components-angular.mjs +1 -0
  235. package/fesm2020/carbon-components-angular.mjs.map +1 -1
  236. package/index.d.ts +1 -0
  237. package/menu-button/index.d.ts +22 -0
  238. package/menu-button/menu-button.component.d.ts +88 -0
  239. package/menu-button/menu-button.module.d.ts +31 -0
  240. package/package.json +18 -2
  241. package/docs/storybook/1562.1e6a79b6.iframe.bundle.js +0 -1
  242. package/docs/storybook/6702.8b6fb391.iframe.bundle.js +0 -1
  243. package/docs/storybook/context-menu-context-menu-stories.7c62ce72.iframe.bundle.js +0 -1
  244. package/docs/storybook/main.9bc55d67.iframe.bundle.js +0 -1
  245. package/docs/storybook/popover-popover-stories.a91784a3.iframe.bundle.js +0 -1
  246. package/docs/storybook/runtime~main.31991a82.iframe.bundle.js +0 -1
  247. package/docs/storybook/tag-tag-stories.c5c2cc86.iframe.bundle.js +0 -1
@@ -880,6 +880,66 @@
880
880
  "methods": [],
881
881
  "extends": []
882
882
  },
883
+ {
884
+ "name": "ItemClickEvent",
885
+ "id": "interface-ItemClickEvent-c8501f265294441e5f0427089a0c8204448c2ab6dd441f4ac2e46f26e0848b478b2b79365a7bdb5c03729f2819199405917a6192d839956d9c841e2a47e8d1fe",
886
+ "file": "src/context-menu/context-menu.types.ts",
887
+ "deprecated": false,
888
+ "deprecationMessage": "",
889
+ "type": "interface",
890
+ "sourceCode": "export interface ItemClickEvent {\n\ttype: null | \"checkbox\" | \"radio\";\n\tlabel: string;\n\tinfo: string;\n\tvalue: string;\n\tevent: MouseEvent & KeyboardEvent;\n}\n",
891
+ "properties": [
892
+ {
893
+ "name": "event",
894
+ "deprecated": false,
895
+ "deprecationMessage": "",
896
+ "type": "",
897
+ "optional": false,
898
+ "description": "",
899
+ "line": 6
900
+ },
901
+ {
902
+ "name": "info",
903
+ "deprecated": false,
904
+ "deprecationMessage": "",
905
+ "type": "string",
906
+ "optional": false,
907
+ "description": "",
908
+ "line": 4
909
+ },
910
+ {
911
+ "name": "label",
912
+ "deprecated": false,
913
+ "deprecationMessage": "",
914
+ "type": "string",
915
+ "optional": false,
916
+ "description": "",
917
+ "line": 3
918
+ },
919
+ {
920
+ "name": "type",
921
+ "deprecated": false,
922
+ "deprecationMessage": "",
923
+ "type": "null | \"checkbox\" | \"radio\"",
924
+ "optional": false,
925
+ "description": "",
926
+ "line": 2
927
+ },
928
+ {
929
+ "name": "value",
930
+ "deprecated": false,
931
+ "deprecationMessage": "",
932
+ "type": "string",
933
+ "optional": false,
934
+ "description": "",
935
+ "line": 5
936
+ }
937
+ ],
938
+ "indexSignatures": [],
939
+ "kind": 171,
940
+ "methods": [],
941
+ "extends": []
942
+ },
883
943
  {
884
944
  "name": "ListItem",
885
945
  "id": "interface-ListItem-043fe08147662c52d17dac8302eb87bf3ba4a5588b939c29ee862cf6e869f0d5de5011495bdd5cbfe9c10908c53b7368cba80937b1e840c02f1d278a09cc6579",
@@ -24622,6 +24682,568 @@
24622
24682
  }
24623
24683
  }
24624
24684
  },
24685
+ {
24686
+ "name": "ComboButtonComponent",
24687
+ "id": "component-ComboButtonComponent-a6d257c42463e5b1a3621fb09c5cf059d94e790f4dbe949c6c47fc4a0d8110f4cba34c7675e9c7a61cd7fa82c2cc86c121bc1fb8d8335d18a6472e1ab91cd0a7",
24688
+ "file": "src/combo-button/combo-button.component.ts",
24689
+ "changeDetection": "ChangeDetectionStrategy.OnPush",
24690
+ "encapsulation": [],
24691
+ "entryComponents": [],
24692
+ "inputs": [],
24693
+ "outputs": [],
24694
+ "providers": [],
24695
+ "selector": "cds-combo-button",
24696
+ "styleUrls": [],
24697
+ "styles": [],
24698
+ "template": "<div class=\"cds--combo-button__primary-action\" [attr.aria-owns]=\"open ? comboId : undefined\">\n\t<button\n\t\tcdsButton=\"primary\"\n\t\t[size]=\"size\"\n\t\t[attr.title]=\"label\"\n\t\t[disabled]=\"disabled\"\n\t\ttype=\"button\"\n\t\t(click)=\"onActionClick($event)\">\n\t\t{{label}}\n\t</button>\n</div>\n<cds-icon-button\n\t[buttonNgClass]=\"{ 'cds--combo-button__trigger': true }\"\n\t[buttonAttributes]=\"{\n\t\t'aria-haspopup': true,\n\t\t'aria-expanded': open,\n\t\t'aria-controls': open ? comboId : undefined\n\t}\"\n\t[size]=\"size\"\n\t[description]=\"description\"\n\t[disabled]=\"disabled\"\n\t[autoAlign]=\"tooltipAutoAlign\"\n\t[align]=\"tooltipPlacement\"\n\t(click)=\"toggleMenu()\">\n\t<svg\n\t\tcdsIcon=\"chevron--down\"\n\t\tsize=\"16\">\n\t</svg>\n</cds-icon-button>\n\n<ng-template #menuTemplate>\n\t<cds-menu\n\t\tmode=\"basic\"\n\t\t[size]=\"size\"\n\t\t[open]=\"open\"\n\t\t[attr.id]=\"comboId\">\n\t\t<ng-content select=\"cds-menu-item, cds-menu-divider\"></ng-content>\n\t</cds-menu>\n</ng-template>\n\t",
24699
+ "templateUrl": [],
24700
+ "viewProviders": [],
24701
+ "hostDirectives": [],
24702
+ "inputsClass": [
24703
+ {
24704
+ "name": "comboId",
24705
+ "defaultValue": "`combo-button-${ComboButtonComponent.comboButtonCounter++}`",
24706
+ "deprecated": false,
24707
+ "deprecationMessage": "",
24708
+ "line": 79,
24709
+ "type": "string",
24710
+ "decorators": []
24711
+ },
24712
+ {
24713
+ "name": "description",
24714
+ "deprecated": false,
24715
+ "deprecationMessage": "",
24716
+ "line": 97,
24717
+ "type": "string",
24718
+ "decorators": []
24719
+ },
24720
+ {
24721
+ "name": "disabled",
24722
+ "defaultValue": "false",
24723
+ "deprecated": false,
24724
+ "deprecationMessage": "",
24725
+ "line": 95,
24726
+ "type": "boolean",
24727
+ "decorators": []
24728
+ },
24729
+ {
24730
+ "name": "label",
24731
+ "deprecated": false,
24732
+ "deprecationMessage": "",
24733
+ "line": 94,
24734
+ "type": "string",
24735
+ "decorators": []
24736
+ },
24737
+ {
24738
+ "name": "menuAlignment",
24739
+ "defaultValue": "\"bottom\"",
24740
+ "deprecated": false,
24741
+ "deprecationMessage": "",
24742
+ "line": 96,
24743
+ "type": "ComboButtonPlacement",
24744
+ "decorators": []
24745
+ },
24746
+ {
24747
+ "name": "open",
24748
+ "defaultValue": "false",
24749
+ "deprecated": false,
24750
+ "deprecationMessage": "",
24751
+ "line": 100,
24752
+ "type": "boolean",
24753
+ "decorators": []
24754
+ },
24755
+ {
24756
+ "name": "size",
24757
+ "defaultValue": "\"lg\"",
24758
+ "deprecated": false,
24759
+ "deprecationMessage": "",
24760
+ "line": 93,
24761
+ "type": "\"sm\" | \"md\" | \"lg\"",
24762
+ "decorators": []
24763
+ },
24764
+ {
24765
+ "name": "tooltipAutoAlign",
24766
+ "defaultValue": "false",
24767
+ "deprecated": false,
24768
+ "deprecationMessage": "",
24769
+ "line": 98,
24770
+ "type": "boolean",
24771
+ "decorators": []
24772
+ },
24773
+ {
24774
+ "name": "tooltipPlacement",
24775
+ "defaultValue": "\"bottom\"",
24776
+ "deprecated": false,
24777
+ "deprecationMessage": "",
24778
+ "line": 99,
24779
+ "type": "string",
24780
+ "decorators": []
24781
+ }
24782
+ ],
24783
+ "outputsClass": [
24784
+ {
24785
+ "name": "actionClick",
24786
+ "defaultValue": "new EventEmitter<Event>()",
24787
+ "deprecated": false,
24788
+ "deprecationMessage": "",
24789
+ "line": 101,
24790
+ "type": "EventEmitter"
24791
+ }
24792
+ ],
24793
+ "propertiesClass": [
24794
+ {
24795
+ "name": "comboButtonContainer",
24796
+ "defaultValue": "true",
24797
+ "deprecated": false,
24798
+ "deprecationMessage": "",
24799
+ "type": "",
24800
+ "optional": false,
24801
+ "description": "",
24802
+ "line": 102,
24803
+ "decorators": [
24804
+ {
24805
+ "name": "HostBinding",
24806
+ "stringifiedArguments": "'class.cds--combo-button__container'"
24807
+ }
24808
+ ],
24809
+ "modifierKind": [
24810
+ 170
24811
+ ]
24812
+ },
24813
+ {
24814
+ "name": "comboButtonCounter",
24815
+ "defaultValue": "0",
24816
+ "deprecated": false,
24817
+ "deprecationMessage": "",
24818
+ "type": "number",
24819
+ "optional": false,
24820
+ "description": "",
24821
+ "line": 78,
24822
+ "modifierKind": [
24823
+ 126
24824
+ ]
24825
+ },
24826
+ {
24827
+ "name": "menuTemplate",
24828
+ "deprecated": false,
24829
+ "deprecationMessage": "",
24830
+ "type": "TemplateRef<any>",
24831
+ "optional": false,
24832
+ "description": "",
24833
+ "line": 110,
24834
+ "decorators": [
24835
+ {
24836
+ "name": "ViewChild",
24837
+ "stringifiedArguments": "'menuTemplate'"
24838
+ }
24839
+ ],
24840
+ "modifierKind": [
24841
+ 170
24842
+ ]
24843
+ }
24844
+ ],
24845
+ "methodsClass": [
24846
+ {
24847
+ "name": "cleanUp",
24848
+ "args": [],
24849
+ "optional": false,
24850
+ "returnType": "void",
24851
+ "typeParameters": [],
24852
+ "line": 188,
24853
+ "deprecated": false,
24854
+ "deprecationMessage": "",
24855
+ "rawdescription": "\n\nClean up `autoUpdate` if auto alignment is enabled\n",
24856
+ "description": "<p>Clean up <code>autoUpdate</code> if auto alignment is enabled</p>\n"
24857
+ },
24858
+ {
24859
+ "name": "handleFocusOut",
24860
+ "args": [
24861
+ {
24862
+ "name": "event",
24863
+ "type": "",
24864
+ "deprecated": false,
24865
+ "deprecationMessage": ""
24866
+ }
24867
+ ],
24868
+ "optional": false,
24869
+ "returnType": "void",
24870
+ "typeParameters": [],
24871
+ "line": 177,
24872
+ "deprecated": false,
24873
+ "deprecationMessage": "",
24874
+ "rawdescription": "\n\nOn body click, close the menu\n",
24875
+ "description": "<p>On body click, close the menu</p>\n",
24876
+ "jsdoctags": [
24877
+ {
24878
+ "name": {
24879
+ "pos": 4675,
24880
+ "end": 4680,
24881
+ "flags": 16842752,
24882
+ "modifierFlagsCache": 0,
24883
+ "transformFlags": 0,
24884
+ "kind": 80,
24885
+ "escapedText": "event"
24886
+ },
24887
+ "type": "",
24888
+ "deprecated": false,
24889
+ "deprecationMessage": "",
24890
+ "tagName": {
24891
+ "pos": 4669,
24892
+ "end": 4674,
24893
+ "flags": 16842752,
24894
+ "modifierFlagsCache": 0,
24895
+ "transformFlags": 0,
24896
+ "kind": 80,
24897
+ "escapedText": "param"
24898
+ },
24899
+ "comment": ""
24900
+ }
24901
+ ]
24902
+ },
24903
+ {
24904
+ "name": "handleMenuItemClick",
24905
+ "args": [
24906
+ {
24907
+ "name": "event",
24908
+ "type": "ItemClickEvent",
24909
+ "deprecated": false,
24910
+ "deprecationMessage": ""
24911
+ }
24912
+ ],
24913
+ "optional": false,
24914
+ "returnType": "void",
24915
+ "typeParameters": [],
24916
+ "line": 164,
24917
+ "deprecated": false,
24918
+ "deprecationMessage": "",
24919
+ "rawdescription": "\n\nAs of now, menu button does not support nexted menu, on button click it should close\n",
24920
+ "description": "<p>As of now, menu button does not support nexted menu, on button click it should close</p>\n",
24921
+ "jsdoctags": [
24922
+ {
24923
+ "name": "event",
24924
+ "type": "ItemClickEvent",
24925
+ "deprecated": false,
24926
+ "deprecationMessage": "",
24927
+ "tagName": {
24928
+ "text": "param"
24929
+ }
24930
+ }
24931
+ ]
24932
+ },
24933
+ {
24934
+ "name": "onActionClick",
24935
+ "args": [
24936
+ {
24937
+ "name": "event",
24938
+ "type": "PointerEvent",
24939
+ "deprecated": false,
24940
+ "deprecationMessage": ""
24941
+ }
24942
+ ],
24943
+ "optional": false,
24944
+ "returnType": "void",
24945
+ "typeParameters": [],
24946
+ "line": 206,
24947
+ "deprecated": false,
24948
+ "deprecationMessage": "",
24949
+ "rawdescription": "\n\nOn action click, notify user\nIf the menu is open, close the menu\n",
24950
+ "description": "<p>On action click, notify user\nIf the menu is open, close the menu</p>\n",
24951
+ "jsdoctags": [
24952
+ {
24953
+ "name": {
24954
+ "pos": 5334,
24955
+ "end": 5339,
24956
+ "flags": 16842752,
24957
+ "modifierFlagsCache": 0,
24958
+ "transformFlags": 0,
24959
+ "kind": 80,
24960
+ "escapedText": "event"
24961
+ },
24962
+ "type": "PointerEvent",
24963
+ "deprecated": false,
24964
+ "deprecationMessage": "",
24965
+ "tagName": {
24966
+ "pos": 5328,
24967
+ "end": 5333,
24968
+ "flags": 16842752,
24969
+ "modifierFlagsCache": 0,
24970
+ "transformFlags": 0,
24971
+ "kind": 80,
24972
+ "escapedText": "param"
24973
+ },
24974
+ "comment": ""
24975
+ }
24976
+ ]
24977
+ },
24978
+ {
24979
+ "name": "recomputePosition",
24980
+ "args": [],
24981
+ "optional": false,
24982
+ "returnType": "void",
24983
+ "typeParameters": [],
24984
+ "line": 259,
24985
+ "deprecated": false,
24986
+ "deprecationMessage": "",
24987
+ "rawdescription": "\n\nCompute position of menu\n",
24988
+ "description": "<p>Compute position of menu</p>\n"
24989
+ },
24990
+ {
24991
+ "name": "roundByDPR",
24992
+ "args": [
24993
+ {
24994
+ "name": "value",
24995
+ "type": "",
24996
+ "deprecated": false,
24997
+ "deprecationMessage": ""
24998
+ }
24999
+ ],
25000
+ "optional": false,
25001
+ "returnType": "number",
25002
+ "typeParameters": [],
25003
+ "line": 249,
25004
+ "deprecated": false,
25005
+ "deprecationMessage": "",
25006
+ "jsdoctags": [
25007
+ {
25008
+ "name": "value",
25009
+ "type": "",
25010
+ "deprecated": false,
25011
+ "deprecationMessage": "",
25012
+ "tagName": {
25013
+ "text": "param"
25014
+ }
25015
+ }
25016
+ ]
25017
+ },
25018
+ {
25019
+ "name": "toggleMenu",
25020
+ "args": [],
25021
+ "optional": false,
25022
+ "returnType": "void",
25023
+ "typeParameters": [],
25024
+ "line": 218,
25025
+ "deprecated": false,
25026
+ "deprecationMessage": "",
25027
+ "rawdescription": "\n\nHandles emitting open/close event\n",
25028
+ "description": "<p>Handles emitting open/close event</p>\n"
25029
+ }
25030
+ ],
25031
+ "deprecated": false,
25032
+ "deprecationMessage": "",
25033
+ "hostBindings": [
25034
+ {
25035
+ "name": "attr.aria-owns",
25036
+ "deprecated": false,
25037
+ "deprecationMessage": "",
25038
+ "line": 106,
25039
+ "type": "string",
25040
+ "decorators": []
25041
+ },
25042
+ {
25043
+ "name": "class.cds--combo-button__container",
25044
+ "defaultValue": "true",
25045
+ "deprecated": false,
25046
+ "deprecationMessage": "",
25047
+ "line": 102,
25048
+ "type": "boolean",
25049
+ "decorators": []
25050
+ },
25051
+ {
25052
+ "name": "class.cds--combo-button__container--lg",
25053
+ "deprecated": false,
25054
+ "deprecationMessage": "",
25055
+ "line": 103,
25056
+ "type": "boolean",
25057
+ "decorators": []
25058
+ },
25059
+ {
25060
+ "name": "class.cds--combo-button__container--md",
25061
+ "deprecated": false,
25062
+ "deprecationMessage": "",
25063
+ "line": 104,
25064
+ "type": "boolean",
25065
+ "decorators": []
25066
+ },
25067
+ {
25068
+ "name": "class.cds--combo-button__container--sm",
25069
+ "deprecated": false,
25070
+ "deprecationMessage": "",
25071
+ "line": 105,
25072
+ "type": "boolean",
25073
+ "decorators": []
25074
+ }
25075
+ ],
25076
+ "hostListeners": [],
25077
+ "standalone": false,
25078
+ "imports": [],
25079
+ "description": "",
25080
+ "rawdescription": "\n",
25081
+ "type": "component",
25082
+ "sourceCode": "import {\n\tAfterViewInit,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tContentChildren,\n\tElementRef,\n\tEventEmitter,\n\tHostBinding,\n\tInput,\n\tNgZone,\n\tOnChanges,\n\tOnDestroy,\n\tOutput,\n\tQueryList,\n\tRenderer2,\n\tSimpleChanges,\n\tTemplateRef,\n\tViewChild,\n\tViewContainerRef\n} from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport {\n\tautoUpdate,\n\tcomputePosition,\n\tflip\n} from \"@floating-ui/dom\";\nimport { ContextMenuItemComponent, ItemClickEvent } from \"carbon-components-angular/context-menu\";\n\ntype ComboButtonPlacement = \"top\" | \"top-start\" | \"top-end\" | \"bottom\" | \"bottom-start\" | \"bottom-end\";\n\n@Component({\n\tselector: \"cds-combo-button\",\n\ttemplate: `\n\t\t<div class=\"cds--combo-button__primary-action\" [attr.aria-owns]=\"open ? comboId : undefined\">\n\t\t\t<button\n\t\t\t\tcdsButton=\"primary\"\n\t\t\t\t[size]=\"size\"\n\t\t\t\t[attr.title]=\"label\"\n\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t(click)=\"onActionClick($event)\">\n\t\t\t\t{{label}}\n\t\t\t</button>\n\t\t</div>\n\t\t<cds-icon-button\n\t\t\t[buttonNgClass]=\"{ 'cds--combo-button__trigger': true }\"\n\t\t\t[buttonAttributes]=\"{\n\t\t\t\t'aria-haspopup': true,\n\t\t\t\t'aria-expanded': open,\n\t\t\t\t'aria-controls': open ? comboId : undefined\n\t\t\t}\"\n\t\t\t[size]=\"size\"\n\t\t\t[description]=\"description\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t[autoAlign]=\"tooltipAutoAlign\"\n\t\t\t[align]=\"tooltipPlacement\"\n\t\t\t(click)=\"toggleMenu()\">\n\t\t\t<svg\n\t\t\t\tcdsIcon=\"chevron--down\"\n\t\t\t\tsize=\"16\">\n\t\t\t</svg>\n\t\t</cds-icon-button>\n\n\t\t<ng-template #menuTemplate>\n\t\t\t<cds-menu\n\t\t\t\tmode=\"basic\"\n\t\t\t\t[size]=\"size\"\n\t\t\t\t[open]=\"open\"\n\t\t\t\t[attr.id]=\"comboId\">\n\t\t\t\t<ng-content select=\"cds-menu-item, cds-menu-divider\"></ng-content>\n\t\t\t</cds-menu>\n\t\t</ng-template>\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ComboButtonComponent implements OnChanges, AfterViewInit, OnDestroy {\n\tstatic comboButtonCounter = 0;\n\t@Input() comboId = `combo-button-${ComboButtonComponent.comboButtonCounter++}`;\n\n\t// Listen for click & determine if menu should close\n\t@ContentChildren(ContextMenuItemComponent) set projectedMenuItems(itemList: QueryList<ContextMenuItemComponent>) {\n\t\t// Reset in case user dynamically updates menu item\n\t\tthis.subscriptions.forEach((sub) => sub?.unsubscribe());\n\t\tthis.subscriptions = [];\n\t\titemList.forEach((item) => {\n\t\t\tthis.subscriptions.push(\n\t\t\t\titem.itemClick.subscribe((clickEvent) => this.handleMenuItemClick(clickEvent))\n\t\t\t);\n\t\t});\n\t}\n\n\t@Input() size: \"sm\" | \"md\" | \"lg\" = \"lg\";\n\t@Input() label: string;\n\t@Input() disabled = false;\n\t@Input() menuAlignment: ComboButtonPlacement = \"bottom\";\n\t@Input() description: string;\n\t@Input() tooltipAutoAlign = false;\n\t@Input() tooltipPlacement = \"bottom\";\n\t@Input() @HostBinding(\"class.cds--combo-button__container--open\") open = false;\n\t@Output() actionClick = new EventEmitter<Event>();\n\t@HostBinding(\"class.cds--combo-button__container\") comboButtonContainer = true;\n\t@HostBinding(\"class.cds--combo-button__container--lg\") get sizeLg() { return this.size === \"lg\"; }\n\t@HostBinding(\"class.cds--combo-button__container--md\") get sizeMd() { return this.size === \"md\"; }\n\t@HostBinding(\"class.cds--combo-button__container--sm\") get sizeSm() { return this.size === \"sm\"; }\n\t@HostBinding(\"attr.aria-owns\") get ariaOwns() {\n\t\treturn this.open ? this.comboId : undefined;\n\t}\n\n\t@ViewChild(\"menuTemplate\") menuTemplate: TemplateRef<any>;\n\n\tprotected documentClick = this.handleFocusOut.bind(this);\n\tprotected unmountFloatingElement: Function;\n\n\tprivate subscriptions: Subscription[] = [];\n\tprivate _alignment: ComboButtonPlacement = \"bottom\";\n\tprivate menuRef: HTMLElement;\n\n\tconstructor(\n\t\tprotected ngZone: NgZone,\n\t\tprotected renderer: Renderer2,\n\t\tprotected hostElement: ElementRef,\n\t\tprotected viewContainerRef: ViewContainerRef,\n\t\tprotected changeDetectorRef: ChangeDetectorRef\n\t) { }\n\n\n\t/**\n\t * In case user updates alignment, store initial value.\n\t * This allows us to test user passed alignment on each open\n\t */\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes.menuAlignment) {\n\t\t\tthis._alignment = changes.menuAlignment.currentValue;\n\t\t}\n\t}\n\n\n\n\t/**\n\t * If user has passed in true for open, we dynamically open the menu\n\t */\n\tngAfterViewInit(): void {\n\t\tif (this.open) {\n\t\t\tthis.open = !this.open;\n\t\t\tthis.toggleMenu();\n\t\t}\n\t}\n\n\n\n\t/**\n\t* Clean up Floating-ui & subscriptions\n\t*/\n\tngOnDestroy(): void {\n\t\tthis.cleanUp();\n\t\tthis.subscriptions.forEach((sub) => sub.unsubscribe());\n\t}\n\n\n\t/**\n\t * As of now, menu button does not support nexted menu, on button click it should close\n\t */\n\thandleMenuItemClick(event: ItemClickEvent) {\n\t\t// If event is not type radio/checkbox, we close the menu\n\t\tif (!event.type) {\n\t\t\tthis.toggleMenu();\n\t\t}\n\t}\n\n\n\n\t/**\n\t * On body click, close the menu\n\t * @param event\n\t */\n\thandleFocusOut(event) {\n\t\tif (!this.hostElement.nativeElement.contains(event.target)) {\n\t\t\tthis.toggleMenu();\n\t\t}\n\t}\n\n\n\n\t/**\n\t * Clean up `autoUpdate` if auto alignment is enabled\n\t */\n\tcleanUp() {\n\t\tdocument.removeEventListener(\"click\", this.documentClick);\n\t\tif (this.unmountFloatingElement) {\n\t\t\tthis.menuRef.remove();\n\t\t\tthis.viewContainerRef.clear();\n\t\t\tthis.unmountFloatingElement();\n\t\t}\n\t\tthis.unmountFloatingElement = undefined;\n\t\t// On all instances of menu closing, make sure icon direction is correct\n\t\tthis.changeDetectorRef.markForCheck();\n\t}\n\n\n\t/**\n\t * On action click, notify user\n\t * If the menu is open, close the menu\n\t * @param event\n\t */\n\tonActionClick(event: PointerEvent) {\n\t\tif (this.open) {\n\t\t\tthis.toggleMenu();\n\t\t}\n\t\tthis.actionClick.emit(event);\n\t}\n\n\n\n\t/**\n\t * Handles emitting open/close event\n\t */\n\ttoggleMenu() {\n\t\tthis.open = !this.open;\n\t\tif (this.open) {\n\t\t\t// Render the template & append to view\n\t\t\tconst view = this.viewContainerRef.createEmbeddedView(this.menuTemplate);\n\t\t\tthis.menuRef = document.body.appendChild(view.rootNodes[0] as HTMLElement);\n\t\t\t// Assign button width to the menu ref to align with button\n\t\t\tObject.assign(this.menuRef.style, {\n\t\t\t\twidth: `${this.hostElement.nativeElement.clientWidth}px`,\n\t\t\t\ttop: \"0\",\n\t\t\t\tleft: \"0\"\n\t\t\t});\n\n\t\t\t// Reset & test alignment every open\n\t\t\tthis.menuAlignment = this._alignment;\n\n\t\t\tdocument.addEventListener(\"click\", this.documentClick);\n\n\t\t\t// Listen for events such as scrolling to keep menu aligned\n\t\t\tthis.unmountFloatingElement = autoUpdate(\n\t\t\t\tthis.hostElement.nativeElement,\n\t\t\t\tthis.menuRef,\n\t\t\t\tthis.recomputePosition.bind(this)\n\t\t\t);\n\t\t} else {\n\t\t\tthis.cleanUp();\n\t\t}\n\t}\n\n\n\n\troundByDPR(value) {\n\t\tconst dpr = window.devicePixelRatio || 1;\n\t\treturn Math.round(value * dpr) / dpr;\n\t}\n\n\n\n\t/**\n\t * Compute position of menu\n\t */\n\trecomputePosition() {\n\t\tif (this.menuTemplate && this.hostElement) {\n\t\t\t// Run outside of angular zone to avoid unnecessary change detection and rely on floating-ui\n\t\t\tthis.ngZone.runOutsideAngular(async () => {\n\t\t\t\tconst { x, y, placement } = await computePosition(\n\t\t\t\t\tthis.hostElement.nativeElement,\n\t\t\t\t\tthis.menuRef,\n\t\t\t\t\t{\n\t\t\t\t\t\tplacement: this.menuAlignment,\n\t\t\t\t\t\tstrategy: \"fixed\",\n\t\t\t\t\t\tmiddleware: [\n\t\t\t\t\t\t\tflip({ crossAxis: false })\n\t\t\t\t\t\t]\n\t\t\t\t\t});\n\n\t\t\t\tthis.menuAlignment = placement as ComboButtonPlacement;\n\n\t\t\t\t// Using CSSOM to manipulate CSS to avoid content security policy inline-src\n\t\t\t\t// https://github.com/w3c/webappsec-csp/issues/212\n\t\t\t\tObject.assign(this.menuRef.style, {\n\t\t\t\t\tposition: \"fixed\",\n\t\t\t\t\t// Using transform instead of top/left position to improve performance\n\t\t\t\t\ttransform: `translate(${this.roundByDPR(x)}px,${this.roundByDPR(y)}px)`\n\t\t\t\t});\n\t\t\t\tthis.changeDetectorRef.markForCheck();\n\t\t\t});\n\t\t}\n\t}\n}\n",
25083
+ "assetsDirs": [],
25084
+ "styleUrlsData": "",
25085
+ "stylesData": "",
25086
+ "constructorObj": {
25087
+ "name": "constructor",
25088
+ "description": "",
25089
+ "deprecated": false,
25090
+ "deprecationMessage": "",
25091
+ "args": [
25092
+ {
25093
+ "name": "ngZone",
25094
+ "type": "NgZone",
25095
+ "deprecated": false,
25096
+ "deprecationMessage": ""
25097
+ },
25098
+ {
25099
+ "name": "renderer",
25100
+ "type": "Renderer2",
25101
+ "deprecated": false,
25102
+ "deprecationMessage": ""
25103
+ },
25104
+ {
25105
+ "name": "hostElement",
25106
+ "type": "ElementRef",
25107
+ "deprecated": false,
25108
+ "deprecationMessage": ""
25109
+ },
25110
+ {
25111
+ "name": "viewContainerRef",
25112
+ "type": "ViewContainerRef",
25113
+ "deprecated": false,
25114
+ "deprecationMessage": ""
25115
+ },
25116
+ {
25117
+ "name": "changeDetectorRef",
25118
+ "type": "ChangeDetectorRef",
25119
+ "deprecated": false,
25120
+ "deprecationMessage": ""
25121
+ }
25122
+ ],
25123
+ "line": 117,
25124
+ "jsdoctags": [
25125
+ {
25126
+ "name": "ngZone",
25127
+ "type": "NgZone",
25128
+ "deprecated": false,
25129
+ "deprecationMessage": "",
25130
+ "tagName": {
25131
+ "text": "param"
25132
+ }
25133
+ },
25134
+ {
25135
+ "name": "renderer",
25136
+ "type": "Renderer2",
25137
+ "deprecated": false,
25138
+ "deprecationMessage": "",
25139
+ "tagName": {
25140
+ "text": "param"
25141
+ }
25142
+ },
25143
+ {
25144
+ "name": "hostElement",
25145
+ "type": "ElementRef",
25146
+ "deprecated": false,
25147
+ "deprecationMessage": "",
25148
+ "tagName": {
25149
+ "text": "param"
25150
+ }
25151
+ },
25152
+ {
25153
+ "name": "viewContainerRef",
25154
+ "type": "ViewContainerRef",
25155
+ "deprecated": false,
25156
+ "deprecationMessage": "",
25157
+ "tagName": {
25158
+ "text": "param"
25159
+ }
25160
+ },
25161
+ {
25162
+ "name": "changeDetectorRef",
25163
+ "type": "ChangeDetectorRef",
25164
+ "deprecated": false,
25165
+ "deprecationMessage": "",
25166
+ "tagName": {
25167
+ "text": "param"
25168
+ }
25169
+ }
25170
+ ]
25171
+ },
25172
+ "extends": [],
25173
+ "implements": [
25174
+ "OnChanges",
25175
+ "AfterViewInit",
25176
+ "OnDestroy"
25177
+ ],
25178
+ "accessors": {
25179
+ "projectedMenuItems": {
25180
+ "name": "projectedMenuItems",
25181
+ "setSignature": {
25182
+ "name": "projectedMenuItems",
25183
+ "type": "void",
25184
+ "deprecated": false,
25185
+ "deprecationMessage": "",
25186
+ "args": [
25187
+ {
25188
+ "name": "itemList",
25189
+ "type": "QueryList<ContextMenuItemComponent>",
25190
+ "deprecated": false,
25191
+ "deprecationMessage": ""
25192
+ }
25193
+ ],
25194
+ "returnType": "void",
25195
+ "line": 82,
25196
+ "jsdoctags": [
25197
+ {
25198
+ "name": "itemList",
25199
+ "type": "QueryList<ContextMenuItemComponent>",
25200
+ "deprecated": false,
25201
+ "deprecationMessage": "",
25202
+ "tagName": {
25203
+ "text": "param"
25204
+ }
25205
+ }
25206
+ ]
25207
+ }
25208
+ },
25209
+ "sizeLg": {
25210
+ "name": "sizeLg",
25211
+ "getSignature": {
25212
+ "name": "sizeLg",
25213
+ "type": "",
25214
+ "returnType": "",
25215
+ "line": 103
25216
+ }
25217
+ },
25218
+ "sizeMd": {
25219
+ "name": "sizeMd",
25220
+ "getSignature": {
25221
+ "name": "sizeMd",
25222
+ "type": "",
25223
+ "returnType": "",
25224
+ "line": 104
25225
+ }
25226
+ },
25227
+ "sizeSm": {
25228
+ "name": "sizeSm",
25229
+ "getSignature": {
25230
+ "name": "sizeSm",
25231
+ "type": "",
25232
+ "returnType": "",
25233
+ "line": 105
25234
+ }
25235
+ },
25236
+ "ariaOwns": {
25237
+ "name": "ariaOwns",
25238
+ "getSignature": {
25239
+ "name": "ariaOwns",
25240
+ "type": "",
25241
+ "returnType": "",
25242
+ "line": 106
25243
+ }
25244
+ }
25245
+ }
25246
+ },
24625
25247
  {
24626
25248
  "name": "ContainedList",
24627
25249
  "id": "component-ContainedList-1c5ffbaef841f69f00060fb737ec1c6de87711ca940bb0ee583f6f72a622bbd432d83b7a108c206bf6be21d76cbb9eba927f19cd6a805717037baf59af9656dd",
@@ -25209,14 +25831,14 @@
25209
25831
  },
25210
25832
  {
25211
25833
  "name": "ContextMenuComponent",
25212
- "id": "component-ContextMenuComponent-2b490ec4514e751fbe491f6843669f3a8aa02eb276edfb3ab9b2c6d865225ee14c5b27a9bf24ff1153ca372087f5fed9bfc4a85ca020c506d8ca5df9cc28ff07",
25834
+ "id": "component-ContextMenuComponent-80caea86ac68d0a24f5699cd6c23c5d368bf1edaabd6b2b998eef689a8679010cdf24b0a077266d6cdef3e934f17406f2a72270ac955d5cf3a6441a887d8c6b6",
25213
25835
  "file": "src/context-menu/context-menu.component.ts",
25214
25836
  "encapsulation": [],
25215
25837
  "entryComponents": [],
25216
25838
  "inputs": [],
25217
25839
  "outputs": [],
25218
25840
  "providers": [],
25219
- "selector": "cds-context-menu, ibm-context-menu",
25841
+ "selector": "cds-menu, cds-context-menu, ibm-context-menu",
25220
25842
  "styleUrls": [],
25221
25843
  "styles": [
25222
25844
  "\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\t"
@@ -25231,7 +25853,7 @@
25231
25853
  "defaultValue": "false",
25232
25854
  "deprecated": false,
25233
25855
  "deprecationMessage": "",
25234
- "line": 32,
25856
+ "line": 34,
25235
25857
  "type": "boolean",
25236
25858
  "decorators": []
25237
25859
  },
@@ -25240,30 +25862,60 @@
25240
25862
  "defaultValue": "{\n\t\tleft: 0,\n\t\ttop: 0\n\t}",
25241
25863
  "deprecated": false,
25242
25864
  "deprecationMessage": "",
25243
- "line": 33,
25865
+ "line": 35,
25244
25866
  "type": "{ left: number; top: number; }",
25245
25867
  "decorators": []
25868
+ },
25869
+ {
25870
+ "name": "size",
25871
+ "defaultValue": "\"lg\"",
25872
+ "deprecated": false,
25873
+ "deprecationMessage": "",
25874
+ "line": 39,
25875
+ "type": "\"sm\" | \"md\" | \"lg\"",
25876
+ "decorators": []
25246
25877
  }
25247
25878
  ],
25248
25879
  "outputsClass": [],
25249
25880
  "propertiesClass": [
25250
25881
  {
25251
- "name": "contextMenu",
25252
- "defaultValue": "true",
25882
+ "name": "iconClass",
25883
+ "defaultValue": "false",
25253
25884
  "deprecated": false,
25254
25885
  "deprecationMessage": "",
25255
25886
  "type": "",
25256
25887
  "optional": false,
25257
- "description": "",
25258
- "line": 38,
25888
+ "description": "<p>after switching to on OnPush Change Detection Strategy</p>\n",
25889
+ "line": 55,
25890
+ "rawdescription": "\n\nafter switching to on OnPush Change Detection Strategy\n",
25259
25891
  "decorators": [
25260
25892
  {
25261
25893
  "name": "HostBinding",
25262
- "stringifiedArguments": "'class.cds--menu'"
25894
+ "stringifiedArguments": "'class.cds--menu--with-icons'"
25263
25895
  }
25264
25896
  ],
25265
25897
  "modifierKind": [
25266
25898
  170
25899
+ ],
25900
+ "jsdoctags": [
25901
+ {
25902
+ "pos": 1168,
25903
+ "end": 1300,
25904
+ "flags": 16842752,
25905
+ "modifierFlagsCache": 0,
25906
+ "transformFlags": 0,
25907
+ "kind": 334,
25908
+ "tagName": {
25909
+ "pos": 1169,
25910
+ "end": 1173,
25911
+ "flags": 16842752,
25912
+ "modifierFlagsCache": 0,
25913
+ "transformFlags": 0,
25914
+ "kind": 80,
25915
+ "escapedText": "todo"
25916
+ },
25917
+ "comment": "<ul>\n<li>convert to getter in v6, should resolve expression has changed\nafter switching to on OnPush Change Detection Strategy</li>\n</ul>\n"
25918
+ }
25267
25919
  ]
25268
25920
  },
25269
25921
  {
@@ -25274,7 +25926,7 @@
25274
25926
  "type": "string",
25275
25927
  "optional": false,
25276
25928
  "description": "",
25277
- "line": 41,
25929
+ "line": 46,
25278
25930
  "decorators": [
25279
25931
  {
25280
25932
  "name": "HostBinding",
@@ -25293,7 +25945,7 @@
25293
25945
  "type": "string",
25294
25946
  "optional": false,
25295
25947
  "description": "",
25296
- "line": 42,
25948
+ "line": 47,
25297
25949
  "decorators": [
25298
25950
  {
25299
25951
  "name": "HostBinding",
@@ -25312,7 +25964,7 @@
25312
25964
  "optional": false,
25313
25965
  "returnType": "void",
25314
25966
  "typeParameters": [],
25315
- "line": 60,
25967
+ "line": 75,
25316
25968
  "deprecated": false,
25317
25969
  "deprecationMessage": ""
25318
25970
  },
@@ -25329,7 +25981,7 @@
25329
25981
  "optional": false,
25330
25982
  "returnType": "void",
25331
25983
  "typeParameters": [],
25332
- "line": 70,
25984
+ "line": 85,
25333
25985
  "deprecated": false,
25334
25986
  "deprecationMessage": "",
25335
25987
  "decorators": [
@@ -25362,7 +26014,7 @@
25362
26014
  "defaultValue": "\"menu\"",
25363
26015
  "deprecated": false,
25364
26016
  "deprecationMessage": "",
25365
- "line": 41,
26017
+ "line": 46,
25366
26018
  "type": "string",
25367
26019
  "decorators": []
25368
26020
  },
@@ -25371,48 +26023,52 @@
25371
26023
  "defaultValue": "\"-1\"",
25372
26024
  "deprecated": false,
25373
26025
  "deprecationMessage": "",
25374
- "line": 42,
26026
+ "line": 47,
25375
26027
  "type": "string",
25376
26028
  "decorators": []
25377
26029
  },
25378
26030
  {
25379
- "name": "class.cds--menu",
25380
- "defaultValue": "true",
25381
- "deprecated": false,
25382
- "deprecationMessage": "",
25383
- "line": 38,
25384
- "type": "boolean",
25385
- "decorators": []
25386
- },
25387
- {
25388
- "name": "class.cds--menu--open",
25389
- "deprecated": false,
25390
- "deprecationMessage": "",
25391
- "line": 39,
25392
- "type": "boolean",
25393
- "decorators": []
25394
- },
25395
- {
25396
- "name": "class.cds--menu--shown",
26031
+ "name": "class",
25397
26032
  "deprecated": false,
25398
26033
  "deprecationMessage": "",
25399
- "line": 40,
25400
- "type": "boolean",
26034
+ "line": 41,
26035
+ "type": "string",
25401
26036
  "decorators": []
25402
26037
  },
25403
26038
  {
25404
26039
  "name": "class.cds--menu--with-icons",
26040
+ "defaultValue": "false",
25405
26041
  "deprecated": false,
25406
26042
  "deprecationMessage": "",
25407
- "line": 46,
25408
- "type": "HTMLElement",
26043
+ "jsdoctags": [
26044
+ {
26045
+ "pos": 1168,
26046
+ "end": 1300,
26047
+ "flags": 16842752,
26048
+ "modifierFlagsCache": 0,
26049
+ "transformFlags": 0,
26050
+ "kind": 334,
26051
+ "tagName": {
26052
+ "pos": 1169,
26053
+ "end": 1173,
26054
+ "flags": 16842752,
26055
+ "modifierFlagsCache": 0,
26056
+ "transformFlags": 0,
26057
+ "kind": 80,
26058
+ "escapedText": "todo"
26059
+ },
26060
+ "comment": "<ul>\n<li>convert to getter in v6, should resolve expression has changed\nafter switching to on OnPush Change Detection Strategy</li>\n</ul>\n"
26061
+ }
26062
+ ],
26063
+ "line": 55,
26064
+ "type": "boolean",
25409
26065
  "decorators": []
25410
26066
  },
25411
26067
  {
25412
26068
  "name": "style.left.px",
25413
26069
  "deprecated": false,
25414
26070
  "deprecationMessage": "",
25415
- "line": 43,
26071
+ "line": 48,
25416
26072
  "type": "number",
25417
26073
  "decorators": []
25418
26074
  },
@@ -25420,7 +26076,7 @@
25420
26076
  "name": "style.top.px",
25421
26077
  "deprecated": false,
25422
26078
  "deprecationMessage": "",
25423
- "line": 44,
26079
+ "line": 49,
25424
26080
  "type": "number",
25425
26081
  "decorators": []
25426
26082
  }
@@ -25441,7 +26097,7 @@
25441
26097
  ],
25442
26098
  "deprecated": false,
25443
26099
  "deprecationMessage": "",
25444
- "line": 70
26100
+ "line": 85
25445
26101
  }
25446
26102
  ],
25447
26103
  "standalone": false,
@@ -25449,7 +26105,7 @@
25449
26105
  "description": "<p>Get started with importing the module:</p>\n<b>Example :</b><div><pre class=\"line-numbers\"><code class=\"language-typescript\">import { ContextMenuModule } from &#39;carbon-components-angular&#39;;</code></pre></div><p><a href=\"../../?path=/story/components-context-menu--basic\">See demo</a></p>\n",
25450
26106
  "rawdescription": "\n\nGet started with importing the module:\n\n```typescript\nimport { ContextMenuModule } from 'carbon-components-angular';\n```\n\n[See demo](../../?path=/story/components-context-menu--basic)\n",
25451
26107
  "type": "component",
25452
- "sourceCode": "import {\n\tComponent,\n\tElementRef,\n\tHostListener,\n\tInput,\n\tSimpleChanges,\n\tOnChanges,\n\tHostBinding\n} from \"@angular/core\";\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { ContextMenuModule } from 'carbon-components-angular';\n * ```\n *\n * [See demo](../../?path=/story/components-context-menu--basic)\n */\n@Component({\n\tselector: \"cds-context-menu, ibm-context-menu\",\n\ttemplate: `\n\t\t\t<ng-content></ng-content>\n\t`,\n\tstyles: [`\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\t`]\n})\nexport class ContextMenuComponent implements OnChanges {\n\t@Input() open = false;\n\t@Input() position = {\n\t\tleft: 0,\n\t\ttop: 0\n\t};\n\n\t@HostBinding(\"class.cds--menu\") contextMenu = true;\n\t@HostBinding(\"class.cds--menu--open\") get contextMenuOpen() { return this.open; }\n\t@HostBinding(\"class.cds--menu--shown\") get showMenu() { return this.open; }\n\t@HostBinding(\"attr.role\") role = \"menu\";\n\t@HostBinding(\"attr.tabindex\") tabindex = \"-1\";\n\t@HostBinding(\"style.left.px\") get leftPosition() { return this.position.left; }\n\t@HostBinding(\"style.top.px\") get topPosition() { return this.position.top; }\n\n\t@HostBinding(\"class.cds--menu--with-icons\") get classIcons() {\n\t\tconst svgElement = this.elementRef.nativeElement\n\t\t\t.querySelector(\".cds--menu-item .cds--menu-item__icon svg\") as HTMLElement;\n\t\treturn svgElement;\n\t}\n\n\tconstructor(protected elementRef: ElementRef) { }\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (changes.open && changes.open.currentValue) {\n\t\t\tthis.focusMenu();\n\t\t}\n\t}\n\n\tfocusMenu() {\n\t\t// wait until the next tick to let the DOM settle before changing the focus\n\t\tsetTimeout(() => {\n\t\t\tconst list: HTMLElement = this.elementRef.nativeElement;\n\t\t\tconst firstOption = list.querySelector(\".cds--menu-item\") as HTMLElement;\n\t\t\tfirstOption.focus();\n\t\t});\n\t}\n\n\t@HostListener(\"keydown\", [\"$event\"])\n\thandleNavigation(event: KeyboardEvent) {\n\t\tconst list: HTMLElement = this.elementRef.nativeElement;\n\t\tconst subMenus: HTMLElement[] = Array.from(list.querySelectorAll(\"cds-context-menu[role=menu]\"));\n\t\tconst menuItems: HTMLElement[] = (\n\t\t\tArray.from(list.querySelectorAll(\".cds--menu-item\")) as HTMLElement[])\n\t\t\t.filter(menuItem => !subMenus.some(subMenu => subMenu.contains(menuItem))\n\t\t);\n\t\tconst currentIndex = menuItems.findIndex(menuItem => parseInt(menuItem.getAttribute(\"tabindex\"), 10) === 0);\n\t\tconst currentMenuItem = menuItems[currentIndex];\n\n\t\tswitch (event.key) {\n\t\t\tcase \"ArrowDown\": {\n\t\t\t\tif (document.activeElement === list) {\n\t\t\t\t\tmenuItems[0].focus();\n\t\t\t\t} else {\n\t\t\t\t\tif (currentIndex !== -1 && currentIndex < menuItems.length - 1) {\n\t\t\t\t\t\tmenuItems[currentIndex + 1].focus();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"ArrowUp\": {\n\t\t\t\tif (document.activeElement === list) {\n\t\t\t\t\tmenuItems[menuItems.length - 1].focus();\n\t\t\t\t} else {\n\t\t\t\t\tif (currentIndex !== -1 && currentIndex > 0) {\n\t\t\t\t\t\tmenuItems[currentIndex - 1].focus();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"ArrowRight\": {\n\t\t\t\tif (currentIndex !== -1 && subMenus.some(subMenu => currentMenuItem.contains(subMenu))) {\n\t\t\t\t\tcurrentMenuItem.click();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"ArrowLeft\": {\n\t\t\t\tconst parent = currentMenuItem.parentElement.closest(\".cds--menu-item, .cds--menu-item\") as HTMLElement;\n\t\t\t\tif (parent) {\n\t\t\t\t\tparent.focus();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n",
26108
+ "sourceCode": "import {\n\tComponent,\n\tElementRef,\n\tHostListener,\n\tInput,\n\tSimpleChanges,\n\tOnChanges,\n\tHostBinding,\n\tAfterViewInit,\n\tChangeDetectorRef\n} from \"@angular/core\";\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { ContextMenuModule } from 'carbon-components-angular';\n * ```\n *\n * [See demo](../../?path=/story/components-context-menu--basic)\n */\n@Component({\n\tselector: \"cds-menu, cds-context-menu, ibm-context-menu\",\n\ttemplate: `\n\t\t\t<ng-content></ng-content>\n\t`,\n\tstyles: [`\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\t`]\n})\nexport class ContextMenuComponent implements OnChanges, AfterViewInit {\n\t@Input() open = false;\n\t@Input() position = {\n\t\tleft: 0,\n\t\ttop: 0\n\t};\n\t@Input() size: \"sm\" | \"md\" | \"lg\" = \"lg\";\n\n\t@HostBinding(\"class\") get hostClass() {\n\t\tconst open = this.open ? \"cds--menu--open cds--menu--shown\" : \"\";\n\t\treturn `cds--menu cds--autoalign cds--menu--${this.size} ${open}`;\n\t}\n\n\t@HostBinding(\"attr.role\") role = \"menu\";\n\t@HostBinding(\"attr.tabindex\") tabindex = \"-1\";\n\t@HostBinding(\"style.left.px\") get leftPosition() { return this.position.left; }\n\t@HostBinding(\"style.top.px\") get topPosition() { return this.position.top; }\n\n\t/**\n\t * @todo - convert to getter in v6, should resolve expression has changed\n\t * after switching to on OnPush Change Detection Strategy\n\t */\n\t@HostBinding(\"class.cds--menu--with-icons\") iconClass = false;\n\n\tconstructor(protected elementRef: ElementRef) { }\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (changes.open && changes.open.currentValue) {\n\t\t\tthis.focusMenu();\n\t\t}\n\t}\n\n\tngAfterViewInit(): void {\n\t\tsetTimeout(() => {\n\t\t\tconst nativeElement = this.elementRef.nativeElement;\n\t\t\tif (nativeElement) {\n\t\t\t\tthis.iconClass = !!nativeElement\n\t\t\t\t\t.querySelector(\".cds--menu-item .cds--menu-item__icon svg\");\n\t\t\t}\n\t\t});\n\t}\n\n\tfocusMenu() {\n\t\t// wait until the next tick to let the DOM settle before changing the focus\n\t\tsetTimeout(() => {\n\t\t\tconst list: HTMLElement = this.elementRef.nativeElement;\n\t\t\tconst firstOption = list.querySelector(\".cds--menu-item\") as HTMLElement;\n\t\t\tfirstOption.focus();\n\t\t});\n\t}\n\n\t@HostListener(\"keydown\", [\"$event\"])\n\thandleNavigation(event: KeyboardEvent) {\n\t\tconst list: HTMLElement = this.elementRef.nativeElement;\n\t\tconst subMenus: HTMLElement[] = Array.from(list.querySelectorAll(\"cds-context-menu[role=menu]\"));\n\t\tconst menuItems: HTMLElement[] = (\n\t\t\tArray.from(list.querySelectorAll(\".cds--menu-item\")) as HTMLElement[])\n\t\t\t\t.filter(menuItem => !subMenus.some(subMenu => subMenu.contains(menuItem))\n\t\t);\n\t\tconst currentIndex = menuItems.findIndex(menuItem => parseInt(menuItem.getAttribute(\"tabindex\"), 10) === 0);\n\t\tconst currentMenuItem = menuItems[currentIndex];\n\n\t\tswitch (event.key) {\n\t\t\tcase \"ArrowDown\": {\n\t\t\t\tif (document.activeElement === list) {\n\t\t\t\t\tmenuItems[0].focus();\n\t\t\t\t} else {\n\t\t\t\t\tif (currentIndex !== -1 && currentIndex < menuItems.length - 1) {\n\t\t\t\t\t\tmenuItems[currentIndex + 1].focus();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"ArrowUp\": {\n\t\t\t\tif (document.activeElement === list) {\n\t\t\t\t\tmenuItems[menuItems.length - 1].focus();\n\t\t\t\t} else {\n\t\t\t\t\tif (currentIndex !== -1 && currentIndex > 0) {\n\t\t\t\t\t\tmenuItems[currentIndex - 1].focus();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"ArrowRight\": {\n\t\t\t\tif (currentIndex !== -1 && subMenus.some(subMenu => currentMenuItem.contains(subMenu))) {\n\t\t\t\t\tcurrentMenuItem.click();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"ArrowLeft\": {\n\t\t\t\tconst parent = currentMenuItem.parentElement.closest(\".cds--menu-item, .cds--menu-item\") as HTMLElement;\n\t\t\t\tif (parent) {\n\t\t\t\t\tparent.focus();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n",
25453
26109
  "assetsDirs": [],
25454
26110
  "styleUrlsData": "",
25455
26111
  "stylesData": "\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\t\n",
@@ -25466,7 +26122,7 @@
25466
26122
  "deprecationMessage": ""
25467
26123
  }
25468
26124
  ],
25469
- "line": 50,
26125
+ "line": 55,
25470
26126
  "jsdoctags": [
25471
26127
  {
25472
26128
  "name": "elementRef",
@@ -25481,25 +26137,17 @@
25481
26137
  },
25482
26138
  "extends": [],
25483
26139
  "implements": [
25484
- "OnChanges"
26140
+ "OnChanges",
26141
+ "AfterViewInit"
25485
26142
  ],
25486
26143
  "accessors": {
25487
- "contextMenuOpen": {
25488
- "name": "contextMenuOpen",
25489
- "getSignature": {
25490
- "name": "contextMenuOpen",
25491
- "type": "",
25492
- "returnType": "",
25493
- "line": 39
25494
- }
25495
- },
25496
- "showMenu": {
25497
- "name": "showMenu",
26144
+ "hostClass": {
26145
+ "name": "hostClass",
25498
26146
  "getSignature": {
25499
- "name": "showMenu",
26147
+ "name": "hostClass",
25500
26148
  "type": "",
25501
26149
  "returnType": "",
25502
- "line": 40
26150
+ "line": 41
25503
26151
  }
25504
26152
  },
25505
26153
  "leftPosition": {
@@ -25508,7 +26156,7 @@
25508
26156
  "name": "leftPosition",
25509
26157
  "type": "",
25510
26158
  "returnType": "",
25511
- "line": 43
26159
+ "line": 48
25512
26160
  }
25513
26161
  },
25514
26162
  "topPosition": {
@@ -25517,30 +26165,21 @@
25517
26165
  "name": "topPosition",
25518
26166
  "type": "",
25519
26167
  "returnType": "",
25520
- "line": 44
25521
- }
25522
- },
25523
- "classIcons": {
25524
- "name": "classIcons",
25525
- "getSignature": {
25526
- "name": "classIcons",
25527
- "type": "",
25528
- "returnType": "",
25529
- "line": 46
26168
+ "line": 49
25530
26169
  }
25531
26170
  }
25532
26171
  }
25533
26172
  },
25534
26173
  {
25535
26174
  "name": "ContextMenuDividerComponent",
25536
- "id": "component-ContextMenuDividerComponent-1d90d7ad72f29d6a1b78ca3ec453ea610fa26ff7f7774e455c83f875af8e212b8c975dddf0621581e053c9b55479293437ad5306e82c7a3893e2c77ad1ad56f8",
26175
+ "id": "component-ContextMenuDividerComponent-8606e1fda9f4aceddf8cec5a54922ff81aa06daee6e7503f4e85e8ea131b6542c95eb997365fd4ef2e0ed1faeab986035893e5c11e4b2ec5eb1f9ba9306ded85",
25537
26176
  "file": "src/context-menu/context-menu-divider.component.ts",
25538
26177
  "encapsulation": [],
25539
26178
  "entryComponents": [],
25540
26179
  "inputs": [],
25541
26180
  "outputs": [],
25542
26181
  "providers": [],
25543
- "selector": "cds-context-menu-divider, ibm-context-menu-divider",
26182
+ "selector": "cds-menu-divider, cds-context-menu-divider, ibm-context-menu-divider",
25544
26183
  "styleUrls": [],
25545
26184
  "styles": [],
25546
26185
  "template": "",
@@ -25618,7 +26257,7 @@
25618
26257
  "description": "",
25619
26258
  "rawdescription": "\n",
25620
26259
  "type": "component",
25621
- "sourceCode": "import { Component, HostBinding } from \"@angular/core\";\n\n@Component({\n\tselector: \"cds-context-menu-divider, ibm-context-menu-divider\",\n\ttemplate: \"\"\n})\nexport class ContextMenuDividerComponent {\n\t@HostBinding(\"class.cds--menu-item-divider\") dividerClass = true;\n\t@HostBinding(\"attr.role\") role = \"separator\";\n}\n",
26260
+ "sourceCode": "import { Component, HostBinding } from \"@angular/core\";\n\n@Component({\n\tselector: \"cds-menu-divider, cds-context-menu-divider, ibm-context-menu-divider\",\n\ttemplate: \"\"\n})\nexport class ContextMenuDividerComponent {\n\t@HostBinding(\"class.cds--menu-item-divider\") dividerClass = true;\n\t@HostBinding(\"attr.role\") role = \"separator\";\n}\n",
25622
26261
  "assetsDirs": [],
25623
26262
  "styleUrlsData": "",
25624
26263
  "stylesData": "",
@@ -25626,7 +26265,7 @@
25626
26265
  },
25627
26266
  {
25628
26267
  "name": "ContextMenuGroupComponent",
25629
- "id": "component-ContextMenuGroupComponent-300a21fa5f9e6fc98d5adc121ba2f924972260ce054c9898ce073f2a0bc043237565f970a30094ba34fd5b9709444bc208556f2ff3ed218c62466a3ec49c4061",
26268
+ "id": "component-ContextMenuGroupComponent-c530a677a99ceb9ddb6af2bc31cc1f8d289a1abadc9f297eb69c8a2623074fb62d3a613a3ec3ccc829a70ceedc219b34185e36a7722b9700585b1b702cd8851f",
25630
26269
  "file": "src/context-menu/context-menu-group.component.ts",
25631
26270
  "encapsulation": [],
25632
26271
  "entryComponents": [],
@@ -25638,7 +26277,7 @@
25638
26277
  "type": "injectable"
25639
26278
  }
25640
26279
  ],
25641
- "selector": "cds-context-menu-group, ibm-context-menu-group",
26280
+ "selector": "cds-menu-group, cds-context-menu-group, ibm-context-menu-group",
25642
26281
  "styleUrls": [],
25643
26282
  "styles": [],
25644
26283
  "template": "<ng-content></ng-content>\n\t",
@@ -25741,7 +26380,7 @@
25741
26380
  "description": "",
25742
26381
  "rawdescription": "\n",
25743
26382
  "type": "component",
25744
- "sourceCode": "import {\n\tComponent,\n\tEventEmitter,\n\tHostBinding,\n\tInput,\n\tOnChanges,\n\tOnDestroy,\n\tOnInit,\n\tOutput,\n\tSimpleChanges\n} from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { ContextMenuSelectionService } from \"./context-menu-selection.service\";\n\n@Component({\n\tselector: \"cds-context-menu-group, ibm-context-menu-group\",\n\ttemplate: `\n\t\t<ng-content></ng-content>\n\t`,\n\tproviders: [ContextMenuSelectionService]\n})\nexport class ContextMenuGroupComponent implements OnInit, OnChanges, OnDestroy {\n\t@HostBinding(\"attr.role\") role = \"group\";\n\t@HostBinding(\"class.cds--menu-item-radio-group\") get radioGroup() { return this.type === \"radio\"; }\n\t@HostBinding(\"class.cds--menu-item-group\") get group() { return this.type === \"checkbox\"; }\n\n\t@HostBinding(\"attr.aria-label\") @Input() label = null;\n\t@Input() value: any[] = [];\n\t@Input() type: null | \"radio\" | \"checkbox\" = null;\n\t@Output() valueChange = new EventEmitter<any[]>();\n\n\tprivate subscription = new Subscription();\n\n\tconstructor(protected contextMenuSelectionService: ContextMenuSelectionService) { }\n\n\tngOnInit() {\n\t\tconst { selectionObservable } = this.contextMenuSelectionService;\n\t\tconst subscription = selectionObservable.subscribe(value => {\n\t\t\tthis.valueChange.emit(value);\n\t\t});\n\t\tthis.subscription.add(subscription);\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (changes.value) {\n\t\t\tif (this.type === \"radio\") {\n\t\t\t\tthis.contextMenuSelectionService.selectRadio(changes.value.currentValue);\n\t\t\t}\n\n\t\t\tif (this.type === \"checkbox\") {\n\t\t\t\tthis.contextMenuSelectionService.selectCheckboxes(changes.value.currentValue);\n\t\t\t}\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tthis.subscription.unsubscribe();\n\t}\n}\n",
26383
+ "sourceCode": "import {\n\tComponent,\n\tEventEmitter,\n\tHostBinding,\n\tInput,\n\tOnChanges,\n\tOnDestroy,\n\tOnInit,\n\tOutput,\n\tSimpleChanges\n} from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { ContextMenuSelectionService } from \"./context-menu-selection.service\";\n\n@Component({\n\tselector: \"cds-menu-group, cds-context-menu-group, ibm-context-menu-group\",\n\ttemplate: `\n\t\t<ng-content></ng-content>\n\t`,\n\tproviders: [ContextMenuSelectionService]\n})\nexport class ContextMenuGroupComponent implements OnInit, OnChanges, OnDestroy {\n\t@HostBinding(\"attr.role\") role = \"group\";\n\t@HostBinding(\"class.cds--menu-item-radio-group\") get radioGroup() { return this.type === \"radio\"; }\n\t@HostBinding(\"class.cds--menu-item-group\") get group() { return this.type === \"checkbox\"; }\n\n\t@HostBinding(\"attr.aria-label\") @Input() label = null;\n\t@Input() value: any[] = [];\n\t@Input() type: null | \"radio\" | \"checkbox\" = null;\n\t@Output() valueChange = new EventEmitter<any[]>();\n\n\tprivate subscription = new Subscription();\n\n\tconstructor(protected contextMenuSelectionService: ContextMenuSelectionService) {}\n\n\tngOnInit() {\n\t\tconst { selectionObservable } = this.contextMenuSelectionService;\n\t\tconst subscription = selectionObservable.subscribe(value => {\n\t\t\tthis.valueChange.emit(value);\n\t\t});\n\t\tthis.subscription.add(subscription);\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (changes.value) {\n\t\t\tif (this.type === \"radio\") {\n\t\t\t\tthis.contextMenuSelectionService.selectRadio(changes.value.currentValue);\n\t\t\t}\n\n\t\t\tif (this.type === \"checkbox\") {\n\t\t\t\tthis.contextMenuSelectionService.selectCheckboxes(changes.value.currentValue);\n\t\t\t}\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tthis.subscription.unsubscribe();\n\t}\n}\n",
25745
26384
  "assetsDirs": [],
25746
26385
  "styleUrlsData": "",
25747
26386
  "stylesData": "",
@@ -25800,14 +26439,14 @@
25800
26439
  },
25801
26440
  {
25802
26441
  "name": "ContextMenuItemComponent",
25803
- "id": "component-ContextMenuItemComponent-e95922e0ad631cc607990dc566eef52dec5d6e1a0e6382b3e04a15ff7d550b0ff3c26b92d75bc0b3e6f8af23c444581b32b775215f85c4e440e969d2e0cc3f45",
26442
+ "id": "component-ContextMenuItemComponent-1688169278415531c2622c3ec58218219e214e8fb013ca1c0dff71e41f4a9c9b2ac3eb56e83d8e977ba86c5b9c92f02a5545ad346b86886e070dcfa21fa94668",
25804
26443
  "file": "src/context-menu/context-menu-item.component.ts",
25805
26444
  "encapsulation": [],
25806
26445
  "entryComponents": [],
25807
26446
  "inputs": [],
25808
26447
  "outputs": [],
25809
26448
  "providers": [],
25810
- "selector": "cds-context-menu-item, ibm-context-menu-item",
26449
+ "selector": "cds-menu-item, cds-context-menu-item, ibm-context-menu-item",
25811
26450
  "styleUrls": [],
25812
26451
  "styles": [
25813
26452
  "\n\t\t:host {\n\t\t\tgrid-template-columns: 1rem 1fr max-content;\n\t\t}\n\t"
@@ -25822,6 +26461,24 @@
25822
26461
  "defaultValue": "false",
25823
26462
  "deprecated": false,
25824
26463
  "deprecationMessage": "",
26464
+ "line": 58,
26465
+ "type": "boolean",
26466
+ "decorators": []
26467
+ },
26468
+ {
26469
+ "name": "danger",
26470
+ "defaultValue": "false",
26471
+ "deprecated": false,
26472
+ "deprecationMessage": "",
26473
+ "line": 54,
26474
+ "type": "boolean",
26475
+ "decorators": []
26476
+ },
26477
+ {
26478
+ "name": "disabled",
26479
+ "defaultValue": "false",
26480
+ "deprecated": false,
26481
+ "deprecationMessage": "",
25825
26482
  "line": 53,
25826
26483
  "type": "boolean",
25827
26484
  "decorators": []
@@ -25831,7 +26488,7 @@
25831
26488
  "defaultValue": "\"\"",
25832
26489
  "deprecated": false,
25833
26490
  "deprecationMessage": "",
25834
- "line": 54,
26491
+ "line": 59,
25835
26492
  "type": "string",
25836
26493
  "decorators": []
25837
26494
  },
@@ -25840,7 +26497,7 @@
25840
26497
  "defaultValue": "\"\"",
25841
26498
  "deprecated": false,
25842
26499
  "deprecationMessage": "",
25843
- "line": 51,
26500
+ "line": 56,
25844
26501
  "type": "string",
25845
26502
  "decorators": []
25846
26503
  },
@@ -25849,7 +26506,7 @@
25849
26506
  "defaultValue": "\"\"",
25850
26507
  "deprecated": false,
25851
26508
  "deprecationMessage": "",
25852
- "line": 50,
26509
+ "line": 55,
25853
26510
  "type": "string",
25854
26511
  "decorators": []
25855
26512
  },
@@ -25858,7 +26515,7 @@
25858
26515
  "defaultValue": "null",
25859
26516
  "deprecated": false,
25860
26517
  "deprecationMessage": "",
25861
- "line": 52,
26518
+ "line": 57,
25862
26519
  "type": "null | \"checkbox\" | \"radio\"",
25863
26520
  "decorators": []
25864
26521
  },
@@ -25867,7 +26524,7 @@
25867
26524
  "defaultValue": "\"\"",
25868
26525
  "deprecated": false,
25869
26526
  "deprecationMessage": "",
25870
- "line": 55,
26527
+ "line": 60,
25871
26528
  "type": "string",
25872
26529
  "decorators": []
25873
26530
  }
@@ -25878,7 +26535,15 @@
25878
26535
  "defaultValue": "new EventEmitter<boolean>()",
25879
26536
  "deprecated": false,
25880
26537
  "deprecationMessage": "",
25881
- "line": 56,
26538
+ "line": 61,
26539
+ "type": "EventEmitter"
26540
+ },
26541
+ {
26542
+ "name": "itemClick",
26543
+ "defaultValue": "new EventEmitter<ItemClickEvent>()",
26544
+ "deprecated": false,
26545
+ "deprecationMessage": "",
26546
+ "line": 62,
25882
26547
  "type": "EventEmitter"
25883
26548
  }
25884
26549
  ],
@@ -25891,7 +26556,7 @@
25891
26556
  "type": "null",
25892
26557
  "optional": false,
25893
26558
  "description": "",
25894
- "line": 44,
26559
+ "line": 45,
25895
26560
  "decorators": [
25896
26561
  {
25897
26562
  "name": "HostBinding",
@@ -25910,7 +26575,7 @@
25910
26575
  "type": "null",
25911
26576
  "optional": false,
25912
26577
  "description": "",
25913
- "line": 43,
26578
+ "line": 44,
25914
26579
  "decorators": [
25915
26580
  {
25916
26581
  "name": "HostBinding",
@@ -25928,7 +26593,7 @@
25928
26593
  "type": "ContextMenuComponent",
25929
26594
  "optional": false,
25930
26595
  "description": "",
25931
- "line": 61,
26596
+ "line": 67,
25932
26597
  "decorators": [
25933
26598
  {
25934
26599
  "name": "ContentChild",
@@ -25947,7 +26612,7 @@
25947
26612
  "type": "",
25948
26613
  "optional": false,
25949
26614
  "description": "",
25950
- "line": 58
26615
+ "line": 64
25951
26616
  },
25952
26617
  {
25953
26618
  "name": "optionClass",
@@ -25957,7 +26622,7 @@
25957
26622
  "type": "",
25958
26623
  "optional": false,
25959
26624
  "description": "",
25960
- "line": 40,
26625
+ "line": 41,
25961
26626
  "decorators": [
25962
26627
  {
25963
26628
  "name": "HostBinding",
@@ -25976,7 +26641,7 @@
25976
26641
  "type": "string",
25977
26642
  "optional": false,
25978
26643
  "description": "",
25979
- "line": 41,
26644
+ "line": 42,
25980
26645
  "decorators": [
25981
26646
  {
25982
26647
  "name": "HostBinding",
@@ -25995,7 +26660,7 @@
25995
26660
  "type": "",
25996
26661
  "optional": false,
25997
26662
  "description": "",
25998
- "line": 59
26663
+ "line": 65
25999
26664
  },
26000
26665
  {
26001
26666
  "name": "tabindex",
@@ -26005,7 +26670,7 @@
26005
26670
  "type": "",
26006
26671
  "optional": false,
26007
26672
  "description": "",
26008
- "line": 42,
26673
+ "line": 43,
26009
26674
  "decorators": [
26010
26675
  {
26011
26676
  "name": "HostBinding",
@@ -26024,7 +26689,7 @@
26024
26689
  "optional": false,
26025
26690
  "returnType": "void",
26026
26691
  "typeParameters": [],
26027
- "line": 150,
26692
+ "line": 166,
26028
26693
  "deprecated": false,
26029
26694
  "deprecationMessage": ""
26030
26695
  },
@@ -26034,7 +26699,7 @@
26034
26699
  "optional": false,
26035
26700
  "returnType": "void",
26036
26701
  "typeParameters": [],
26037
- "line": 180,
26702
+ "line": 196,
26038
26703
  "deprecated": false,
26039
26704
  "deprecationMessage": ""
26040
26705
  },
@@ -26044,7 +26709,7 @@
26044
26709
  "optional": false,
26045
26710
  "returnType": "void",
26046
26711
  "typeParameters": [],
26047
- "line": 176,
26712
+ "line": 192,
26048
26713
  "deprecated": false,
26049
26714
  "deprecationMessage": "",
26050
26715
  "decorators": [
@@ -26070,7 +26735,7 @@
26070
26735
  "optional": false,
26071
26736
  "returnType": "void",
26072
26737
  "typeParameters": [],
26073
- "line": 112,
26738
+ "line": 118,
26074
26739
  "deprecated": false,
26075
26740
  "deprecationMessage": "",
26076
26741
  "decorators": [
@@ -26110,7 +26775,7 @@
26110
26775
  "optional": false,
26111
26776
  "returnType": "void",
26112
26777
  "typeParameters": [],
26113
- "line": 168,
26778
+ "line": 184,
26114
26779
  "deprecated": false,
26115
26780
  "deprecationMessage": "",
26116
26781
  "decorators": [
@@ -26129,7 +26794,7 @@
26129
26794
  "optional": false,
26130
26795
  "returnType": "void",
26131
26796
  "typeParameters": [],
26132
- "line": 163,
26797
+ "line": 179,
26133
26798
  "deprecated": false,
26134
26799
  "deprecationMessage": "",
26135
26800
  "decorators": [
@@ -26148,7 +26813,7 @@
26148
26813
  "optional": false,
26149
26814
  "returnType": "void",
26150
26815
  "typeParameters": [],
26151
- "line": 158,
26816
+ "line": 174,
26152
26817
  "deprecated": false,
26153
26818
  "deprecationMessage": "",
26154
26819
  "decorators": [
@@ -26174,7 +26839,7 @@
26174
26839
  "optional": false,
26175
26840
  "returnType": "void",
26176
26841
  "typeParameters": [],
26177
- "line": 134,
26842
+ "line": 150,
26178
26843
  "deprecated": false,
26179
26844
  "deprecationMessage": "",
26180
26845
  "jsdoctags": [
@@ -26195,7 +26860,7 @@
26195
26860
  "optional": false,
26196
26861
  "returnType": "void",
26197
26862
  "typeParameters": [],
26198
- "line": 139,
26863
+ "line": 155,
26199
26864
  "deprecated": false,
26200
26865
  "deprecationMessage": ""
26201
26866
  }
@@ -26207,7 +26872,15 @@
26207
26872
  "name": "attr.aria-checked",
26208
26873
  "deprecated": false,
26209
26874
  "deprecationMessage": "",
26210
- "line": 45,
26875
+ "line": 46,
26876
+ "type": "boolean",
26877
+ "decorators": []
26878
+ },
26879
+ {
26880
+ "name": "attr.aria-disabled",
26881
+ "deprecated": false,
26882
+ "deprecationMessage": "",
26883
+ "line": 50,
26211
26884
  "type": "boolean",
26212
26885
  "decorators": []
26213
26886
  },
@@ -26216,7 +26889,7 @@
26216
26889
  "defaultValue": "null",
26217
26890
  "deprecated": false,
26218
26891
  "deprecationMessage": "",
26219
- "line": 44,
26892
+ "line": 45,
26220
26893
  "type": "any",
26221
26894
  "decorators": []
26222
26895
  },
@@ -26225,7 +26898,7 @@
26225
26898
  "defaultValue": "null",
26226
26899
  "deprecated": false,
26227
26900
  "deprecationMessage": "",
26228
- "line": 43,
26901
+ "line": 44,
26229
26902
  "type": "any",
26230
26903
  "decorators": []
26231
26904
  },
@@ -26234,7 +26907,7 @@
26234
26907
  "defaultValue": "\"menuitem\"",
26235
26908
  "deprecated": false,
26236
26909
  "deprecationMessage": "",
26237
- "line": 41,
26910
+ "line": 42,
26238
26911
  "type": "string",
26239
26912
  "decorators": []
26240
26913
  },
@@ -26243,7 +26916,7 @@
26243
26916
  "defaultValue": "-1",
26244
26917
  "deprecated": false,
26245
26918
  "deprecationMessage": "",
26246
- "line": 42,
26919
+ "line": 43,
26247
26920
  "type": "number",
26248
26921
  "decorators": []
26249
26922
  },
@@ -26252,7 +26925,7 @@
26252
26925
  "defaultValue": "true",
26253
26926
  "deprecated": false,
26254
26927
  "deprecationMessage": "",
26255
- "line": 40,
26928
+ "line": 41,
26256
26929
  "type": "boolean",
26257
26930
  "decorators": []
26258
26931
  }
@@ -26264,7 +26937,7 @@
26264
26937
  "argsDecorator": [],
26265
26938
  "deprecated": false,
26266
26939
  "deprecationMessage": "",
26267
- "line": 176
26940
+ "line": 192
26268
26941
  },
26269
26942
  {
26270
26943
  "name": "click",
@@ -26281,7 +26954,7 @@
26281
26954
  ],
26282
26955
  "deprecated": false,
26283
26956
  "deprecationMessage": "",
26284
- "line": 112
26957
+ "line": 118
26285
26958
  },
26286
26959
  {
26287
26960
  "name": "focus",
@@ -26289,7 +26962,7 @@
26289
26962
  "argsDecorator": [],
26290
26963
  "deprecated": false,
26291
26964
  "deprecationMessage": "",
26292
- "line": 168
26965
+ "line": 184
26293
26966
  },
26294
26967
  {
26295
26968
  "name": "keydown.enter",
@@ -26306,7 +26979,7 @@
26306
26979
  ],
26307
26980
  "deprecated": false,
26308
26981
  "deprecationMessage": "",
26309
- "line": 112
26982
+ "line": 118
26310
26983
  },
26311
26984
  {
26312
26985
  "name": "keydown.space",
@@ -26323,7 +26996,7 @@
26323
26996
  ],
26324
26997
  "deprecated": false,
26325
26998
  "deprecationMessage": "",
26326
- "line": 112
26999
+ "line": 118
26327
27000
  },
26328
27001
  {
26329
27002
  "name": "mouseout",
@@ -26331,7 +27004,7 @@
26331
27004
  "argsDecorator": [],
26332
27005
  "deprecated": false,
26333
27006
  "deprecationMessage": "",
26334
- "line": 163
27007
+ "line": 179
26335
27008
  },
26336
27009
  {
26337
27010
  "name": "mouseover",
@@ -26339,7 +27012,7 @@
26339
27012
  "argsDecorator": [],
26340
27013
  "deprecated": false,
26341
27014
  "deprecationMessage": "",
26342
- "line": 158
27015
+ "line": 174
26343
27016
  }
26344
27017
  ],
26345
27018
  "standalone": false,
@@ -26347,7 +27020,7 @@
26347
27020
  "description": "",
26348
27021
  "rawdescription": "\n",
26349
27022
  "type": "component",
26350
- "sourceCode": "import {\n\tComponent,\n\tHostBinding,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tElementRef,\n\tHostListener,\n\tContentChild,\n\tOptional,\n\tOnInit,\n\tAfterContentInit,\n\tOnDestroy\n} from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { ContextMenuSelectionService } from \"./context-menu-selection.service\";\nimport { ContextMenuComponent } from \"./context-menu.component\";\n\n@Component({\n\tselector: \"cds-context-menu-item, ibm-context-menu-item\",\n\ttemplate: `\n\t\t<div class=\"cds--menu-item__icon\">\n\t\t\t<svg *ngIf=\"selectable && checked\" cdsIcon=\"checkmark\" size=\"16\"></svg>\n\t\t\t<svg *ngIf=\"!selectable && icon\" [cdsIcon]=\"icon\" size=\"16\"></svg>\n\t\t</div>\n\t\t<div class=\"cds--menu-item__label\" [title]=\"label\">{{label}}</div>\n\t\t<div class=\"cds--menu-item__shortcut\">\n\t\t\t<ng-container *ngIf=\"info\">{{info}}</ng-container>\n\t\t\t<svg *ngIf=\"hasChildren\" cdsIcon=\"caret--right\" size=\"16\"></svg>\n\t\t</div>\n\t\t<ng-content></ng-content>\n\t`,\n\tstyles: [`\n\t\t:host {\n\t\t\tgrid-template-columns: 1rem 1fr max-content;\n\t\t}\n\t`]\n})\nexport class ContextMenuItemComponent implements OnInit, AfterContentInit, OnDestroy {\n\t@HostBinding(\"class.cds--menu-item\") optionClass = true;\n\t@HostBinding(\"attr.role\") role = \"menuitem\";\n\t@HostBinding(\"attr.tabindex\") tabindex = -1;\n\t@HostBinding(\"attr.aria-haspopup\") ariaHasPopup = null;\n\t@HostBinding(\"attr.aria-expanded\") ariaExpanded = null;\n\t@HostBinding(\"attr.aria-checked\") get ariaChecked() {\n\t\treturn this.type === \"checkbox\" ?\n\t\t\t(this.checked ? true : false) : null;\n\t}\n\n\t@Input() label = \"\";\n\t@Input() info = \"\";\n\t@Input() type: null | \"checkbox\" | \"radio\" = null;\n\t@Input() checked = false;\n\t@Input() icon = \"\";\n\t@Input() value = \"\";\n\t@Output() checkedChange = new EventEmitter<boolean>();\n\n\thasChildren = false;\n\tselectable = false;\n\n\t@ContentChild(ContextMenuComponent, { static: true }) childContextMenu: ContextMenuComponent;\n\tprivate subscriptions = new Subscription();\n\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\t@Optional() protected contextMenuSelectionService: ContextMenuSelectionService\n\t) { }\n\n\tngOnInit() {\n\t\tswitch (this.type) {\n\t\t\tcase \"checkbox\": {\n\t\t\t\tthis.role = \"menuitemcheckbox\";\n\t\t\t\tthis.selectable = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"radio\": {\n\t\t\t\tthis.role = \"menuitemradio\";\n\t\t\t\tthis.selectable = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tthis.role = \"menuitem\";\n\t\t\t}\n\t\t}\n\n\t\tif (this.type && this.contextMenuSelectionService && this.value) {\n\t\t\tconst { selectionObservable } = this.contextMenuSelectionService;\n\t\t\tconst subscription = selectionObservable.subscribe((value) => {\n\t\t\t\tif (this.type === \"radio\") {\n\t\t\t\t\tthis.handleSelection(value === this.value);\n\t\t\t\t}\n\n\t\t\t\tif (this.type === \"checkbox\") {\n\t\t\t\t\tthis.handleSelection(value.includes(this.value));\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.subscriptions.add(subscription);\n\t\t}\n\t}\n\n\tngAfterContentInit() {\n\t\tif (this.childContextMenu) {\n\t\t\tthis.hasChildren = true;\n\t\t\tthis.ariaHasPopup = true;\n\t\t\tthis.ariaExpanded = false;\n\t\t}\n\t}\n\n\t@HostListener(\"keydown.enter\", [\"$event\"])\n\t@HostListener(\"keydown.space\", [\"$event\"])\n\t@HostListener(\"click\", [\"$event\"])\n\thandleClick(event: MouseEvent & KeyboardEvent) {\n\t\tevent.stopPropagation();\n\t\tif (this.hasChildren) {\n\t\t\tthis.openSubMenu();\n\t\t\tthis.childContextMenu.focusMenu();\n\t\t}\n\n\t\tif (this.type) {\n\t\t\tthis.handleSelection(!this.checked);\n\t\t}\n\n\t\tif (this.contextMenuSelectionService) {\n\t\t\tif (this.type === \"radio\") {\n\t\t\t\tthis.contextMenuSelectionService.selectRadio(this.value);\n\t\t\t}\n\n\t\t\tif (this.type === \"checkbox\") {\n\t\t\t\tthis.contextMenuSelectionService.selectCheckbox(this.value);\n\t\t\t}\n\t\t}\n\t}\n\n\thandleSelection(selected: boolean) {\n\t\tthis.checked = selected;\n\t\tthis.checkedChange.emit(this.checked);\n\t}\n\n\topenSubMenu() {\n\t\tif (this.childContextMenu) {\n\t\t\tthis.childContextMenu.open = true;\n\t\t\tthis.ariaExpanded = true;\n\t\t\tconst dimensions = this.elementRef.nativeElement.getBoundingClientRect();\n\t\t\tthis.childContextMenu.position.left = dimensions.left + dimensions.width;\n\t\t\t// subtract 4px to account for margins\n\t\t\tthis.childContextMenu.position.top = dimensions.top - 4;\n\t\t}\n\t}\n\n\tcloseSubMenu() {\n\t\tif (this.childContextMenu) {\n\t\t\tthis.childContextMenu.open = false;\n\t\t\tthis.ariaExpanded = false;\n\t\t}\n\t}\n\n\t@HostListener(\"mouseover\")\n\thandleMouseOver() {\n\t\tthis.openSubMenu();\n\t}\n\n\t@HostListener(\"mouseout\")\n\thandleMouseOut() {\n\t\tthis.closeSubMenu();\n\t}\n\n\t@HostListener(\"focus\")\n\thandleFocus() {\n\t\tthis.tabindex = 0;\n\t\tif (this.hasChildren && this.ariaExpanded) {\n\t\t\tthis.closeSubMenu();\n\t\t}\n\t}\n\n\t@HostListener(\"blur\")\n\thandleBlur() {\n\t\tthis.tabindex = -1;\n\t}\n\n\tfocusItem() {\n\t\tthis.elementRef.nativeElement.focus();\n\t}\n\n\tngOnDestroy() {\n\t\tthis.subscriptions.unsubscribe();\n\t}\n}\n",
27023
+ "sourceCode": "import {\n\tComponent,\n\tHostBinding,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tElementRef,\n\tHostListener,\n\tContentChild,\n\tOptional,\n\tOnInit,\n\tAfterContentInit,\n\tOnDestroy\n} from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { ContextMenuSelectionService } from \"./context-menu-selection.service\";\nimport { ContextMenuComponent } from \"./context-menu.component\";\nimport { ItemClickEvent } from \"./context-menu.types\";\n\n@Component({\n\tselector: \"cds-menu-item, cds-context-menu-item, ibm-context-menu-item\",\n\ttemplate: `\n\t\t<div class=\"cds--menu-item__icon\">\n\t\t\t<svg *ngIf=\"selectable && checked\" cdsIcon=\"checkmark\" size=\"16\"></svg>\n\t\t\t<svg *ngIf=\"!selectable && icon\" [cdsIcon]=\"icon\" size=\"16\"></svg>\n\t\t</div>\n\t\t<div class=\"cds--menu-item__label\" [title]=\"label\">{{label}}</div>\n\t\t<div class=\"cds--menu-item__shortcut\">\n\t\t\t<ng-container *ngIf=\"info\">{{info}}</ng-container>\n\t\t\t<svg *ngIf=\"hasChildren\" cdsIcon=\"caret--right\" size=\"16\"></svg>\n\t\t</div>\n\t\t<ng-content></ng-content>\n\t`,\n\tstyles: [`\n\t\t:host {\n\t\t\tgrid-template-columns: 1rem 1fr max-content;\n\t\t}\n\t`]\n})\nexport class ContextMenuItemComponent implements OnInit, AfterContentInit, OnDestroy {\n\t@HostBinding(\"class.cds--menu-item\") optionClass = true;\n\t@HostBinding(\"attr.role\") role = \"menuitem\";\n\t@HostBinding(\"attr.tabindex\") tabindex = -1;\n\t@HostBinding(\"attr.aria-haspopup\") ariaHasPopup = null;\n\t@HostBinding(\"attr.aria-expanded\") ariaExpanded = null;\n\t@HostBinding(\"attr.aria-checked\") get ariaChecked() {\n\t\treturn this.type === \"checkbox\" ?\n\t\t\t(this.checked ? true : false) : null;\n\t}\n\t@HostBinding(\"attr.aria-disabled\") get ariaDisabled() {\n\t\treturn this.disabled;\n\t}\n\t@Input() @HostBinding(\"class.cds--menu-item--disabled\") disabled = false;\n\t@Input() @HostBinding(\"class.cds--menu-item--danger\") danger = false;\n\t@Input() label = \"\";\n\t@Input() info = \"\";\n\t@Input() type: null | \"checkbox\" | \"radio\" = null;\n\t@Input() checked = false;\n\t@Input() icon = \"\";\n\t@Input() value = \"\";\n\t@Output() checkedChange = new EventEmitter<boolean>();\n\t@Output() itemClick = new EventEmitter<ItemClickEvent>();\n\n\thasChildren = false;\n\tselectable = false;\n\n\t@ContentChild(ContextMenuComponent, { static: true }) childContextMenu: ContextMenuComponent;\n\tprivate subscriptions = new Subscription();\n\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\t@Optional() protected contextMenuSelectionService: ContextMenuSelectionService\n\t) {}\n\n\tngOnInit() {\n\t\tswitch (this.type) {\n\t\t\tcase \"checkbox\": {\n\t\t\t\tthis.role = \"menuitemcheckbox\";\n\t\t\t\tthis.selectable = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"radio\": {\n\t\t\t\tthis.role = \"menuitemradio\";\n\t\t\t\tthis.selectable = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tthis.role = \"menuitem\";\n\t\t\t}\n\t\t}\n\n\t\tif (this.type && this.contextMenuSelectionService && this.value) {\n\t\t\tconst { selectionObservable } = this.contextMenuSelectionService;\n\t\t\tconst subscription = selectionObservable.subscribe((value) => {\n\t\t\t\tif (this.type === \"radio\") {\n\t\t\t\t\tthis.handleSelection(value === this.value);\n\t\t\t\t}\n\n\t\t\t\tif (this.type === \"checkbox\") {\n\t\t\t\t\tthis.handleSelection(value.includes(this.value));\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.subscriptions.add(subscription);\n\t\t}\n\t}\n\n\tngAfterContentInit() {\n\t\tif (this.childContextMenu) {\n\t\t\tthis.hasChildren = true;\n\t\t\tthis.ariaHasPopup = true;\n\t\t\tthis.ariaExpanded = false;\n\t\t}\n\t}\n\n\t@HostListener(\"keydown.enter\", [\"$event\"])\n\t@HostListener(\"keydown.space\", [\"$event\"])\n\t@HostListener(\"click\", [\"$event\"])\n\thandleClick(event: MouseEvent & KeyboardEvent) {\n\t\tevent.stopPropagation();\n\t\tif (this.hasChildren) {\n\t\t\tthis.openSubMenu();\n\t\t\tthis.childContextMenu.focusMenu();\n\t\t}\n\n\t\tif (this.type) {\n\t\t\tthis.handleSelection(!this.checked);\n\t\t}\n\n\t\tif (this.contextMenuSelectionService) {\n\t\t\tif (this.type === \"radio\") {\n\t\t\t\tthis.contextMenuSelectionService.selectRadio(this.value);\n\t\t\t}\n\n\t\t\tif (this.type === \"checkbox\") {\n\t\t\t\tthis.contextMenuSelectionService.selectCheckbox(this.value);\n\t\t\t}\n\t\t}\n\n\t\tif (!this.disabled) {\n\t\t\tthis.itemClick.emit({\n\t\t\t\tevent,\n\t\t\t\tlabel: this.label,\n\t\t\t\tinfo: this.info,\n\t\t\t\tvalue: this.value,\n\t\t\t\ttype: this.type\n\t\t\t});\n\t\t}\n\t}\n\n\thandleSelection(selected: boolean) {\n\t\tthis.checked = selected;\n\t\tthis.checkedChange.emit(this.checked);\n\t}\n\n\topenSubMenu() {\n\t\tif (this.childContextMenu) {\n\t\t\tthis.childContextMenu.open = true;\n\t\t\tthis.ariaExpanded = true;\n\t\t\tconst dimensions = this.elementRef.nativeElement.getBoundingClientRect();\n\t\t\tthis.childContextMenu.position.left = dimensions.left + dimensions.width;\n\t\t\t// subtract 4px to account for margins\n\t\t\tthis.childContextMenu.position.top = dimensions.top - 4;\n\t\t}\n\t}\n\n\tcloseSubMenu() {\n\t\tif (this.childContextMenu) {\n\t\t\tthis.childContextMenu.open = false;\n\t\t\tthis.ariaExpanded = false;\n\t\t}\n\t}\n\n\t@HostListener(\"mouseover\")\n\thandleMouseOver() {\n\t\tthis.openSubMenu();\n\t}\n\n\t@HostListener(\"mouseout\")\n\thandleMouseOut() {\n\t\tthis.closeSubMenu();\n\t}\n\n\t@HostListener(\"focus\")\n\thandleFocus() {\n\t\tthis.tabindex = 0;\n\t\tif (this.hasChildren && this.ariaExpanded) {\n\t\t\tthis.closeSubMenu();\n\t\t}\n\t}\n\n\t@HostListener(\"blur\")\n\thandleBlur() {\n\t\tthis.tabindex = -1;\n\t}\n\n\tfocusItem() {\n\t\tthis.elementRef.nativeElement.focus();\n\t}\n\n\tngOnDestroy() {\n\t\tthis.subscriptions.unsubscribe();\n\t}\n}\n",
26351
27024
  "assetsDirs": [],
26352
27025
  "styleUrlsData": "",
26353
27026
  "stylesData": "\n\t\t:host {\n\t\t\tgrid-template-columns: 1rem 1fr max-content;\n\t\t}\n\t\n",
@@ -26370,7 +27043,7 @@
26370
27043
  "deprecationMessage": ""
26371
27044
  }
26372
27045
  ],
26373
- "line": 62,
27046
+ "line": 68,
26374
27047
  "jsdoctags": [
26375
27048
  {
26376
27049
  "name": "elementRef",
@@ -26405,7 +27078,16 @@
26405
27078
  "name": "ariaChecked",
26406
27079
  "type": "",
26407
27080
  "returnType": "",
26408
- "line": 45
27081
+ "line": 46
27082
+ }
27083
+ },
27084
+ "ariaDisabled": {
27085
+ "name": "ariaDisabled",
27086
+ "getSignature": {
27087
+ "name": "ariaDisabled",
27088
+ "type": "",
27089
+ "returnType": "",
27090
+ "line": 50
26409
27091
  }
26410
27092
  }
26411
27093
  }
@@ -36699,59 +37381,489 @@
36699
37381
  "defaultValue": "true",
36700
37382
  "deprecated": false,
36701
37383
  "deprecationMessage": "",
36702
- "rawdescription": "\n\nset to `false` to stop the loading animation\n",
36703
- "description": "<p>set to <code>false</code> to stop the loading animation</p>\n",
36704
- "line": 40,
36705
- "type": "boolean",
36706
- "decorators": []
37384
+ "rawdescription": "\n\nset to `false` to stop the loading animation\n",
37385
+ "description": "<p>set to <code>false</code> to stop the loading animation</p>\n",
37386
+ "line": 40,
37387
+ "type": "boolean",
37388
+ "decorators": []
37389
+ },
37390
+ {
37391
+ "name": "overlay",
37392
+ "defaultValue": "false",
37393
+ "deprecated": false,
37394
+ "deprecationMessage": "",
37395
+ "rawdescription": "\n\nSet to `true` to make loader with an overlay.\n",
37396
+ "description": "<p>Set to <code>true</code> to make loader with an overlay.</p>\n",
37397
+ "line": 50,
37398
+ "type": "boolean",
37399
+ "decorators": []
37400
+ },
37401
+ {
37402
+ "name": "size",
37403
+ "defaultValue": "\"normal\"",
37404
+ "deprecated": false,
37405
+ "deprecationMessage": "",
37406
+ "rawdescription": "\n\nSpecify the size of the button\n",
37407
+ "description": "<p>Specify the size of the button</p>\n",
37408
+ "line": 45,
37409
+ "type": "\"normal\" | \"sm\"",
37410
+ "decorators": []
37411
+ },
37412
+ {
37413
+ "name": "title",
37414
+ "defaultValue": "this.i18n.get().LOADING.TITLE",
37415
+ "deprecated": false,
37416
+ "deprecationMessage": "",
37417
+ "rawdescription": "\n\nAccessible title for the loading circle.\nDefaults to the `LOADING.TITLE` value from the i18n service.\n",
37418
+ "description": "<p>Accessible title for the loading circle.\nDefaults to the <code>LOADING.TITLE</code> value from the i18n service.</p>\n",
37419
+ "line": 35,
37420
+ "type": "any",
37421
+ "decorators": []
37422
+ }
37423
+ ],
37424
+ "outputsClass": [],
37425
+ "propertiesClass": [],
37426
+ "methodsClass": [],
37427
+ "deprecated": false,
37428
+ "deprecationMessage": "",
37429
+ "hostBindings": [],
37430
+ "hostListeners": [],
37431
+ "standalone": false,
37432
+ "imports": [],
37433
+ "description": "<p>Get started with importing the module:</p>\n<b>Example :</b><div><pre class=\"line-numbers\"><code class=\"language-typescript\">import { LoadingModule } from &#39;carbon-components-angular&#39;;</code></pre></div><p><a href=\"../../?path=/story/components-loading--basic\">See demo</a></p>\n",
37434
+ "rawdescription": "\n\nGet started with importing the module:\n\n```typescript\nimport { LoadingModule } from 'carbon-components-angular';\n```\n\n[See demo](../../?path=/story/components-loading--basic)\n",
37435
+ "type": "component",
37436
+ "sourceCode": "import { Component, Input, HostBinding } from \"@angular/core\";\nimport { I18n } from \"carbon-components-angular/i18n\";\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { LoadingModule } from 'carbon-components-angular';\n * ```\n *\n * [See demo](../../?path=/story/components-loading--basic)\n */\n@Component({\n\tselector: \"cds-loading, ibm-loading\",\n\ttemplate: `\n\t\t<div\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--loading--small': size === 'sm',\n\t\t\t\t'cds--loading--stop': !isActive && !overlay,\n\t\t\t\t'cds--loading-overlay--stop': !isActive && overlay\n\t\t\t}\"\n\t\t\tclass=\"cds--loading\">\n\t\t\t<svg class=\"cds--loading__svg\" viewBox=\"0 0 100 100\">\n\t\t\t\t<title>{{title}}</title>\n\t\t\t\t<circle class=\"cds--loading__stroke\" cx=\"50%\" cy=\"50%\" r=\"44\" />\n\t\t\t</svg>\n\t\t</div>\n\t`\n})\nexport class Loading {\n\t/**\n\t * Accessible title for the loading circle.\n\t * Defaults to the `LOADING.TITLE` value from the i18n service.\n\t */\n\t@Input() title = this.i18n.get().LOADING.TITLE;\n\n\t/**\n\t * set to `false` to stop the loading animation\n\t */\n\t@Input() isActive = true;\n\n\t/**\n\t * Specify the size of the button\n\t */\n\t@Input() size: \"normal\" | \"sm\" = \"normal\";\n\n\t/**\n\t * Set to `true` to make loader with an overlay.\n\t */\n\t@Input() @HostBinding(\"class.cds--loading-overlay\") overlay = false;\n\n\tconstructor(protected i18n: I18n) {}\n}\n",
37437
+ "assetsDirs": [],
37438
+ "styleUrlsData": "",
37439
+ "stylesData": "",
37440
+ "constructorObj": {
37441
+ "name": "constructor",
37442
+ "description": "",
37443
+ "deprecated": false,
37444
+ "deprecationMessage": "",
37445
+ "args": [
37446
+ {
37447
+ "name": "i18n",
37448
+ "type": "I18n",
37449
+ "deprecated": false,
37450
+ "deprecationMessage": ""
37451
+ }
37452
+ ],
37453
+ "line": 50,
37454
+ "jsdoctags": [
37455
+ {
37456
+ "name": "i18n",
37457
+ "type": "I18n",
37458
+ "deprecated": false,
37459
+ "deprecationMessage": "",
37460
+ "tagName": {
37461
+ "text": "param"
37462
+ }
37463
+ }
37464
+ ]
37465
+ },
37466
+ "extends": []
37467
+ },
37468
+ {
37469
+ "name": "ManyIconDemo",
37470
+ "id": "component-ManyIconDemo-4dc8e54ce44830aee1cad09a9f037497b8b861fd6a6917d49f10cb673a952246016d4f9aa756b8df7073ec4aaacde3c7bb6715519b386351ec01a88ad4740482",
37471
+ "file": "src/icon/stories/many-icons-demo.component.ts",
37472
+ "encapsulation": [],
37473
+ "entryComponents": [],
37474
+ "inputs": [],
37475
+ "outputs": [],
37476
+ "providers": [],
37477
+ "selector": "app-demo-many-icon",
37478
+ "styleUrls": [],
37479
+ "styles": [
37480
+ "\n\t\t\ttd {\n\t\t\t\twhite-space: nowrap;\n\t\t\t\tpadding: 10px 0;\n\t\t\t}\n\t\t"
37481
+ ],
37482
+ "template": "<table>\n\t<tr *ngFor=\"let group of groupedIcons\">\n\t\t<td *ngFor=\"let icon of group\">\n\t\t\t<svg [cdsIcon]=\"icon.name\" [size]=\"icon.size\"></svg>\n\t\t\t<div>name: <code>{{icon.name}}</code></div>\n\t\t\t<div>size: <code>{{icon.size}}</code></div>\n\t\t</td>\n\t</tr>\n</table>\n\t",
37483
+ "templateUrl": [],
37484
+ "viewProviders": [],
37485
+ "hostDirectives": [],
37486
+ "inputsClass": [],
37487
+ "outputsClass": [],
37488
+ "propertiesClass": [
37489
+ {
37490
+ "name": "groupedIcons",
37491
+ "defaultValue": "[]",
37492
+ "deprecated": false,
37493
+ "deprecationMessage": "",
37494
+ "type": "any",
37495
+ "optional": false,
37496
+ "description": "",
37497
+ "line": 29
37498
+ }
37499
+ ],
37500
+ "methodsClass": [],
37501
+ "deprecated": false,
37502
+ "deprecationMessage": "",
37503
+ "hostBindings": [],
37504
+ "hostListeners": [],
37505
+ "standalone": false,
37506
+ "imports": [],
37507
+ "description": "",
37508
+ "rawdescription": "\n",
37509
+ "type": "component",
37510
+ "sourceCode": "import { Component, OnInit } from \"@angular/core\";\nimport * as Icons from \"@carbon/icons\";\n\nimport { IconService } from \"../\";\n\n@Component({\n\tselector: \"app-demo-many-icon\",\n\ttemplate: `\n\t\t<table>\n\t\t\t<tr *ngFor=\"let group of groupedIcons\">\n\t\t\t\t<td *ngFor=\"let icon of group\">\n\t\t\t\t\t<svg [cdsIcon]=\"icon.name\" [size]=\"icon.size\"></svg>\n\t\t\t\t\t<div>name: <code>{{icon.name}}</code></div>\n\t\t\t\t\t<div>size: <code>{{icon.size}}</code></div>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t</table>\n\t`,\n\tstyles: [\n\t\t`\n\t\t\ttd {\n\t\t\t\twhite-space: nowrap;\n\t\t\t\tpadding: 10px 0;\n\t\t\t}\n\t\t`\n\t]\n})\nexport class ManyIconDemo implements OnInit {\n\tgroupedIcons: any = [];\n\n\tconstructor(protected iconService: IconService) { }\n\n\tngOnInit() {\n\t\tconst iconMap = new Map();\n\t\tfor (const descriptor of Object.values(Icons)) {\n\t\t\tthis.iconService.register(descriptor as any);\n\t\t\tif (typeof descriptor === \"object\" && descriptor) {\n\t\t\t\tif (!iconMap.has(descriptor[\"name\"])) {\n\t\t\t\t\ticonMap.set(descriptor[\"name\"], []);\n\t\t\t\t}\n\t\t\t\ticonMap.get(descriptor[\"name\"]).push(descriptor);\n\t\t\t}\n\t\t}\n\t\t// Render after a delay to prevent page from freezing\n\t\tsetTimeout(() => {\n\t\t\tthis.groupedIcons = Array.from(iconMap.values());\n\t\t}, 1000);\n\t}\n}\n",
37511
+ "assetsDirs": [],
37512
+ "styleUrlsData": "",
37513
+ "stylesData": "\n\t\t\ttd {\n\t\t\t\twhite-space: nowrap;\n\t\t\t\tpadding: 10px 0;\n\t\t\t}\n\t\t\n",
37514
+ "constructorObj": {
37515
+ "name": "constructor",
37516
+ "description": "",
37517
+ "deprecated": false,
37518
+ "deprecationMessage": "",
37519
+ "args": [
37520
+ {
37521
+ "name": "iconService",
37522
+ "type": "IconService",
37523
+ "deprecated": false,
37524
+ "deprecationMessage": ""
37525
+ }
37526
+ ],
37527
+ "line": 29,
37528
+ "jsdoctags": [
37529
+ {
37530
+ "name": "iconService",
37531
+ "type": "IconService",
37532
+ "deprecated": false,
37533
+ "deprecationMessage": "",
37534
+ "tagName": {
37535
+ "text": "param"
37536
+ }
37537
+ }
37538
+ ]
37539
+ },
37540
+ "extends": [],
37541
+ "implements": [
37542
+ "OnInit"
37543
+ ]
37544
+ },
37545
+ {
37546
+ "name": "MenuButtonComponent",
37547
+ "id": "component-MenuButtonComponent-9930be4d7a0a7029a44411b876444d2b329d5dfe4714db04569b8838e668d77eaee458b75bbc2e968b59a2393034a35f50f3183ad7d2728f6b1ade8ef57ee08d",
37548
+ "file": "src/menu-button/menu-button.component.ts",
37549
+ "changeDetection": "ChangeDetectionStrategy.OnPush",
37550
+ "encapsulation": [],
37551
+ "entryComponents": [],
37552
+ "inputs": [],
37553
+ "outputs": [],
37554
+ "providers": [],
37555
+ "selector": "cds-menu-button",
37556
+ "styleUrls": [],
37557
+ "styles": [],
37558
+ "template": "<button\n\t#reference\n\tclass=\"cds--menu-button__trigger\"\n\t[ngClass]=\"{'cds--menu-button__trigger--open': open}\"\n\t[cdsButton]=\"kind\"\n\t[size]=\"size\"\n\t[attr.tabindex]=\"buttonTabIndex\"\n\t[disabled]=\"disabled\"\n\ttype=\"button\"\n\t[attr.aria-haspopup]=\"true\"\n\t[attr.aria-expanded]=\"open\"\n\t[attr.aria-controls]=\"open ? menuId : undefined\"\n\t(click)=\"toggleMenu()\">\n\t{{label}}\n\t<svg\n\t\tcdsIcon=\"chevron--down\"\n\t\tsize=\"16\"\n\t\tclass=\"cds--btn__icon\">\n\t</svg>\n</button>\n<ng-template #menuTemplate>\n\t<cds-menu\n\t\tmode=\"basic\"\n\t\t[size]=\"size\"\n\t\t[open]=\"open\"\n\t\t[attr.id]=\"menuId\"\n\t\t[ngClass]=\"{\n\t\t\t'cds--menu-button__bottom': this.menuAlignment === 'bottom',\n\t\t\t'cds--menu-button__bottom-start': this.menuAlignment === 'bottom-start',\n\t\t\t'cds--menu-button__bottom-end': this.menuAlignment === 'bottom-end',\n\t\t\t'cds--menu-top': this.menuAlignment === 'top',\n\t\t\t'cds--menu-top-start': this.menuAlignment === 'top-start',\n\t\t\t'cds--menu-top-end': this.menuAlignment === 'top-end'\n\t\t}\">\n\t\t<ng-content select=\"cds-menu-item, cds-menu-divider\"></ng-content>\n\t</cds-menu>\n</ng-template>\n\t",
37559
+ "templateUrl": [],
37560
+ "viewProviders": [],
37561
+ "hostDirectives": [],
37562
+ "inputsClass": [
37563
+ {
37564
+ "name": "buttonTabIndex",
37565
+ "defaultValue": "\"0\"",
37566
+ "deprecated": false,
37567
+ "deprecationMessage": "",
37568
+ "line": 96,
37569
+ "type": "\"0\" | \"1\" | \"-1\" | string",
37570
+ "decorators": []
37571
+ },
37572
+ {
37573
+ "name": "disabled",
37574
+ "defaultValue": "false",
37575
+ "deprecated": false,
37576
+ "deprecationMessage": "",
37577
+ "line": 97,
37578
+ "type": "boolean",
37579
+ "decorators": []
37580
+ },
37581
+ {
37582
+ "name": "kind",
37583
+ "defaultValue": "\"primary\"",
37584
+ "deprecated": false,
37585
+ "deprecationMessage": "",
37586
+ "line": 93,
37587
+ "type": "\"primary\" | \"tertiary\" | \"ghost\"",
37588
+ "decorators": []
37589
+ },
37590
+ {
37591
+ "name": "label",
37592
+ "deprecated": false,
37593
+ "deprecationMessage": "",
37594
+ "line": 99,
37595
+ "type": "string",
37596
+ "decorators": []
37597
+ },
37598
+ {
37599
+ "name": "menuAlignment",
37600
+ "defaultValue": "\"bottom\"",
37601
+ "deprecated": false,
37602
+ "deprecationMessage": "",
37603
+ "line": 95,
37604
+ "type": "MenuButtonPlacement",
37605
+ "decorators": []
37606
+ },
37607
+ {
37608
+ "name": "menuId",
37609
+ "defaultValue": "`menu-button-${MenuButtonComponent.menuButtonCounter++}`",
37610
+ "deprecated": false,
37611
+ "deprecationMessage": "",
37612
+ "line": 77,
37613
+ "type": "string",
37614
+ "decorators": []
37615
+ },
37616
+ {
37617
+ "name": "open",
37618
+ "defaultValue": "false",
37619
+ "deprecated": false,
37620
+ "deprecationMessage": "",
37621
+ "line": 98,
37622
+ "type": "boolean",
37623
+ "decorators": []
37624
+ },
37625
+ {
37626
+ "name": "size",
37627
+ "defaultValue": "\"lg\"",
37628
+ "deprecated": false,
37629
+ "deprecationMessage": "",
37630
+ "line": 94,
37631
+ "type": "\"sm\" | \"md\" | \"lg\"",
37632
+ "decorators": []
37633
+ }
37634
+ ],
37635
+ "outputsClass": [],
37636
+ "propertiesClass": [
37637
+ {
37638
+ "name": "containerClass",
37639
+ "defaultValue": "true",
37640
+ "deprecated": false,
37641
+ "deprecationMessage": "",
37642
+ "type": "",
37643
+ "optional": false,
37644
+ "description": "",
37645
+ "line": 91,
37646
+ "decorators": [
37647
+ {
37648
+ "name": "HostBinding",
37649
+ "stringifiedArguments": "'class.cds--menu-button__container'"
37650
+ }
37651
+ ],
37652
+ "modifierKind": [
37653
+ 170
37654
+ ]
37655
+ },
37656
+ {
37657
+ "name": "menuButtonCounter",
37658
+ "defaultValue": "0",
37659
+ "deprecated": false,
37660
+ "deprecationMessage": "",
37661
+ "type": "number",
37662
+ "optional": false,
37663
+ "description": "",
37664
+ "line": 76,
37665
+ "modifierKind": [
37666
+ 126
37667
+ ]
37668
+ },
37669
+ {
37670
+ "name": "menuTemplate",
37671
+ "deprecated": false,
37672
+ "deprecationMessage": "",
37673
+ "type": "TemplateRef<any>",
37674
+ "optional": false,
37675
+ "description": "",
37676
+ "line": 102,
37677
+ "decorators": [
37678
+ {
37679
+ "name": "ViewChild",
37680
+ "stringifiedArguments": "'menuTemplate'"
37681
+ }
37682
+ ],
37683
+ "modifierKind": [
37684
+ 170
37685
+ ]
37686
+ },
37687
+ {
37688
+ "name": "referenceElement",
37689
+ "deprecated": false,
37690
+ "deprecationMessage": "",
37691
+ "type": "ElementRef<HTMLButtonElement>",
37692
+ "optional": false,
37693
+ "description": "",
37694
+ "line": 101,
37695
+ "decorators": [
37696
+ {
37697
+ "name": "ViewChild",
37698
+ "stringifiedArguments": "'reference', {static: true}"
37699
+ }
37700
+ ],
37701
+ "modifierKind": [
37702
+ 170
37703
+ ]
37704
+ }
37705
+ ],
37706
+ "methodsClass": [
37707
+ {
37708
+ "name": "cleanUp",
37709
+ "args": [],
37710
+ "optional": false,
37711
+ "returnType": "void",
37712
+ "typeParameters": [],
37713
+ "line": 180,
37714
+ "deprecated": false,
37715
+ "deprecationMessage": "",
37716
+ "rawdescription": "\n\nClean up `autoUpdate` if auto alignment is enabled\n",
37717
+ "description": "<p>Clean up <code>autoUpdate</code> if auto alignment is enabled</p>\n"
37718
+ },
37719
+ {
37720
+ "name": "handleFocusOut",
37721
+ "args": [
37722
+ {
37723
+ "name": "event",
37724
+ "type": "",
37725
+ "deprecated": false,
37726
+ "deprecationMessage": ""
37727
+ }
37728
+ ],
37729
+ "optional": false,
37730
+ "returnType": "void",
37731
+ "typeParameters": [],
37732
+ "line": 169,
37733
+ "deprecated": false,
37734
+ "deprecationMessage": "",
37735
+ "rawdescription": "\n\nOn body click, close the menu\n",
37736
+ "description": "<p>On body click, close the menu</p>\n",
37737
+ "jsdoctags": [
37738
+ {
37739
+ "name": {
37740
+ "pos": 4403,
37741
+ "end": 4408,
37742
+ "flags": 16842752,
37743
+ "modifierFlagsCache": 0,
37744
+ "transformFlags": 0,
37745
+ "kind": 80,
37746
+ "escapedText": "event"
37747
+ },
37748
+ "type": "",
37749
+ "deprecated": false,
37750
+ "deprecationMessage": "",
37751
+ "tagName": {
37752
+ "pos": 4397,
37753
+ "end": 4402,
37754
+ "flags": 16842752,
37755
+ "modifierFlagsCache": 0,
37756
+ "transformFlags": 0,
37757
+ "kind": 80,
37758
+ "escapedText": "param"
37759
+ },
37760
+ "comment": ""
37761
+ }
37762
+ ]
37763
+ },
37764
+ {
37765
+ "name": "handleMenuItemClick",
37766
+ "args": [
37767
+ {
37768
+ "name": "event",
37769
+ "type": "ItemClickEvent",
37770
+ "deprecated": false,
37771
+ "deprecationMessage": ""
37772
+ }
37773
+ ],
37774
+ "optional": false,
37775
+ "returnType": "void",
37776
+ "typeParameters": [],
37777
+ "line": 156,
37778
+ "deprecated": false,
37779
+ "deprecationMessage": "",
37780
+ "rawdescription": "\n\nAs of now, menu button does not support nexted menu, on button click it should close\n",
37781
+ "description": "<p>As of now, menu button does not support nexted menu, on button click it should close</p>\n",
37782
+ "jsdoctags": [
37783
+ {
37784
+ "name": "event",
37785
+ "type": "ItemClickEvent",
37786
+ "deprecated": false,
37787
+ "deprecationMessage": "",
37788
+ "tagName": {
37789
+ "text": "param"
37790
+ }
37791
+ }
37792
+ ]
36707
37793
  },
36708
37794
  {
36709
- "name": "overlay",
36710
- "defaultValue": "false",
37795
+ "name": "recomputePosition",
37796
+ "args": [],
37797
+ "optional": false,
37798
+ "returnType": "void",
37799
+ "typeParameters": [],
37800
+ "line": 238,
36711
37801
  "deprecated": false,
36712
37802
  "deprecationMessage": "",
36713
- "rawdescription": "\n\nSet to `true` to make loader with an overlay.\n",
36714
- "description": "<p>Set to <code>true</code> to make loader with an overlay.</p>\n",
36715
- "line": 50,
36716
- "type": "boolean",
36717
- "decorators": []
37803
+ "rawdescription": "\n\nCompute position of menu\n",
37804
+ "description": "<p>Compute position of menu</p>\n"
36718
37805
  },
36719
37806
  {
36720
- "name": "size",
36721
- "defaultValue": "\"normal\"",
37807
+ "name": "roundByDPR",
37808
+ "args": [
37809
+ {
37810
+ "name": "value",
37811
+ "type": "",
37812
+ "deprecated": false,
37813
+ "deprecationMessage": ""
37814
+ }
37815
+ ],
37816
+ "optional": false,
37817
+ "returnType": "number",
37818
+ "typeParameters": [],
37819
+ "line": 228,
36722
37820
  "deprecated": false,
36723
37821
  "deprecationMessage": "",
36724
- "rawdescription": "\n\nSpecify the size of the button\n",
36725
- "description": "<p>Specify the size of the button</p>\n",
36726
- "line": 45,
36727
- "type": "\"normal\" | \"sm\"",
36728
- "decorators": []
37822
+ "jsdoctags": [
37823
+ {
37824
+ "name": "value",
37825
+ "type": "",
37826
+ "deprecated": false,
37827
+ "deprecationMessage": "",
37828
+ "tagName": {
37829
+ "text": "param"
37830
+ }
37831
+ }
37832
+ ]
36729
37833
  },
36730
37834
  {
36731
- "name": "title",
36732
- "defaultValue": "this.i18n.get().LOADING.TITLE",
37835
+ "name": "toggleMenu",
37836
+ "args": [],
37837
+ "optional": false,
37838
+ "returnType": "void",
37839
+ "typeParameters": [],
37840
+ "line": 197,
36733
37841
  "deprecated": false,
36734
37842
  "deprecationMessage": "",
36735
- "rawdescription": "\n\nAccessible title for the loading circle.\nDefaults to the `LOADING.TITLE` value from the i18n service.\n",
36736
- "description": "<p>Accessible title for the loading circle.\nDefaults to the <code>LOADING.TITLE</code> value from the i18n service.</p>\n",
36737
- "line": 35,
36738
- "type": "any",
36739
- "decorators": []
37843
+ "rawdescription": "\n\nHandles emitting open/close event\n",
37844
+ "description": "<p>Handles emitting open/close event</p>\n"
36740
37845
  }
36741
37846
  ],
36742
- "outputsClass": [],
36743
- "propertiesClass": [],
36744
- "methodsClass": [],
36745
37847
  "deprecated": false,
36746
37848
  "deprecationMessage": "",
36747
- "hostBindings": [],
37849
+ "hostBindings": [
37850
+ {
37851
+ "name": "class.cds--menu-button__container",
37852
+ "defaultValue": "true",
37853
+ "deprecated": false,
37854
+ "deprecationMessage": "",
37855
+ "line": 91,
37856
+ "type": "boolean",
37857
+ "decorators": []
37858
+ }
37859
+ ],
36748
37860
  "hostListeners": [],
36749
37861
  "standalone": false,
36750
37862
  "imports": [],
36751
- "description": "<p>Get started with importing the module:</p>\n<b>Example :</b><div><pre class=\"line-numbers\"><code class=\"language-typescript\">import { LoadingModule } from &#39;carbon-components-angular&#39;;</code></pre></div><p><a href=\"../../?path=/story/components-loading--basic\">See demo</a></p>\n",
36752
- "rawdescription": "\n\nGet started with importing the module:\n\n```typescript\nimport { LoadingModule } from 'carbon-components-angular';\n```\n\n[See demo](../../?path=/story/components-loading--basic)\n",
37863
+ "description": "",
37864
+ "rawdescription": "\n",
36753
37865
  "type": "component",
36754
- "sourceCode": "import { Component, Input, HostBinding } from \"@angular/core\";\nimport { I18n } from \"carbon-components-angular/i18n\";\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { LoadingModule } from 'carbon-components-angular';\n * ```\n *\n * [See demo](../../?path=/story/components-loading--basic)\n */\n@Component({\n\tselector: \"cds-loading, ibm-loading\",\n\ttemplate: `\n\t\t<div\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--loading--small': size === 'sm',\n\t\t\t\t'cds--loading--stop': !isActive && !overlay,\n\t\t\t\t'cds--loading-overlay--stop': !isActive && overlay\n\t\t\t}\"\n\t\t\tclass=\"cds--loading\">\n\t\t\t<svg class=\"cds--loading__svg\" viewBox=\"0 0 100 100\">\n\t\t\t\t<title>{{title}}</title>\n\t\t\t\t<circle class=\"cds--loading__stroke\" cx=\"50%\" cy=\"50%\" r=\"44\" />\n\t\t\t</svg>\n\t\t</div>\n\t`\n})\nexport class Loading {\n\t/**\n\t * Accessible title for the loading circle.\n\t * Defaults to the `LOADING.TITLE` value from the i18n service.\n\t */\n\t@Input() title = this.i18n.get().LOADING.TITLE;\n\n\t/**\n\t * set to `false` to stop the loading animation\n\t */\n\t@Input() isActive = true;\n\n\t/**\n\t * Specify the size of the button\n\t */\n\t@Input() size: \"normal\" | \"sm\" = \"normal\";\n\n\t/**\n\t * Set to `true` to make loader with an overlay.\n\t */\n\t@Input() @HostBinding(\"class.cds--loading-overlay\") overlay = false;\n\n\tconstructor(protected i18n: I18n) {}\n}\n",
37866
+ "sourceCode": "import {\n\tAfterViewInit,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tContentChildren,\n\tElementRef,\n\tforwardRef,\n\tHostBinding,\n\tInput,\n\tNgZone,\n\tOnChanges,\n\tOnDestroy,\n\tQueryList,\n\tRenderer2,\n\tSimpleChanges,\n\tTemplateRef,\n\tViewChild,\n\tViewContainerRef\n} from \"@angular/core\";\n\nimport {\n\tautoUpdate,\n\tcomputePosition,\n\tflip\n} from \"@floating-ui/dom\";\nimport { ContextMenuItemComponent, ItemClickEvent } from \"carbon-components-angular/context-menu\";\nimport { Subscription } from \"rxjs\";\n\ntype MenuButtonPlacement = \"top\" | \"top-start\" | \"top-end\" | \"bottom\" | \"bottom-start\" | \"bottom-end\";\n\n@Component({\n\tselector: \"cds-menu-button\",\n\ttemplate: `\n\t\t<button\n\t\t\t#reference\n\t\t\tclass=\"cds--menu-button__trigger\"\n\t\t\t[ngClass]=\"{'cds--menu-button__trigger--open': open}\"\n\t\t\t[cdsButton]=\"kind\"\n\t\t\t[size]=\"size\"\n\t\t\t[attr.tabindex]=\"buttonTabIndex\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\ttype=\"button\"\n\t\t\t[attr.aria-haspopup]=\"true\"\n\t\t\t[attr.aria-expanded]=\"open\"\n\t\t\t[attr.aria-controls]=\"open ? menuId : undefined\"\n\t\t\t(click)=\"toggleMenu()\">\n\t\t\t{{label}}\n\t\t\t<svg\n\t\t\t\tcdsIcon=\"chevron--down\"\n\t\t\t\tsize=\"16\"\n\t\t\t\tclass=\"cds--btn__icon\">\n\t\t\t</svg>\n\t\t</button>\n\t\t<ng-template #menuTemplate>\n\t\t\t<cds-menu\n\t\t\t\tmode=\"basic\"\n\t\t\t\t[size]=\"size\"\n\t\t\t\t[open]=\"open\"\n\t\t\t\t[attr.id]=\"menuId\"\n\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t'cds--menu-button__bottom': this.menuAlignment === 'bottom',\n\t\t\t\t\t'cds--menu-button__bottom-start': this.menuAlignment === 'bottom-start',\n\t\t\t\t\t'cds--menu-button__bottom-end': this.menuAlignment === 'bottom-end',\n\t\t\t\t\t'cds--menu-top': this.menuAlignment === 'top',\n\t\t\t\t\t'cds--menu-top-start': this.menuAlignment === 'top-start',\n\t\t\t\t\t'cds--menu-top-end': this.menuAlignment === 'top-end'\n\t\t\t\t}\">\n\t\t\t\t<ng-content select=\"cds-menu-item, cds-menu-divider\"></ng-content>\n\t\t\t</cds-menu>\n\t\t</ng-template>\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuButtonComponent implements OnChanges, AfterViewInit, OnDestroy {\n\tstatic menuButtonCounter = 0;\n\t@Input() menuId = `menu-button-${MenuButtonComponent.menuButtonCounter++}`;\n\n\t// Listen for click & determine if menu should close\n\t@ContentChildren(ContextMenuItemComponent) set projectedMenuItems(itemList: QueryList<ContextMenuItemComponent>) {\n\t\t// Reset in case user dynamically updates menu item\n\t\tthis.subscriptions.forEach((sub) => sub?.unsubscribe());\n\t\tthis.subscriptions = [];\n\t\titemList.forEach((item) => {\n\t\t\tthis.subscriptions.push(\n\t\t\t\titem.itemClick.subscribe((clickEvent) => this.handleMenuItemClick(clickEvent))\n\t\t\t);\n\t\t});\n\t}\n\n\t@HostBinding(\"class.cds--menu-button__container\") containerClass = true;\n\n\t@Input() kind: \"primary\" | \"tertiary\" | \"ghost\" = \"primary\";\n\t@Input() size: \"sm\" | \"md\" | \"lg\" = \"lg\";\n\t@Input() menuAlignment: MenuButtonPlacement = \"bottom\";\n\t@Input() buttonTabIndex: \"0\" | \"1\" | \"-1\" | string = \"0\";\n\t@Input() disabled = false;\n\t@Input() open = false;\n\t@Input() label: string;\n\n\t@ViewChild(\"reference\", { static: true }) referenceElement: ElementRef<HTMLButtonElement>;\n\t@ViewChild(\"menuTemplate\") menuTemplate: TemplateRef<any>;\n\n\tprotected documentClick = this.handleFocusOut.bind(this);\n\tprotected unmountFloatingElement: Function;\n\n\tprivate subscriptions: Subscription[] = [];\n\tprivate _alignment: MenuButtonPlacement = \"bottom\";\n\tprivate menuRef: HTMLElement;\n\n\tconstructor(\n\t\tprotected ngZone: NgZone,\n\t\tprotected renderer: Renderer2,\n\t\tprotected hostElement: ElementRef,\n\t\tprotected viewContainerRef: ViewContainerRef,\n\t\tprotected changeDetectorRef: ChangeDetectorRef\n\t) { }\n\n\n\t/**\n\t * In case user updates alignment, store initial value.\n\t * This allows us to test user passed alignment on each open\n\t */\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes.menuAlignment) {\n\t\t\tthis._alignment = changes.menuAlignment.currentValue;\n\t\t}\n\t}\n\n\n\n\t/**\n\t * If user has passed in true for open, we dynamically open the menu\n\t */\n\tngAfterViewInit(): void {\n\t\tif (this.open) {\n\t\t\tthis.open = !this.open;\n\t\t\tthis.toggleMenu();\n\t\t}\n\t}\n\n\n\n\t/**\n\t* Clean up Floating-ui & subscriptions\n\t*/\n\tngOnDestroy(): void {\n\t\tthis.cleanUp();\n\t\tthis.subscriptions.forEach((sub) => sub.unsubscribe());\n\t}\n\n\n\t/**\n\t * As of now, menu button does not support nexted menu, on button click it should close\n\t */\n\thandleMenuItemClick(event: ItemClickEvent) {\n\t\t// If event is not type radio/checkbox, we close the menu\n\t\tif (!event.type) {\n\t\t\tthis.toggleMenu();\n\t\t}\n\t}\n\n\n\n\t/**\n\t * On body click, close the menu\n\t * @param event\n\t */\n\thandleFocusOut(event) {\n\t\tif (!this.hostElement.nativeElement.contains(event.target)) {\n\t\t\tthis.toggleMenu();\n\t\t}\n\t}\n\n\n\n\t/**\n\t * Clean up `autoUpdate` if auto alignment is enabled\n\t */\n\tcleanUp() {\n\t\tdocument.removeEventListener(\"click\", this.documentClick);\n\t\tif (this.unmountFloatingElement) {\n\t\t\tthis.menuRef.remove();\n\t\t\tthis.viewContainerRef.clear();\n\t\t\tthis.unmountFloatingElement();\n\t\t}\n\t\tthis.unmountFloatingElement = undefined;\n\t\t// On all instances of menu closing, make sure icon direction is correct\n\t\tthis.changeDetectorRef.markForCheck();\n\t}\n\n\n\n\t/**\n\t * Handles emitting open/close event\n\t */\n\ttoggleMenu() {\n\t\tthis.open = !this.open;\n\t\tif (this.open) {\n\t\t\t// Render the template & append to view\n\t\t\tconst view = this.viewContainerRef.createEmbeddedView(this.menuTemplate);\n\t\t\tthis.menuRef = document.body.appendChild(view.rootNodes[0] as HTMLElement);\n\t\t\t// Assign button width to the menu ref to align with button\n\t\t\tObject.assign(this.menuRef.style, {\n\t\t\t\twidth: `${this.referenceElement.nativeElement.clientWidth}px`,\n\t\t\t\ttop: \"0\",\n\t\t\t\tleft: \"0\"\n\t\t\t});\n\n\t\t\t// Reset & test alignment every open\n\t\t\tthis.menuAlignment = this._alignment;\n\n\t\t\tdocument.addEventListener(\"click\", this.documentClick);\n\n\t\t\t// Listen for events such as scrolling to keep menu aligned\n\t\t\tthis.unmountFloatingElement = autoUpdate(\n\t\t\t\tthis.referenceElement.nativeElement,\n\t\t\t\tthis.menuRef,\n\t\t\t\tthis.recomputePosition.bind(this)\n\t\t\t);\n\t\t} else {\n\t\t\tthis.cleanUp();\n\t\t}\n\t}\n\n\n\n\troundByDPR(value) {\n\t\tconst dpr = window.devicePixelRatio || 1;\n\t\treturn Math.round(value * dpr) / dpr;\n\t}\n\n\n\n\t/**\n\t * Compute position of menu\n\t */\n\trecomputePosition() {\n\t\tif (this.menuTemplate && this.referenceElement) {\n\t\t\t// Run outside of angular zone to avoid unnecessary change detection and rely on floating-ui\n\t\t\tthis.ngZone.runOutsideAngular(async () => {\n\t\t\t\tconst { x, y, placement } = await computePosition(\n\t\t\t\t\tthis.referenceElement.nativeElement,\n\t\t\t\t\tthis.menuRef,\n\t\t\t\t\t{\n\t\t\t\t\t\tplacement: this.menuAlignment,\n\t\t\t\t\t\tstrategy: \"fixed\",\n\t\t\t\t\t\tmiddleware: [\n\t\t\t\t\t\t\tflip({ crossAxis: false })\n\t\t\t\t\t\t]\n\t\t\t\t\t});\n\n\t\t\t\tthis.menuAlignment = placement as MenuButtonPlacement;\n\n\t\t\t\t// Using CSSOM to manipulate CSS to avoid content security policy inline-src\n\t\t\t\t// https://github.com/w3c/webappsec-csp/issues/212\n\t\t\t\tObject.assign(this.menuRef.style, {\n\t\t\t\t\tposition: \"fixed\",\n\t\t\t\t\t// Using transform instead of top/left position to improve performance\n\t\t\t\t\ttransform: `translate(${this.roundByDPR(x)}px,${this.roundByDPR(y)}px)`\n\t\t\t\t});\n\t\t\t\tthis.changeDetectorRef.markForCheck();\n\t\t\t});\n\t\t}\n\t}\n}\n",
36755
37867
  "assetsDirs": [],
36756
37868
  "styleUrlsData": "",
36757
37869
  "stylesData": "",
@@ -36762,91 +37874,77 @@
36762
37874
  "deprecationMessage": "",
36763
37875
  "args": [
36764
37876
  {
36765
- "name": "i18n",
36766
- "type": "I18n",
37877
+ "name": "ngZone",
37878
+ "type": "NgZone",
37879
+ "deprecated": false,
37880
+ "deprecationMessage": ""
37881
+ },
37882
+ {
37883
+ "name": "renderer",
37884
+ "type": "Renderer2",
37885
+ "deprecated": false,
37886
+ "deprecationMessage": ""
37887
+ },
37888
+ {
37889
+ "name": "hostElement",
37890
+ "type": "ElementRef",
37891
+ "deprecated": false,
37892
+ "deprecationMessage": ""
37893
+ },
37894
+ {
37895
+ "name": "viewContainerRef",
37896
+ "type": "ViewContainerRef",
37897
+ "deprecated": false,
37898
+ "deprecationMessage": ""
37899
+ },
37900
+ {
37901
+ "name": "changeDetectorRef",
37902
+ "type": "ChangeDetectorRef",
36767
37903
  "deprecated": false,
36768
37904
  "deprecationMessage": ""
36769
37905
  }
36770
37906
  ],
36771
- "line": 50,
37907
+ "line": 109,
36772
37908
  "jsdoctags": [
36773
37909
  {
36774
- "name": "i18n",
36775
- "type": "I18n",
37910
+ "name": "ngZone",
37911
+ "type": "NgZone",
36776
37912
  "deprecated": false,
36777
37913
  "deprecationMessage": "",
36778
37914
  "tagName": {
36779
37915
  "text": "param"
36780
37916
  }
36781
- }
36782
- ]
36783
- },
36784
- "extends": []
36785
- },
36786
- {
36787
- "name": "ManyIconDemo",
36788
- "id": "component-ManyIconDemo-4dc8e54ce44830aee1cad09a9f037497b8b861fd6a6917d49f10cb673a952246016d4f9aa756b8df7073ec4aaacde3c7bb6715519b386351ec01a88ad4740482",
36789
- "file": "src/icon/stories/many-icons-demo.component.ts",
36790
- "encapsulation": [],
36791
- "entryComponents": [],
36792
- "inputs": [],
36793
- "outputs": [],
36794
- "providers": [],
36795
- "selector": "app-demo-many-icon",
36796
- "styleUrls": [],
36797
- "styles": [
36798
- "\n\t\t\ttd {\n\t\t\t\twhite-space: nowrap;\n\t\t\t\tpadding: 10px 0;\n\t\t\t}\n\t\t"
36799
- ],
36800
- "template": "<table>\n\t<tr *ngFor=\"let group of groupedIcons\">\n\t\t<td *ngFor=\"let icon of group\">\n\t\t\t<svg [cdsIcon]=\"icon.name\" [size]=\"icon.size\"></svg>\n\t\t\t<div>name: <code>{{icon.name}}</code></div>\n\t\t\t<div>size: <code>{{icon.size}}</code></div>\n\t\t</td>\n\t</tr>\n</table>\n\t",
36801
- "templateUrl": [],
36802
- "viewProviders": [],
36803
- "hostDirectives": [],
36804
- "inputsClass": [],
36805
- "outputsClass": [],
36806
- "propertiesClass": [
36807
- {
36808
- "name": "groupedIcons",
36809
- "defaultValue": "[]",
36810
- "deprecated": false,
36811
- "deprecationMessage": "",
36812
- "type": "any",
36813
- "optional": false,
36814
- "description": "",
36815
- "line": 29
36816
- }
36817
- ],
36818
- "methodsClass": [],
36819
- "deprecated": false,
36820
- "deprecationMessage": "",
36821
- "hostBindings": [],
36822
- "hostListeners": [],
36823
- "standalone": false,
36824
- "imports": [],
36825
- "description": "",
36826
- "rawdescription": "\n",
36827
- "type": "component",
36828
- "sourceCode": "import { Component, OnInit } from \"@angular/core\";\nimport * as Icons from \"@carbon/icons\";\n\nimport { IconService } from \"../\";\n\n@Component({\n\tselector: \"app-demo-many-icon\",\n\ttemplate: `\n\t\t<table>\n\t\t\t<tr *ngFor=\"let group of groupedIcons\">\n\t\t\t\t<td *ngFor=\"let icon of group\">\n\t\t\t\t\t<svg [cdsIcon]=\"icon.name\" [size]=\"icon.size\"></svg>\n\t\t\t\t\t<div>name: <code>{{icon.name}}</code></div>\n\t\t\t\t\t<div>size: <code>{{icon.size}}</code></div>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t</table>\n\t`,\n\tstyles: [\n\t\t`\n\t\t\ttd {\n\t\t\t\twhite-space: nowrap;\n\t\t\t\tpadding: 10px 0;\n\t\t\t}\n\t\t`\n\t]\n})\nexport class ManyIconDemo implements OnInit {\n\tgroupedIcons: any = [];\n\n\tconstructor(protected iconService: IconService) { }\n\n\tngOnInit() {\n\t\tconst iconMap = new Map();\n\t\tfor (const descriptor of Object.values(Icons)) {\n\t\t\tthis.iconService.register(descriptor as any);\n\t\t\tif (typeof descriptor === \"object\" && descriptor) {\n\t\t\t\tif (!iconMap.has(descriptor[\"name\"])) {\n\t\t\t\t\ticonMap.set(descriptor[\"name\"], []);\n\t\t\t\t}\n\t\t\t\ticonMap.get(descriptor[\"name\"]).push(descriptor);\n\t\t\t}\n\t\t}\n\t\t// Render after a delay to prevent page from freezing\n\t\tsetTimeout(() => {\n\t\t\tthis.groupedIcons = Array.from(iconMap.values());\n\t\t}, 1000);\n\t}\n}\n",
36829
- "assetsDirs": [],
36830
- "styleUrlsData": "",
36831
- "stylesData": "\n\t\t\ttd {\n\t\t\t\twhite-space: nowrap;\n\t\t\t\tpadding: 10px 0;\n\t\t\t}\n\t\t\n",
36832
- "constructorObj": {
36833
- "name": "constructor",
36834
- "description": "",
36835
- "deprecated": false,
36836
- "deprecationMessage": "",
36837
- "args": [
37917
+ },
36838
37918
  {
36839
- "name": "iconService",
36840
- "type": "IconService",
37919
+ "name": "renderer",
37920
+ "type": "Renderer2",
36841
37921
  "deprecated": false,
36842
- "deprecationMessage": ""
36843
- }
36844
- ],
36845
- "line": 29,
36846
- "jsdoctags": [
37922
+ "deprecationMessage": "",
37923
+ "tagName": {
37924
+ "text": "param"
37925
+ }
37926
+ },
36847
37927
  {
36848
- "name": "iconService",
36849
- "type": "IconService",
37928
+ "name": "hostElement",
37929
+ "type": "ElementRef",
37930
+ "deprecated": false,
37931
+ "deprecationMessage": "",
37932
+ "tagName": {
37933
+ "text": "param"
37934
+ }
37935
+ },
37936
+ {
37937
+ "name": "viewContainerRef",
37938
+ "type": "ViewContainerRef",
37939
+ "deprecated": false,
37940
+ "deprecationMessage": "",
37941
+ "tagName": {
37942
+ "text": "param"
37943
+ }
37944
+ },
37945
+ {
37946
+ "name": "changeDetectorRef",
37947
+ "type": "ChangeDetectorRef",
36850
37948
  "deprecated": false,
36851
37949
  "deprecationMessage": "",
36852
37950
  "tagName": {
@@ -36857,8 +37955,42 @@
36857
37955
  },
36858
37956
  "extends": [],
36859
37957
  "implements": [
36860
- "OnInit"
36861
- ]
37958
+ "OnChanges",
37959
+ "AfterViewInit",
37960
+ "OnDestroy"
37961
+ ],
37962
+ "accessors": {
37963
+ "projectedMenuItems": {
37964
+ "name": "projectedMenuItems",
37965
+ "setSignature": {
37966
+ "name": "projectedMenuItems",
37967
+ "type": "void",
37968
+ "deprecated": false,
37969
+ "deprecationMessage": "",
37970
+ "args": [
37971
+ {
37972
+ "name": "itemList",
37973
+ "type": "QueryList<ContextMenuItemComponent>",
37974
+ "deprecated": false,
37975
+ "deprecationMessage": ""
37976
+ }
37977
+ ],
37978
+ "returnType": "void",
37979
+ "line": 80,
37980
+ "jsdoctags": [
37981
+ {
37982
+ "name": "itemList",
37983
+ "type": "QueryList<ContextMenuItemComponent>",
37984
+ "deprecated": false,
37985
+ "deprecationMessage": "",
37986
+ "tagName": {
37987
+ "text": "param"
37988
+ }
37989
+ }
37990
+ ]
37991
+ }
37992
+ }
37993
+ }
36862
37994
  },
36863
37995
  {
36864
37996
  "name": "MockQueryCombobox",
@@ -66386,7 +67518,7 @@
66386
67518
  },
66387
67519
  {
66388
67520
  "name": "Toggletip",
66389
- "id": "component-Toggletip-8bc8ce32fdba7851621debb20f65e40b36cbdb53f07f7a02bcc377c18c7d8f26723f5c12e404ecdc31c59f61674b318becd953dcf5221997247ea28a07984c71",
67521
+ "id": "component-Toggletip-18ae0a3f5ad133c76eef9acc82a6de7e9b0043325567115188a487cdd69ca54e13ee980b47b6c24e65a836dd57a3cb64f390ac2be8a38b46e871518b9ab1ac08",
66390
67522
  "file": "src/toggletip/toggletip.component.ts",
66391
67523
  "changeDetection": "ChangeDetectionStrategy.OnPush",
66392
67524
  "encapsulation": [],
@@ -66397,7 +67529,7 @@
66397
67529
  "selector": "cds-toggletip, ibm-toggletip",
66398
67530
  "styleUrls": [],
66399
67531
  "styles": [],
66400
- "template": "<ng-content select=\"[cdsToggletipButton]\"></ng-content>\n<cds-popover-content>\n\t<ng-content select=\"[cdsToggletipContent]\"></ng-content>\n</cds-popover-content>\n\t",
67532
+ "template": "<ng-content select=\"[cdsToggletipButton]\"></ng-content>\n<cds-popover-content [attr.id]=\"id\" aria-live=\"polite\">\n\t<ng-content select=\"[cdsToggletipContent]\"></ng-content>\n</cds-popover-content>\n\t",
66401
67533
  "templateUrl": [],
66402
67534
  "viewProviders": [],
66403
67535
  "hostDirectives": [],
@@ -66982,7 +68114,7 @@
66982
68114
  "description": "<p>Get started with importing the module:</p>\n<b>Example :</b><div><pre class=\"line-numbers\"><code class=\"language-typescript\">import { ToggletipModule } from &#39;carbon-components-angular&#39;;</code></pre></div><p><a href=\"../../?path=/story/components-toggletip--basic\">See demo</a></p>\n",
66983
68115
  "rawdescription": "\n\nGet started with importing the module:\n\n```typescript\nimport { ToggletipModule } from 'carbon-components-angular';\n```\n\n[See demo](../../?path=/story/components-toggletip--basic)\n",
66984
68116
  "type": "component",
66985
- "sourceCode": "import {\n\tAfterViewInit,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tContentChild,\n\tElementRef,\n\tHostBinding,\n\tHostListener,\n\tInput,\n\tNgZone,\n\tOnDestroy,\n\tRenderer2\n} from \"@angular/core\";\nimport { fromEvent, Subscription } from \"rxjs\";\nimport { PopoverContainer } from \"carbon-components-angular/popover\";\nimport { ToggletipButton } from \"./toggletip-button.directive\";\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { ToggletipModule } from 'carbon-components-angular';\n * ```\n *\n * [See demo](../../?path=/story/components-toggletip--basic)\n */\n@Component({\n\tselector: \"cds-toggletip, ibm-toggletip\",\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<ng-content select=\"[cdsToggletipButton]\"></ng-content>\n\t\t<cds-popover-content>\n\t\t\t<ng-content select=\"[cdsToggletipContent]\"></ng-content>\n\t\t</cds-popover-content>\n\t`\n})\nexport class Toggletip extends PopoverContainer implements AfterViewInit, OnDestroy {\n\tstatic toggletipCounter = 0;\n\n\t@Input() id = `tooltip-${Toggletip.toggletipCounter++}`;\n\n\t@HostBinding(\"class.cds--toggletip\") toggletipClass = true;\n\t@HostBinding(\"class.cds--toggletip--open\") @Input() isOpen = false;\n\n\t@ContentChild(ToggletipButton, { read: ElementRef }) btn!: ElementRef;\n\n\tdocumentClick = this.handleFocusOut.bind(this);\n\tprivate subscription: Subscription;\n\n\tconstructor(\n\t\tprotected hostElement: ElementRef,\n\t\tprotected ngZone: NgZone,\n\t\tprotected renderer: Renderer2,\n\t\tprotected changeDetectorRef: ChangeDetectorRef\n\t) {\n\t\tsuper(hostElement, ngZone, renderer, changeDetectorRef);\n\t\tthis.highContrast = true;\n\t\tthis.dropShadow = false;\n\t}\n\n\tngAfterViewInit(): void {\n\t\tthis.initializeReferences();\n\n\t\t// Listen for click events on trigger\n\t\tthis.subscription = fromEvent(this.btn.nativeElement, \"click\")\n\t\t\t.subscribe((event: Event) => {\n\t\t\t\t// Add/Remove event listener based on isOpen to improve performance when there\n\t\t\t\t// are a lot of toggletips\n\t\t\t\tif (this.isOpen) {\n\t\t\t\t\tdocument.removeEventListener(\"click\", this.documentClick);\n\t\t\t\t} else {\n\t\t\t\t\tdocument.addEventListener(\"click\", this.documentClick);\n\t\t\t\t}\n\n\t\t\t\tthis.handleExpansion(!this.isOpen, event);\n\t\t\t});\n\n\t\t// Toggletip is open on initial render, add 'click' event listener to document so users can close\n\t\tif (this.isOpen) {\n\t\t\tdocument.addEventListener(\"click\", this.documentClick);\n\t\t}\n\n\t\tif (this.btn) {\n\t\t\tthis.renderer.setAttribute(this.btn.nativeElement, \"aria-controls\", this.id);\n\t\t}\n\t}\n\n\t@HostListener(\"keyup\", [\"$event\"])\n\thostkeys(event: KeyboardEvent) {\n\t\tif (open && event.key === \"Escape\") {\n\t\t\tevent.stopPropagation();\n\t\t\tthis.handleExpansion(false, event);\n\t\t}\n\t}\n\n\thandleFocusOut(event) {\n\t\tif (!this.hostElement.nativeElement.contains(event.target)) {\n\t\t\tthis.handleExpansion(false, event);\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.subscription.unsubscribe();\n\t}\n\n\tprivate handleExpansion(state = false, event: Event) {\n\t\tthis.handleChange(state, event);\n\t\tif (this.btn) {\n\t\t\tthis.renderer.setAttribute(this.btn.nativeElement, \"aria-expanded\", this.isOpen.toString());\n\t\t}\n\t}\n}\n",
68117
+ "sourceCode": "import {\n\tAfterViewInit,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tContentChild,\n\tElementRef,\n\tHostBinding,\n\tHostListener,\n\tInput,\n\tNgZone,\n\tOnDestroy,\n\tRenderer2\n} from \"@angular/core\";\nimport { fromEvent, Subscription } from \"rxjs\";\nimport { PopoverContainer } from \"carbon-components-angular/popover\";\nimport { ToggletipButton } from \"./toggletip-button.directive\";\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { ToggletipModule } from 'carbon-components-angular';\n * ```\n *\n * [See demo](../../?path=/story/components-toggletip--basic)\n */\n@Component({\n\tselector: \"cds-toggletip, ibm-toggletip\",\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<ng-content select=\"[cdsToggletipButton]\"></ng-content>\n\t\t<cds-popover-content [attr.id]=\"id\" aria-live=\"polite\">\n\t\t\t<ng-content select=\"[cdsToggletipContent]\"></ng-content>\n\t\t</cds-popover-content>\n\t`\n})\nexport class Toggletip extends PopoverContainer implements AfterViewInit, OnDestroy {\n\tstatic toggletipCounter = 0;\n\n\t@Input() id = `tooltip-${Toggletip.toggletipCounter++}`;\n\n\t@HostBinding(\"class.cds--toggletip\") toggletipClass = true;\n\t@HostBinding(\"class.cds--toggletip--open\") @Input() isOpen = false;\n\n\t@ContentChild(ToggletipButton, { read: ElementRef }) btn!: ElementRef;\n\n\tdocumentClick = this.handleFocusOut.bind(this);\n\tprivate subscription: Subscription;\n\n\tconstructor(\n\t\tprotected hostElement: ElementRef,\n\t\tprotected ngZone: NgZone,\n\t\tprotected renderer: Renderer2,\n\t\tprotected changeDetectorRef: ChangeDetectorRef\n\t) {\n\t\tsuper(hostElement, ngZone, renderer, changeDetectorRef);\n\t\tthis.highContrast = true;\n\t\tthis.dropShadow = false;\n\t}\n\n\tngAfterViewInit(): void {\n\t\tthis.initializeReferences();\n\n\t\t// Listen for click events on trigger\n\t\tthis.subscription = fromEvent(this.btn.nativeElement, \"click\")\n\t\t\t.subscribe((event: Event) => {\n\t\t\t\t// Add/Remove event listener based on isOpen to improve performance when there\n\t\t\t\t// are a lot of toggletips\n\t\t\t\tif (this.isOpen) {\n\t\t\t\t\tdocument.removeEventListener(\"click\", this.documentClick);\n\t\t\t\t} else {\n\t\t\t\t\tdocument.addEventListener(\"click\", this.documentClick);\n\t\t\t\t}\n\n\t\t\t\tthis.handleExpansion(!this.isOpen, event);\n\t\t\t});\n\n\t\t// Toggletip is open on initial render, add 'click' event listener to document so users can close\n\t\tif (this.isOpen) {\n\t\t\tdocument.addEventListener(\"click\", this.documentClick);\n\t\t}\n\n\t\tif (this.btn) {\n\t\t\tthis.renderer.setAttribute(this.btn.nativeElement, \"aria-controls\", this.id);\n\t\t}\n\t}\n\n\t@HostListener(\"keyup\", [\"$event\"])\n\thostkeys(event: KeyboardEvent) {\n\t\tif (open && event.key === \"Escape\") {\n\t\t\tevent.stopPropagation();\n\t\t\tthis.handleExpansion(false, event);\n\t\t}\n\t}\n\n\thandleFocusOut(event) {\n\t\tif (!this.hostElement.nativeElement.contains(event.target)) {\n\t\t\tthis.handleExpansion(false, event);\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.subscription.unsubscribe();\n\t}\n\n\tprivate handleExpansion(state = false, event: Event) {\n\t\tthis.handleChange(state, event);\n\t\tif (this.btn) {\n\t\t\tthis.renderer.setAttribute(this.btn.nativeElement, \"aria-expanded\", this.isOpen.toString());\n\t\t}\n\t}\n}\n",
66986
68118
  "assetsDirs": [],
66987
68119
  "styleUrlsData": "",
66988
68120
  "stylesData": "",
@@ -70165,6 +71297,60 @@
70165
71297
  }
70166
71298
  ]
70167
71299
  },
71300
+ {
71301
+ "name": "ComboButtonModule",
71302
+ "id": "module-ComboButtonModule-705867ddb65364729d381c1f3180d6accbff37c0c8955fb5b71071da1f580561068f24f40d7675aa28ba456befe39edbb845b798e00ccd09f8cc6b11b4c002be",
71303
+ "description": "",
71304
+ "deprecationMessage": "",
71305
+ "deprecated": false,
71306
+ "file": "src/combo-button/combo-button.module.ts",
71307
+ "methods": [],
71308
+ "sourceCode": "import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { IconModule } from \"carbon-components-angular/icon\";\nimport { ContextMenuModule } from \"carbon-components-angular/context-menu\";\nimport { ButtonModule } from \"carbon-components-angular/button\";\n\nimport { ComboButtonComponent } from \"./combo-button.component\";\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\t\tButtonModule,\n\t\tIconModule,\n\t\tContextMenuModule\n\t],\n\texports: [ComboButtonComponent],\n\tdeclarations: [ComboButtonComponent]\n})\nexport class ComboButtonModule { }\n",
71309
+ "children": [
71310
+ {
71311
+ "type": "providers",
71312
+ "elements": []
71313
+ },
71314
+ {
71315
+ "type": "declarations",
71316
+ "elements": [
71317
+ {
71318
+ "name": "ComboButtonComponent"
71319
+ }
71320
+ ]
71321
+ },
71322
+ {
71323
+ "type": "imports",
71324
+ "elements": [
71325
+ {
71326
+ "name": "ButtonModule"
71327
+ },
71328
+ {
71329
+ "name": "ContextMenuModule"
71330
+ },
71331
+ {
71332
+ "name": "IconModule"
71333
+ }
71334
+ ]
71335
+ },
71336
+ {
71337
+ "type": "exports",
71338
+ "elements": [
71339
+ {
71340
+ "name": "ComboButtonComponent"
71341
+ }
71342
+ ]
71343
+ },
71344
+ {
71345
+ "type": "bootstrap",
71346
+ "elements": []
71347
+ },
71348
+ {
71349
+ "type": "classes",
71350
+ "elements": []
71351
+ }
71352
+ ]
71353
+ },
70168
71354
  {
70169
71355
  "name": "ContainedListModule",
70170
71356
  "id": "module-ContainedListModule-45e6bc117d8af8603b041fe5ef4088fd4fae5785c35f61b921fcda04976463f879ebb045d08a833b14592e03add98b2b6276d14260a15087a67fd09a2fc24743",
@@ -71415,6 +72601,60 @@
71415
72601
  }
71416
72602
  ]
71417
72603
  },
72604
+ {
72605
+ "name": "MenuButtonModule",
72606
+ "id": "module-MenuButtonModule-a2df7769bd937428742a3e946e0288a88c29ba93b25b8e09901809b47c5d729a417d06557fd6bbd05530b891ff5302f6f08371d670740544f0addfa7e7781a8a",
72607
+ "description": "",
72608
+ "deprecationMessage": "",
72609
+ "deprecated": false,
72610
+ "file": "src/menu-button/menu-button.module.ts",
72611
+ "methods": [],
72612
+ "sourceCode": "import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { ButtonModule } from \"carbon-components-angular/button\";\nimport { IconModule } from \"carbon-components-angular/icon\";\nimport { ContextMenuModule } from \"carbon-components-angular/context-menu\";\n\nimport { MenuButtonComponent } from \"./menu-button.component\";\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\t\tButtonModule,\n\t\tIconModule,\n\t\tContextMenuModule\n\t],\n\texports: [MenuButtonComponent],\n\tdeclarations: [MenuButtonComponent],\n\tproviders: []\n})\nexport class MenuButtonModule { }\n",
72613
+ "children": [
72614
+ {
72615
+ "type": "providers",
72616
+ "elements": []
72617
+ },
72618
+ {
72619
+ "type": "declarations",
72620
+ "elements": [
72621
+ {
72622
+ "name": "MenuButtonComponent"
72623
+ }
72624
+ ]
72625
+ },
72626
+ {
72627
+ "type": "imports",
72628
+ "elements": [
72629
+ {
72630
+ "name": "ButtonModule"
72631
+ },
72632
+ {
72633
+ "name": "ContextMenuModule"
72634
+ },
72635
+ {
72636
+ "name": "IconModule"
72637
+ }
72638
+ ]
72639
+ },
72640
+ {
72641
+ "type": "exports",
72642
+ "elements": [
72643
+ {
72644
+ "name": "MenuButtonComponent"
72645
+ }
72646
+ ]
72647
+ },
72648
+ {
72649
+ "type": "bootstrap",
72650
+ "elements": []
72651
+ },
72652
+ {
72653
+ "type": "classes",
72654
+ "elements": []
72655
+ }
72656
+ ]
72657
+ },
71418
72658
  {
71419
72659
  "name": "ModalModule",
71420
72660
  "id": "module-ModalModule-807a4219f47d9819369c92a95700d996a594cb8e1c36fd1ba161fc238050c8f1477ef660d375c2835113fe19d1248da54c9e170b2f47d0eda4c95176a765f0bb",
@@ -73585,6 +74825,16 @@
73585
74825
  "type": "",
73586
74826
  "defaultValue": "Template.bind({})"
73587
74827
  },
74828
+ {
74829
+ "name": "Basic",
74830
+ "ctype": "miscellaneous",
74831
+ "subtype": "variable",
74832
+ "file": "src/breadcrumb/breadcrumb.stories.ts",
74833
+ "deprecated": false,
74834
+ "deprecationMessage": "",
74835
+ "type": "",
74836
+ "defaultValue": "Template.bind({})"
74837
+ },
73588
74838
  {
73589
74839
  "name": "Basic",
73590
74840
  "ctype": "miscellaneous",
@@ -73619,7 +74869,7 @@
73619
74869
  "name": "Basic",
73620
74870
  "ctype": "miscellaneous",
73621
74871
  "subtype": "variable",
73622
- "file": "src/breadcrumb/breadcrumb.stories.ts",
74872
+ "file": "src/checkbox/checkbox.stories.ts",
73623
74873
  "deprecated": false,
73624
74874
  "deprecationMessage": "",
73625
74875
  "type": "",
@@ -73629,7 +74879,7 @@
73629
74879
  "name": "Basic",
73630
74880
  "ctype": "miscellaneous",
73631
74881
  "subtype": "variable",
73632
- "file": "src/checkbox/checkbox.stories.ts",
74882
+ "file": "src/code-snippet/code-snippet.stories.ts",
73633
74883
  "deprecated": false,
73634
74884
  "deprecationMessage": "",
73635
74885
  "type": "",
@@ -73639,7 +74889,7 @@
73639
74889
  "name": "Basic",
73640
74890
  "ctype": "miscellaneous",
73641
74891
  "subtype": "variable",
73642
- "file": "src/code-snippet/code-snippet.stories.ts",
74892
+ "file": "src/combo-button/combo-button.stories.ts",
73643
74893
  "deprecated": false,
73644
74894
  "deprecationMessage": "",
73645
74895
  "type": "",
@@ -73825,6 +75075,16 @@
73825
75075
  "type": "",
73826
75076
  "defaultValue": "Template.bind({})"
73827
75077
  },
75078
+ {
75079
+ "name": "Basic",
75080
+ "ctype": "miscellaneous",
75081
+ "subtype": "variable",
75082
+ "file": "src/menu-button/menu-button.stories.ts",
75083
+ "deprecated": false,
75084
+ "deprecationMessage": "",
75085
+ "type": "",
75086
+ "defaultValue": "Template.bind({})"
75087
+ },
73828
75088
  {
73829
75089
  "name": "Basic",
73830
75090
  "ctype": "miscellaneous",
@@ -73959,7 +75219,7 @@
73959
75219
  "name": "Basic",
73960
75220
  "ctype": "miscellaneous",
73961
75221
  "subtype": "variable",
73962
- "file": "src/tabs/tabs.stories.ts",
75222
+ "file": "src/table/table.stories.ts",
73963
75223
  "deprecated": false,
73964
75224
  "deprecationMessage": "",
73965
75225
  "type": "",
@@ -73969,7 +75229,7 @@
73969
75229
  "name": "Basic",
73970
75230
  "ctype": "miscellaneous",
73971
75231
  "subtype": "variable",
73972
- "file": "src/tag/tag.stories.ts",
75232
+ "file": "src/tabs/tabs.stories.ts",
73973
75233
  "deprecated": false,
73974
75234
  "deprecationMessage": "",
73975
75235
  "type": "",
@@ -73979,7 +75239,7 @@
73979
75239
  "name": "Basic",
73980
75240
  "ctype": "miscellaneous",
73981
75241
  "subtype": "variable",
73982
- "file": "src/table/table.stories.ts",
75242
+ "file": "src/tag/tag.stories.ts",
73983
75243
  "deprecated": false,
73984
75244
  "deprecationMessage": "",
73985
75245
  "type": "",
@@ -76201,7 +77461,7 @@
76201
77461
  "name": "Skeleton",
76202
77462
  "ctype": "miscellaneous",
76203
77463
  "subtype": "variable",
76204
- "file": "src/tabs/tabs.stories.ts",
77464
+ "file": "src/table/table.stories.ts",
76205
77465
  "deprecated": false,
76206
77466
  "deprecationMessage": "",
76207
77467
  "type": "",
@@ -76211,7 +77471,7 @@
76211
77471
  "name": "Skeleton",
76212
77472
  "ctype": "miscellaneous",
76213
77473
  "subtype": "variable",
76214
- "file": "src/table/table.stories.ts",
77474
+ "file": "src/tabs/tabs.stories.ts",
76215
77475
  "deprecated": false,
76216
77476
  "deprecationMessage": "",
76217
77477
  "type": "",
@@ -76321,21 +77581,21 @@
76321
77581
  "name": "SkeletonTemplate",
76322
77582
  "ctype": "miscellaneous",
76323
77583
  "subtype": "variable",
76324
- "file": "src/tabs/tabs.stories.ts",
77584
+ "file": "src/table/table.stories.ts",
76325
77585
  "deprecated": false,
76326
77586
  "deprecationMessage": "",
76327
77587
  "type": "",
76328
- "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-tabs skeleton=\"true\">\n\t\t\t<cds-tab></cds-tab>\n\t\t\t<cds-tab></cds-tab>\n\t\t</cds-tabs>\n\n\t\t<div style=\"margin-top: 5rem\">\n\t\t\t<p>Tab skeleton component for cds-tab-header-group:</p>\n\t\t\t<cds-tabs-skeleton></cds-tabs-skeleton>\n\t\t</div>\n\t`\n})"
77588
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<!--\n\t\tapp-* components are for demo purposes only.\n\t\tYou can create your own implementation by using the component source found at:\n\t\thttps://github.com/IBM/carbon-components-angular/tree/master/src/table/stories/app-skeleton-table.component.ts\n\t\t-->\n\t\t<app-skeleton-table\n\t\t\t[skeletonModel]=\"skeletonModel\"\n\t\t\t[size]=\"size\"\n\t\t\t[striped]=\"striped\">\n\t\t</app-skeleton-table>\n\t`\n})"
76329
77589
  },
76330
77590
  {
76331
77591
  "name": "SkeletonTemplate",
76332
77592
  "ctype": "miscellaneous",
76333
77593
  "subtype": "variable",
76334
- "file": "src/table/table.stories.ts",
77594
+ "file": "src/tabs/tabs.stories.ts",
76335
77595
  "deprecated": false,
76336
77596
  "deprecationMessage": "",
76337
77597
  "type": "",
76338
- "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<!--\n\t\tapp-* components are for demo purposes only.\n\t\tYou can create your own implementation by using the component source found at:\n\t\thttps://github.com/IBM/carbon-components-angular/tree/master/src/table/stories/app-skeleton-table.component.ts\n\t\t-->\n\t\t<app-skeleton-table\n\t\t\t[skeletonModel]=\"skeletonModel\"\n\t\t\t[size]=\"size\"\n\t\t\t[striped]=\"striped\">\n\t\t</app-skeleton-table>\n\t`\n})"
77598
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-tabs skeleton=\"true\">\n\t\t\t<cds-tab></cds-tab>\n\t\t\t<cds-tab></cds-tab>\n\t\t</cds-tabs>\n\n\t\t<div style=\"margin-top: 5rem\">\n\t\t\t<p>Tab skeleton component for cds-tab-header-group:</p>\n\t\t\t<cds-tabs-skeleton></cds-tabs-skeleton>\n\t\t</div>\n\t`\n})"
76339
77599
  },
76340
77600
  {
76341
77601
  "name": "SkeletonTemplate",
@@ -76427,6 +77687,16 @@
76427
77687
  "type": "",
76428
77688
  "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-accordion [align]=\"align\" [size]=\"size\">\n\t\t\t<cds-accordion-item title=\"Section 1 title\" (selected)=\"selected($event)\">\n\t\t\t\tLorem ipsum dolor sit amet, \\\n\t\t\t\tconsectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore \\\n\t\t\t\tet dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation \\\n\t\t\t\tullamco laboris nisi ut aliquip ex ea commodo consequat.\n\t\t\t</cds-accordion-item>\n\t\t\t<cds-accordion-item title=\"Section 2 title\" (selected)=\"selected($event)\">\n\t\t\t\tLorem ipsum dolor sit amet, \\\n\t\t\t\tconsectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore \\\n\t\t\t\tet dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation \\\n\t\t\t\tullamco laboris nisi ut aliquip ex ea commodo consequat.\n\t\t\t</cds-accordion-item>\n\t\t\t<cds-accordion-item title=\"Section 3 title\" (selected)=\"selected($event)\">\n\t\t\t\tLorem ipsum dolor sit amet, \\\n\t\t\t\tconsectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore \\\n\t\t\t\tet dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation \\\n\t\t\t\tullamco laboris nisi ut aliquip ex ea commodo consequat.\n\t\t\t</cds-accordion-item>\n\t\t</cds-accordion>\n\t`\n})"
76429
77689
  },
77690
+ {
77691
+ "name": "Template",
77692
+ "ctype": "miscellaneous",
77693
+ "subtype": "variable",
77694
+ "file": "src/breadcrumb/breadcrumb.stories.ts",
77695
+ "deprecated": false,
77696
+ "deprecationMessage": "",
77697
+ "type": "",
77698
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-breadcrumb [noTrailingSlash]=\"noTrailingSlash\">\n\t\t\t<cds-breadcrumb-item href=\"#1\">\n\t\t\t\tBreadcrumb 1\n\t\t\t</cds-breadcrumb-item>\n\t\t\t<cds-breadcrumb-item href=\"#2\">\n\t\t\t\tBreadcrumb 2\n\t\t\t</cds-breadcrumb-item>\n\t\t\t<cds-breadcrumb-item href=\"#3\">\n\t\t\t\tBreadcrumb 3\n\t\t\t</cds-breadcrumb-item>\n\t\t</cds-breadcrumb>\n\t`\n})"
77699
+ },
76430
77700
  {
76431
77701
  "name": "Template",
76432
77702
  "ctype": "miscellaneous",
@@ -76461,31 +77731,31 @@
76461
77731
  "name": "Template",
76462
77732
  "ctype": "miscellaneous",
76463
77733
  "subtype": "variable",
76464
- "file": "src/breadcrumb/breadcrumb.stories.ts",
77734
+ "file": "src/checkbox/checkbox.stories.ts",
76465
77735
  "deprecated": false,
76466
77736
  "deprecationMessage": "",
76467
77737
  "type": "",
76468
- "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-breadcrumb [noTrailingSlash]=\"noTrailingSlash\">\n\t\t\t<cds-breadcrumb-item href=\"#1\">\n\t\t\t\tBreadcrumb 1\n\t\t\t</cds-breadcrumb-item>\n\t\t\t<cds-breadcrumb-item href=\"#2\">\n\t\t\t\tBreadcrumb 2\n\t\t\t</cds-breadcrumb-item>\n\t\t\t<cds-breadcrumb-item href=\"#3\">\n\t\t\t\tBreadcrumb 3\n\t\t\t</cds-breadcrumb-item>\n\t\t</cds-breadcrumb>\n\t`\n})"
77738
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<fieldset class=\"cds--fieldset\">\n\t\t\t<legend class=\"cds--label\">{{label}}</legend>\n\t\t\t<cds-checkbox\n\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t[indeterminate]=\"indeterminate\"\n\t\t\t\t[checked]=\"checked\"\n\t\t\t\t(checkedChange)=\"onChange($event)\"\n\t\t\t\t[hideLabel]=\"hideLabel\"\n\t\t\t\t(indeterminateChange)=\"onIndeterminateChange($event)\">\n\t\t\t\tIndeterminate checkbox\n\t\t\t</cds-checkbox>\n\t\t</fieldset>\n\t`\n})"
76469
77739
  },
76470
77740
  {
76471
77741
  "name": "Template",
76472
77742
  "ctype": "miscellaneous",
76473
77743
  "subtype": "variable",
76474
- "file": "src/checkbox/checkbox.stories.ts",
77744
+ "file": "src/code-snippet/code-snippet.stories.ts",
76475
77745
  "deprecated": false,
76476
77746
  "deprecationMessage": "",
76477
77747
  "type": "",
76478
- "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<fieldset class=\"cds--fieldset\">\n\t\t\t<legend class=\"cds--label\">{{label}}</legend>\n\t\t\t<cds-checkbox\n\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t[indeterminate]=\"indeterminate\"\n\t\t\t\t[checked]=\"checked\"\n\t\t\t\t(checkedChange)=\"onChange($event)\"\n\t\t\t\t[hideLabel]=\"hideLabel\"\n\t\t\t\t(indeterminateChange)=\"onIndeterminateChange($event)\">\n\t\t\t\tIndeterminate checkbox\n\t\t\t</cds-checkbox>\n\t\t</fieldset>\n\t`\n})"
77748
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-code-snippet display=\"single\">{{snippet}}</cds-code-snippet>\n\t`\n})"
76479
77749
  },
76480
77750
  {
76481
77751
  "name": "Template",
76482
77752
  "ctype": "miscellaneous",
76483
77753
  "subtype": "variable",
76484
- "file": "src/code-snippet/code-snippet.stories.ts",
77754
+ "file": "src/combo-button/combo-button.stories.ts",
76485
77755
  "deprecated": false,
76486
77756
  "deprecationMessage": "",
76487
77757
  "type": "",
76488
- "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-code-snippet display=\"single\">{{snippet}}</cds-code-snippet>\n\t`\n})"
77758
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-combo-button\n\t\t\t[size]=\"size\"\n\t\t\t[menuAlignment]=\"menuAlignment\"\n\t\t\t[label]=\"label\"\n\t\t\t[description]=\"description\"\n\t\t\t[tooltipAutoAlign]=\"tooltipAutoAlign\"\n\t\t\t[tooltipPlacement]=\"tooltipPlacement\">\n\t\t\t<cds-menu-item label=\"First action with a long label description\"></cds-menu-item>\n\t\t\t<cds-menu-item label=\"Second action\" (click)=\"onClick($event)\"></cds-menu-item>\n\t\t\t<cds-menu-item label=\"Third action\" [disabled]=\"true\"></cds-menu-item>\n\t\t\t<cds-menu-divider></cds-menu-divider>\n\t\t\t<cds-menu-item label=\"Cut\" info=\"⌘X\"></cds-menu-item>\n\t\t\t<cds-menu-item label=\"Option with icon\" icon=\"calendar\"></cds-menu-item>\n\t\t\t<cds-menu-divider></cds-menu-divider>\n\t\t\t<cds-menu-item label=\"Danger action\" [danger]=\"true\"></cds-menu-item>\n\t\t</cds-combo-button>\n\t`\n})"
76489
77759
  },
76490
77760
  {
76491
77761
  "name": "Template",
@@ -76667,6 +77937,16 @@
76667
77937
  "type": "",
76668
77938
  "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-loading [isActive]=\"isActive\" [size]=\"size\" [overlay]=\"overlay\"></cds-loading>\n\t`\n})"
76669
77939
  },
77940
+ {
77941
+ "name": "Template",
77942
+ "ctype": "miscellaneous",
77943
+ "subtype": "variable",
77944
+ "file": "src/menu-button/menu-button.stories.ts",
77945
+ "deprecated": false,
77946
+ "deprecationMessage": "",
77947
+ "type": "",
77948
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-menu-button\n\t\t\t[kind]=\"kind\"\n\t\t\t[size]=\"size\"\n\t\t\t[menuAlignment]=\"menuAlignment\"\n\t\t\t[label]=\"label\">\n\t\t\t<cds-menu-item label=\"First action with a long label description\"></cds-menu-item>\n\t\t\t<cds-menu-item label=\"Second action\" (click)=\"onClick($event)\"></cds-menu-item>\n\t\t\t<cds-menu-item label=\"Third action\" [disabled]=\"true\"></cds-menu-item>\n\t\t\t<cds-menu-divider></cds-menu-divider>\n\t\t\t<cds-menu-item label=\"Cut\" info=\"⌘X\"></cds-menu-item>\n\t\t\t<cds-menu-item label=\"Option with icon\" icon=\"calendar\"></cds-menu-item>\n\t\t\t<cds-menu-divider></cds-menu-divider>\n\t\t\t<cds-menu-item label=\"Danger action\" [danger]=\"true\"></cds-menu-item>\n\t\t</cds-menu-button>\n\t`\n})"
77949
+ },
76670
77950
  {
76671
77951
  "name": "Template",
76672
77952
  "ctype": "miscellaneous",
@@ -76801,31 +78081,31 @@
76801
78081
  "name": "Template",
76802
78082
  "ctype": "miscellaneous",
76803
78083
  "subtype": "variable",
76804
- "file": "src/tabs/tabs.stories.ts",
78084
+ "file": "src/table/table.stories.ts",
76805
78085
  "deprecated": false,
76806
78086
  "deprecationMessage": "",
76807
78087
  "type": "",
76808
- "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-tabs\n\t\t\t[type]=\"type\"\n\t\t\t[followFocus]=\"followFocus\"\n\t\t\t[isNavigation]=\"isNavigation\"\n\t\t\t[cacheActive]=\"cacheActive\">\n\t\t\t<cds-tab heading=\"one\">Tab Content 1</cds-tab>\n\t\t\t<cds-tab heading=\"two\">Tab Content 2</cds-tab>\n\t\t\t<cds-tab heading=\"three\" [tabContent]=\"three\"></cds-tab>\n\t\t\t<cds-tab heading=\"four\" [tabContent]=\"four\"></cds-tab>\n\t\t</cds-tabs>\n\n\t\t<!-- Use templates if you would like to have lifecycle hooks called when cacheActive is false -->\n\t\t<ng-template #three>\n\t\t\tTab Content 3\n\t\t</ng-template>\n\n\t\t<ng-template #four>\n\t\t\tTab Content 4\n\t\t</ng-template>\n\t`\n})"
78088
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-table-container>\n\t\t\t<cds-table-header>\n\t\t\t\t<h4 cdsTableHeaderTitle>{{title}}</h4>\n\t\t\t\t<p cdsTableHeaderDescription>{{description}}</p>\n\t\t\t</cds-table-header>\n\n\t\t\t<!--\n\t\t\tapp-* components are for demo purposes only.\n\t\t\tYou can create your own implementation by using the component source found at:\n\t\t\thttps://github.com/IBM/carbon-components-angular/tree/master/src/table/stories/app-table.component.ts\n\t\t\t-->\n\t\t\t<app-table\n\t\t\t\t[model]=\"model\"\n\t\t\t\t[stickyHeader]=\"stickyHeader\"\n\t\t\t\t[size]=\"size\"\n\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t[enableSingleSelect]=\"enableSingleSelect\"\n\t\t\t\t[showSelectionColumn]=\"showSelectionColumn\"\n\t\t\t\t[striped]=\"striped\"\n\t\t\t\t[sortable]=\"sortable\"\n\t\t\t\t[isDataGrid]=\"isDataGrid\">\n\t\t\t</app-table>\n\t\t</cds-table-container>\n\t`\n})"
76809
78089
  },
76810
78090
  {
76811
78091
  "name": "Template",
76812
78092
  "ctype": "miscellaneous",
76813
78093
  "subtype": "variable",
76814
- "file": "src/tag/tag.stories.ts",
78094
+ "file": "src/tabs/tabs.stories.ts",
76815
78095
  "deprecated": false,
76816
78096
  "deprecationMessage": "",
76817
78097
  "type": "",
76818
- "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-tag\n\t\t\t[type]=\"type\"\n\t\t\t[skeleton]=\"skeleton\"\n\t\t\t[size]=\"size\">\n\t\t\t<div cdsTagIcon>\n\t\t\t\t<svg ibmIcon=\"settings\" size=\"16\"></svg>\n\t\t\t</div>\n\t\t\tRead only\n\t\t</cds-tag>\n\t`\n})"
78098
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-tabs\n\t\t\t[type]=\"type\"\n\t\t\t[followFocus]=\"followFocus\"\n\t\t\t[isNavigation]=\"isNavigation\"\n\t\t\t[cacheActive]=\"cacheActive\">\n\t\t\t<cds-tab heading=\"one\">Tab Content 1</cds-tab>\n\t\t\t<cds-tab heading=\"two\">Tab Content 2</cds-tab>\n\t\t\t<cds-tab heading=\"three\" [tabContent]=\"three\"></cds-tab>\n\t\t\t<cds-tab heading=\"four\" [tabContent]=\"four\"></cds-tab>\n\t\t</cds-tabs>\n\n\t\t<!-- Use templates if you would like to have lifecycle hooks called when cacheActive is false -->\n\t\t<ng-template #three>\n\t\t\tTab Content 3\n\t\t</ng-template>\n\n\t\t<ng-template #four>\n\t\t\tTab Content 4\n\t\t</ng-template>\n\t`\n})"
76819
78099
  },
76820
78100
  {
76821
78101
  "name": "Template",
76822
78102
  "ctype": "miscellaneous",
76823
78103
  "subtype": "variable",
76824
- "file": "src/table/table.stories.ts",
78104
+ "file": "src/tag/tag.stories.ts",
76825
78105
  "deprecated": false,
76826
78106
  "deprecationMessage": "",
76827
78107
  "type": "",
76828
- "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-table-container>\n\t\t\t<cds-table-header>\n\t\t\t\t<h4 cdsTableHeaderTitle>{{title}}</h4>\n\t\t\t\t<p cdsTableHeaderDescription>{{description}}</p>\n\t\t\t</cds-table-header>\n\n\t\t\t<!--\n\t\t\tapp-* components are for demo purposes only.\n\t\t\tYou can create your own implementation by using the component source found at:\n\t\t\thttps://github.com/IBM/carbon-components-angular/tree/master/src/table/stories/app-table.component.ts\n\t\t\t-->\n\t\t\t<app-table\n\t\t\t\t[model]=\"model\"\n\t\t\t\t[stickyHeader]=\"stickyHeader\"\n\t\t\t\t[size]=\"size\"\n\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t[enableSingleSelect]=\"enableSingleSelect\"\n\t\t\t\t[showSelectionColumn]=\"showSelectionColumn\"\n\t\t\t\t[striped]=\"striped\"\n\t\t\t\t[sortable]=\"sortable\"\n\t\t\t\t[isDataGrid]=\"isDataGrid\">\n\t\t\t</app-table>\n\t\t</cds-table-container>\n\t`\n})"
78108
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-tag\n\t\t\t[type]=\"type\"\n\t\t\t[skeleton]=\"skeleton\"\n\t\t\t[size]=\"size\">\n\t\t\t<div cdsTagIcon>\n\t\t\t\t<svg ibmIcon=\"settings\" size=\"16\"></svg>\n\t\t\t</div>\n\t\t\tRead only\n\t\t</cds-tag>\n\t`\n})"
76829
78109
  },
76830
78110
  {
76831
78111
  "name": "Template",
@@ -78797,6 +80077,17 @@
78797
80077
  "description": "",
78798
80078
  "kind": 192
78799
80079
  },
80080
+ {
80081
+ "name": "ComboButtonPlacement",
80082
+ "ctype": "miscellaneous",
80083
+ "subtype": "typealias",
80084
+ "rawtype": "\"top\" | \"top-start\" | \"top-end\" | \"bottom\" | \"bottom-start\" | \"bottom-end\"",
80085
+ "file": "src/combo-button/combo-button.component.ts",
80086
+ "deprecated": false,
80087
+ "deprecationMessage": "",
80088
+ "description": "",
80089
+ "kind": 192
80090
+ },
78800
80091
  {
78801
80092
  "name": "DangerButtonType",
78802
80093
  "ctype": "miscellaneous",
@@ -78830,6 +80121,17 @@
78830
80121
  "description": "",
78831
80122
  "kind": 192
78832
80123
  },
80124
+ {
80125
+ "name": "MenuButtonPlacement",
80126
+ "ctype": "miscellaneous",
80127
+ "subtype": "typealias",
80128
+ "rawtype": "\"top\" | \"top-start\" | \"top-end\" | \"bottom\" | \"bottom-start\" | \"bottom-end\"",
80129
+ "file": "src/menu-button/menu-button.component.ts",
80130
+ "deprecated": false,
80131
+ "deprecationMessage": "",
80132
+ "description": "",
80133
+ "kind": 192
80134
+ },
78833
80135
  {
78834
80136
  "name": "NotificationType",
78835
80137
  "ctype": "miscellaneous",
@@ -80241,70 +81543,6 @@
80241
81543
  "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<div style=\"width: 500px\">\n\t\t\t<cds-accordion>\n\t\t\t\t<cds-accordion-item [title]=\"title\" (selected)=\"selected($event)\">\n\t\t\t\t\tLorem ipsum dolor sit amet, \\\n\t\t\t\t\tconsectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore \\\n\t\t\t\t\tet dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation \\\n\t\t\t\t\tullamco laboris nisi ut aliquip ex ea commodo consequat.\n\t\t\t\t</cds-accordion-item>\n\t\t\t\t<cds-accordion-item [title]=\"titleWithContext\" [context]=\"{ index: 2 }\" (selected)=\"selected($event)\">\n\t\t\t\t\tLorem ipsum dolor sit amet, \\\n\t\t\t\t\tconsectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore \\\n\t\t\t\t\tet dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation \\\n\t\t\t\t\tullamco laboris nisi ut aliquip ex ea commodo consequat.\n\t\t\t\t</cds-accordion-item>\n\t\t\t</cds-accordion>\n\t\t</div>\n\t\t<ng-template #title>\n\t\t\t<p class=\"cds--accordion__title\">Section 1 title</p>\n\t\t</ng-template>\n\t\t<ng-template #titleWithContext let-index=\"index\">\n\t\t\t<p class=\"cds--accordion__title\">Section {{ index }} title</p>\n\t\t</ng-template>\n\t`\n})"
80242
81544
  }
80243
81545
  ],
80244
- "src/button/button-set.stories.ts": [
80245
- {
80246
- "name": "Basic",
80247
- "ctype": "miscellaneous",
80248
- "subtype": "variable",
80249
- "file": "src/button/button-set.stories.ts",
80250
- "deprecated": false,
80251
- "deprecationMessage": "",
80252
- "type": "",
80253
- "defaultValue": "Template.bind({})"
80254
- },
80255
- {
80256
- "name": "Template",
80257
- "ctype": "miscellaneous",
80258
- "subtype": "variable",
80259
- "file": "src/button/button-set.stories.ts",
80260
- "deprecated": false,
80261
- "deprecationMessage": "",
80262
- "type": "",
80263
- "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-button-set>\n\t\t\t<button cdsButton=\"secondary\" [size]=\"size\" [isExpressive]=\"isExpressive\">Button</button>\n\t\t\t<button cdsButton [size]=\"size\" [isExpressive]=\"isExpressive\">Button</button>\n\t\t</cds-button-set>\n\t`\n})"
80264
- }
80265
- ],
80266
- "src/button/button.stories.ts": [
80267
- {
80268
- "name": "Basic",
80269
- "ctype": "miscellaneous",
80270
- "subtype": "variable",
80271
- "file": "src/button/button.stories.ts",
80272
- "deprecated": false,
80273
- "deprecationMessage": "",
80274
- "type": "",
80275
- "defaultValue": "Template.bind({})"
80276
- },
80277
- {
80278
- "name": "Template",
80279
- "ctype": "miscellaneous",
80280
- "subtype": "variable",
80281
- "file": "src/button/button.stories.ts",
80282
- "deprecated": false,
80283
- "deprecationMessage": "",
80284
- "type": "",
80285
- "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<button\n\t\t\t[cdsButton]=\"kind\"\n\t\t\t[size]=\"size\"\n\t\t\t[isExpressive]=\"isExpressive\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t(click)=\"onClick($event)\"\n\t\t\t(mouseenter)=\"onMouseEnter($event)\"\n\t\t\t(mouseleave)=\"onMouseLeave($event)\"\n\t\t\t(focus)=\"onFocus($event)\"\n\t\t\t(blur)=\"onBlur($event)\">\n\t\t\tButton\n\t\t</button>\n\t`\n})"
80286
- },
80287
- {
80288
- "name": "WithIcon",
80289
- "ctype": "miscellaneous",
80290
- "subtype": "variable",
80291
- "file": "src/button/button.stories.ts",
80292
- "deprecated": false,
80293
- "deprecationMessage": "",
80294
- "type": "",
80295
- "defaultValue": "WithIconTemplate.bind({})"
80296
- },
80297
- {
80298
- "name": "WithIconTemplate",
80299
- "ctype": "miscellaneous",
80300
- "subtype": "variable",
80301
- "file": "src/button/button.stories.ts",
80302
- "deprecated": false,
80303
- "deprecationMessage": "",
80304
- "type": "",
80305
- "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<button\n\t\t\t[cdsButton]=\"kind\"\n\t\t\t[size]=\"size\"\n\t\t\t[isExpressive]=\"isExpressive\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t(click)=\"onClick($event)\"\n\t\t\t(mouseenter)=\"onMouseEnter($event)\"\n\t\t\t(mouseleave)=\"onMouseleave($event)\"\n\t\t\t(focus)=\"onFocus($event)\"\n\t\t\t(blur)=\"onBlur($event)\">\n\t\t\tWith icon\n\t\t\t<svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n\t\t</button>\n\t`\n})"
80306
- }
80307
- ],
80308
81546
  "src/breadcrumb/breadcrumb.stories.ts": [
80309
81547
  {
80310
81548
  "name": "Basic",
@@ -80436,6 +81674,70 @@
80436
81674
  "defaultValue": "(templateRef, items) => items.map(item => Object.assign(item, { template: templateRef }))"
80437
81675
  }
80438
81676
  ],
81677
+ "src/button/button-set.stories.ts": [
81678
+ {
81679
+ "name": "Basic",
81680
+ "ctype": "miscellaneous",
81681
+ "subtype": "variable",
81682
+ "file": "src/button/button-set.stories.ts",
81683
+ "deprecated": false,
81684
+ "deprecationMessage": "",
81685
+ "type": "",
81686
+ "defaultValue": "Template.bind({})"
81687
+ },
81688
+ {
81689
+ "name": "Template",
81690
+ "ctype": "miscellaneous",
81691
+ "subtype": "variable",
81692
+ "file": "src/button/button-set.stories.ts",
81693
+ "deprecated": false,
81694
+ "deprecationMessage": "",
81695
+ "type": "",
81696
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-button-set>\n\t\t\t<button cdsButton=\"secondary\" [size]=\"size\" [isExpressive]=\"isExpressive\">Button</button>\n\t\t\t<button cdsButton [size]=\"size\" [isExpressive]=\"isExpressive\">Button</button>\n\t\t</cds-button-set>\n\t`\n})"
81697
+ }
81698
+ ],
81699
+ "src/button/button.stories.ts": [
81700
+ {
81701
+ "name": "Basic",
81702
+ "ctype": "miscellaneous",
81703
+ "subtype": "variable",
81704
+ "file": "src/button/button.stories.ts",
81705
+ "deprecated": false,
81706
+ "deprecationMessage": "",
81707
+ "type": "",
81708
+ "defaultValue": "Template.bind({})"
81709
+ },
81710
+ {
81711
+ "name": "Template",
81712
+ "ctype": "miscellaneous",
81713
+ "subtype": "variable",
81714
+ "file": "src/button/button.stories.ts",
81715
+ "deprecated": false,
81716
+ "deprecationMessage": "",
81717
+ "type": "",
81718
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<button\n\t\t\t[cdsButton]=\"kind\"\n\t\t\t[size]=\"size\"\n\t\t\t[isExpressive]=\"isExpressive\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t(click)=\"onClick($event)\"\n\t\t\t(mouseenter)=\"onMouseEnter($event)\"\n\t\t\t(mouseleave)=\"onMouseLeave($event)\"\n\t\t\t(focus)=\"onFocus($event)\"\n\t\t\t(blur)=\"onBlur($event)\">\n\t\t\tButton\n\t\t</button>\n\t`\n})"
81719
+ },
81720
+ {
81721
+ "name": "WithIcon",
81722
+ "ctype": "miscellaneous",
81723
+ "subtype": "variable",
81724
+ "file": "src/button/button.stories.ts",
81725
+ "deprecated": false,
81726
+ "deprecationMessage": "",
81727
+ "type": "",
81728
+ "defaultValue": "WithIconTemplate.bind({})"
81729
+ },
81730
+ {
81731
+ "name": "WithIconTemplate",
81732
+ "ctype": "miscellaneous",
81733
+ "subtype": "variable",
81734
+ "file": "src/button/button.stories.ts",
81735
+ "deprecated": false,
81736
+ "deprecationMessage": "",
81737
+ "type": "",
81738
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<button\n\t\t\t[cdsButton]=\"kind\"\n\t\t\t[size]=\"size\"\n\t\t\t[isExpressive]=\"isExpressive\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t(click)=\"onClick($event)\"\n\t\t\t(mouseenter)=\"onMouseEnter($event)\"\n\t\t\t(mouseleave)=\"onMouseleave($event)\"\n\t\t\t(focus)=\"onFocus($event)\"\n\t\t\t(blur)=\"onBlur($event)\">\n\t\t\tWith icon\n\t\t\t<svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n\t\t</button>\n\t`\n})"
81739
+ }
81740
+ ],
80439
81741
  "src/checkbox/checkbox.stories.ts": [
80440
81742
  {
80441
81743
  "name": "Basic",
@@ -80580,6 +81882,28 @@
80580
81882
  "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-code-snippet display=\"single\">{{snippet}}</cds-code-snippet>\n\t`\n})"
80581
81883
  }
80582
81884
  ],
81885
+ "src/combo-button/combo-button.stories.ts": [
81886
+ {
81887
+ "name": "Basic",
81888
+ "ctype": "miscellaneous",
81889
+ "subtype": "variable",
81890
+ "file": "src/combo-button/combo-button.stories.ts",
81891
+ "deprecated": false,
81892
+ "deprecationMessage": "",
81893
+ "type": "",
81894
+ "defaultValue": "Template.bind({})"
81895
+ },
81896
+ {
81897
+ "name": "Template",
81898
+ "ctype": "miscellaneous",
81899
+ "subtype": "variable",
81900
+ "file": "src/combo-button/combo-button.stories.ts",
81901
+ "deprecated": false,
81902
+ "deprecationMessage": "",
81903
+ "type": "",
81904
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-combo-button\n\t\t\t[size]=\"size\"\n\t\t\t[menuAlignment]=\"menuAlignment\"\n\t\t\t[label]=\"label\"\n\t\t\t[description]=\"description\"\n\t\t\t[tooltipAutoAlign]=\"tooltipAutoAlign\"\n\t\t\t[tooltipPlacement]=\"tooltipPlacement\">\n\t\t\t<cds-menu-item label=\"First action with a long label description\"></cds-menu-item>\n\t\t\t<cds-menu-item label=\"Second action\" (click)=\"onClick($event)\"></cds-menu-item>\n\t\t\t<cds-menu-item label=\"Third action\" [disabled]=\"true\"></cds-menu-item>\n\t\t\t<cds-menu-divider></cds-menu-divider>\n\t\t\t<cds-menu-item label=\"Cut\" info=\"⌘X\"></cds-menu-item>\n\t\t\t<cds-menu-item label=\"Option with icon\" icon=\"calendar\"></cds-menu-item>\n\t\t\t<cds-menu-divider></cds-menu-divider>\n\t\t\t<cds-menu-item label=\"Danger action\" [danger]=\"true\"></cds-menu-item>\n\t\t</cds-combo-button>\n\t`\n})"
81905
+ }
81906
+ ],
80583
81907
  "src/combobox/combobox.stories.ts": [
80584
81908
  {
80585
81909
  "name": "Basic",
@@ -81564,6 +82888,28 @@
81564
82888
  "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-loading [isActive]=\"isActive\" [size]=\"size\" [overlay]=\"overlay\"></cds-loading>\n\t`\n})"
81565
82889
  }
81566
82890
  ],
82891
+ "src/menu-button/menu-button.stories.ts": [
82892
+ {
82893
+ "name": "Basic",
82894
+ "ctype": "miscellaneous",
82895
+ "subtype": "variable",
82896
+ "file": "src/menu-button/menu-button.stories.ts",
82897
+ "deprecated": false,
82898
+ "deprecationMessage": "",
82899
+ "type": "",
82900
+ "defaultValue": "Template.bind({})"
82901
+ },
82902
+ {
82903
+ "name": "Template",
82904
+ "ctype": "miscellaneous",
82905
+ "subtype": "variable",
82906
+ "file": "src/menu-button/menu-button.stories.ts",
82907
+ "deprecated": false,
82908
+ "deprecationMessage": "",
82909
+ "type": "",
82910
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-menu-button\n\t\t\t[kind]=\"kind\"\n\t\t\t[size]=\"size\"\n\t\t\t[menuAlignment]=\"menuAlignment\"\n\t\t\t[label]=\"label\">\n\t\t\t<cds-menu-item label=\"First action with a long label description\"></cds-menu-item>\n\t\t\t<cds-menu-item label=\"Second action\" (click)=\"onClick($event)\"></cds-menu-item>\n\t\t\t<cds-menu-item label=\"Third action\" [disabled]=\"true\"></cds-menu-item>\n\t\t\t<cds-menu-divider></cds-menu-divider>\n\t\t\t<cds-menu-item label=\"Cut\" info=\"⌘X\"></cds-menu-item>\n\t\t\t<cds-menu-item label=\"Option with icon\" icon=\"calendar\"></cds-menu-item>\n\t\t\t<cds-menu-divider></cds-menu-divider>\n\t\t\t<cds-menu-item label=\"Danger action\" [danger]=\"true\"></cds-menu-item>\n\t\t</cds-menu-button>\n\t`\n})"
82911
+ }
82912
+ ],
81567
82913
  "src/modal/modal.stories.ts": [
81568
82914
  {
81569
82915
  "name": "Basic",
@@ -82198,190 +83544,6 @@
82198
83544
  "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-structured-list [condensed]=\"condensed\">\n\t\t\t<cds-list-header>\n\t\t\t\t<cds-list-column nowrap=\"true\">Column 1</cds-list-column>\n\t\t\t\t<cds-list-column nowrap=\"true\">Column 2</cds-list-column>\n\t\t\t\t<cds-list-column>Column 3</cds-list-column>\n\t\t\t</cds-list-header>\n\t\t\t<cds-list-row>\n\t\t\t\t<cds-list-column>Row 1</cds-list-column>\n\t\t\t\t<cds-list-column nowrap=\"true\">Row One</cds-list-column>\n\t\t\t\t<cds-list-column>\n\t\t\t\t\tLorem ipsum dolor sit amet,\n\t\t\t\t\tconsectetur adipiscing elit. Nunc dui magna,\n\t\t\t\t\tfinibus id tortor sed, aliquet bibendum augue.\n\t\t\t\t\tAenean posuere sem vel euismod dignissim. Nulla ut cursus dolor.\n\t\t\t\t\tPellentesque vulputate nisl a porttitor interdum.\n\t\t\t\t</cds-list-column>\n\t\t\t</cds-list-row>\n\t\t\t<cds-list-row>\n\t\t\t\t<cds-list-column>Row 2</cds-list-column>\n\t\t\t\t<cds-list-column nowrap=\"true\">Row Two</cds-list-column>\n\t\t\t\t<cds-list-column>\n\t\t\t\t\tLorem ipsum dolor sit amet,\n\t\t\t\t\tconsectetur adipiscing elit. Nunc dui magna,\n\t\t\t\t\tfinibus id tortor sed, aliquet bibendum augue.\n\t\t\t\t\tAenean posuere sem vel euismod dignissim. Nulla ut cursus dolor.\n\t\t\t\t\tPellentesque vulputate nisl a porttitor interdum.\n\t\t\t\t</cds-list-column>\n\t\t\t</cds-list-row>\n\t\t</cds-structured-list>\n\t`\n})"
82199
83545
  }
82200
83546
  ],
82201
- "src/tabs/tabs.stories.ts": [
82202
- {
82203
- "name": "Basic",
82204
- "ctype": "miscellaneous",
82205
- "subtype": "variable",
82206
- "file": "src/tabs/tabs.stories.ts",
82207
- "deprecated": false,
82208
- "deprecationMessage": "",
82209
- "type": "",
82210
- "defaultValue": "Template.bind({})"
82211
- },
82212
- {
82213
- "name": "BeforeAndAfter",
82214
- "ctype": "miscellaneous",
82215
- "subtype": "variable",
82216
- "file": "src/tabs/tabs.stories.ts",
82217
- "deprecated": false,
82218
- "deprecationMessage": "",
82219
- "type": "",
82220
- "defaultValue": "BeforeAndAfterTemplate.bind({})"
82221
- },
82222
- {
82223
- "name": "BeforeAndAfterTemplate",
82224
- "ctype": "miscellaneous",
82225
- "subtype": "variable",
82226
- "file": "src/tabs/tabs.stories.ts",
82227
- "deprecated": false,
82228
- "deprecationMessage": "",
82229
- "type": "",
82230
- "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<div style=\"font-weight: 600; padding-bottom: 10px; padding-top: 20px;\">before</div>\n\t\t<cds-tabs [type]=\"type\" [followFocus]=\"followFocus\" [isNavigation]=\"isNavigation\">\n\t\t\t<cds-tab heading=\"one\">foo</cds-tab>\n\t\t\t<cds-tab heading=\"two\">bar</cds-tab>\n\t\t\t<span before>content before</span>\n\t\t</cds-tabs>\n\t\t<div style=\"font-weight: 600; padding-bottom: 10px; padding-top: 20px;\">after</div>\n\t\t<cds-tabs [type]=\"type\" [followFocus]=\"followFocus\" [isNavigation]=\"isNavigation\">\n\t\t\t<cds-tab heading=\"one\">foo</cds-tab>\n\t\t\t<cds-tab heading=\"two\">bar</cds-tab>\n\t\t\t<span after>content after</span>\n\t\t</cds-tabs>\n\t\t<div style=\"font-weight: 600; padding-bottom: 10px; padding-top: 20px;\">both</div>\n\t\t<cds-tabs [type]=\"type\" [followFocus]=\"followFocus\" [isNavigation]=\"isNavigation\">\n\t\t\t<cds-tab heading=\"one\">foo</cds-tab>\n\t\t\t<cds-tab heading=\"two\">bar</cds-tab>\n\t\t\t<span before>content before</span>\n\t\t\t<span after>content after</span>\n\t\t</cds-tabs>\n\t`\n})"
82231
- },
82232
- {
82233
- "name": "Skeleton",
82234
- "ctype": "miscellaneous",
82235
- "subtype": "variable",
82236
- "file": "src/tabs/tabs.stories.ts",
82237
- "deprecated": false,
82238
- "deprecationMessage": "",
82239
- "type": "",
82240
- "defaultValue": "SkeletonTemplate.bind({})"
82241
- },
82242
- {
82243
- "name": "SkeletonTemplate",
82244
- "ctype": "miscellaneous",
82245
- "subtype": "variable",
82246
- "file": "src/tabs/tabs.stories.ts",
82247
- "deprecated": false,
82248
- "deprecationMessage": "",
82249
- "type": "",
82250
- "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-tabs skeleton=\"true\">\n\t\t\t<cds-tab></cds-tab>\n\t\t\t<cds-tab></cds-tab>\n\t\t</cds-tabs>\n\n\t\t<div style=\"margin-top: 5rem\">\n\t\t\t<p>Tab skeleton component for cds-tab-header-group:</p>\n\t\t\t<cds-tabs-skeleton></cds-tabs-skeleton>\n\t\t</div>\n\t`\n})"
82251
- },
82252
- {
82253
- "name": "TabheaderGroup",
82254
- "ctype": "miscellaneous",
82255
- "subtype": "variable",
82256
- "file": "src/tabs/tabs.stories.ts",
82257
- "deprecated": false,
82258
- "deprecationMessage": "",
82259
- "type": "",
82260
- "defaultValue": "TabHeaderGroupTemplate.bind({})"
82261
- },
82262
- {
82263
- "name": "TabHeaderGroupTemplate",
82264
- "ctype": "miscellaneous",
82265
- "subtype": "variable",
82266
- "file": "src/tabs/tabs.stories.ts",
82267
- "deprecated": false,
82268
- "deprecationMessage": "",
82269
- "type": "",
82270
- "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<!--\n\t\tapp-* components are for demo purposes only.\n\t\tYou can create your own implementation by using the component source found at:\n\t\thttps://github.com/IBM/carbon-components-angular/tree/master/src/pagination/stories/pagination.component.ts\n\t\t-->\n\t\t<app-header-group\n\t\t\t[type]=\"type\"\n\t\t\t[followFocus]=\"followFocus\"\n\t\t\t[cacheActive]=\"cacheActive\"\n\t\t\t[isNavigation]=\"isNavigation\">\n\t\t</app-header-group>\n\t`\n})"
82271
- },
82272
- {
82273
- "name": "Template",
82274
- "ctype": "miscellaneous",
82275
- "subtype": "variable",
82276
- "file": "src/tabs/tabs.stories.ts",
82277
- "deprecated": false,
82278
- "deprecationMessage": "",
82279
- "type": "",
82280
- "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-tabs\n\t\t\t[type]=\"type\"\n\t\t\t[followFocus]=\"followFocus\"\n\t\t\t[isNavigation]=\"isNavigation\"\n\t\t\t[cacheActive]=\"cacheActive\">\n\t\t\t<cds-tab heading=\"one\">Tab Content 1</cds-tab>\n\t\t\t<cds-tab heading=\"two\">Tab Content 2</cds-tab>\n\t\t\t<cds-tab heading=\"three\" [tabContent]=\"three\"></cds-tab>\n\t\t\t<cds-tab heading=\"four\" [tabContent]=\"four\"></cds-tab>\n\t\t</cds-tabs>\n\n\t\t<!-- Use templates if you would like to have lifecycle hooks called when cacheActive is false -->\n\t\t<ng-template #three>\n\t\t\tTab Content 3\n\t\t</ng-template>\n\n\t\t<ng-template #four>\n\t\t\tTab Content 4\n\t\t</ng-template>\n\t`\n})"
82281
- },
82282
- {
82283
- "name": "With",
82284
- "ctype": "miscellaneous",
82285
- "subtype": "variable",
82286
- "file": "src/tabs/tabs.stories.ts",
82287
- "deprecated": false,
82288
- "deprecationMessage": "",
82289
- "type": "",
82290
- "defaultValue": "WithTemplate.bind({})"
82291
- },
82292
- {
82293
- "name": "WithTemplate",
82294
- "ctype": "miscellaneous",
82295
- "subtype": "variable",
82296
- "file": "src/tabs/tabs.stories.ts",
82297
- "deprecated": false,
82298
- "deprecationMessage": "",
82299
- "type": "",
82300
- "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<ng-template #customTabs let-item>\n\t\t\t{{item ? item.name : \"wait for it\"}}\n\t\t</ng-template>\n\t\t<ng-template #iconTab>\n\t\t\t<div style=\"height: 14px;\">\n\t\t\t\tSomething custom\n\t\t\t\t<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\n\t\t\t\tstyle=\"height: 14px; width: 14px; fill: #3d70b2;\">\n\t\t\t\t\t<path d=\"M8 14.5a6.5 6.5 0 1 0 0-13 6.5 6.5 0 0 0 0 13zM8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16z\"></path>\n\t\t\t\t\t<path d=\"M9 13H7V7h2z\"></path>\n\t\t\t\t\t<path d=\"M7 4a1 1 0 1 1 2 0 1 1 0 1 1-2 0\"></path>\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t</ng-template>\n\t\t<cds-tabs [type]=\"type\" [followFocus]=\"followFocus\" [isNavigation]=\"isNavigation\">\n\t\t\t<cds-tab\n\t\t\t\t*ngFor=\"let item of data; let i = index;\"\n\t\t\t\t[heading]=\"customTabs\"\n\t\t\t\ttitle=\"Tab Content\"\n\t\t\t\t[context]=\"item\">\n\t\t\t\tTab Content {{i + 1}}\n\t\t\t</cds-tab>\n\t\t\t<cds-tab [heading]=\"iconTab\" title=\"Custom tab content\">Tab Content Custom</cds-tab>\n\t\t</cds-tabs>\n\t`\n})"
82301
- }
82302
- ],
82303
- "src/tag/tag.stories.ts": [
82304
- {
82305
- "name": "Basic",
82306
- "ctype": "miscellaneous",
82307
- "subtype": "variable",
82308
- "file": "src/tag/tag.stories.ts",
82309
- "deprecated": false,
82310
- "deprecationMessage": "",
82311
- "type": "",
82312
- "defaultValue": "Template.bind({})"
82313
- },
82314
- {
82315
- "name": "Filter",
82316
- "ctype": "miscellaneous",
82317
- "subtype": "variable",
82318
- "file": "src/tag/tag.stories.ts",
82319
- "deprecated": false,
82320
- "deprecationMessage": "",
82321
- "type": "",
82322
- "defaultValue": "FilteredTemplate.bind({})"
82323
- },
82324
- {
82325
- "name": "FilteredTemplate",
82326
- "ctype": "miscellaneous",
82327
- "subtype": "variable",
82328
- "file": "src/tag/tag.stories.ts",
82329
- "deprecated": false,
82330
- "deprecationMessage": "",
82331
- "type": "",
82332
- "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-tag-filter\n\t\t\t[type]=\"type\"\n\t\t\t[size]=\"size\"\n\t\t\t[skeleton]=\"skeleton\"\n\t\t\ttitle=\"Filter\"\n\t\t\tcloseButtonLabel=\"Clear\">\n\t\t\t<div cdsTagIcon>\n\t\t\t\t<svg ibmIcon=\"settings\" size=\"16\"></svg>\n\t\t\t</div>\n\t\t\tFiltered\n\t\t</cds-tag-filter>\n\t`\n})"
82333
- },
82334
- {
82335
- "name": "OperationalTag",
82336
- "ctype": "miscellaneous",
82337
- "subtype": "variable",
82338
- "file": "src/tag/tag.stories.ts",
82339
- "deprecated": false,
82340
- "deprecationMessage": "",
82341
- "type": "",
82342
- "defaultValue": "OperationalTagTemplate.bind({})"
82343
- },
82344
- {
82345
- "name": "OperationalTagTemplate",
82346
- "ctype": "miscellaneous",
82347
- "subtype": "variable",
82348
- "file": "src/tag/tag.stories.ts",
82349
- "deprecated": false,
82350
- "deprecationMessage": "",
82351
- "type": "",
82352
- "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-tag-operational\n\t\t\ttype=\"cyan\"\n\t\t\t[size]=\"size\"\n\t\t\t[skeleton]=\"skeleton\"\n\t\t\t(click)=\"onClick($event)\">\n\t\t\t<div cdsTagIcon>\n\t\t\t\t<svg ibmIcon=\"settings\" size=\"16\"></svg>\n\t\t\t</div>\n\t\t\tOperational\n\t\t</cds-tag-operational>\n\n\n\t\t<div\n\t\t\tcdsPopover\n\t\t\t[isOpen]=\"isOpen\"\n\t\t\t[highContrast]=\"true\">\n\t\t\t<cds-tag-operational\n\t\t\t\t[type]=\"type\"\n\t\t\t\t[size]=\"size\"\n\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t(click)=\"isOpen = !isOpen\">\n\t\t\t\t<div cdsTagIcon>\n\t\t\t\t\t<svg ibmIcon=\"settings\" size=\"16\"></svg>\n\t\t\t\t</div>\n\t\t\t\tOperational w/ popover\n\t\t\t</cds-tag-operational>\n\t\t\t<cds-popover-content>\n\t\t\t\t<div class=\"popover-content\">\n\t\t\t\t\tTag 1 name <br>\n\t\t\t\t\tTag 2 name <br>\n\t\t\t\t\tTag 3 name <br>\n\t\t\t\t\tTag 4 name <br>\n\t\t\t\t\t<cds-tag type=\"green\">Tag 5 name</cds-tag>\n\t\t\t\t</div>\n\t\t\t</cds-popover-content>\n\t\t</div>\n\t`,\n\tstyles: [\n\t\t`.popover-content {\n\t\t\tline-height: 1.5;\n\t\t\tpadding: 1rem;\n\t\t\tfont-size: 14px;\n\t\t}`\n\t]\n})"
82353
- },
82354
- {
82355
- "name": "SelectedTag",
82356
- "ctype": "miscellaneous",
82357
- "subtype": "variable",
82358
- "file": "src/tag/tag.stories.ts",
82359
- "deprecated": false,
82360
- "deprecationMessage": "",
82361
- "type": "",
82362
- "defaultValue": "SelectedTagTemplate.bind({})"
82363
- },
82364
- {
82365
- "name": "SelectedTagTemplate",
82366
- "ctype": "miscellaneous",
82367
- "subtype": "variable",
82368
- "file": "src/tag/tag.stories.ts",
82369
- "deprecated": false,
82370
- "deprecationMessage": "",
82371
- "type": "",
82372
- "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-tag-selectable\n\t\t\t[size]=\"size\"\n\t\t\t[skeleton]=\"skeleton\"\n\t\t\t[selected]=\"selected\"\n\t\t\t(selectedChange)=\"selectedChange($event)\"\n\t\t\t(click)=\"onClick($event)\">\n\t\t\t<div cdsTagIcon>\n\t\t\t\t<svg ibmIcon=\"settings\" size=\"16\"></svg>\n\t\t\t</div>\n\t\t\tSelectable\n\t\t</cds-tag-selectable>\n\t`\n})"
82373
- },
82374
- {
82375
- "name": "Template",
82376
- "ctype": "miscellaneous",
82377
- "subtype": "variable",
82378
- "file": "src/tag/tag.stories.ts",
82379
- "deprecated": false,
82380
- "deprecationMessage": "",
82381
- "type": "",
82382
- "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-tag\n\t\t\t[type]=\"type\"\n\t\t\t[skeleton]=\"skeleton\"\n\t\t\t[size]=\"size\">\n\t\t\t<div cdsTagIcon>\n\t\t\t\t<svg ibmIcon=\"settings\" size=\"16\"></svg>\n\t\t\t</div>\n\t\t\tRead only\n\t\t</cds-tag>\n\t`\n})"
82383
- }
82384
- ],
82385
83547
  "src/table/table.stories.ts": [
82386
83548
  {
82387
83549
  "name": "Basic",
@@ -82674,6 +83836,190 @@
82674
83836
  "defaultValue": "WithoutActionTemplate.bind({})"
82675
83837
  }
82676
83838
  ],
83839
+ "src/tabs/tabs.stories.ts": [
83840
+ {
83841
+ "name": "Basic",
83842
+ "ctype": "miscellaneous",
83843
+ "subtype": "variable",
83844
+ "file": "src/tabs/tabs.stories.ts",
83845
+ "deprecated": false,
83846
+ "deprecationMessage": "",
83847
+ "type": "",
83848
+ "defaultValue": "Template.bind({})"
83849
+ },
83850
+ {
83851
+ "name": "BeforeAndAfter",
83852
+ "ctype": "miscellaneous",
83853
+ "subtype": "variable",
83854
+ "file": "src/tabs/tabs.stories.ts",
83855
+ "deprecated": false,
83856
+ "deprecationMessage": "",
83857
+ "type": "",
83858
+ "defaultValue": "BeforeAndAfterTemplate.bind({})"
83859
+ },
83860
+ {
83861
+ "name": "BeforeAndAfterTemplate",
83862
+ "ctype": "miscellaneous",
83863
+ "subtype": "variable",
83864
+ "file": "src/tabs/tabs.stories.ts",
83865
+ "deprecated": false,
83866
+ "deprecationMessage": "",
83867
+ "type": "",
83868
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<div style=\"font-weight: 600; padding-bottom: 10px; padding-top: 20px;\">before</div>\n\t\t<cds-tabs [type]=\"type\" [followFocus]=\"followFocus\" [isNavigation]=\"isNavigation\">\n\t\t\t<cds-tab heading=\"one\">foo</cds-tab>\n\t\t\t<cds-tab heading=\"two\">bar</cds-tab>\n\t\t\t<span before>content before</span>\n\t\t</cds-tabs>\n\t\t<div style=\"font-weight: 600; padding-bottom: 10px; padding-top: 20px;\">after</div>\n\t\t<cds-tabs [type]=\"type\" [followFocus]=\"followFocus\" [isNavigation]=\"isNavigation\">\n\t\t\t<cds-tab heading=\"one\">foo</cds-tab>\n\t\t\t<cds-tab heading=\"two\">bar</cds-tab>\n\t\t\t<span after>content after</span>\n\t\t</cds-tabs>\n\t\t<div style=\"font-weight: 600; padding-bottom: 10px; padding-top: 20px;\">both</div>\n\t\t<cds-tabs [type]=\"type\" [followFocus]=\"followFocus\" [isNavigation]=\"isNavigation\">\n\t\t\t<cds-tab heading=\"one\">foo</cds-tab>\n\t\t\t<cds-tab heading=\"two\">bar</cds-tab>\n\t\t\t<span before>content before</span>\n\t\t\t<span after>content after</span>\n\t\t</cds-tabs>\n\t`\n})"
83869
+ },
83870
+ {
83871
+ "name": "Skeleton",
83872
+ "ctype": "miscellaneous",
83873
+ "subtype": "variable",
83874
+ "file": "src/tabs/tabs.stories.ts",
83875
+ "deprecated": false,
83876
+ "deprecationMessage": "",
83877
+ "type": "",
83878
+ "defaultValue": "SkeletonTemplate.bind({})"
83879
+ },
83880
+ {
83881
+ "name": "SkeletonTemplate",
83882
+ "ctype": "miscellaneous",
83883
+ "subtype": "variable",
83884
+ "file": "src/tabs/tabs.stories.ts",
83885
+ "deprecated": false,
83886
+ "deprecationMessage": "",
83887
+ "type": "",
83888
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-tabs skeleton=\"true\">\n\t\t\t<cds-tab></cds-tab>\n\t\t\t<cds-tab></cds-tab>\n\t\t</cds-tabs>\n\n\t\t<div style=\"margin-top: 5rem\">\n\t\t\t<p>Tab skeleton component for cds-tab-header-group:</p>\n\t\t\t<cds-tabs-skeleton></cds-tabs-skeleton>\n\t\t</div>\n\t`\n})"
83889
+ },
83890
+ {
83891
+ "name": "TabheaderGroup",
83892
+ "ctype": "miscellaneous",
83893
+ "subtype": "variable",
83894
+ "file": "src/tabs/tabs.stories.ts",
83895
+ "deprecated": false,
83896
+ "deprecationMessage": "",
83897
+ "type": "",
83898
+ "defaultValue": "TabHeaderGroupTemplate.bind({})"
83899
+ },
83900
+ {
83901
+ "name": "TabHeaderGroupTemplate",
83902
+ "ctype": "miscellaneous",
83903
+ "subtype": "variable",
83904
+ "file": "src/tabs/tabs.stories.ts",
83905
+ "deprecated": false,
83906
+ "deprecationMessage": "",
83907
+ "type": "",
83908
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<!--\n\t\tapp-* components are for demo purposes only.\n\t\tYou can create your own implementation by using the component source found at:\n\t\thttps://github.com/IBM/carbon-components-angular/tree/master/src/pagination/stories/pagination.component.ts\n\t\t-->\n\t\t<app-header-group\n\t\t\t[type]=\"type\"\n\t\t\t[followFocus]=\"followFocus\"\n\t\t\t[cacheActive]=\"cacheActive\"\n\t\t\t[isNavigation]=\"isNavigation\">\n\t\t</app-header-group>\n\t`\n})"
83909
+ },
83910
+ {
83911
+ "name": "Template",
83912
+ "ctype": "miscellaneous",
83913
+ "subtype": "variable",
83914
+ "file": "src/tabs/tabs.stories.ts",
83915
+ "deprecated": false,
83916
+ "deprecationMessage": "",
83917
+ "type": "",
83918
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-tabs\n\t\t\t[type]=\"type\"\n\t\t\t[followFocus]=\"followFocus\"\n\t\t\t[isNavigation]=\"isNavigation\"\n\t\t\t[cacheActive]=\"cacheActive\">\n\t\t\t<cds-tab heading=\"one\">Tab Content 1</cds-tab>\n\t\t\t<cds-tab heading=\"two\">Tab Content 2</cds-tab>\n\t\t\t<cds-tab heading=\"three\" [tabContent]=\"three\"></cds-tab>\n\t\t\t<cds-tab heading=\"four\" [tabContent]=\"four\"></cds-tab>\n\t\t</cds-tabs>\n\n\t\t<!-- Use templates if you would like to have lifecycle hooks called when cacheActive is false -->\n\t\t<ng-template #three>\n\t\t\tTab Content 3\n\t\t</ng-template>\n\n\t\t<ng-template #four>\n\t\t\tTab Content 4\n\t\t</ng-template>\n\t`\n})"
83919
+ },
83920
+ {
83921
+ "name": "With",
83922
+ "ctype": "miscellaneous",
83923
+ "subtype": "variable",
83924
+ "file": "src/tabs/tabs.stories.ts",
83925
+ "deprecated": false,
83926
+ "deprecationMessage": "",
83927
+ "type": "",
83928
+ "defaultValue": "WithTemplate.bind({})"
83929
+ },
83930
+ {
83931
+ "name": "WithTemplate",
83932
+ "ctype": "miscellaneous",
83933
+ "subtype": "variable",
83934
+ "file": "src/tabs/tabs.stories.ts",
83935
+ "deprecated": false,
83936
+ "deprecationMessage": "",
83937
+ "type": "",
83938
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<ng-template #customTabs let-item>\n\t\t\t{{item ? item.name : \"wait for it\"}}\n\t\t</ng-template>\n\t\t<ng-template #iconTab>\n\t\t\t<div style=\"height: 14px;\">\n\t\t\t\tSomething custom\n\t\t\t\t<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\n\t\t\t\tstyle=\"height: 14px; width: 14px; fill: #3d70b2;\">\n\t\t\t\t\t<path d=\"M8 14.5a6.5 6.5 0 1 0 0-13 6.5 6.5 0 0 0 0 13zM8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16z\"></path>\n\t\t\t\t\t<path d=\"M9 13H7V7h2z\"></path>\n\t\t\t\t\t<path d=\"M7 4a1 1 0 1 1 2 0 1 1 0 1 1-2 0\"></path>\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t</ng-template>\n\t\t<cds-tabs [type]=\"type\" [followFocus]=\"followFocus\" [isNavigation]=\"isNavigation\">\n\t\t\t<cds-tab\n\t\t\t\t*ngFor=\"let item of data; let i = index;\"\n\t\t\t\t[heading]=\"customTabs\"\n\t\t\t\ttitle=\"Tab Content\"\n\t\t\t\t[context]=\"item\">\n\t\t\t\tTab Content {{i + 1}}\n\t\t\t</cds-tab>\n\t\t\t<cds-tab [heading]=\"iconTab\" title=\"Custom tab content\">Tab Content Custom</cds-tab>\n\t\t</cds-tabs>\n\t`\n})"
83939
+ }
83940
+ ],
83941
+ "src/tag/tag.stories.ts": [
83942
+ {
83943
+ "name": "Basic",
83944
+ "ctype": "miscellaneous",
83945
+ "subtype": "variable",
83946
+ "file": "src/tag/tag.stories.ts",
83947
+ "deprecated": false,
83948
+ "deprecationMessage": "",
83949
+ "type": "",
83950
+ "defaultValue": "Template.bind({})"
83951
+ },
83952
+ {
83953
+ "name": "Filter",
83954
+ "ctype": "miscellaneous",
83955
+ "subtype": "variable",
83956
+ "file": "src/tag/tag.stories.ts",
83957
+ "deprecated": false,
83958
+ "deprecationMessage": "",
83959
+ "type": "",
83960
+ "defaultValue": "FilteredTemplate.bind({})"
83961
+ },
83962
+ {
83963
+ "name": "FilteredTemplate",
83964
+ "ctype": "miscellaneous",
83965
+ "subtype": "variable",
83966
+ "file": "src/tag/tag.stories.ts",
83967
+ "deprecated": false,
83968
+ "deprecationMessage": "",
83969
+ "type": "",
83970
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-tag-filter\n\t\t\t[type]=\"type\"\n\t\t\t[size]=\"size\"\n\t\t\t[skeleton]=\"skeleton\"\n\t\t\ttitle=\"Filter\"\n\t\t\tcloseButtonLabel=\"Clear\">\n\t\t\t<div cdsTagIcon>\n\t\t\t\t<svg ibmIcon=\"settings\" size=\"16\"></svg>\n\t\t\t</div>\n\t\t\tFiltered\n\t\t</cds-tag-filter>\n\t`\n})"
83971
+ },
83972
+ {
83973
+ "name": "OperationalTag",
83974
+ "ctype": "miscellaneous",
83975
+ "subtype": "variable",
83976
+ "file": "src/tag/tag.stories.ts",
83977
+ "deprecated": false,
83978
+ "deprecationMessage": "",
83979
+ "type": "",
83980
+ "defaultValue": "OperationalTagTemplate.bind({})"
83981
+ },
83982
+ {
83983
+ "name": "OperationalTagTemplate",
83984
+ "ctype": "miscellaneous",
83985
+ "subtype": "variable",
83986
+ "file": "src/tag/tag.stories.ts",
83987
+ "deprecated": false,
83988
+ "deprecationMessage": "",
83989
+ "type": "",
83990
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-tag-operational\n\t\t\ttype=\"cyan\"\n\t\t\t[size]=\"size\"\n\t\t\t[skeleton]=\"skeleton\"\n\t\t\t(click)=\"onClick($event)\">\n\t\t\t<div cdsTagIcon>\n\t\t\t\t<svg ibmIcon=\"settings\" size=\"16\"></svg>\n\t\t\t</div>\n\t\t\tOperational\n\t\t</cds-tag-operational>\n\n\n\t\t<div\n\t\t\tcdsPopover\n\t\t\t[isOpen]=\"isOpen\"\n\t\t\t[highContrast]=\"true\">\n\t\t\t<cds-tag-operational\n\t\t\t\t[type]=\"type\"\n\t\t\t\t[size]=\"size\"\n\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t(click)=\"isOpen = !isOpen\">\n\t\t\t\t<div cdsTagIcon>\n\t\t\t\t\t<svg ibmIcon=\"settings\" size=\"16\"></svg>\n\t\t\t\t</div>\n\t\t\t\tOperational w/ popover\n\t\t\t</cds-tag-operational>\n\t\t\t<cds-popover-content>\n\t\t\t\t<div class=\"popover-content\">\n\t\t\t\t\tTag 1 name <br>\n\t\t\t\t\tTag 2 name <br>\n\t\t\t\t\tTag 3 name <br>\n\t\t\t\t\tTag 4 name <br>\n\t\t\t\t\t<cds-tag type=\"green\">Tag 5 name</cds-tag>\n\t\t\t\t</div>\n\t\t\t</cds-popover-content>\n\t\t</div>\n\t`,\n\tstyles: [\n\t\t`.popover-content {\n\t\t\tline-height: 1.5;\n\t\t\tpadding: 1rem;\n\t\t\tfont-size: 14px;\n\t\t}`\n\t]\n})"
83991
+ },
83992
+ {
83993
+ "name": "SelectedTag",
83994
+ "ctype": "miscellaneous",
83995
+ "subtype": "variable",
83996
+ "file": "src/tag/tag.stories.ts",
83997
+ "deprecated": false,
83998
+ "deprecationMessage": "",
83999
+ "type": "",
84000
+ "defaultValue": "SelectedTagTemplate.bind({})"
84001
+ },
84002
+ {
84003
+ "name": "SelectedTagTemplate",
84004
+ "ctype": "miscellaneous",
84005
+ "subtype": "variable",
84006
+ "file": "src/tag/tag.stories.ts",
84007
+ "deprecated": false,
84008
+ "deprecationMessage": "",
84009
+ "type": "",
84010
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-tag-selectable\n\t\t\t[size]=\"size\"\n\t\t\t[skeleton]=\"skeleton\"\n\t\t\t[selected]=\"selected\"\n\t\t\t(selectedChange)=\"selectedChange($event)\"\n\t\t\t(click)=\"onClick($event)\">\n\t\t\t<div cdsTagIcon>\n\t\t\t\t<svg ibmIcon=\"settings\" size=\"16\"></svg>\n\t\t\t</div>\n\t\t\tSelectable\n\t\t</cds-tag-selectable>\n\t`\n})"
84011
+ },
84012
+ {
84013
+ "name": "Template",
84014
+ "ctype": "miscellaneous",
84015
+ "subtype": "variable",
84016
+ "file": "src/tag/tag.stories.ts",
84017
+ "deprecated": false,
84018
+ "deprecationMessage": "",
84019
+ "type": "",
84020
+ "defaultValue": "(args) => ({\n\tprops: args,\n\ttemplate: `\n\t\t<cds-tag\n\t\t\t[type]=\"type\"\n\t\t\t[skeleton]=\"skeleton\"\n\t\t\t[size]=\"size\">\n\t\t\t<div cdsTagIcon>\n\t\t\t\t<svg ibmIcon=\"settings\" size=\"16\"></svg>\n\t\t\t</div>\n\t\t\tRead only\n\t\t</cds-tag>\n\t`\n})"
84021
+ }
84022
+ ],
82677
84023
  "src/theme/theme.stories.ts": [
82678
84024
  {
82679
84025
  "name": "Basic",
@@ -85216,6 +86562,19 @@
85216
86562
  "kind": 192
85217
86563
  }
85218
86564
  ],
86565
+ "src/combo-button/combo-button.component.ts": [
86566
+ {
86567
+ "name": "ComboButtonPlacement",
86568
+ "ctype": "miscellaneous",
86569
+ "subtype": "typealias",
86570
+ "rawtype": "\"top\" | \"top-start\" | \"top-end\" | \"bottom\" | \"bottom-start\" | \"bottom-end\"",
86571
+ "file": "src/combo-button/combo-button.component.ts",
86572
+ "deprecated": false,
86573
+ "deprecationMessage": "",
86574
+ "description": "",
86575
+ "kind": 192
86576
+ }
86577
+ ],
85219
86578
  "src/utils/types.ts": [
85220
86579
  {
85221
86580
  "name": "EventHandler",
@@ -85242,6 +86601,19 @@
85242
86601
  "kind": 192
85243
86602
  }
85244
86603
  ],
86604
+ "src/menu-button/menu-button.component.ts": [
86605
+ {
86606
+ "name": "MenuButtonPlacement",
86607
+ "ctype": "miscellaneous",
86608
+ "subtype": "typealias",
86609
+ "rawtype": "\"top\" | \"top-start\" | \"top-end\" | \"bottom\" | \"bottom-start\" | \"bottom-end\"",
86610
+ "file": "src/menu-button/menu-button.component.ts",
86611
+ "deprecated": false,
86612
+ "deprecationMessage": "",
86613
+ "description": "",
86614
+ "kind": 192
86615
+ }
86616
+ ],
85245
86617
  "src/notification/notification-content.interface.ts": [
85246
86618
  {
85247
86619
  "name": "NotificationType",
@@ -85931,6 +87303,35 @@
85931
87303
  "coverageCount": "0/1",
85932
87304
  "status": "low"
85933
87305
  },
87306
+ {
87307
+ "filePath": "src/combo-button/combo-button.component.ts",
87308
+ "type": "component",
87309
+ "linktype": "component",
87310
+ "name": "ComboButtonComponent",
87311
+ "coveragePercent": 22,
87312
+ "coverageCount": "6/27",
87313
+ "status": "low"
87314
+ },
87315
+ {
87316
+ "filePath": "src/combo-button/combo-button.stories.ts",
87317
+ "type": "variable",
87318
+ "linktype": "miscellaneous",
87319
+ "linksubtype": "variable",
87320
+ "name": "Basic",
87321
+ "coveragePercent": 0,
87322
+ "coverageCount": "0/1",
87323
+ "status": "low"
87324
+ },
87325
+ {
87326
+ "filePath": "src/combo-button/combo-button.stories.ts",
87327
+ "type": "variable",
87328
+ "linktype": "miscellaneous",
87329
+ "linksubtype": "variable",
87330
+ "name": "Template",
87331
+ "coveragePercent": 0,
87332
+ "coverageCount": "0/1",
87333
+ "status": "low"
87334
+ },
85934
87335
  {
85935
87336
  "filePath": "src/combobox/combobox.component.ts",
85936
87337
  "type": "component",
@@ -86477,7 +87878,7 @@
86477
87878
  "linktype": "component",
86478
87879
  "name": "ContextMenuItemComponent",
86479
87880
  "coveragePercent": 0,
86480
- "coverageCount": "0/39",
87881
+ "coverageCount": "0/43",
86481
87882
  "status": "low"
86482
87883
  },
86483
87884
  {
@@ -86494,8 +87895,8 @@
86494
87895
  "type": "component",
86495
87896
  "linktype": "component",
86496
87897
  "name": "ContextMenuComponent",
86497
- "coveragePercent": 5,
86498
- "coverageCount": "1/18",
87898
+ "coveragePercent": 11,
87899
+ "coverageCount": "2/17",
86499
87900
  "status": "low"
86500
87901
  },
86501
87902
  {
@@ -86518,6 +87919,15 @@
86518
87919
  "coverageCount": "0/1",
86519
87920
  "status": "low"
86520
87921
  },
87922
+ {
87923
+ "filePath": "src/context-menu/context-menu.types.ts",
87924
+ "type": "interface",
87925
+ "linktype": "interface",
87926
+ "name": "ItemClickEvent",
87927
+ "coveragePercent": 0,
87928
+ "coverageCount": "0/6",
87929
+ "status": "low"
87930
+ },
86521
87931
  {
86522
87932
  "filePath": "src/datepicker-input/datepicker-input.component.ts",
86523
87933
  "type": "component",
@@ -88204,6 +89614,35 @@
88204
89614
  "coverageCount": "0/1",
88205
89615
  "status": "low"
88206
89616
  },
89617
+ {
89618
+ "filePath": "src/menu-button/menu-button.component.ts",
89619
+ "type": "component",
89620
+ "linktype": "component",
89621
+ "name": "MenuButtonComponent",
89622
+ "coveragePercent": 23,
89623
+ "coverageCount": "5/21",
89624
+ "status": "low"
89625
+ },
89626
+ {
89627
+ "filePath": "src/menu-button/menu-button.stories.ts",
89628
+ "type": "variable",
89629
+ "linktype": "miscellaneous",
89630
+ "linksubtype": "variable",
89631
+ "name": "Basic",
89632
+ "coveragePercent": 0,
89633
+ "coverageCount": "0/1",
89634
+ "status": "low"
89635
+ },
89636
+ {
89637
+ "filePath": "src/menu-button/menu-button.stories.ts",
89638
+ "type": "variable",
89639
+ "linktype": "miscellaneous",
89640
+ "linksubtype": "variable",
89641
+ "name": "Template",
89642
+ "coveragePercent": 0,
89643
+ "coverageCount": "0/1",
89644
+ "status": "low"
89645
+ },
88207
89646
  {
88208
89647
  "filePath": "src/modal/alert-modal.component.ts",
88209
89648
  "type": "component",