@fundamental-ngx/core 0.44.1-rc.3 → 0.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (500) hide show
  1. package/action-sheet/action-sheet.module.d.ts +5 -6
  2. package/action-sheet/index.d.ts +0 -1
  3. package/avatar/avatar.component.d.ts +1 -6
  4. package/bar/bar.module.d.ts +4 -6
  5. package/bar/directives/bar-element.directive.d.ts +1 -6
  6. package/bar/index.d.ts +0 -2
  7. package/breadcrumb/breadcrumb.component.d.ts +1 -9
  8. package/breadcrumb/breadcrumb.module.d.ts +12 -13
  9. package/breadcrumb/index.d.ts +0 -1
  10. package/button/button.module.d.ts +4 -5
  11. package/button/index.d.ts +0 -1
  12. package/calendar/calendar.module.d.ts +5 -6
  13. package/calendar/index.d.ts +0 -1
  14. package/card/card.module.d.ts +6 -7
  15. package/card/index.d.ts +0 -1
  16. package/carousel/carousel.component.d.ts +1 -13
  17. package/checkbox/checkbox.module.d.ts +4 -5
  18. package/checkbox/index.d.ts +0 -1
  19. package/combobox/combobox.module.d.ts +12 -13
  20. package/combobox/index.d.ts +0 -1
  21. package/content-density/index.d.ts +0 -4
  22. package/date-picker/date-picker.component.d.ts +1 -62
  23. package/date-picker/date-picker.module.d.ts +12 -13
  24. package/date-picker/index.d.ts +0 -1
  25. package/datetime-picker/datetime-picker.component.d.ts +1 -49
  26. package/datetime-picker/datetime-picker.module.d.ts +14 -15
  27. package/datetime-picker/index.d.ts +0 -1
  28. package/dialog/dialog.module.d.ts +14 -16
  29. package/dialog/index.d.ts +0 -2
  30. package/dialog/utils/dialog-config.class.d.ts +0 -2
  31. package/dynamic-page/dynamic-page.module.d.ts +10 -11
  32. package/dynamic-page/index.d.ts +0 -1
  33. package/esm2022/action-sheet/action-sheet.module.mjs +3 -8
  34. package/esm2022/action-sheet/index.mjs +1 -2
  35. package/esm2022/avatar/avatar.component.mjs +3 -13
  36. package/esm2022/bar/bar.module.mjs +3 -13
  37. package/esm2022/bar/directives/bar-element.directive.mjs +3 -16
  38. package/esm2022/bar/index.mjs +1 -3
  39. package/esm2022/breadcrumb/breadcrumb.component.mjs +5 -19
  40. package/esm2022/breadcrumb/breadcrumb.module.mjs +6 -18
  41. package/esm2022/breadcrumb/index.mjs +1 -2
  42. package/esm2022/button/button.module.mjs +4 -5
  43. package/esm2022/button/index.mjs +1 -2
  44. package/esm2022/calendar/calendar.module.mjs +3 -8
  45. package/esm2022/calendar/index.mjs +1 -2
  46. package/esm2022/card/card.module.mjs +4 -8
  47. package/esm2022/card/index.mjs +1 -2
  48. package/esm2022/carousel/carousel.component.mjs +4 -30
  49. package/esm2022/checkbox/checkbox.module.mjs +4 -5
  50. package/esm2022/checkbox/index.mjs +1 -2
  51. package/esm2022/combobox/combobox-mobile/combobox-mobile.component.mjs +1 -1
  52. package/esm2022/combobox/combobox.component.mjs +1 -1
  53. package/esm2022/combobox/combobox.module.mjs +6 -8
  54. package/esm2022/combobox/index.mjs +1 -2
  55. package/esm2022/content-density/index.mjs +1 -5
  56. package/esm2022/date-picker/date-picker.component.mjs +4 -104
  57. package/esm2022/date-picker/date-picker.module.mjs +5 -6
  58. package/esm2022/date-picker/index.mjs +1 -2
  59. package/esm2022/datetime-picker/datetime-picker.component.mjs +4 -83
  60. package/esm2022/datetime-picker/datetime-picker.module.mjs +5 -6
  61. package/esm2022/datetime-picker/index.mjs +1 -2
  62. package/esm2022/dialog/dialog-default/dialog-default.component.mjs +1 -1
  63. package/esm2022/dialog/dialog-header/dialog-header.component.mjs +1 -1
  64. package/esm2022/dialog/dialog.component.mjs +3 -3
  65. package/esm2022/dialog/dialog.module.mjs +1 -9
  66. package/esm2022/dialog/index.mjs +1 -3
  67. package/esm2022/dialog/utils/dialog-config.class.mjs +1 -1
  68. package/esm2022/dynamic-page/dynamic-page-header/actions/dynamic-page-title-content.component.mjs +1 -1
  69. package/esm2022/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +1 -1
  70. package/esm2022/dynamic-page/dynamic-page.module.mjs +3 -8
  71. package/esm2022/dynamic-page/index.mjs +1 -2
  72. package/esm2022/facets/facet/facet.component.mjs +1 -1
  73. package/esm2022/feed-list-item/components/item/feed-list-item.component.mjs +14 -40
  74. package/esm2022/file-uploader/file-uploader.module.mjs +4 -23
  75. package/esm2022/file-uploader/index.mjs +1 -2
  76. package/esm2022/form/form-control/form-control.module.mjs +4 -23
  77. package/esm2022/form/form-label/form-label.component.mjs +3 -40
  78. package/esm2022/form/form-message/form-message.component.mjs +1 -1
  79. package/esm2022/form/form-message/popover-form-message.service.mjs +1 -1
  80. package/esm2022/form/index.mjs +1 -2
  81. package/esm2022/fundamental-ngx.module.mjs +1 -5
  82. package/esm2022/grid-list/components/grid-list-filter-bar/grid-list-filter-bar.component.mjs +1 -1
  83. package/esm2022/grid-list/components/grid-list-title-bar/grid-list-title-bar.component.mjs +1 -1
  84. package/esm2022/index.mjs +1 -2
  85. package/esm2022/inline-help/inline-help.directive.mjs +3 -18
  86. package/esm2022/input-group/index.mjs +1 -2
  87. package/esm2022/input-group/input-group.component.mjs +6 -28
  88. package/esm2022/input-group/input-group.module.mjs +1 -6
  89. package/esm2022/link/link.component.mjs +5 -8
  90. package/esm2022/list/index.mjs +1 -2
  91. package/esm2022/list/list-item/list-item.component.mjs +3 -46
  92. package/esm2022/list/list-message.directive.mjs +1 -1
  93. package/esm2022/list/list.module.mjs +3 -8
  94. package/esm2022/menu/index.mjs +1 -2
  95. package/esm2022/menu/menu-mobile/menu-mobile.component.mjs +1 -1
  96. package/esm2022/menu/menu.module.mjs +3 -8
  97. package/esm2022/message-box/index.mjs +1 -3
  98. package/esm2022/message-box/message-box-default/message-box-default.component.mjs +1 -1
  99. package/esm2022/message-box/message-box-header/message-box-header.component.mjs +1 -1
  100. package/esm2022/message-box/message-box.module.mjs +3 -11
  101. package/esm2022/message-strip/alert/message-strip-alert/message-strip-alert.component.mjs +3 -3
  102. package/esm2022/message-strip/alert/message-strip-alert.service.mjs +8 -2
  103. package/esm2022/message-strip/message-strip.component.mjs +3 -16
  104. package/esm2022/micro-process-flow/index.mjs +1 -2
  105. package/esm2022/micro-process-flow/micro-process-flow.module.mjs +5 -10
  106. package/esm2022/multi-combobox/mobile/mobile-multi-combobox.component.mjs +1 -1
  107. package/esm2022/multi-combobox/multi-combobox.component.mjs +1 -1
  108. package/esm2022/multi-combobox/select-all-toggler/select-all-toggler.component.mjs +1 -1
  109. package/esm2022/multi-input/index.mjs +1 -2
  110. package/esm2022/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +1 -1
  111. package/esm2022/multi-input/multi-input.component.mjs +1 -1
  112. package/esm2022/multi-input/multi-input.module.mjs +6 -8
  113. package/esm2022/nested-list/index.mjs +1 -2
  114. package/esm2022/nested-list/nested-list.module.mjs +3 -8
  115. package/esm2022/object-number/object-number.component.mjs +3 -3
  116. package/esm2022/overflow-layout/overflow-layout.component.mjs +3 -3
  117. package/esm2022/pagination/index.mjs +1 -2
  118. package/esm2022/pagination/pagination.component.mjs +8 -186
  119. package/esm2022/pagination/pagination.module.mjs +6 -7
  120. package/esm2022/panel/index.mjs +1 -2
  121. package/esm2022/panel/panel.module.mjs +4 -15
  122. package/esm2022/popover/base/base-popover.class.mjs +2 -33
  123. package/esm2022/popover/popover.component.mjs +1 -19
  124. package/esm2022/product-switch/product-switch/product-switch.component.mjs +4 -17
  125. package/esm2022/product-switch/product-switch-body/product-switch-body.component.mjs +1 -1
  126. package/esm2022/product-switch/product-switch-body/product-switch.item.mjs +1 -1
  127. package/esm2022/quick-view/quick-view-group-item-label/quick-view-group-item-label.component.mjs +1 -1
  128. package/esm2022/quick-view/quick-view-title/quick-view-title.component.mjs +1 -1
  129. package/esm2022/radio/index.mjs +1 -2
  130. package/esm2022/radio/radio.module.mjs +4 -5
  131. package/esm2022/rating-indicator/components/rating-indicator.component.mjs +3 -3
  132. package/esm2022/select/index.mjs +1 -2
  133. package/esm2022/select/select.component.mjs +1 -1
  134. package/esm2022/select/select.module.mjs +5 -6
  135. package/esm2022/shellbar/index.mjs +1 -2
  136. package/esm2022/shellbar/shellbar-actions/shellbar-actions.component.mjs +3 -17
  137. package/esm2022/shellbar/shellbar-actions-mobile/shellbar-actions-mobile.component.mjs +3 -5
  138. package/esm2022/shellbar/shellbar.module.mjs +3 -8
  139. package/esm2022/shellbar/user-menu/shellbar-user-menu.component.mjs +1 -1
  140. package/esm2022/slider/index.mjs +1 -2
  141. package/esm2022/slider/slider.component.mjs +3 -49
  142. package/esm2022/slider/slider.module.mjs +4 -5
  143. package/esm2022/split-button/index.mjs +1 -2
  144. package/esm2022/split-button/split-button.component.mjs +3 -27
  145. package/esm2022/split-button/split-button.module.mjs +4 -5
  146. package/esm2022/splitter/splitter-pagination/splitter-pagination.component.mjs +3 -10
  147. package/esm2022/splitter/splitter.component.mjs +2 -16
  148. package/esm2022/step-input/index.mjs +1 -2
  149. package/esm2022/step-input/step-input.component.mjs +5 -31
  150. package/esm2022/step-input/step-input.module.mjs +5 -6
  151. package/esm2022/switch/index.mjs +1 -2
  152. package/esm2022/switch/switch.component.mjs +5 -43
  153. package/esm2022/switch/switch.module.mjs +4 -5
  154. package/esm2022/table/index.mjs +1 -3
  155. package/esm2022/table/table.module.mjs +3 -13
  156. package/esm2022/tabs/index.mjs +1 -2
  157. package/esm2022/tabs/tab-item-expand/tab-item-expand.component.mjs +8 -22
  158. package/esm2022/tabs/tab-list.component.mjs +5 -18
  159. package/esm2022/tabs/tabs.module.mjs +3 -8
  160. package/esm2022/text/text.component.mjs +3 -29
  161. package/esm2022/time/index.mjs +1 -3
  162. package/esm2022/time/time.component.mjs +8 -65
  163. package/esm2022/time/time.module.mjs +5 -6
  164. package/esm2022/time-picker/index.mjs +1 -2
  165. package/esm2022/time-picker/time-picker.component.mjs +1 -1
  166. package/esm2022/time-picker/time-picker.module.mjs +6 -22
  167. package/esm2022/timeline/components/timeline-node-body/timeline-node-body.component.mjs +1 -1
  168. package/esm2022/timeline/timeline.component.mjs +1 -1
  169. package/esm2022/token/index.mjs +1 -2
  170. package/esm2022/token/token.component.mjs +4 -30
  171. package/esm2022/token/token.module.mjs +5 -24
  172. package/esm2022/token/tokenizer.component.mjs +3 -3
  173. package/esm2022/toolbar/toolbar.component.mjs +8 -24
  174. package/esm2022/tree/tree.component.mjs +1 -1
  175. package/esm2022/upload-collection/upload-collection-button-group/upload-collection-button-group.component.mjs +9 -87
  176. package/esm2022/upload-collection/upload-collection-form-item/upload-collection-form-item.component.mjs +9 -21
  177. package/esm2022/upload-collection/upload-collection-item.directive.mjs +4 -3
  178. package/esm2022/upload-collection/upload-collection-simple.directives.mjs +22 -15
  179. package/esm2022/upload-collection/upload-collection.component.mjs +5 -4
  180. package/esm2022/upload-collection/upload-collection.module.mjs +7 -13
  181. package/esm2022/wizard/index.mjs +1 -2
  182. package/esm2022/wizard/wizard.module.mjs +3 -8
  183. package/feed-list-item/components/item/feed-list-item.component.d.ts +9 -25
  184. package/fesm2022/fundamental-ngx-core-action-sheet.mjs +5 -36
  185. package/fesm2022/fundamental-ngx-core-action-sheet.mjs.map +1 -1
  186. package/fesm2022/fundamental-ngx-core-avatar.mjs +2 -12
  187. package/fesm2022/fundamental-ngx-core-avatar.mjs.map +1 -1
  188. package/fesm2022/fundamental-ngx-core-bar.mjs +7 -81
  189. package/fesm2022/fundamental-ngx-core-bar.mjs.map +1 -1
  190. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +11 -63
  191. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  192. package/fesm2022/fundamental-ngx-core-button.mjs +6 -33
  193. package/fesm2022/fundamental-ngx-core-button.mjs.map +1 -1
  194. package/fesm2022/fundamental-ngx-core-calendar.mjs +4 -35
  195. package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
  196. package/fesm2022/fundamental-ngx-core-card.mjs +6 -36
  197. package/fesm2022/fundamental-ngx-core-card.mjs.map +1 -1
  198. package/fesm2022/fundamental-ngx-core-carousel.mjs +3 -29
  199. package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
  200. package/fesm2022/fundamental-ngx-core-checkbox.mjs +6 -33
  201. package/fesm2022/fundamental-ngx-core-checkbox.mjs.map +1 -1
  202. package/fesm2022/fundamental-ngx-core-combobox.mjs +9 -37
  203. package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
  204. package/fesm2022/fundamental-ngx-core-content-density.mjs +1 -148
  205. package/fesm2022/fundamental-ngx-core-content-density.mjs.map +1 -1
  206. package/fesm2022/fundamental-ngx-core-date-picker.mjs +10 -137
  207. package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
  208. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +10 -116
  209. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  210. package/fesm2022/fundamental-ngx-core-dialog.mjs +6 -57
  211. package/fesm2022/fundamental-ngx-core-dialog.mjs.map +1 -1
  212. package/fesm2022/fundamental-ngx-core-dynamic-page.mjs +7 -38
  213. package/fesm2022/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  214. package/fesm2022/fundamental-ngx-core-facets.mjs +1 -1
  215. package/fesm2022/fundamental-ngx-core-facets.mjs.map +1 -1
  216. package/fesm2022/fundamental-ngx-core-feed-list-item.mjs +13 -39
  217. package/fesm2022/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
  218. package/fesm2022/fundamental-ngx-core-file-uploader.mjs +5 -50
  219. package/fesm2022/fundamental-ngx-core-file-uploader.mjs.map +1 -1
  220. package/fesm2022/fundamental-ngx-core-form.mjs +7 -88
  221. package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
  222. package/fesm2022/fundamental-ngx-core-grid-list.mjs +2 -2
  223. package/fesm2022/fundamental-ngx-core-grid-list.mjs.map +1 -1
  224. package/fesm2022/fundamental-ngx-core-inline-help.mjs +2 -17
  225. package/fesm2022/fundamental-ngx-core-inline-help.mjs.map +1 -1
  226. package/fesm2022/fundamental-ngx-core-input-group.mjs +8 -60
  227. package/fesm2022/fundamental-ngx-core-input-group.mjs.map +1 -1
  228. package/fesm2022/fundamental-ngx-core-link.mjs +4 -7
  229. package/fesm2022/fundamental-ngx-core-link.mjs.map +1 -1
  230. package/fesm2022/fundamental-ngx-core-list.mjs +6 -80
  231. package/fesm2022/fundamental-ngx-core-list.mjs.map +1 -1
  232. package/fesm2022/fundamental-ngx-core-menu.mjs +7 -38
  233. package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
  234. package/fesm2022/fundamental-ngx-core-message-box.mjs +7 -59
  235. package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
  236. package/fesm2022/fundamental-ngx-core-message-strip.mjs +11 -19
  237. package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
  238. package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs +7 -38
  239. package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs.map +1 -1
  240. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +3 -3
  241. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  242. package/fesm2022/fundamental-ngx-core-multi-input.mjs +9 -36
  243. package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
  244. package/fesm2022/fundamental-ngx-core-nested-list.mjs +4 -34
  245. package/fesm2022/fundamental-ngx-core-nested-list.mjs.map +1 -1
  246. package/fesm2022/fundamental-ngx-core-object-number.mjs +2 -2
  247. package/fesm2022/fundamental-ngx-core-object-number.mjs.map +1 -1
  248. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs +2 -2
  249. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
  250. package/fesm2022/fundamental-ngx-core-pagination.mjs +14 -219
  251. package/fesm2022/fundamental-ngx-core-pagination.mjs.map +1 -1
  252. package/fesm2022/fundamental-ngx-core-panel.mjs +6 -43
  253. package/fesm2022/fundamental-ngx-core-panel.mjs.map +1 -1
  254. package/fesm2022/fundamental-ngx-core-popover.mjs +2 -50
  255. package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
  256. package/fesm2022/fundamental-ngx-core-product-switch.mjs +6 -18
  257. package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
  258. package/fesm2022/fundamental-ngx-core-quick-view.mjs +2 -2
  259. package/fesm2022/fundamental-ngx-core-quick-view.mjs.map +1 -1
  260. package/fesm2022/fundamental-ngx-core-radio.mjs +6 -33
  261. package/fesm2022/fundamental-ngx-core-radio.mjs.map +1 -1
  262. package/fesm2022/fundamental-ngx-core-rating-indicator.mjs +2 -2
  263. package/fesm2022/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
  264. package/fesm2022/fundamental-ngx-core-select.mjs +7 -34
  265. package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
  266. package/fesm2022/fundamental-ngx-core-shellbar.mjs +11 -57
  267. package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
  268. package/fesm2022/fundamental-ngx-core-slider.mjs +8 -70
  269. package/fesm2022/fundamental-ngx-core-slider.mjs.map +1 -1
  270. package/fesm2022/fundamental-ngx-core-split-button.mjs +8 -59
  271. package/fesm2022/fundamental-ngx-core-split-button.mjs.map +1 -1
  272. package/fesm2022/fundamental-ngx-core-splitter.mjs +4 -24
  273. package/fesm2022/fundamental-ngx-core-splitter.mjs.map +1 -1
  274. package/fesm2022/fundamental-ngx-core-step-input.mjs +11 -64
  275. package/fesm2022/fundamental-ngx-core-step-input.mjs.map +1 -1
  276. package/fesm2022/fundamental-ngx-core-switch.mjs +9 -74
  277. package/fesm2022/fundamental-ngx-core-switch.mjs.map +1 -1
  278. package/fesm2022/fundamental-ngx-core-table.mjs +5 -65
  279. package/fesm2022/fundamental-ngx-core-table.mjs.map +1 -1
  280. package/fesm2022/fundamental-ngx-core-tabs.mjs +14 -69
  281. package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
  282. package/fesm2022/fundamental-ngx-core-text.mjs +2 -28
  283. package/fesm2022/fundamental-ngx-core-text.mjs.map +1 -1
  284. package/fesm2022/fundamental-ngx-core-time-picker.mjs +9 -51
  285. package/fesm2022/fundamental-ngx-core-time-picker.mjs.map +1 -1
  286. package/fesm2022/fundamental-ngx-core-time.mjs +12 -143
  287. package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
  288. package/fesm2022/fundamental-ngx-core-timeline.mjs +2 -2
  289. package/fesm2022/fundamental-ngx-core-timeline.mjs.map +1 -1
  290. package/fesm2022/fundamental-ngx-core-token.mjs +11 -82
  291. package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
  292. package/fesm2022/fundamental-ngx-core-toolbar.mjs +6 -22
  293. package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
  294. package/fesm2022/fundamental-ngx-core-tree.mjs +1 -1
  295. package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
  296. package/fesm2022/fundamental-ngx-core-upload-collection.mjs +46 -131
  297. package/fesm2022/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  298. package/fesm2022/fundamental-ngx-core-wizard.mjs +5 -36
  299. package/fesm2022/fundamental-ngx-core-wizard.mjs.map +1 -1
  300. package/fesm2022/fundamental-ngx-core.mjs +0 -5
  301. package/fesm2022/fundamental-ngx-core.mjs.map +1 -1
  302. package/file-uploader/file-uploader.module.d.ts +6 -7
  303. package/file-uploader/index.d.ts +0 -1
  304. package/form/form-control/form-control.module.d.ts +3 -4
  305. package/form/form-label/form-label.component.d.ts +1 -16
  306. package/form/form-message/form-message.component.d.ts +0 -2
  307. package/form/form-message/popover-form-message.service.d.ts +2 -2
  308. package/form/index.d.ts +0 -1
  309. package/fundamental-ngx-core-v0.45.0.tgz +0 -0
  310. package/fundamental-ngx.module.d.ts +89 -90
  311. package/index.d.ts +0 -1
  312. package/inline-help/inline-help.directive.d.ts +1 -7
  313. package/input-group/index.d.ts +0 -1
  314. package/input-group/input-group.component.d.ts +6 -13
  315. package/input-group/input-group.module.d.ts +6 -7
  316. package/link/link.component.d.ts +1 -1
  317. package/list/index.d.ts +0 -1
  318. package/list/list-item/list-item.component.d.ts +1 -25
  319. package/list/list-message.directive.d.ts +2 -2
  320. package/list/list.module.d.ts +5 -6
  321. package/menu/index.d.ts +0 -1
  322. package/menu/menu.module.d.ts +6 -7
  323. package/message-box/index.d.ts +0 -2
  324. package/message-box/message-box.module.d.ts +15 -17
  325. package/message-strip/message-strip.component.d.ts +1 -9
  326. package/micro-process-flow/index.d.ts +0 -1
  327. package/micro-process-flow/micro-process-flow.module.d.ts +4 -5
  328. package/multi-input/index.d.ts +0 -1
  329. package/multi-input/multi-input.module.d.ts +12 -13
  330. package/nested-list/index.d.ts +0 -1
  331. package/nested-list/nested-list.module.d.ts +6 -7
  332. package/package.json +3 -9
  333. package/pagination/index.d.ts +0 -1
  334. package/pagination/pagination.component.d.ts +2 -111
  335. package/pagination/pagination.module.d.ts +10 -11
  336. package/panel/index.d.ts +0 -1
  337. package/panel/panel.module.d.ts +4 -5
  338. package/popover/base/base-popover.class.d.ts +1 -16
  339. package/popover/popover.component.d.ts +0 -11
  340. package/product-switch/product-switch/product-switch.component.d.ts +1 -8
  341. package/product-switch/product-switch-body/product-switch.item.d.ts +0 -4
  342. package/radio/index.d.ts +0 -1
  343. package/radio/radio.module.d.ts +4 -5
  344. package/schematics/add-dependencies/index.js +4 -4
  345. package/select/index.d.ts +0 -1
  346. package/select/select.component.d.ts +0 -2
  347. package/select/select.module.d.ts +9 -10
  348. package/shellbar/index.d.ts +0 -1
  349. package/shellbar/shellbar-actions/shellbar-actions.component.d.ts +1 -9
  350. package/shellbar/shellbar-actions-mobile/shellbar-actions-mobile.component.d.ts +3 -5
  351. package/shellbar/shellbar.module.d.ts +14 -15
  352. package/slider/index.d.ts +0 -1
  353. package/slider/slider.component.d.ts +1 -31
  354. package/slider/slider.module.d.ts +7 -8
  355. package/split-button/index.d.ts +0 -1
  356. package/split-button/split-button.component.d.ts +3 -12
  357. package/split-button/split-button.module.d.ts +6 -7
  358. package/splitter/splitter-pagination/splitter-pagination.component.d.ts +0 -5
  359. package/splitter/splitter.component.d.ts +1 -9
  360. package/step-input/index.d.ts +0 -1
  361. package/step-input/step-input.component.d.ts +1 -17
  362. package/step-input/step-input.module.d.ts +7 -8
  363. package/switch/index.d.ts +0 -1
  364. package/switch/switch.component.d.ts +1 -19
  365. package/switch/switch.module.d.ts +5 -6
  366. package/table/index.d.ts +0 -2
  367. package/table/table.module.d.ts +4 -6
  368. package/tabs/index.d.ts +0 -1
  369. package/tabs/tab-item-expand/tab-item-expand.component.d.ts +1 -8
  370. package/tabs/tab-list.component.d.ts +1 -9
  371. package/tabs/tabs.module.d.ts +12 -13
  372. package/text/text.component.d.ts +1 -17
  373. package/time/index.d.ts +0 -2
  374. package/time/time.component.d.ts +2 -15
  375. package/time/time.module.d.ts +9 -10
  376. package/time-picker/index.d.ts +0 -1
  377. package/time-picker/time-picker.module.d.ts +9 -10
  378. package/token/index.d.ts +0 -1
  379. package/token/token.component.d.ts +1 -17
  380. package/token/token.module.d.ts +8 -9
  381. package/toolbar/toolbar.component.d.ts +4 -12
  382. package/upload-collection/upload-collection-button-group/upload-collection-button-group.component.d.ts +2 -50
  383. package/upload-collection/upload-collection-form-item/upload-collection-form-item.component.d.ts +1 -9
  384. package/upload-collection/upload-collection-item.directive.d.ts +1 -1
  385. package/upload-collection/upload-collection-simple.directives.d.ts +7 -7
  386. package/upload-collection/upload-collection.component.d.ts +1 -1
  387. package/upload-collection/upload-collection.module.d.ts +1 -8
  388. package/wizard/index.d.ts +0 -1
  389. package/wizard/wizard.module.d.ts +8 -9
  390. package/action-sheet/deprecated-action-sheet-compact.directive.d.ts +0 -8
  391. package/alert/README.md +0 -25
  392. package/alert/alert-service/alert.service.d.ts +0 -41
  393. package/alert/alert-utils/alert-animations.d.ts +0 -8
  394. package/alert/alert-utils/alert-config.d.ts +0 -34
  395. package/alert/alert-utils/alert-container.component.d.ts +0 -14
  396. package/alert/alert-utils/alert-ref.d.ts +0 -26
  397. package/alert/alert.component.d.ts +0 -87
  398. package/alert/alert.module.d.ts +0 -18
  399. package/alert/index.d.ts +0 -7
  400. package/bar/deprecated-bar-button-content-density.directive.d.ts +0 -8
  401. package/bar/deprecated-bar-content-density.directive.d.ts +0 -8
  402. package/breadcrumb/deprecated-breadcrumbs-compact.directive.d.ts +0 -8
  403. package/button/deprecated-button-content-density.directive.d.ts +0 -8
  404. package/calendar/deprecated-calendar-content-density.directive.d.ts +0 -8
  405. package/card/deprecated-card-content-density.directive.d.ts +0 -8
  406. package/checkbox/deprecated-checkbox-content-density.directive.d.ts +0 -8
  407. package/combobox/deprecated-combobox-content-density.directive.d.ts +0 -10
  408. package/content-density/classes/deprecated-compact.directive.d.ts +0 -26
  409. package/content-density/classes/deprecated-condensed.directive.d.ts +0 -26
  410. package/content-density/classes/deprecated-content-density.directive.d.ts +0 -26
  411. package/content-density/classes/deprecated-cozy.directive.d.ts +0 -26
  412. package/date-picker/deprecated-date-picker-compact.directive.d.ts +0 -8
  413. package/datetime-picker/deprecated-date-time-picker-content-density.directive.d.ts +0 -8
  414. package/dialog/dialog-footer-button/dialog-footer-button.component.d.ts +0 -12
  415. package/dialog/directives/dialog-decisive-button.directive.d.ts +0 -11
  416. package/dynamic-page/deprecated-dynamic-page-compact.directive.d.ts +0 -8
  417. package/esm2022/action-sheet/deprecated-action-sheet-compact.directive.mjs +0 -30
  418. package/esm2022/alert/alert-service/alert.service.mjs +0 -85
  419. package/esm2022/alert/alert-utils/alert-animations.mjs +0 -38
  420. package/esm2022/alert/alert-utils/alert-config.mjs +0 -27
  421. package/esm2022/alert/alert-utils/alert-container.component.mjs +0 -29
  422. package/esm2022/alert/alert-utils/alert-ref.mjs +0 -29
  423. package/esm2022/alert/alert.component.mjs +0 -212
  424. package/esm2022/alert/alert.module.mjs +0 -33
  425. package/esm2022/alert/fundamental-ngx-core-alert.mjs +0 -5
  426. package/esm2022/alert/index.mjs +0 -8
  427. package/esm2022/bar/deprecated-bar-button-content-density.directive.mjs +0 -30
  428. package/esm2022/bar/deprecated-bar-content-density.directive.mjs +0 -29
  429. package/esm2022/breadcrumb/deprecated-breadcrumbs-compact.directive.mjs +0 -30
  430. package/esm2022/button/deprecated-button-content-density.directive.mjs +0 -30
  431. package/esm2022/calendar/deprecated-calendar-content-density.directive.mjs +0 -30
  432. package/esm2022/card/deprecated-card-content-density.directive.mjs +0 -30
  433. package/esm2022/checkbox/deprecated-checkbox-content-density.directive.mjs +0 -30
  434. package/esm2022/combobox/deprecated-combobox-content-density.directive.mjs +0 -31
  435. package/esm2022/content-density/classes/deprecated-compact.directive.mjs +0 -39
  436. package/esm2022/content-density/classes/deprecated-condensed.directive.mjs +0 -39
  437. package/esm2022/content-density/classes/deprecated-content-density.directive.mjs +0 -49
  438. package/esm2022/content-density/classes/deprecated-cozy.directive.mjs +0 -39
  439. package/esm2022/date-picker/deprecated-date-picker-compact.directive.mjs +0 -30
  440. package/esm2022/datetime-picker/deprecated-date-time-picker-content-density.directive.mjs +0 -30
  441. package/esm2022/dialog/dialog-footer-button/dialog-footer-button.component.mjs +0 -25
  442. package/esm2022/dialog/directives/dialog-decisive-button.directive.mjs +0 -26
  443. package/esm2022/dynamic-page/deprecated-dynamic-page-compact.directive.mjs +0 -30
  444. package/esm2022/file-uploader/deprecated-file-uploader-content-density.directive.mjs +0 -30
  445. package/esm2022/form/form-control/deprecated-form-control-content-density.directive.mjs +0 -29
  446. package/esm2022/input-group/deprecated-input-group-compact.directive.mjs +0 -30
  447. package/esm2022/list/deprecated-list-content-density,directive.mjs +0 -30
  448. package/esm2022/menu/directives/deprecated-menu-compact.directive.mjs +0 -30
  449. package/esm2022/message-box/directives/message-box-decisive-button.directive.mjs +0 -27
  450. package/esm2022/message-box/message-box-footer-button/message-box-footer-button.component.mjs +0 -25
  451. package/esm2022/micro-process-flow/components/micro-process-flow/deprecated-micro-process-flow-content-density.directive.mjs +0 -30
  452. package/esm2022/multi-input/deprecated-multi-input-compact.directive.mjs +0 -30
  453. package/esm2022/nested-list/deprecated-nested-list-compact.directive.mjs +0 -29
  454. package/esm2022/pagination/deprecated-pagination-compact.directive.mjs +0 -30
  455. package/esm2022/panel/deprecated-panel-compact.directive.mjs +0 -30
  456. package/esm2022/radio/deprecated-radio-button-compact.directive.mjs +0 -30
  457. package/esm2022/select/deprecated-select-compact.directive.mjs +0 -30
  458. package/esm2022/shellbar/deprecated-shellbar-compact.directive.mjs +0 -30
  459. package/esm2022/slider/deprecated-slider-cozy.directive.mjs +0 -20
  460. package/esm2022/split-button/deprecated-split-button-compact.directive.mjs +0 -30
  461. package/esm2022/step-input/deprecated-step-input-compact.directive.mjs +0 -30
  462. package/esm2022/switch/deprecated-switch-compact.directive.mjs +0 -30
  463. package/esm2022/table/deprecated-table-compact.directive.mjs +0 -29
  464. package/esm2022/table/deprecated-table-condensed.directive.mjs +0 -29
  465. package/esm2022/tabs/deprecated-tabs-compact.directive.mjs +0 -29
  466. package/esm2022/time/deprecated-time-content-density.directive.mjs +0 -30
  467. package/esm2022/time/i18n/time-i18n.mjs +0 -52
  468. package/esm2022/time-picker/deprecated-timepicker-compact.directive.mjs +0 -30
  469. package/esm2022/token/deprecated-tokenizer-content-density.directive.mjs +0 -30
  470. package/esm2022/wizard/deprecated-wizard-compact.directive.mjs +0 -30
  471. package/fesm2022/fundamental-ngx-core-alert.mjs +0 -437
  472. package/fesm2022/fundamental-ngx-core-alert.mjs.map +0 -1
  473. package/file-uploader/deprecated-file-uploader-content-density.directive.d.ts +0 -8
  474. package/form/form-control/deprecated-form-control-content-density.directive.d.ts +0 -8
  475. package/fundamental-ngx-core-v0.44.1-rc.3.tgz +0 -0
  476. package/input-group/deprecated-input-group-compact.directive.d.ts +0 -8
  477. package/list/deprecated-list-content-density,directive.d.ts +0 -8
  478. package/menu/directives/deprecated-menu-compact.directive.d.ts +0 -8
  479. package/message-box/directives/message-box-decisive-button.directive.d.ts +0 -11
  480. package/message-box/message-box-footer-button/message-box-footer-button.component.d.ts +0 -12
  481. package/micro-process-flow/components/micro-process-flow/deprecated-micro-process-flow-content-density.directive.d.ts +0 -8
  482. package/multi-input/deprecated-multi-input-compact.directive.d.ts +0 -8
  483. package/nested-list/deprecated-nested-list-compact.directive.d.ts +0 -8
  484. package/pagination/deprecated-pagination-compact.directive.d.ts +0 -8
  485. package/panel/deprecated-panel-compact.directive.d.ts +0 -8
  486. package/radio/deprecated-radio-button-compact.directive.d.ts +0 -8
  487. package/select/deprecated-select-compact.directive.d.ts +0 -8
  488. package/shellbar/deprecated-shellbar-compact.directive.d.ts +0 -8
  489. package/slider/deprecated-slider-cozy.directive.d.ts +0 -8
  490. package/split-button/deprecated-split-button-compact.directive.d.ts +0 -8
  491. package/step-input/deprecated-step-input-compact.directive.d.ts +0 -8
  492. package/switch/deprecated-switch-compact.directive.d.ts +0 -8
  493. package/table/deprecated-table-compact.directive.d.ts +0 -8
  494. package/table/deprecated-table-condensed.directive.d.ts +0 -8
  495. package/tabs/deprecated-tabs-compact.directive.d.ts +0 -8
  496. package/time/deprecated-time-content-density.directive.d.ts +0 -8
  497. package/time/i18n/time-i18n.d.ts +0 -42
  498. package/time-picker/deprecated-timepicker-compact.directive.d.ts +0 -8
  499. package/token/deprecated-tokenizer-content-density.directive.d.ts +0 -8
  500. package/wizard/deprecated-wizard-compact.directive.d.ts +0 -8
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-menu.mjs","sources":["../../../../libs/core/src/lib/menu/directives/menu-title.directive.ts","../../../../libs/core/src/lib/menu/directives/menu-interactive.directive.ts","../../../../libs/core/src/lib/menu/services/menu.service.ts","../../../../libs/core/src/lib/menu/menu-item/menu-item.component.ts","../../../../libs/core/src/lib/menu/menu-item/menu-item.component.html","../../../../libs/core/src/lib/menu/directives/menu-shortcut.directive.ts","../../../../libs/core/src/lib/menu/directives/menu-trigger.directive.ts","../../../../libs/core/src/lib/menu/directives/menu-addon.directive.ts","../../../../libs/core/src/lib/menu/directives/deprecated-menu-compact.directive.ts","../../../../libs/core/src/lib/menu/menu-separator/menu-separator.component.ts","../../../../libs/core/src/lib/menu/menu.interface.ts","../../../../libs/core/src/lib/menu/menu-mobile/menu-mobile.component.ts","../../../../libs/core/src/lib/menu/menu-mobile/menu-mobile.component.html","../../../../libs/core/src/lib/menu/menu-mobile/menu-mobile.module.ts","../../../../libs/core/src/lib/menu/menu.component.ts","../../../../libs/core/src/lib/menu/menu.component.html","../../../../libs/core/src/lib/menu/menu.module.ts","../../../../libs/core/src/lib/menu/default-menu-item.class.ts","../../../../libs/core/src/lib/menu/menu-keyboard.service.ts","../../../../libs/core/src/lib/menu/fundamental-ngx-core-menu.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding } from '@angular/core';\n\n/**\n * The directive that represents the menu title.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-menu-title]'\n})\nexport class MenuTitleDirective {\n /** @hidden */\n @HostBinding('class.fd-menu__title')\n fdMenuTitleClass = true;\n\n /** Returns element title text */\n @HostBinding('attr.title')\n get title(): string {\n return this._elementRef.nativeElement.textContent;\n }\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n}\n","import { Directive, ElementRef, HostBinding } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-menu-interactive]',\n host: {\n role: 'menuitem'\n }\n})\nexport class MenuInteractiveDirective {\n /** @hidden */\n @HostBinding('attr.tabindex')\n tabindex = 0;\n\n /** @hidden */\n @HostBinding('class.is-disabled')\n disabled = false;\n\n /** @hidden */\n @HostBinding('attr.aria-controls')\n ariaControls: Nullable<string>;\n\n /** @hidden */\n @HostBinding('class.is-selected')\n @HostBinding('attr.aria-expanded')\n selected = false;\n\n /** @hidden */\n @HostBinding('attr.aria-haspopup')\n ariaHaspopup = false;\n\n /** @hidden */\n @HostBinding('class.fd-menu__link')\n readonly fdMenuLinkClass: boolean = true;\n\n /** @hidden */\n _fromSplitButton = false;\n\n /** @hidden */\n constructor(public elementRef: ElementRef) {}\n\n /** @hidden */\n setSelected(isSelected: boolean): void {\n this.selected = isSelected && (this.ariaHaspopup || this._fromSplitButton);\n }\n\n /** @hidden */\n setDisabled(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.tabindex = isDisabled ? -1 : 0;\n }\n\n /** @hidden */\n setSubmenu(hasSubmenu: boolean, itemId?: string): void {\n this.ariaHaspopup = hasSubmenu;\n this.ariaControls = hasSubmenu ? itemId || this.ariaControls : null;\n }\n}\n","import { ElementRef, Injectable, Optional, Renderer2 } from '@angular/core';\nimport { MenuItemComponent } from '../menu-item/menu-item.component';\nimport { MenuComponent } from '../menu.component';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { DOWN_ARROW, ENTER, ESCAPE, LEFT_ARROW, RIGHT_ARROW, SPACE, UP_ARROW } from '@angular/cdk/keycodes';\n\ninterface MenuNode {\n item: MenuItemComponent | null;\n parent: MenuNode | null;\n children: MenuNode[];\n}\n\n/** `null` key is used for the root node */\ntype MenuMap = Map<MenuItemComponent | null, MenuNode>;\n\n@Injectable()\nexport class MenuService {\n /** Map of menu items to menu nodes */\n menuMap: MenuMap;\n\n /** Currently focused node */\n focusedNode: MenuNode | undefined;\n\n /** Collection of active menu nodes */\n activeNodePath: MenuNode[] = [];\n\n /** Collection of active menu nodes */\n private _isMobileMode = new Subject<boolean>();\n\n /** @hidden */\n private _menuComponent: MenuComponent;\n\n /** @hidden */\n private _destroyKeyboardHandlerListener: () => void;\n\n /** @hidden */\n get _isRtl(): boolean {\n return this._rtlService?.rtl.value;\n }\n\n /** @hidden */\n constructor(private _renderer: Renderer2, @Optional() private readonly _rtlService: RtlService) {}\n\n /** Reference to menu component */\n get menuComponent(): MenuComponent {\n return this._menuComponent;\n }\n\n /** Returns menu mode observable */\n get isMobileMode(): Observable<boolean> {\n return this._isMobileMode.pipe(distinctUntilChanged());\n }\n\n /** Sets menu mode */\n setMenuMode(value: boolean): void {\n this._isMobileMode.next(value);\n }\n\n /** Sets given menu item as focused */\n setFocused(menuItem: MenuItemComponent | null): void {\n this.focusedNode = this.menuMap.get(menuItem);\n this.focusedNode?.item?.focus();\n }\n\n /**\n * Sets state of a given menu item\n * @param isActive - Whether should be set as active or inactive\n * @param menuItem `MenuItemComponent` that should be set as active or inactive\n */\n setActive(isActive: boolean, menuItem: MenuItemComponent | null): void {\n if (!menuItem || (isActive && menuItem.disabled)) {\n return;\n }\n\n if (isActive) {\n this._addToActivePath(menuItem);\n } else {\n this._removeFromActivePath(menuItem);\n }\n\n this._emitActivePath();\n }\n\n /**\n * Close active sibling submenu if any\n * @param menuItem to look for active siblings\n */\n setInactiveSiblingMenuItem(menuItem: MenuItemComponent): void {\n this._removeActiveSibling(menuItem);\n this._emitActivePath();\n }\n\n /** Initializes menu service based on given Menu Component */\n setMenuComponent(menu: MenuComponent): void {\n this._menuComponent = menu;\n this.menuMap = this._buildMenuMap(this._menuComponent);\n }\n\n /** Clears Active Node Path and resets Focused Node */\n resetMenuState(): void {\n this._clearActivePath();\n this.focusedNode = undefined;\n this._emitActivePath();\n }\n\n /** - Updates the structure of the menu\n * - Validates Active Node Path\n * - Validates Focused Node */\n rebuildMenu(): void {\n this.menuMap = this._buildMenuMap(this._menuComponent);\n\n const deadNode = this.activeNodePath.find((node) => !this.menuMap.has(node.item));\n if (deadNode?.item) {\n this.setActive(false, deadNode.item);\n }\n\n const invalidFocusedElement = this.focusedNode && !this.menuMap.get(this.focusedNode.item);\n if (invalidFocusedElement) {\n this.focusedNode =\n this.activeNodePath[this.activeNodePath.length - 1] || this.menuMap.get(null)!.children[0];\n }\n }\n\n /** Adds Menu keyboard support */\n addKeyboardSupport(elementRef: ElementRef): void {\n this.removeKeyboardSupport();\n this._setKeyboardSupport(elementRef);\n }\n\n /** Removes Menu keyboard support */\n removeKeyboardSupport(): void {\n if (this._destroyKeyboardHandlerListener) {\n this._destroyKeyboardHandlerListener();\n }\n }\n\n /** @hidden */\n onDestroy(): void {\n this.removeKeyboardSupport();\n }\n\n /** @hidden Returns siblings of given node */\n private _nodeSiblings(node: MenuNode): MenuNode[] | undefined {\n return node.parent ? node.parent.children : this.menuMap.get(null)?.children;\n }\n\n /** @hidden Adds given element to the Active Node Path and setts as active*/\n private _addToActivePath(menuItem: MenuItemComponent): void {\n const menuNode = this.menuMap.get(menuItem);\n\n this._removeActiveSibling(menuItem);\n\n if (menuNode) {\n this.activeNodePath.push(menuNode);\n menuNode.item?.setSelected(true);\n }\n }\n\n /** @hidden Removes given element and all its successors from the Active Node Path and setts as inactive*/\n private _removeFromActivePath(menuItem: MenuItemComponent | null): void {\n const menuNode = this.menuMap.get(menuItem);\n if (menuNode) {\n const pathIndex = this.activeNodePath.findIndex((i) => i.item === menuNode.item);\n\n if (pathIndex !== -1) {\n this.activeNodePath\n .splice(pathIndex)\n .forEach((removedActiveNode) => removedActiveNode.item?.setSelected(false));\n }\n }\n }\n\n /** @hidden Removes all elements from the Active Node Path and sets them as closed */\n private _clearActivePath(): void {\n if (this.activeNodePath.length) {\n this._removeFromActivePath(this.activeNodePath[0].item);\n }\n }\n\n /** @hidden\n * - Builds Menu Nodes based on Menu Items\n * - Creates Map of the Menu Nodes */\n private _buildMenuMap(menu: MenuComponent): MenuMap {\n function buildNode(menuItem: MenuItemComponent): MenuNode {\n return {\n item: menuItem,\n parent: null,\n children: menuItem.submenu\n ? menuItem.submenu.menuItems.map((subMenuItem) => buildNode(subMenuItem))\n : []\n };\n }\n\n function setParents(node: MenuNode, parent: MenuNode | null): void {\n node.parent = parent;\n node.children.forEach((childNode) => setParents(childNode, node));\n }\n\n function toMap(node: MenuNode, map = new Map() as MenuMap): MenuMap {\n map.set(node.item, node);\n node.children.forEach((childNode) => toMap(childNode, map));\n return map;\n }\n\n const rootItems = menu._menuItems.filter((rootItem) => !rootItem.parentSubmenu);\n\n /** root item */\n const menuTree: MenuNode = {\n item: null,\n parent: null,\n children: rootItems.map((item) => buildNode(item))\n };\n\n setParents(menuTree, null);\n\n return toMap(menuTree);\n }\n\n /** @hidden Removes active sibling of a given menu item from the Active Path */\n private _removeActiveSibling(menuItem: MenuItemComponent): void {\n const menuNode = this.menuMap.get(menuItem);\n const children = menuNode?.parent?.children.map((i) => i.item);\n const activeSibling = this.activeNodePath.find((i) => children?.includes(i.item));\n\n if (activeSibling) {\n const activeParentIndex = this.activeNodePath.indexOf(menuNode?.parent as MenuNode);\n this._removeFromActivePath(activeParentIndex !== -1 ? activeSibling.item : this.activeNodePath[0].item);\n }\n }\n\n /** @hidden Adds keyboard support */\n private _setKeyboardSupport(elementRef: ElementRef): void {\n this._destroyKeyboardHandlerListener = this._renderer.listen(\n elementRef.nativeElement,\n 'keydown',\n (event: KeyboardEvent) => this._handleKey(event)\n );\n }\n\n /** @hidden */\n private _handleKey(event: KeyboardEvent): void {\n const focusRight = (node): void => {\n setTimeout(() => this.setFocused(node.children[0].item));\n };\n let matched = true;\n\n if (!this.focusedNode) {\n return;\n }\n\n if (\n (KeyUtil.isKeyCode(event, RIGHT_ARROW) && !this._isRtl) ||\n (KeyUtil.isKeyCode(event, LEFT_ARROW) && this._isRtl)\n ) {\n if (this.focusedNode?.children.length) {\n this.setActive(true, this.focusedNode.item);\n focusRight(this.focusedNode);\n }\n } else if (\n (KeyUtil.isKeyCode(event, LEFT_ARROW) && !this._isRtl) ||\n (KeyUtil.isKeyCode(event, RIGHT_ARROW) && this._isRtl)\n ) {\n if (this.focusedNode.parent?.item) {\n this.setActive(false, this.focusedNode.parent.item);\n this.setFocused(this.focusedNode.parent.item);\n }\n } else if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n const closest = this._closestEnabled(this.focusedNode, 'down');\n if (closest) {\n this.setFocused(closest.item);\n }\n } else if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n const closest = this._closestEnabled(this.focusedNode, 'up');\n if (closest) {\n this.setFocused(closest.item);\n }\n } else if (KeyUtil.isKeyCode(event, [SPACE, ENTER])) {\n const focusedNode = this.focusedNode;\n this.setActive(true, focusedNode?.item);\n focusedNode.item?.click();\n if (focusedNode.children.length) {\n focusRight(focusedNode);\n }\n } else if (KeyUtil.isKeyCode(event, ESCAPE) && this.menuComponent.closeOnEscapeKey) {\n this.menuComponent.close();\n } else {\n matched = false;\n }\n\n if (matched) {\n event.preventDefault();\n }\n }\n\n /** @hidden Emits an array of active menu items */\n private _emitActivePath(): void {\n this.menuComponent.activePath.emit(this.activeNodePath.map((node) => node.item) as MenuItemComponent[]);\n }\n\n /** @hidden Depending on direction returns closest enabled sibling of given node */\n private _closestEnabled(node: MenuNode, direction: 'up' | 'down'): MenuNode | null {\n const siblings =\n direction === 'up' ? [...(this._nodeSiblings(node) ?? [])].reverse() : this._nodeSiblings(node);\n\n if (siblings) {\n const startIndex = siblings.indexOf(node) + 1;\n\n for (let i = startIndex; i < siblings.length; i++) {\n if (siblings[i].item && !siblings[i].item!.disabled) {\n return siblings[i];\n }\n }\n }\n\n return null;\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { defer, fromEvent, Observable, Subject, Subscription, timer } from 'rxjs';\nimport { filter, switchMap, takeUntil } from 'rxjs/operators';\n\nimport { MenuTitleDirective } from '../directives/menu-title.directive';\nimport { DefaultMenuItem } from '../default-menu-item.class';\nimport { MenuInteractiveDirective } from '../directives/menu-interactive.directive';\nimport { MenuService } from '../services/menu.service';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nlet menuUniqueId = 0;\n\nexport interface BaseSubmenu {\n templateRef: TemplateRef<any>;\n menuItems: MenuItemComponent[];\n menuService: MenuService;\n ariaLabel: Nullable<string>;\n ariaLabelledby: Nullable<string>;\n _menuItemsChange$: Observable<void>;\n _registerItem(item: MenuItemComponent): void;\n _unregisterItem(item: MenuItemComponent): void;\n}\n\nexport const SUBMENU = new InjectionToken<BaseSubmenu>('Submenu component dependency');\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'li[fd-menu-item]',\n exportAs: 'fd-menu-item',\n templateUrl: './menu-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'attr.role': 'menuitem',\n '[class.fd-menu__item]': 'true'\n }\n})\nexport class MenuItemComponent implements DefaultMenuItem, OnInit, OnChanges, AfterContentInit, OnDestroy {\n /** Set the Menu Item as disabled/enabled */\n @Input()\n disabled = false;\n\n /** Menu Item id attribute value */\n @Input()\n itemId = `fd-menu-item-${menuUniqueId++}`;\n\n /** Reference to sub-menu component */\n @Input()\n submenu: BaseSubmenu | undefined;\n\n /** Reference to the parent submenu if nested menus created dynamically */\n @Input()\n parentSubmenu: BaseSubmenu | undefined;\n\n /** Emitted when the menu item is selected. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onSelect: EventEmitter<void> = new EventEmitter<void>();\n\n /** @hidden Reference to the Menu Item title */\n @ContentChild(MenuTitleDirective)\n menuItemTitle: MenuTitleDirective;\n\n /** @hidden Reference to the Menu Item interactive element */\n @ContentChild(MenuInteractiveDirective)\n menuInteractive: MenuInteractiveDirective;\n\n /** @hidden Whether sub-menu is currently visible*/\n submenuVisible = false;\n\n /** @hidden */\n private _subscriptions: Subscription = new Subscription();\n\n /** @hidden */\n private _hoverSubscriptions: Subscription = new Subscription();\n\n /** @hidden */\n constructor(\n public elementRef: ElementRef,\n @Optional() public menuService: MenuService | null,\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(SUBMENU) private _submenu: BaseSubmenu | null\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n if (this.parentSubmenu) {\n this._submenu = this.parentSubmenu;\n this._submenu._registerItem(this);\n }\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._setMenuService();\n this._initialiseItemState();\n this._listenOnMenuLinkClick();\n this._listenOnOuterFocus();\n this._listenOnMenuMode();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['disabled'] && !changes['disabled'].firstChange) {\n this.menuInteractive.setDisabled(this.disabled);\n }\n if (changes['submenu'] && !changes['submenu'].firstChange) {\n this.menuInteractive.setSubmenu(!!this.submenu, this.submenu ? this.itemId : undefined);\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n if (this.parentSubmenu) {\n this._submenu?._unregisterItem(this);\n }\n\n this._subscriptions.unsubscribe();\n this._hoverSubscriptions.unsubscribe();\n }\n\n /** Whether menu item has popup (desktop mode) */\n get hasPopup(): boolean {\n return !!this.submenu && (!this.menuService?.menuComponent || !this.menuService?.menuComponent.mobile);\n }\n\n /** Focuses Menu Item interactive element */\n focus(): void {\n if (this.menuInteractive) {\n this.menuInteractive.elementRef.nativeElement.focus();\n }\n }\n\n /** Clicks Menu Item interactive element */\n click(): void {\n if (this.menuInteractive) {\n this.menuInteractive.elementRef.nativeElement.click();\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /** @hidden Sets menu item as selected/unselected based on isSelected flag */\n setSelected(isSelected: boolean, fromSplit?: boolean): void {\n this.menuInteractive.setSelected(isSelected);\n this.submenuVisible = isSelected && !!this.submenu;\n if (!fromSplit) {\n this.onSelect.emit();\n }\n this._changeDetectorRef.markForCheck();\n }\n\n /** @hidden Creates click listener on menu item interactive element */\n private _listenOnMenuLinkClick(): void {\n this._subscriptions.add(\n fromEvent(this.menuInteractive.elementRef.nativeElement, 'click').subscribe(() =>\n this.menuService?.setActive(true, this)\n )\n );\n }\n\n /** @hidden Creates hover listeners for activating/deactivating menu item */\n private _listenOnMenuLinkHover(): Subscription {\n const hoverSubscriptions: Subscription = new Subscription();\n\n const mouseEnter$: Observable<MouseEvent> = fromEvent(\n this.menuInteractive.elementRef.nativeElement,\n 'mouseenter'\n );\n const mouseLeave$: Observable<MouseEvent> = fromEvent(\n this.menuInteractive.elementRef.nativeElement,\n 'mouseleave'\n );\n\n const timerFactory$ = defer(() =>\n timer(this.menuService ? this.menuService.menuComponent.openOnHoverTime : 0).pipe(takeUntil(mouseLeave$))\n );\n\n // Set active on hover\n hoverSubscriptions.add(\n mouseEnter$\n .pipe(\n filter(() => !!this.menuService),\n switchMap(() => timerFactory$)\n )\n .subscribe(() => {\n if (this.submenu) {\n // Open submenu\n this.menuService!.setActive(true, this);\n }\n if (!this.submenu) {\n // Close sibling submenu if opened\n this.menuService!.setInactiveSiblingMenuItem(this);\n }\n })\n );\n\n return hoverSubscriptions;\n }\n\n /** @hidden Initializes menu link state based on item initial state */\n private _initialiseItemState(): void {\n this.menuInteractive.setSubmenu(!!this.submenu, this.itemId);\n this.menuInteractive.setDisabled(this.disabled);\n }\n\n /** @hidden Checks for Menu Service dependency and passes it if further */\n private _setMenuService(): void {\n this.menuService = this.menuService || this._submenu?.menuService || null;\n if (this.submenu && this.menuService) {\n this.submenu.menuService = this.menuService;\n }\n }\n\n /** @hidden Listen on menu mode and set proper mode listeners */\n private _listenOnMenuMode(): void {\n this.menuService?.isMobileMode.subscribe((isMobile) => {\n this._hoverSubscriptions.unsubscribe();\n if (!isMobile) {\n this._hoverSubscriptions = this._listenOnMenuLinkHover();\n }\n });\n }\n\n /** @hidden Updates focused menu item on outer focus */\n private _listenOnOuterFocus(): void {\n this._subscriptions.add(\n fromEvent(this.menuInteractive.elementRef.nativeElement, 'focus').subscribe(() => {\n if (this.menuService && this.menuService.focusedNode !== this.menuService.menuMap.get(this)) {\n this.menuService.setFocused(this);\n }\n })\n );\n }\n}\n\n@Component({\n selector: 'fd-submenu',\n template: `\n <ng-template>\n <ng-content></ng-content>\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: SUBMENU, useExisting: SubmenuComponent }],\n exportAs: 'fdSubmenu'\n})\nexport class SubmenuComponent implements BaseSubmenu, AfterContentInit {\n /** Aria-label for navigation */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Aria-Labelledby for element describing navigation */\n @Input()\n ariaLabelledby: Nullable<string>;\n\n /** @hidden Reference to template with Submenu items */\n @ViewChild(TemplateRef) templateRef: TemplateRef<any>;\n\n /** @hidden Reference to Submenu MenuItems */\n @ContentChildren(MenuItemComponent)\n _projectedItems: QueryList<MenuItemComponent>;\n\n /** @hidden */\n _registeredItems: MenuItemComponent[] = [];\n\n /** @hidden Reference to MenuService used by MenuItems */\n menuService: MenuService;\n\n /** @hidden */\n _menuItemsChange$ = new Subject<void>();\n\n /** @hidden */\n get menuItems(): MenuItemComponent[] {\n return this._projectedItems.length ? this._projectedItems.toArray() : this._registeredItems;\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._projectedItems.changes.subscribe(() => this._menuItemsChange$.next());\n }\n\n /** @hidden method for manually registering item when it's not visible for @ContentChildren */\n _registerItem(item: MenuItemComponent): void {\n this._registeredItems.push(item);\n this._menuItemsChange$.next();\n }\n\n /** @hidden method for manually unregistering item when it's not visible for @ContentChildren */\n _unregisterItem(item: MenuItemComponent): void {\n this._registeredItems = this._registeredItems.filter((i) => i !== item);\n this._menuItemsChange$.next();\n }\n}\n","<ng-content></ng-content>\n\n<ng-container *ngIf=\"hasPopup && submenu\">\n <ul\n class=\"fd-menu__sublist\"\n role=\"menu\"\n [attr.id]=\"itemId\"\n [attr.aria-hidden]=\"!submenuVisible\"\n [attr.aria-label]=\"submenu.ariaLabel\"\n [attr.aria-labelledby]=\"submenu.ariaLabelledby\"\n >\n <ng-container *ngTemplateOutlet=\"submenu.templateRef\"></ng-container>\n </ul>\n</ng-container>\n","import { AfterViewInit, Directive, ElementRef, HostBinding, Input, OnDestroy } from '@angular/core';\nimport { MenuItemComponent } from '../menu-item/menu-item.component';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-menu-shortcut]'\n})\nexport class MenuShortcutDirective implements AfterViewInit, OnDestroy {\n /** Hide shortcuts in mobile mode */\n @Input()\n hideOnMobile = true;\n\n /** @hidden */\n @HostBinding('class.fd-menu__shortcut')\n readonly fdMenuShortcutClass: boolean = true;\n\n /** @hidden */\n private _subscriptions: Subscription = new Subscription();\n\n /** @hidden */\n constructor(private _menuItem: MenuItemComponent, private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._hideOnMobile();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n private _hideOnMobile(): void {\n this._subscriptions.add(\n this._menuItem.menuService?.isMobileMode.pipe(filter(() => this.hideOnMobile)).subscribe((isMobile) => {\n if (isMobile) {\n this._elementRef.nativeElement.style.display = 'none';\n } else {\n this._elementRef.nativeElement.style.display = null;\n }\n })\n );\n }\n}\n","import { Directive, ElementRef, HostBinding, Input, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nimport { MenuComponent } from '../menu.component';\n\n@Directive({\n selector: '[fdMenuTrigger]'\n})\nexport class MenuTriggerDirective implements OnDestroy {\n /** Set reference to Menu Component */\n @Input('fdMenuTrigger')\n set menu(menu: MenuComponent | undefined) {\n this._unsubscribeFromMenu();\n\n if (menu) {\n menu.trigger = this._elementRef;\n this._subscribeToMenu(menu);\n }\n\n this._setAriaAttributes(menu);\n }\n\n /** @hidden */\n @HostBinding('attr.aria-haspopup')\n ariaHasPopup: Nullable<boolean>;\n\n /** @hidden */\n @HostBinding('attr.aria-controls')\n ariaControls: Nullable<string>;\n\n /** @hidden */\n @HostBinding('attr.aria-expanded')\n ariaExpanded: Nullable<boolean>;\n\n /** @hidden */\n private _menuSubscription: Subscription = new Subscription();\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._unsubscribeFromMenu();\n }\n\n /** @hidden */\n private _subscribeToMenu(menu: MenuComponent): void {\n this._menuSubscription.add(\n menu.isOpenChange.subscribe(() => {\n this._setAriaAttributes(menu);\n })\n );\n }\n\n /** @hidden */\n private _unsubscribeFromMenu(): void {\n this._menuSubscription.unsubscribe();\n this._menuSubscription = new Subscription();\n }\n\n /** @hidden */\n private _setAriaAttributes(menu?: MenuComponent): void {\n this.ariaHasPopup = !!menu;\n this.ariaExpanded = menu?.isOpen;\n this.ariaControls = menu?.isOpen ? menu.id : null;\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'fd-menu-addon',\n template: `\n <fd-icon [glyph]=\"glyph\" *ngIf=\"glyph\" role=\"presentation\"></fd-icon>\n <ng-content></ng-content>\n `\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class MenuAddonDirective {\n /** Whether addon is used before or after text */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('position') set setAddonPosition(position: 'before' | 'after') {\n this.fdAddonBeforeClass = position === 'before';\n this.fdAddonAfterClass = position === 'after';\n }\n\n /** The icon name to display. See the icon page for the list of icons\n * here: https://sap.github.io/fundamental-ngx/icon\n * */\n @Input()\n glyph: string;\n\n /** Whether is used as submenu indicator */\n @Input()\n @HostBinding('class.fd-menu__addon-after--submenu')\n submenuIndicator = false;\n\n /** Sets Aria hidden attribute */\n @Input()\n @HostBinding('attr.aria-hidden')\n ariaHidden = true;\n\n /** @hidden */\n @HostBinding('class.fd-menu__addon-after')\n fdAddonAfterClass = true;\n\n /** @hidden */\n @HostBinding('class.fd-menu__addon-before')\n fdAddonBeforeClass = false;\n}\n","import { Directive, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-menu[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedMenuCompactDirective)\n }\n ]\n})\nexport class DeprecatedMenuCompactDirective extends DeprecatedCompactDirective {\n /** @hidden */\n constructor() {\n super('fd-menu');\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-menu-separator',\n template: '',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuSeparatorComponent {\n /** @hidden */\n @HostBinding('class.fd-menu__separator')\n readonly fdMenuSeparatorClass: boolean = true;\n}\n","import { EventEmitter, InjectionToken } from '@angular/core';\nimport { DialogConfig } from '@fundamental-ngx/core/dialog';\nimport { MenuItemComponent } from './menu-item/menu-item.component';\nimport { MobileMode } from '@fundamental-ngx/core/mobile-mode';\n\nexport const MENU_COMPONENT = new InjectionToken<string[]>('MenuInterface');\n\n/**\n * Menu Interface to have typing and avoid circular dependency between\n * MenuComponent <==> MenuMobileComponent\n */\nexport interface MenuInterface extends MobileMode {\n activePath: EventEmitter<MenuItemComponent[]>;\n dialogConfig: DialogConfig;\n isOpenChange: EventEmitter<boolean>;\n\n close(): void;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { DialogBodyComponent, DialogService } from '@fundamental-ngx/core/dialog';\nimport { Observable, of } from 'rxjs';\nimport { MenuService } from '../services/menu.service';\nimport { MenuItemComponent } from '../menu-item/menu-item.component';\nimport { map, startWith, take, takeUntil } from 'rxjs/operators';\nimport { RtlService } from '@fundamental-ngx/cdk/utils';\nimport { MENU_COMPONENT, MenuInterface } from '../menu.interface';\nimport {\n MOBILE_MODE_CONFIG,\n MobileModeBase,\n MobileModeControl,\n MobileModeConfigToken\n} from '@fundamental-ngx/core/mobile-mode';\n\n@Component({\n selector: 'fd-menu-mobile',\n templateUrl: './menu-mobile.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class MenuMobileComponent extends MobileModeBase<MenuInterface> implements OnInit, OnDestroy {\n /** @hidden */\n @ViewChild('dialogTemplate') dialogTemplate: TemplateRef<any>;\n\n /** Current menu title */\n title: string;\n\n /** Whether current menu level is submenu */\n isSubmenu: boolean;\n\n /** @hidden External content */\n childContent: TemplateRef<any> | undefined = undefined;\n\n /** @hidden Currently rendered menu view */\n view: TemplateRef<any> | undefined;\n\n /** @hidden Navigation icon name based on RTL */\n navigationIcon$: Observable<string>;\n\n /** @hidden */\n @ViewChild(DialogBodyComponent)\n set _watch(_dialogBody: DialogBodyComponent) {\n if (_dialogBody) {\n this._menuService.addKeyboardSupport(_dialogBody.elementRef);\n }\n }\n\n /** @hidden */\n constructor(\n elementRef: ElementRef,\n dialogService: DialogService,\n private _menuService: MenuService,\n private _changeDetectorRef: ChangeDetectorRef,\n private _ngZone: NgZone,\n @Optional() private _rtlService: RtlService,\n @Inject(MENU_COMPONENT) menuComponent: MenuInterface,\n @Optional() @Inject(MOBILE_MODE_CONFIG) mobileModes: MobileModeConfigToken[]\n ) {\n super(elementRef, dialogService, menuComponent, MobileModeControl.MENU, mobileModes);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._listenOnActivePathChange();\n this._listenOnMenuOpenChange();\n this._listenOnTextDirection();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n super.onDestroy();\n }\n\n /** Closes the Dialog and Menu component */\n close(): void {\n this.dialogRef.close();\n this._component.close();\n }\n\n /** Navigate back to parent level of submenu */\n backToParentLevel(): void {\n const menuItem = this._menuService.activeNodePath[this._menuService.activeNodePath.length - 1].item;\n this._menuService.setActive(false, menuItem);\n this._executeOnStable(() => {\n menuItem?.focus();\n });\n }\n\n /** @hidden Opens the Dialog */\n private _openDialog(): void {\n this.dialogRef = this._dialogService.open(this.dialogTemplate, {\n mobile: true,\n disablePaddings: true,\n ...this.dialogConfig,\n escKeyCloseable: false,\n backdropClickCloseable: false,\n container: this._elementRef.nativeElement\n });\n }\n\n /** @hidden Listens on Active Path changes and updates mobile view */\n private _listenOnActivePathChange(): void {\n const initialItemPath: MenuItemComponent[] = this._menuService.activeNodePath\n .map((node) => node.item)\n .filter((v): v is MenuItemComponent => !!v);\n this._component.activePath\n .pipe(takeUntil(this._onDestroy$), startWith(initialItemPath))\n .subscribe((items) => this._setMenuView(items));\n }\n\n /**\n * @hidden\n * Executes a function when the zone is stable.\n */\n private _executeOnStable(fn: () => any): void {\n if (this._ngZone.isStable) {\n fn();\n } else {\n this._ngZone.onStable.pipe(take(1)).subscribe(fn);\n }\n }\n\n /** @hidden Sets menu view, title and isSubmenu flag */\n private _setMenuView(items: MenuItemComponent[]): void {\n const lastItem: MenuItemComponent = items[items.length - 1];\n this.isSubmenu = !!items.length;\n this.title = this._getDialogTitle(lastItem);\n this.view = this._getMenuView(lastItem);\n this._changeDetectorRef.markForCheck();\n this._executeOnStable(() => {\n this._menuService.focusedNode?.item?.focus();\n });\n }\n\n /** @hidden Opens/closes the Dialog based on Menu isOpenChange events */\n private _listenOnMenuOpenChange(): void {\n this._component.isOpenChange\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((isOpen) => (isOpen ? this._openDialog() : this.dialogRef.close()));\n }\n\n /** @hidden Sets navigation arrow depending on text direction */\n private _listenOnTextDirection(): void {\n this.navigationIcon$ = this._rtlService\n ? this._rtlService.rtl.pipe(map((isRtl) => (isRtl ? 'navigation-right-arrow' : 'navigation-left-arrow')))\n : of('navigation-left-arrow');\n }\n\n /** @hidden Returns dialog title */\n private _getDialogTitle(menuItem: MenuItemComponent): string {\n if (this.isSubmenu) {\n return menuItem.menuItemTitle ? menuItem.menuItemTitle.title : '';\n }\n\n return this.mobileConfig.title || '';\n }\n\n /** @hidden Returns dialog content view */\n private _getMenuView(menuItem: MenuItemComponent): TemplateRef<any> | undefined {\n if (this.isSubmenu) {\n return menuItem.submenu ? menuItem.submenu.templateRef : this.view;\n }\n return this.childContent;\n }\n}\n","<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element *ngIf=\"isSubmenu\">\n <button\n fd-button\n fdType=\"transparent\"\n id=\"menu-mobile-navigate-back\"\n fdCozy\n [attr.aria-label]=\"'Go to previous menu level: ' + title\"\n [glyph]=\"navigationIcon$ | async\"\n (click)=\"backToParentLevel()\"\n ></button>\n </fd-bar-element>\n <fd-bar-element>\n <h1 fd-title>{{ title }}</h1>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <button\n *ngIf=\"this.mobileConfig.hasCloseButton\"\n fd-dialog-close-button\n [mobile]=\"true\"\n (click)=\"close()\"\n ></button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngTemplateOutlet=\"(isSubmenu ? subMenuTemplate : view) || null\"> </ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer *ngIf=\"mobileConfig.approveButtonText || mobileConfig.cancelButtonText\">\n <fd-button-bar\n *ngIf=\"mobileConfig.approveButtonText\"\n fdType=\"emphasized\"\n [label]=\"mobileConfig.approveButtonText\"\n (click)=\"close()\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"mobileConfig.cancelButtonText\"\n fdkInitialFocus\n [label]=\"mobileConfig.cancelButtonText\"\n (click)=\"close()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n\n<ng-template #subMenuTemplate>\n <nav class=\"fd-menu fd-menu--mobile\">\n <ul class=\"fd-menu__sublist\">\n <ng-container *ngTemplateOutlet=\"view || null\"></ng-container>\n </ul>\n </nav>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MenuMobileComponent } from './menu-mobile.component';\nimport { DialogModule } from '@fundamental-ngx/core/dialog';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\n\n@NgModule({\n declarations: [MenuMobileComponent],\n imports: [CommonModule, DialogModule, ButtonModule],\n exports: [MenuMobileComponent]\n})\nexport class MenuMobileModule {}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { DynamicComponentService } from '@fundamental-ngx/cdk/utils';\nimport { DialogConfig } from '@fundamental-ngx/core/dialog';\nimport { MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';\nimport { BasePopoverClass, PopoverService } from '@fundamental-ngx/core/popover';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nimport { MenuMobileComponent } from './menu-mobile/menu-mobile.component';\nimport { MenuMobileModule } from './menu-mobile/menu-mobile.module';\nimport { MenuService } from './services/menu.service';\nimport { MENU_COMPONENT, MenuInterface } from './menu.interface';\nimport { MenuItemComponent } from './menu-item/menu-item.component';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nlet menuUniqueId = 0;\n\n/**\n * The component that represents a menu.\n */\n@Component({\n selector: 'fd-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['menu.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [MenuService, PopoverService, contentDensityObserverProviders()]\n})\nexport class MenuComponent\n extends BasePopoverClass\n implements MenuInterface, AfterContentInit, AfterViewInit, OnDestroy, OnInit\n{\n /** Set menu in mobile mode */\n @Input()\n set mobile(value: BooleanInput) {\n this._mobile = coerceBooleanProperty(value);\n this._menuService.setMenuMode(this.mobile);\n }\n get mobile(): boolean {\n return this._mobile;\n }\n\n /** Whether the popover is disabled. */\n @Input()\n disabled = false;\n\n /** Whether the popover should be focusTrapped. */\n @Input()\n focusTrapped = true;\n\n /**\n * Whether the popover should automatically move focus into the trapped region upon\n * initialization and return focus to the previous activeElement upon destruction.\n */\n @Input()\n focusAutoCapture = true;\n\n /** Should fd-scrollbar have tabindex*/\n @Input()\n tabbableScrollbar = false;\n\n /** Open submenu on hover after given milliseconds */\n @Input()\n openOnHoverTime = 0;\n\n /** Display menu without integrated popover */\n @Input()\n mobileConfig: MobileModeConfig = { cancelButtonText: 'Cancel' };\n\n /** Aria-label for navigation */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Aria-Labelledby for element describing navigation */\n @Input()\n ariaLabelledby: Nullable<string>;\n\n /** Id of the control. */\n @Input()\n id = `fd-menu-${menuUniqueId++}`;\n\n /** Emits array of active menu items */\n @Output()\n readonly activePath = new EventEmitter<MenuItemComponent[]>();\n\n /** @hidden Reference to the menu root template */\n @ViewChild('menuRootTemplate')\n _menuRootTemplate: TemplateRef<any>;\n\n /** @hidden Reference to all menu Items */\n @ContentChildren(MenuItemComponent)\n _menuItems: QueryList<MenuItemComponent>;\n\n /** @hidden Whether use a menu in mobile mode */\n private _mobile = false;\n\n /** @hidden Reference to external menu trigger */\n private _externalTrigger: ElementRef;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _mobileModeComponentRef: ComponentRef<MenuMobileComponent>;\n\n /** @hidden */\n private _clickEventListener: null | (() => void);\n\n /** @hidden */\n private get _popoverConfig(): BasePopoverClass {\n return {\n ...this,\n additionalBodyClass: (this.additionalBodyClass ?? '') + ' fd-popover--menu'\n };\n }\n\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef,\n @Optional() public readonly dialogConfig: DialogConfig,\n private readonly _rendered: Renderer2,\n private readonly _menuService: MenuService,\n private readonly _changeDetectorRef: ChangeDetectorRef,\n private readonly _popoverService: PopoverService,\n private readonly _injector: Injector,\n private readonly _viewContainerRef: ViewContainerRef,\n @Optional() private readonly _dynamicComponentService: DynamicComponentService,\n readonly _contentDensityObserver: ContentDensityObserver\n ) {\n super();\n }\n\n /** @hidden */\n ngOnInit(): void {\n /** keep isOpen up to date */\n this.isOpenChange.subscribe((isOpen) => {\n this.isOpen = isOpen;\n\n // when popover got closed by its own mechanism (e.x. click outside)\n // we need to clean up a menu as well\n if (!isOpen) {\n this._cleanUpMenuAfterClose();\n }\n\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._menuService.setMenuComponent(this);\n this._listenOnMenuItemsChange();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._menuService.isMobileMode.subscribe((isMobile) => {\n this._setupView();\n\n // Since it is mobile, it's needed to disable popoverService\n if (isMobile) {\n this._popoverService.deactivate();\n }\n });\n\n this._menuService.setMenuMode(this.mobile);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._destroyMobileComponent();\n this._destroyEventListeners();\n this._menuService.onDestroy();\n this._subscriptions.unsubscribe();\n this._popoverService.onDestroy();\n }\n\n /** @hidden */\n set trigger(trigger: ElementRef) {\n this._externalTrigger = trigger;\n this._popoverService.initialise(this._externalTrigger);\n this._destroyEventListeners();\n this._listenOnTriggerRefClicks();\n }\n get trigger(): ElementRef {\n return this._externalTrigger;\n }\n\n /** Opens the menu */\n open(): void {\n if (this.mobile) {\n this.isOpen = true;\n this.isOpenChange.emit(this.isOpen);\n } else {\n this._popoverService.open();\n }\n\n this._changeDetectorRef.markForCheck();\n }\n\n /** Closes the menu */\n close(): void {\n if (this.mobile) {\n this.isOpen = false;\n this.isOpenChange.emit(this.isOpen);\n } else {\n this._popoverService.close();\n }\n\n this._cleanUpMenuAfterClose();\n this._focusTrigger();\n this._changeDetectorRef.markForCheck();\n }\n\n /** Toggles menu open/close state */\n toggle(): void {\n this.isOpen ? this.close() : this.open();\n }\n\n /** Method called to refresh position of opened popover */\n refreshPosition(): void {\n this._popoverService.refreshPosition();\n }\n\n /** @hidden */\n private _cleanUpMenuAfterClose(): void {\n this._menuService.resetMenuState();\n }\n\n /** @hidden Select and instantiate menu view mode */\n private _setupView(): void {\n if (this.mobile) {\n this._setupMobileMode();\n } else {\n this._setupPopoverService();\n }\n\n this._changeDetectorRef.detectChanges();\n }\n\n /** @hidden */\n private _setupPopoverService(): void {\n this._subscriptions.add(\n this._popoverService._onLoad.subscribe((elementRef) => this._menuService.addKeyboardSupport(elementRef))\n );\n\n this._popoverService.templateContent = this._menuRootTemplate;\n this._popoverService.initialise(this._externalTrigger, this._popoverConfig);\n }\n\n /** @hidden Open Menu in mobile mode */\n private async _setupMobileMode(): Promise<void> {\n const injector = Injector.create({\n providers: [{ provide: MENU_COMPONENT, useValue: this }],\n parent: this._injector\n });\n\n this._mobileModeComponentRef = await this._dynamicComponentService.createDynamicModule(\n this._menuRootTemplate,\n MenuMobileModule,\n MenuMobileComponent,\n this._viewContainerRef,\n injector\n );\n\n this._listenOnTriggerRefClicks();\n }\n\n /** @hidden Listen on menu items change and rebuild menu */\n private _listenOnMenuItemsChange(): void {\n this._subscriptions.add(this._menuItems.changes.subscribe(() => this._menuService.rebuildMenu()));\n\n // Whether menu have submenu or not.\n let isSubmenu = false;\n this._menuItems.forEach((menuItem) => {\n if (menuItem.submenu?.menuItems) {\n isSubmenu = true;\n this._subscriptions.add(\n menuItem.submenu._menuItemsChange$.subscribe(() => this._menuService.rebuildMenu())\n );\n }\n });\n this.disableScrollbar = isSubmenu;\n }\n\n /**\n * @hidden\n * This is going to be removed in feature, on dialog and dynamic service component refactor\n */\n private _listenOnTriggerRefClicks(): void {\n this._destroyEventListeners();\n\n if (this.trigger && this.mobile) {\n this._clickEventListener = this._rendered.listen(this.trigger.nativeElement, 'click', () => this.toggle());\n }\n }\n\n /**\n * @hidden\n * This is going to be removed in feature, on dialog and dynamic service component refactor\n */\n private _destroyEventListeners(): void {\n if (this._clickEventListener) {\n this._clickEventListener();\n this._clickEventListener = null;\n }\n }\n\n /** @hidden */\n private _destroyMobileComponent(): void {\n if (this._mobileModeComponentRef) {\n this._mobileModeComponentRef.destroy();\n }\n }\n\n /** @hidden */\n private _focusTrigger(): void {\n if (this.focusTrapped && this.trigger) {\n this.trigger.nativeElement.focus();\n }\n }\n}\n","<ng-container #viewContainer></ng-container>\n\n<ng-template #menuRootTemplate>\n <div class=\"fd-popover__wrapper--visible\">\n <nav\n class=\"fd-menu\"\n [id]=\"id\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-label]=\"ariaLabel\"\n role=\"menu\"\n [class.fd-menu--mobile]=\"mobile\"\n >\n <ul role=\"none\" class=\"fd-menu__list fd-menu__list--no-shadow\">\n <ng-content></ng-content>\n </ul>\n </nav>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MenuComponent } from './menu.component';\nimport { MenuTitleDirective } from './directives/menu-title.directive';\nimport { MenuInteractiveDirective } from './directives/menu-interactive.directive';\nimport { MenuSeparatorComponent } from './menu-separator/menu-separator.component';\nimport { MenuAddonDirective } from './directives/menu-addon.directive';\nimport { MenuItemComponent, SubmenuComponent } from './menu-item/menu-item.component';\nimport { MenuShortcutDirective } from './directives/menu-shortcut.directive';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { MenuTriggerDirective } from './directives/menu-trigger.directive';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { DynamicComponentService, InitialFocusModule } from '@fundamental-ngx/cdk/utils';\nimport { DeprecatedMenuCompactDirective } from './directives/deprecated-menu-compact.directive';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n imports: [CommonModule, PopoverModule, IconModule, InitialFocusModule, ContentDensityModule],\n declarations: [\n MenuComponent,\n MenuItemComponent,\n MenuAddonDirective,\n MenuSeparatorComponent,\n MenuShortcutDirective,\n MenuInteractiveDirective,\n MenuTitleDirective,\n SubmenuComponent,\n MenuTriggerDirective,\n DeprecatedMenuCompactDirective\n ],\n exports: [\n MenuComponent,\n MenuItemComponent,\n SubmenuComponent,\n MenuSeparatorComponent,\n MenuShortcutDirective,\n MenuInteractiveDirective,\n MenuTitleDirective,\n MenuAddonDirective,\n MenuTriggerDirective,\n DeprecatedMenuCompactDirective,\n ContentDensityModule\n ],\n providers: [DynamicComponentService]\n})\nexport class MenuModule {}\n","export abstract class DefaultMenuItem {\n abstract focus(): void;\n abstract click(): void;\n}\n","import { Subject } from 'rxjs';\nimport { Injectable, Output } from '@angular/core';\nimport { DefaultMenuItem } from './default-menu-item.class';\nimport { ListItemComponent } from '@fundamental-ngx/core/list';\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\nimport { DOWN_ARROW, ENTER, SPACE, UP_ARROW } from '@angular/cdk/keycodes';\n\n@Injectable()\nexport class MenuKeyboardService {\n /** Event emitted when an item link is clicked.*/\n @Output()\n public readonly itemClicked: Subject<number> = new Subject<number>();\n\n /** Whether user wants to remove keyboard handling */\n disableKeydownHandling = false;\n\n /** Function that is supposed to be called, when focus escape before list */\n focusEscapeBeforeList: () => void;\n\n /** Function that is supposed to be called, when focus escape after list */\n focusEscapeAfterList: () => void;\n\n /** Function that should be called every time, keydown event is used on some menu item,\n * it provides whole functionality for handling\n * ArrowDown - focus, ArrowUp - focus, Space bar - simulate click, Enter key - simulate click.\n * @param event KeyboardEvent\n * @param index index of items starts from 0\n * @param menuItems array of menu item directives\n * */\n keyDownHandler(event: KeyboardEvent, index: number, menuItems: DefaultMenuItem[] | ListItemComponent[]): void {\n if (this.disableKeydownHandling) {\n return;\n }\n\n if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n if (menuItems.length > index + 1) {\n menuItems[index + 1].focus();\n } else {\n if (this.focusEscapeAfterList) {\n this.focusEscapeAfterList();\n } else {\n menuItems[0].focus();\n }\n }\n event.preventDefault();\n } else if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n if (index > 0) {\n menuItems[index - 1].focus();\n } else {\n if (this.focusEscapeBeforeList) {\n this.focusEscapeBeforeList();\n } else {\n menuItems[menuItems.length - 1].focus();\n }\n }\n event.preventDefault();\n } else if (KeyUtil.isKeyCode(event, [SPACE, ENTER])) {\n if (menuItems[index]) {\n menuItems[index].click();\n event.preventDefault();\n }\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","menuUniqueId","i2","i1.MenuItemComponent","i2.MenuService","i6","i3","i4","i5"],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-menu.mjs","sources":["../../../../libs/core/src/lib/menu/directives/menu-title.directive.ts","../../../../libs/core/src/lib/menu/directives/menu-interactive.directive.ts","../../../../libs/core/src/lib/menu/services/menu.service.ts","../../../../libs/core/src/lib/menu/menu-item/menu-item.component.ts","../../../../libs/core/src/lib/menu/menu-item/menu-item.component.html","../../../../libs/core/src/lib/menu/directives/menu-shortcut.directive.ts","../../../../libs/core/src/lib/menu/directives/menu-trigger.directive.ts","../../../../libs/core/src/lib/menu/directives/menu-addon.directive.ts","../../../../libs/core/src/lib/menu/menu-separator/menu-separator.component.ts","../../../../libs/core/src/lib/menu/menu.interface.ts","../../../../libs/core/src/lib/menu/menu-mobile/menu-mobile.component.ts","../../../../libs/core/src/lib/menu/menu-mobile/menu-mobile.component.html","../../../../libs/core/src/lib/menu/menu-mobile/menu-mobile.module.ts","../../../../libs/core/src/lib/menu/menu.component.ts","../../../../libs/core/src/lib/menu/menu.component.html","../../../../libs/core/src/lib/menu/menu.module.ts","../../../../libs/core/src/lib/menu/default-menu-item.class.ts","../../../../libs/core/src/lib/menu/menu-keyboard.service.ts","../../../../libs/core/src/lib/menu/fundamental-ngx-core-menu.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding } from '@angular/core';\n\n/**\n * The directive that represents the menu title.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-menu-title]'\n})\nexport class MenuTitleDirective {\n /** @hidden */\n @HostBinding('class.fd-menu__title')\n fdMenuTitleClass = true;\n\n /** Returns element title text */\n @HostBinding('attr.title')\n get title(): string {\n return this._elementRef.nativeElement.textContent;\n }\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n}\n","import { Directive, ElementRef, HostBinding } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-menu-interactive]',\n host: {\n role: 'menuitem'\n }\n})\nexport class MenuInteractiveDirective {\n /** @hidden */\n @HostBinding('attr.tabindex')\n tabindex = 0;\n\n /** @hidden */\n @HostBinding('class.is-disabled')\n disabled = false;\n\n /** @hidden */\n @HostBinding('attr.aria-controls')\n ariaControls: Nullable<string>;\n\n /** @hidden */\n @HostBinding('class.is-selected')\n @HostBinding('attr.aria-expanded')\n selected = false;\n\n /** @hidden */\n @HostBinding('attr.aria-haspopup')\n ariaHaspopup = false;\n\n /** @hidden */\n @HostBinding('class.fd-menu__link')\n readonly fdMenuLinkClass: boolean = true;\n\n /** @hidden */\n _fromSplitButton = false;\n\n /** @hidden */\n constructor(public elementRef: ElementRef) {}\n\n /** @hidden */\n setSelected(isSelected: boolean): void {\n this.selected = isSelected && (this.ariaHaspopup || this._fromSplitButton);\n }\n\n /** @hidden */\n setDisabled(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.tabindex = isDisabled ? -1 : 0;\n }\n\n /** @hidden */\n setSubmenu(hasSubmenu: boolean, itemId?: string): void {\n this.ariaHaspopup = hasSubmenu;\n this.ariaControls = hasSubmenu ? itemId || this.ariaControls : null;\n }\n}\n","import { ElementRef, Injectable, Optional, Renderer2 } from '@angular/core';\nimport { MenuItemComponent } from '../menu-item/menu-item.component';\nimport { MenuComponent } from '../menu.component';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { DOWN_ARROW, ENTER, ESCAPE, LEFT_ARROW, RIGHT_ARROW, SPACE, UP_ARROW } from '@angular/cdk/keycodes';\n\ninterface MenuNode {\n item: MenuItemComponent | null;\n parent: MenuNode | null;\n children: MenuNode[];\n}\n\n/** `null` key is used for the root node */\ntype MenuMap = Map<MenuItemComponent | null, MenuNode>;\n\n@Injectable()\nexport class MenuService {\n /** Map of menu items to menu nodes */\n menuMap: MenuMap;\n\n /** Currently focused node */\n focusedNode: MenuNode | undefined;\n\n /** Collection of active menu nodes */\n activeNodePath: MenuNode[] = [];\n\n /** Collection of active menu nodes */\n private _isMobileMode = new Subject<boolean>();\n\n /** @hidden */\n private _menuComponent: MenuComponent;\n\n /** @hidden */\n private _destroyKeyboardHandlerListener: () => void;\n\n /** @hidden */\n get _isRtl(): boolean {\n return this._rtlService?.rtl.value;\n }\n\n /** @hidden */\n constructor(private _renderer: Renderer2, @Optional() private readonly _rtlService: RtlService) {}\n\n /** Reference to menu component */\n get menuComponent(): MenuComponent {\n return this._menuComponent;\n }\n\n /** Returns menu mode observable */\n get isMobileMode(): Observable<boolean> {\n return this._isMobileMode.pipe(distinctUntilChanged());\n }\n\n /** Sets menu mode */\n setMenuMode(value: boolean): void {\n this._isMobileMode.next(value);\n }\n\n /** Sets given menu item as focused */\n setFocused(menuItem: MenuItemComponent | null): void {\n this.focusedNode = this.menuMap.get(menuItem);\n this.focusedNode?.item?.focus();\n }\n\n /**\n * Sets state of a given menu item\n * @param isActive - Whether should be set as active or inactive\n * @param menuItem `MenuItemComponent` that should be set as active or inactive\n */\n setActive(isActive: boolean, menuItem: MenuItemComponent | null): void {\n if (!menuItem || (isActive && menuItem.disabled)) {\n return;\n }\n\n if (isActive) {\n this._addToActivePath(menuItem);\n } else {\n this._removeFromActivePath(menuItem);\n }\n\n this._emitActivePath();\n }\n\n /**\n * Close active sibling submenu if any\n * @param menuItem to look for active siblings\n */\n setInactiveSiblingMenuItem(menuItem: MenuItemComponent): void {\n this._removeActiveSibling(menuItem);\n this._emitActivePath();\n }\n\n /** Initializes menu service based on given Menu Component */\n setMenuComponent(menu: MenuComponent): void {\n this._menuComponent = menu;\n this.menuMap = this._buildMenuMap(this._menuComponent);\n }\n\n /** Clears Active Node Path and resets Focused Node */\n resetMenuState(): void {\n this._clearActivePath();\n this.focusedNode = undefined;\n this._emitActivePath();\n }\n\n /** - Updates the structure of the menu\n * - Validates Active Node Path\n * - Validates Focused Node */\n rebuildMenu(): void {\n this.menuMap = this._buildMenuMap(this._menuComponent);\n\n const deadNode = this.activeNodePath.find((node) => !this.menuMap.has(node.item));\n if (deadNode?.item) {\n this.setActive(false, deadNode.item);\n }\n\n const invalidFocusedElement = this.focusedNode && !this.menuMap.get(this.focusedNode.item);\n if (invalidFocusedElement) {\n this.focusedNode =\n this.activeNodePath[this.activeNodePath.length - 1] || this.menuMap.get(null)!.children[0];\n }\n }\n\n /** Adds Menu keyboard support */\n addKeyboardSupport(elementRef: ElementRef): void {\n this.removeKeyboardSupport();\n this._setKeyboardSupport(elementRef);\n }\n\n /** Removes Menu keyboard support */\n removeKeyboardSupport(): void {\n if (this._destroyKeyboardHandlerListener) {\n this._destroyKeyboardHandlerListener();\n }\n }\n\n /** @hidden */\n onDestroy(): void {\n this.removeKeyboardSupport();\n }\n\n /** @hidden Returns siblings of given node */\n private _nodeSiblings(node: MenuNode): MenuNode[] | undefined {\n return node.parent ? node.parent.children : this.menuMap.get(null)?.children;\n }\n\n /** @hidden Adds given element to the Active Node Path and setts as active*/\n private _addToActivePath(menuItem: MenuItemComponent): void {\n const menuNode = this.menuMap.get(menuItem);\n\n this._removeActiveSibling(menuItem);\n\n if (menuNode) {\n this.activeNodePath.push(menuNode);\n menuNode.item?.setSelected(true);\n }\n }\n\n /** @hidden Removes given element and all its successors from the Active Node Path and setts as inactive*/\n private _removeFromActivePath(menuItem: MenuItemComponent | null): void {\n const menuNode = this.menuMap.get(menuItem);\n if (menuNode) {\n const pathIndex = this.activeNodePath.findIndex((i) => i.item === menuNode.item);\n\n if (pathIndex !== -1) {\n this.activeNodePath\n .splice(pathIndex)\n .forEach((removedActiveNode) => removedActiveNode.item?.setSelected(false));\n }\n }\n }\n\n /** @hidden Removes all elements from the Active Node Path and sets them as closed */\n private _clearActivePath(): void {\n if (this.activeNodePath.length) {\n this._removeFromActivePath(this.activeNodePath[0].item);\n }\n }\n\n /** @hidden\n * - Builds Menu Nodes based on Menu Items\n * - Creates Map of the Menu Nodes */\n private _buildMenuMap(menu: MenuComponent): MenuMap {\n function buildNode(menuItem: MenuItemComponent): MenuNode {\n return {\n item: menuItem,\n parent: null,\n children: menuItem.submenu\n ? menuItem.submenu.menuItems.map((subMenuItem) => buildNode(subMenuItem))\n : []\n };\n }\n\n function setParents(node: MenuNode, parent: MenuNode | null): void {\n node.parent = parent;\n node.children.forEach((childNode) => setParents(childNode, node));\n }\n\n function toMap(node: MenuNode, map = new Map() as MenuMap): MenuMap {\n map.set(node.item, node);\n node.children.forEach((childNode) => toMap(childNode, map));\n return map;\n }\n\n const rootItems = menu._menuItems.filter((rootItem) => !rootItem.parentSubmenu);\n\n /** root item */\n const menuTree: MenuNode = {\n item: null,\n parent: null,\n children: rootItems.map((item) => buildNode(item))\n };\n\n setParents(menuTree, null);\n\n return toMap(menuTree);\n }\n\n /** @hidden Removes active sibling of a given menu item from the Active Path */\n private _removeActiveSibling(menuItem: MenuItemComponent): void {\n const menuNode = this.menuMap.get(menuItem);\n const children = menuNode?.parent?.children.map((i) => i.item);\n const activeSibling = this.activeNodePath.find((i) => children?.includes(i.item));\n\n if (activeSibling) {\n const activeParentIndex = this.activeNodePath.indexOf(menuNode?.parent as MenuNode);\n this._removeFromActivePath(activeParentIndex !== -1 ? activeSibling.item : this.activeNodePath[0].item);\n }\n }\n\n /** @hidden Adds keyboard support */\n private _setKeyboardSupport(elementRef: ElementRef): void {\n this._destroyKeyboardHandlerListener = this._renderer.listen(\n elementRef.nativeElement,\n 'keydown',\n (event: KeyboardEvent) => this._handleKey(event)\n );\n }\n\n /** @hidden */\n private _handleKey(event: KeyboardEvent): void {\n const focusRight = (node): void => {\n setTimeout(() => this.setFocused(node.children[0].item));\n };\n let matched = true;\n\n if (!this.focusedNode) {\n return;\n }\n\n if (\n (KeyUtil.isKeyCode(event, RIGHT_ARROW) && !this._isRtl) ||\n (KeyUtil.isKeyCode(event, LEFT_ARROW) && this._isRtl)\n ) {\n if (this.focusedNode?.children.length) {\n this.setActive(true, this.focusedNode.item);\n focusRight(this.focusedNode);\n }\n } else if (\n (KeyUtil.isKeyCode(event, LEFT_ARROW) && !this._isRtl) ||\n (KeyUtil.isKeyCode(event, RIGHT_ARROW) && this._isRtl)\n ) {\n if (this.focusedNode.parent?.item) {\n this.setActive(false, this.focusedNode.parent.item);\n this.setFocused(this.focusedNode.parent.item);\n }\n } else if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n const closest = this._closestEnabled(this.focusedNode, 'down');\n if (closest) {\n this.setFocused(closest.item);\n }\n } else if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n const closest = this._closestEnabled(this.focusedNode, 'up');\n if (closest) {\n this.setFocused(closest.item);\n }\n } else if (KeyUtil.isKeyCode(event, [SPACE, ENTER])) {\n const focusedNode = this.focusedNode;\n this.setActive(true, focusedNode?.item);\n focusedNode.item?.click();\n if (focusedNode.children.length) {\n focusRight(focusedNode);\n }\n } else if (KeyUtil.isKeyCode(event, ESCAPE) && this.menuComponent.closeOnEscapeKey) {\n this.menuComponent.close();\n } else {\n matched = false;\n }\n\n if (matched) {\n event.preventDefault();\n }\n }\n\n /** @hidden Emits an array of active menu items */\n private _emitActivePath(): void {\n this.menuComponent.activePath.emit(this.activeNodePath.map((node) => node.item) as MenuItemComponent[]);\n }\n\n /** @hidden Depending on direction returns closest enabled sibling of given node */\n private _closestEnabled(node: MenuNode, direction: 'up' | 'down'): MenuNode | null {\n const siblings =\n direction === 'up' ? [...(this._nodeSiblings(node) ?? [])].reverse() : this._nodeSiblings(node);\n\n if (siblings) {\n const startIndex = siblings.indexOf(node) + 1;\n\n for (let i = startIndex; i < siblings.length; i++) {\n if (siblings[i].item && !siblings[i].item!.disabled) {\n return siblings[i];\n }\n }\n }\n\n return null;\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { defer, fromEvent, Observable, Subject, Subscription, timer } from 'rxjs';\nimport { filter, switchMap, takeUntil } from 'rxjs/operators';\n\nimport { MenuTitleDirective } from '../directives/menu-title.directive';\nimport { DefaultMenuItem } from '../default-menu-item.class';\nimport { MenuInteractiveDirective } from '../directives/menu-interactive.directive';\nimport { MenuService } from '../services/menu.service';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nlet menuUniqueId = 0;\n\nexport interface BaseSubmenu {\n templateRef: TemplateRef<any>;\n menuItems: MenuItemComponent[];\n menuService: MenuService;\n ariaLabel: Nullable<string>;\n ariaLabelledby: Nullable<string>;\n _menuItemsChange$: Observable<void>;\n _registerItem(item: MenuItemComponent): void;\n _unregisterItem(item: MenuItemComponent): void;\n}\n\nexport const SUBMENU = new InjectionToken<BaseSubmenu>('Submenu component dependency');\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'li[fd-menu-item]',\n exportAs: 'fd-menu-item',\n templateUrl: './menu-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'attr.role': 'menuitem',\n '[class.fd-menu__item]': 'true'\n }\n})\nexport class MenuItemComponent implements DefaultMenuItem, OnInit, OnChanges, AfterContentInit, OnDestroy {\n /** Set the Menu Item as disabled/enabled */\n @Input()\n disabled = false;\n\n /** Menu Item id attribute value */\n @Input()\n itemId = `fd-menu-item-${menuUniqueId++}`;\n\n /** Reference to sub-menu component */\n @Input()\n submenu: BaseSubmenu | undefined;\n\n /** Reference to the parent submenu if nested menus created dynamically */\n @Input()\n parentSubmenu: BaseSubmenu | undefined;\n\n /** Emitted when the menu item is selected. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onSelect: EventEmitter<void> = new EventEmitter<void>();\n\n /** @hidden Reference to the Menu Item title */\n @ContentChild(MenuTitleDirective)\n menuItemTitle: MenuTitleDirective;\n\n /** @hidden Reference to the Menu Item interactive element */\n @ContentChild(MenuInteractiveDirective)\n menuInteractive: MenuInteractiveDirective;\n\n /** @hidden Whether sub-menu is currently visible*/\n submenuVisible = false;\n\n /** @hidden */\n private _subscriptions: Subscription = new Subscription();\n\n /** @hidden */\n private _hoverSubscriptions: Subscription = new Subscription();\n\n /** @hidden */\n constructor(\n public elementRef: ElementRef,\n @Optional() public menuService: MenuService | null,\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(SUBMENU) private _submenu: BaseSubmenu | null\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n if (this.parentSubmenu) {\n this._submenu = this.parentSubmenu;\n this._submenu._registerItem(this);\n }\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._setMenuService();\n this._initialiseItemState();\n this._listenOnMenuLinkClick();\n this._listenOnOuterFocus();\n this._listenOnMenuMode();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['disabled'] && !changes['disabled'].firstChange) {\n this.menuInteractive.setDisabled(this.disabled);\n }\n if (changes['submenu'] && !changes['submenu'].firstChange) {\n this.menuInteractive.setSubmenu(!!this.submenu, this.submenu ? this.itemId : undefined);\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n if (this.parentSubmenu) {\n this._submenu?._unregisterItem(this);\n }\n\n this._subscriptions.unsubscribe();\n this._hoverSubscriptions.unsubscribe();\n }\n\n /** Whether menu item has popup (desktop mode) */\n get hasPopup(): boolean {\n return !!this.submenu && (!this.menuService?.menuComponent || !this.menuService?.menuComponent.mobile);\n }\n\n /** Focuses Menu Item interactive element */\n focus(): void {\n if (this.menuInteractive) {\n this.menuInteractive.elementRef.nativeElement.focus();\n }\n }\n\n /** Clicks Menu Item interactive element */\n click(): void {\n if (this.menuInteractive) {\n this.menuInteractive.elementRef.nativeElement.click();\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /** @hidden Sets menu item as selected/unselected based on isSelected flag */\n setSelected(isSelected: boolean, fromSplit?: boolean): void {\n this.menuInteractive.setSelected(isSelected);\n this.submenuVisible = isSelected && !!this.submenu;\n if (!fromSplit) {\n this.onSelect.emit();\n }\n this._changeDetectorRef.markForCheck();\n }\n\n /** @hidden Creates click listener on menu item interactive element */\n private _listenOnMenuLinkClick(): void {\n this._subscriptions.add(\n fromEvent(this.menuInteractive.elementRef.nativeElement, 'click').subscribe(() =>\n this.menuService?.setActive(true, this)\n )\n );\n }\n\n /** @hidden Creates hover listeners for activating/deactivating menu item */\n private _listenOnMenuLinkHover(): Subscription {\n const hoverSubscriptions: Subscription = new Subscription();\n\n const mouseEnter$: Observable<MouseEvent> = fromEvent(\n this.menuInteractive.elementRef.nativeElement,\n 'mouseenter'\n );\n const mouseLeave$: Observable<MouseEvent> = fromEvent(\n this.menuInteractive.elementRef.nativeElement,\n 'mouseleave'\n );\n\n const timerFactory$ = defer(() =>\n timer(this.menuService ? this.menuService.menuComponent.openOnHoverTime : 0).pipe(takeUntil(mouseLeave$))\n );\n\n // Set active on hover\n hoverSubscriptions.add(\n mouseEnter$\n .pipe(\n filter(() => !!this.menuService),\n switchMap(() => timerFactory$)\n )\n .subscribe(() => {\n if (this.submenu) {\n // Open submenu\n this.menuService!.setActive(true, this);\n }\n if (!this.submenu) {\n // Close sibling submenu if opened\n this.menuService!.setInactiveSiblingMenuItem(this);\n }\n })\n );\n\n return hoverSubscriptions;\n }\n\n /** @hidden Initializes menu link state based on item initial state */\n private _initialiseItemState(): void {\n this.menuInteractive.setSubmenu(!!this.submenu, this.itemId);\n this.menuInteractive.setDisabled(this.disabled);\n }\n\n /** @hidden Checks for Menu Service dependency and passes it if further */\n private _setMenuService(): void {\n this.menuService = this.menuService || this._submenu?.menuService || null;\n if (this.submenu && this.menuService) {\n this.submenu.menuService = this.menuService;\n }\n }\n\n /** @hidden Listen on menu mode and set proper mode listeners */\n private _listenOnMenuMode(): void {\n this.menuService?.isMobileMode.subscribe((isMobile) => {\n this._hoverSubscriptions.unsubscribe();\n if (!isMobile) {\n this._hoverSubscriptions = this._listenOnMenuLinkHover();\n }\n });\n }\n\n /** @hidden Updates focused menu item on outer focus */\n private _listenOnOuterFocus(): void {\n this._subscriptions.add(\n fromEvent(this.menuInteractive.elementRef.nativeElement, 'focus').subscribe(() => {\n if (this.menuService && this.menuService.focusedNode !== this.menuService.menuMap.get(this)) {\n this.menuService.setFocused(this);\n }\n })\n );\n }\n}\n\n@Component({\n selector: 'fd-submenu',\n template: `\n <ng-template>\n <ng-content></ng-content>\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: SUBMENU, useExisting: SubmenuComponent }],\n exportAs: 'fdSubmenu'\n})\nexport class SubmenuComponent implements BaseSubmenu, AfterContentInit {\n /** Aria-label for navigation */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Aria-Labelledby for element describing navigation */\n @Input()\n ariaLabelledby: Nullable<string>;\n\n /** @hidden Reference to template with Submenu items */\n @ViewChild(TemplateRef) templateRef: TemplateRef<any>;\n\n /** @hidden Reference to Submenu MenuItems */\n @ContentChildren(MenuItemComponent)\n _projectedItems: QueryList<MenuItemComponent>;\n\n /** @hidden */\n _registeredItems: MenuItemComponent[] = [];\n\n /** @hidden Reference to MenuService used by MenuItems */\n menuService: MenuService;\n\n /** @hidden */\n _menuItemsChange$ = new Subject<void>();\n\n /** @hidden */\n get menuItems(): MenuItemComponent[] {\n return this._projectedItems.length ? this._projectedItems.toArray() : this._registeredItems;\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._projectedItems.changes.subscribe(() => this._menuItemsChange$.next());\n }\n\n /** @hidden method for manually registering item when it's not visible for @ContentChildren */\n _registerItem(item: MenuItemComponent): void {\n this._registeredItems.push(item);\n this._menuItemsChange$.next();\n }\n\n /** @hidden method for manually unregistering item when it's not visible for @ContentChildren */\n _unregisterItem(item: MenuItemComponent): void {\n this._registeredItems = this._registeredItems.filter((i) => i !== item);\n this._menuItemsChange$.next();\n }\n}\n","<ng-content></ng-content>\n\n<ng-container *ngIf=\"hasPopup && submenu\">\n <ul\n class=\"fd-menu__sublist\"\n role=\"menu\"\n [attr.id]=\"itemId\"\n [attr.aria-hidden]=\"!submenuVisible\"\n [attr.aria-label]=\"submenu.ariaLabel\"\n [attr.aria-labelledby]=\"submenu.ariaLabelledby\"\n >\n <ng-container *ngTemplateOutlet=\"submenu.templateRef\"></ng-container>\n </ul>\n</ng-container>\n","import { AfterViewInit, Directive, ElementRef, HostBinding, Input, OnDestroy } from '@angular/core';\nimport { MenuItemComponent } from '../menu-item/menu-item.component';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-menu-shortcut]'\n})\nexport class MenuShortcutDirective implements AfterViewInit, OnDestroy {\n /** Hide shortcuts in mobile mode */\n @Input()\n hideOnMobile = true;\n\n /** @hidden */\n @HostBinding('class.fd-menu__shortcut')\n readonly fdMenuShortcutClass: boolean = true;\n\n /** @hidden */\n private _subscriptions: Subscription = new Subscription();\n\n /** @hidden */\n constructor(private _menuItem: MenuItemComponent, private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._hideOnMobile();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n private _hideOnMobile(): void {\n this._subscriptions.add(\n this._menuItem.menuService?.isMobileMode.pipe(filter(() => this.hideOnMobile)).subscribe((isMobile) => {\n if (isMobile) {\n this._elementRef.nativeElement.style.display = 'none';\n } else {\n this._elementRef.nativeElement.style.display = null;\n }\n })\n );\n }\n}\n","import { Directive, ElementRef, HostBinding, Input, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nimport { MenuComponent } from '../menu.component';\n\n@Directive({\n selector: '[fdMenuTrigger]'\n})\nexport class MenuTriggerDirective implements OnDestroy {\n /** Set reference to Menu Component */\n @Input('fdMenuTrigger')\n set menu(menu: MenuComponent | undefined) {\n this._unsubscribeFromMenu();\n\n if (menu) {\n menu.trigger = this._elementRef;\n this._subscribeToMenu(menu);\n }\n\n this._setAriaAttributes(menu);\n }\n\n /** @hidden */\n @HostBinding('attr.aria-haspopup')\n ariaHasPopup: Nullable<boolean>;\n\n /** @hidden */\n @HostBinding('attr.aria-controls')\n ariaControls: Nullable<string>;\n\n /** @hidden */\n @HostBinding('attr.aria-expanded')\n ariaExpanded: Nullable<boolean>;\n\n /** @hidden */\n private _menuSubscription: Subscription = new Subscription();\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._unsubscribeFromMenu();\n }\n\n /** @hidden */\n private _subscribeToMenu(menu: MenuComponent): void {\n this._menuSubscription.add(\n menu.isOpenChange.subscribe(() => {\n this._setAriaAttributes(menu);\n })\n );\n }\n\n /** @hidden */\n private _unsubscribeFromMenu(): void {\n this._menuSubscription.unsubscribe();\n this._menuSubscription = new Subscription();\n }\n\n /** @hidden */\n private _setAriaAttributes(menu?: MenuComponent): void {\n this.ariaHasPopup = !!menu;\n this.ariaExpanded = menu?.isOpen;\n this.ariaControls = menu?.isOpen ? menu.id : null;\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'fd-menu-addon',\n template: `\n <fd-icon [glyph]=\"glyph\" *ngIf=\"glyph\" role=\"presentation\"></fd-icon>\n <ng-content></ng-content>\n `\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class MenuAddonDirective {\n /** Whether addon is used before or after text */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('position') set setAddonPosition(position: 'before' | 'after') {\n this.fdAddonBeforeClass = position === 'before';\n this.fdAddonAfterClass = position === 'after';\n }\n\n /** The icon name to display. See the icon page for the list of icons\n * here: https://sap.github.io/fundamental-ngx/icon\n * */\n @Input()\n glyph: string;\n\n /** Whether is used as submenu indicator */\n @Input()\n @HostBinding('class.fd-menu__addon-after--submenu')\n submenuIndicator = false;\n\n /** Sets Aria hidden attribute */\n @Input()\n @HostBinding('attr.aria-hidden')\n ariaHidden = true;\n\n /** @hidden */\n @HostBinding('class.fd-menu__addon-after')\n fdAddonAfterClass = true;\n\n /** @hidden */\n @HostBinding('class.fd-menu__addon-before')\n fdAddonBeforeClass = false;\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-menu-separator',\n template: '',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuSeparatorComponent {\n /** @hidden */\n @HostBinding('class.fd-menu__separator')\n readonly fdMenuSeparatorClass: boolean = true;\n}\n","import { EventEmitter, InjectionToken } from '@angular/core';\nimport { DialogConfig } from '@fundamental-ngx/core/dialog';\nimport { MenuItemComponent } from './menu-item/menu-item.component';\nimport { MobileMode } from '@fundamental-ngx/core/mobile-mode';\n\nexport const MENU_COMPONENT = new InjectionToken<string[]>('MenuInterface');\n\n/**\n * Menu Interface to have typing and avoid circular dependency between\n * MenuComponent <==> MenuMobileComponent\n */\nexport interface MenuInterface extends MobileMode {\n activePath: EventEmitter<MenuItemComponent[]>;\n dialogConfig: DialogConfig;\n isOpenChange: EventEmitter<boolean>;\n\n close(): void;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { DialogBodyComponent, DialogService } from '@fundamental-ngx/core/dialog';\nimport { Observable, of } from 'rxjs';\nimport { MenuService } from '../services/menu.service';\nimport { MenuItemComponent } from '../menu-item/menu-item.component';\nimport { map, startWith, take, takeUntil } from 'rxjs/operators';\nimport { RtlService } from '@fundamental-ngx/cdk/utils';\nimport { MENU_COMPONENT, MenuInterface } from '../menu.interface';\nimport {\n MOBILE_MODE_CONFIG,\n MobileModeBase,\n MobileModeControl,\n MobileModeConfigToken\n} from '@fundamental-ngx/core/mobile-mode';\n\n@Component({\n selector: 'fd-menu-mobile',\n templateUrl: './menu-mobile.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class MenuMobileComponent extends MobileModeBase<MenuInterface> implements OnInit, OnDestroy {\n /** @hidden */\n @ViewChild('dialogTemplate') dialogTemplate: TemplateRef<any>;\n\n /** Current menu title */\n title: string;\n\n /** Whether current menu level is submenu */\n isSubmenu: boolean;\n\n /** @hidden External content */\n childContent: TemplateRef<any> | undefined = undefined;\n\n /** @hidden Currently rendered menu view */\n view: TemplateRef<any> | undefined;\n\n /** @hidden Navigation icon name based on RTL */\n navigationIcon$: Observable<string>;\n\n /** @hidden */\n @ViewChild(DialogBodyComponent)\n set _watch(_dialogBody: DialogBodyComponent) {\n if (_dialogBody) {\n this._menuService.addKeyboardSupport(_dialogBody.elementRef);\n }\n }\n\n /** @hidden */\n constructor(\n elementRef: ElementRef,\n dialogService: DialogService,\n private _menuService: MenuService,\n private _changeDetectorRef: ChangeDetectorRef,\n private _ngZone: NgZone,\n @Optional() private _rtlService: RtlService,\n @Inject(MENU_COMPONENT) menuComponent: MenuInterface,\n @Optional() @Inject(MOBILE_MODE_CONFIG) mobileModes: MobileModeConfigToken[]\n ) {\n super(elementRef, dialogService, menuComponent, MobileModeControl.MENU, mobileModes);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._listenOnActivePathChange();\n this._listenOnMenuOpenChange();\n this._listenOnTextDirection();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n super.onDestroy();\n }\n\n /** Closes the Dialog and Menu component */\n close(): void {\n this.dialogRef.close();\n this._component.close();\n }\n\n /** Navigate back to parent level of submenu */\n backToParentLevel(): void {\n const menuItem = this._menuService.activeNodePath[this._menuService.activeNodePath.length - 1].item;\n this._menuService.setActive(false, menuItem);\n this._executeOnStable(() => {\n menuItem?.focus();\n });\n }\n\n /** @hidden Opens the Dialog */\n private _openDialog(): void {\n this.dialogRef = this._dialogService.open(this.dialogTemplate, {\n mobile: true,\n disablePaddings: true,\n ...this.dialogConfig,\n escKeyCloseable: false,\n backdropClickCloseable: false,\n container: this._elementRef.nativeElement\n });\n }\n\n /** @hidden Listens on Active Path changes and updates mobile view */\n private _listenOnActivePathChange(): void {\n const initialItemPath: MenuItemComponent[] = this._menuService.activeNodePath\n .map((node) => node.item)\n .filter((v): v is MenuItemComponent => !!v);\n this._component.activePath\n .pipe(takeUntil(this._onDestroy$), startWith(initialItemPath))\n .subscribe((items) => this._setMenuView(items));\n }\n\n /**\n * @hidden\n * Executes a function when the zone is stable.\n */\n private _executeOnStable(fn: () => any): void {\n if (this._ngZone.isStable) {\n fn();\n } else {\n this._ngZone.onStable.pipe(take(1)).subscribe(fn);\n }\n }\n\n /** @hidden Sets menu view, title and isSubmenu flag */\n private _setMenuView(items: MenuItemComponent[]): void {\n const lastItem: MenuItemComponent = items[items.length - 1];\n this.isSubmenu = !!items.length;\n this.title = this._getDialogTitle(lastItem);\n this.view = this._getMenuView(lastItem);\n this._changeDetectorRef.markForCheck();\n this._executeOnStable(() => {\n this._menuService.focusedNode?.item?.focus();\n });\n }\n\n /** @hidden Opens/closes the Dialog based on Menu isOpenChange events */\n private _listenOnMenuOpenChange(): void {\n this._component.isOpenChange\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((isOpen) => (isOpen ? this._openDialog() : this.dialogRef.close()));\n }\n\n /** @hidden Sets navigation arrow depending on text direction */\n private _listenOnTextDirection(): void {\n this.navigationIcon$ = this._rtlService\n ? this._rtlService.rtl.pipe(map((isRtl) => (isRtl ? 'navigation-right-arrow' : 'navigation-left-arrow')))\n : of('navigation-left-arrow');\n }\n\n /** @hidden Returns dialog title */\n private _getDialogTitle(menuItem: MenuItemComponent): string {\n if (this.isSubmenu) {\n return menuItem.menuItemTitle ? menuItem.menuItemTitle.title : '';\n }\n\n return this.mobileConfig.title || '';\n }\n\n /** @hidden Returns dialog content view */\n private _getMenuView(menuItem: MenuItemComponent): TemplateRef<any> | undefined {\n if (this.isSubmenu) {\n return menuItem.submenu ? menuItem.submenu.templateRef : this.view;\n }\n return this.childContent;\n }\n}\n","<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element *ngIf=\"isSubmenu\">\n <button\n fd-button\n fdType=\"transparent\"\n id=\"menu-mobile-navigate-back\"\n fdCozy\n [attr.aria-label]=\"'Go to previous menu level: ' + title\"\n [glyph]=\"navigationIcon$ | async\"\n (click)=\"backToParentLevel()\"\n ></button>\n </fd-bar-element>\n <fd-bar-element>\n <h1 fd-title>{{ title }}</h1>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <button\n *ngIf=\"this.mobileConfig.hasCloseButton\"\n fd-dialog-close-button\n [mobile]=\"true\"\n (click)=\"close()\"\n ></button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngTemplateOutlet=\"(isSubmenu ? subMenuTemplate : view) || null\"> </ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer *ngIf=\"mobileConfig.approveButtonText || mobileConfig.cancelButtonText\">\n <fd-button-bar\n *ngIf=\"mobileConfig.approveButtonText\"\n fdType=\"emphasized\"\n [label]=\"mobileConfig.approveButtonText\"\n (click)=\"close()\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"mobileConfig.cancelButtonText\"\n fdkInitialFocus\n [label]=\"mobileConfig.cancelButtonText\"\n (click)=\"close()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n\n<ng-template #subMenuTemplate>\n <nav class=\"fd-menu fd-menu--mobile\">\n <ul class=\"fd-menu__sublist\">\n <ng-container *ngTemplateOutlet=\"view || null\"></ng-container>\n </ul>\n </nav>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MenuMobileComponent } from './menu-mobile.component';\nimport { DialogModule } from '@fundamental-ngx/core/dialog';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\n\n@NgModule({\n declarations: [MenuMobileComponent],\n imports: [CommonModule, DialogModule, ButtonModule],\n exports: [MenuMobileComponent]\n})\nexport class MenuMobileModule {}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { DynamicComponentService } from '@fundamental-ngx/cdk/utils';\nimport { DialogConfig } from '@fundamental-ngx/core/dialog';\nimport { MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';\nimport { BasePopoverClass, PopoverService } from '@fundamental-ngx/core/popover';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nimport { MenuMobileComponent } from './menu-mobile/menu-mobile.component';\nimport { MenuMobileModule } from './menu-mobile/menu-mobile.module';\nimport { MenuService } from './services/menu.service';\nimport { MENU_COMPONENT, MenuInterface } from './menu.interface';\nimport { MenuItemComponent } from './menu-item/menu-item.component';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nlet menuUniqueId = 0;\n\n/**\n * The component that represents a menu.\n */\n@Component({\n selector: 'fd-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['menu.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [MenuService, PopoverService, contentDensityObserverProviders()]\n})\nexport class MenuComponent\n extends BasePopoverClass\n implements MenuInterface, AfterContentInit, AfterViewInit, OnDestroy, OnInit\n{\n /** Set menu in mobile mode */\n @Input()\n set mobile(value: BooleanInput) {\n this._mobile = coerceBooleanProperty(value);\n this._menuService.setMenuMode(this.mobile);\n }\n get mobile(): boolean {\n return this._mobile;\n }\n\n /** Whether the popover is disabled. */\n @Input()\n disabled = false;\n\n /** Whether the popover should be focusTrapped. */\n @Input()\n focusTrapped = true;\n\n /**\n * Whether the popover should automatically move focus into the trapped region upon\n * initialization and return focus to the previous activeElement upon destruction.\n */\n @Input()\n focusAutoCapture = true;\n\n /** Should fd-scrollbar have tabindex*/\n @Input()\n tabbableScrollbar = false;\n\n /** Open submenu on hover after given milliseconds */\n @Input()\n openOnHoverTime = 0;\n\n /** Display menu without integrated popover */\n @Input()\n mobileConfig: MobileModeConfig = { cancelButtonText: 'Cancel' };\n\n /** Aria-label for navigation */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Aria-Labelledby for element describing navigation */\n @Input()\n ariaLabelledby: Nullable<string>;\n\n /** Id of the control. */\n @Input()\n id = `fd-menu-${menuUniqueId++}`;\n\n /** Emits array of active menu items */\n @Output()\n readonly activePath = new EventEmitter<MenuItemComponent[]>();\n\n /** @hidden Reference to the menu root template */\n @ViewChild('menuRootTemplate')\n _menuRootTemplate: TemplateRef<any>;\n\n /** @hidden Reference to all menu Items */\n @ContentChildren(MenuItemComponent)\n _menuItems: QueryList<MenuItemComponent>;\n\n /** @hidden Whether use a menu in mobile mode */\n private _mobile = false;\n\n /** @hidden Reference to external menu trigger */\n private _externalTrigger: ElementRef;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _mobileModeComponentRef: ComponentRef<MenuMobileComponent>;\n\n /** @hidden */\n private _clickEventListener: null | (() => void);\n\n /** @hidden */\n private get _popoverConfig(): BasePopoverClass {\n return {\n ...this,\n additionalBodyClass: (this.additionalBodyClass ?? '') + ' fd-popover--menu'\n };\n }\n\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef,\n @Optional() public readonly dialogConfig: DialogConfig,\n private readonly _rendered: Renderer2,\n private readonly _menuService: MenuService,\n private readonly _changeDetectorRef: ChangeDetectorRef,\n private readonly _popoverService: PopoverService,\n private readonly _injector: Injector,\n private readonly _viewContainerRef: ViewContainerRef,\n @Optional() private readonly _dynamicComponentService: DynamicComponentService,\n readonly _contentDensityObserver: ContentDensityObserver\n ) {\n super();\n }\n\n /** @hidden */\n ngOnInit(): void {\n /** keep isOpen up to date */\n this.isOpenChange.subscribe((isOpen) => {\n this.isOpen = isOpen;\n\n // when popover got closed by its own mechanism (e.x. click outside)\n // we need to clean up a menu as well\n if (!isOpen) {\n this._cleanUpMenuAfterClose();\n }\n\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._menuService.setMenuComponent(this);\n this._listenOnMenuItemsChange();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._menuService.isMobileMode.subscribe((isMobile) => {\n this._setupView();\n\n // Since it is mobile, it's needed to disable popoverService\n if (isMobile) {\n this._popoverService.deactivate();\n }\n });\n\n this._menuService.setMenuMode(this.mobile);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._destroyMobileComponent();\n this._destroyEventListeners();\n this._menuService.onDestroy();\n this._subscriptions.unsubscribe();\n this._popoverService.onDestroy();\n }\n\n /** @hidden */\n set trigger(trigger: ElementRef) {\n this._externalTrigger = trigger;\n this._popoverService.initialise(this._externalTrigger);\n this._destroyEventListeners();\n this._listenOnTriggerRefClicks();\n }\n get trigger(): ElementRef {\n return this._externalTrigger;\n }\n\n /** Opens the menu */\n open(): void {\n if (this.mobile) {\n this.isOpen = true;\n this.isOpenChange.emit(this.isOpen);\n } else {\n this._popoverService.open();\n }\n\n this._changeDetectorRef.markForCheck();\n }\n\n /** Closes the menu */\n close(): void {\n if (this.mobile) {\n this.isOpen = false;\n this.isOpenChange.emit(this.isOpen);\n } else {\n this._popoverService.close();\n }\n\n this._cleanUpMenuAfterClose();\n this._focusTrigger();\n this._changeDetectorRef.markForCheck();\n }\n\n /** Toggles menu open/close state */\n toggle(): void {\n this.isOpen ? this.close() : this.open();\n }\n\n /** Method called to refresh position of opened popover */\n refreshPosition(): void {\n this._popoverService.refreshPosition();\n }\n\n /** @hidden */\n private _cleanUpMenuAfterClose(): void {\n this._menuService.resetMenuState();\n }\n\n /** @hidden Select and instantiate menu view mode */\n private _setupView(): void {\n if (this.mobile) {\n this._setupMobileMode();\n } else {\n this._setupPopoverService();\n }\n\n this._changeDetectorRef.detectChanges();\n }\n\n /** @hidden */\n private _setupPopoverService(): void {\n this._subscriptions.add(\n this._popoverService._onLoad.subscribe((elementRef) => this._menuService.addKeyboardSupport(elementRef))\n );\n\n this._popoverService.templateContent = this._menuRootTemplate;\n this._popoverService.initialise(this._externalTrigger, this._popoverConfig);\n }\n\n /** @hidden Open Menu in mobile mode */\n private async _setupMobileMode(): Promise<void> {\n const injector = Injector.create({\n providers: [{ provide: MENU_COMPONENT, useValue: this }],\n parent: this._injector\n });\n\n this._mobileModeComponentRef = await this._dynamicComponentService.createDynamicModule(\n this._menuRootTemplate,\n MenuMobileModule,\n MenuMobileComponent,\n this._viewContainerRef,\n injector\n );\n\n this._listenOnTriggerRefClicks();\n }\n\n /** @hidden Listen on menu items change and rebuild menu */\n private _listenOnMenuItemsChange(): void {\n this._subscriptions.add(this._menuItems.changes.subscribe(() => this._menuService.rebuildMenu()));\n\n // Whether menu have submenu or not.\n let isSubmenu = false;\n this._menuItems.forEach((menuItem) => {\n if (menuItem.submenu?.menuItems) {\n isSubmenu = true;\n this._subscriptions.add(\n menuItem.submenu._menuItemsChange$.subscribe(() => this._menuService.rebuildMenu())\n );\n }\n });\n this.disableScrollbar = isSubmenu;\n }\n\n /**\n * @hidden\n * This is going to be removed in feature, on dialog and dynamic service component refactor\n */\n private _listenOnTriggerRefClicks(): void {\n this._destroyEventListeners();\n\n if (this.trigger && this.mobile) {\n this._clickEventListener = this._rendered.listen(this.trigger.nativeElement, 'click', () => this.toggle());\n }\n }\n\n /**\n * @hidden\n * This is going to be removed in feature, on dialog and dynamic service component refactor\n */\n private _destroyEventListeners(): void {\n if (this._clickEventListener) {\n this._clickEventListener();\n this._clickEventListener = null;\n }\n }\n\n /** @hidden */\n private _destroyMobileComponent(): void {\n if (this._mobileModeComponentRef) {\n this._mobileModeComponentRef.destroy();\n }\n }\n\n /** @hidden */\n private _focusTrigger(): void {\n if (this.focusTrapped && this.trigger) {\n this.trigger.nativeElement.focus();\n }\n }\n}\n","<ng-container #viewContainer></ng-container>\n\n<ng-template #menuRootTemplate>\n <div class=\"fd-popover__wrapper--visible\">\n <nav\n class=\"fd-menu\"\n [id]=\"id\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-label]=\"ariaLabel\"\n role=\"menu\"\n [class.fd-menu--mobile]=\"mobile\"\n >\n <ul role=\"none\" class=\"fd-menu__list fd-menu__list--no-shadow\">\n <ng-content></ng-content>\n </ul>\n </nav>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MenuComponent } from './menu.component';\nimport { MenuTitleDirective } from './directives/menu-title.directive';\nimport { MenuInteractiveDirective } from './directives/menu-interactive.directive';\nimport { MenuSeparatorComponent } from './menu-separator/menu-separator.component';\nimport { MenuAddonDirective } from './directives/menu-addon.directive';\nimport { MenuItemComponent, SubmenuComponent } from './menu-item/menu-item.component';\nimport { MenuShortcutDirective } from './directives/menu-shortcut.directive';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { MenuTriggerDirective } from './directives/menu-trigger.directive';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { DynamicComponentService, InitialFocusModule } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n imports: [CommonModule, PopoverModule, IconModule, InitialFocusModule, ContentDensityModule],\n declarations: [\n MenuComponent,\n MenuItemComponent,\n MenuAddonDirective,\n MenuSeparatorComponent,\n MenuShortcutDirective,\n MenuInteractiveDirective,\n MenuTitleDirective,\n SubmenuComponent,\n MenuTriggerDirective\n ],\n exports: [\n MenuComponent,\n MenuItemComponent,\n SubmenuComponent,\n MenuSeparatorComponent,\n MenuShortcutDirective,\n MenuInteractiveDirective,\n MenuTitleDirective,\n MenuAddonDirective,\n MenuTriggerDirective,\n ContentDensityModule\n ],\n providers: [DynamicComponentService]\n})\nexport class MenuModule {}\n","export abstract class DefaultMenuItem {\n abstract focus(): void;\n abstract click(): void;\n}\n","import { Subject } from 'rxjs';\nimport { Injectable, Output } from '@angular/core';\nimport { DefaultMenuItem } from './default-menu-item.class';\nimport { ListItemComponent } from '@fundamental-ngx/core/list';\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\nimport { DOWN_ARROW, ENTER, SPACE, UP_ARROW } from '@angular/cdk/keycodes';\n\n@Injectable()\nexport class MenuKeyboardService {\n /** Event emitted when an item link is clicked.*/\n @Output()\n public readonly itemClicked: Subject<number> = new Subject<number>();\n\n /** Whether user wants to remove keyboard handling */\n disableKeydownHandling = false;\n\n /** Function that is supposed to be called, when focus escape before list */\n focusEscapeBeforeList: () => void;\n\n /** Function that is supposed to be called, when focus escape after list */\n focusEscapeAfterList: () => void;\n\n /** Function that should be called every time, keydown event is used on some menu item,\n * it provides whole functionality for handling\n * ArrowDown - focus, ArrowUp - focus, Space bar - simulate click, Enter key - simulate click.\n * @param event KeyboardEvent\n * @param index index of items starts from 0\n * @param menuItems array of menu item directives\n * */\n keyDownHandler(event: KeyboardEvent, index: number, menuItems: DefaultMenuItem[] | ListItemComponent[]): void {\n if (this.disableKeydownHandling) {\n return;\n }\n\n if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n if (menuItems.length > index + 1) {\n menuItems[index + 1].focus();\n } else {\n if (this.focusEscapeAfterList) {\n this.focusEscapeAfterList();\n } else {\n menuItems[0].focus();\n }\n }\n event.preventDefault();\n } else if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n if (index > 0) {\n menuItems[index - 1].focus();\n } else {\n if (this.focusEscapeBeforeList) {\n this.focusEscapeBeforeList();\n } else {\n menuItems[menuItems.length - 1].focus();\n }\n }\n event.preventDefault();\n } else if (KeyUtil.isKeyCode(event, [SPACE, ENTER])) {\n if (menuItems[index]) {\n menuItems[index].click();\n event.preventDefault();\n }\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","menuUniqueId","i2","i1.MenuItemComponent","i2.MenuService","i6","i3","i4","i5"],"mappings":"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"}